As
 some of you might know (although I guess most of you might not be 
aware), Timotei and me participated in GSOC 2014 this year. My project 
was to create a Look n' Feel editor to CEED for all 0.8.X version of 
CEGUI (we also support higher versions of course). This is a feature 
that has been missing in CEGUI until now. Before CEED, CEGUI has had 
tools for layout and imageset creation and editing, such as the 
CELayoutEditor. However, Look N' Feel (LNF) editing has never been 
possible and as far as I know creating an editor hasn't even been 
attempted. I thought this would be a pity, considering that the ability 
to creating new widgets is crucial for GUI development in many cases. 
Skinning of widgets is also easily possible with such an editor, working
 purely in an XML editor to accomplish this, is otherwise very tideous: 
there is no preview, no good overview of the possible attributes, no 
helpful features such as Colour Picking/Image Selection/Font Selection 
etc. and every change has to be tested by starting the application 
running CEGUI - an inefficient process.
With a proper tool however, it becomes really easy. This is why I 
decided this would make for a great addition to CEGUI. I was not 
acquainted with CEED development and the Python language, but I 
relatively quickly worked myself into the large CEED code base and 
learnt to use Python, which was actually relatively smooth. PyCharms 
were so nice to privde us with a free license for Open Source projects, 
thanks to PyCharms at this point!
Unfortunately, when I started to get to the "real" development of the
 editor, I encountered numerous issues in the CEGUI C++ code. Some of 
the files were created around 10 years ago and they seem to have hardly 
ever been updated. Also a newly added "inheritation" feature showed 
numerous occasions of faulty behaviour that could have caused crashes, 
if it had ever been used (it is badly documented so we doubt anyone used
 it). Due to this, a lot of the Falagard code had to be reworked, which 
took a good chunk of my time of the GSoC. At least one thing that is 
positive about this is that I was able to fix a lot of issues and rework
 a lot of functions which results in now cleaner code in this section of
 CEGUI. 
Now to the real deal: The editor. In the screenshot below, you see me
 editing a Vanilla/Button look n' feel in CEED. Generally it would be 
recommended to either inherit this button (not yet implemented) and work
 on the inherited LNF, or to copy paste the definition into a new file 
and work on that file (we will add a shortcut for this in the future). 
But for the sake of a quick preview I m directly editing the original 
file. On the top left you can see the WidgetLook (WL) selector (selects a
 WidgetLook defined in the LNF file being edited), which consists of a 
dropdown selection to choose from the available WidgetLooks and of an 
Edit button. On clicking edit, the specific WL is opened. Below is the 
hierarchy window. It contains the editable attributes from the XML in a 
ordered and categorised tree. Selecting an attribute show a list of new 
options in the Falagard Element editor on the right. These options can 
be edited with a double-click on the value. Depending on the type of 
attribute, the easiest and most intutitive way to change the value is 
chosen (for example a ColourPicker for colours). Images (and Fonts) can 
be selected from a dropdownlist containing all loaded Image (or Font) 
definitions; bool is represented by a checkbox, etc etc. The changes are
 directly applied and can be seen in the Preview instantenously. In the 
shown case the "NormalImage" PropertyDefinition's initial value is 
overwritten. This means that now there is an image set for the button by
 default, as can be seen on the screenshot. We already support editing 
of pretty much every type of attribute.
I also added alternating colours for the lists and trees, which I 
also applied for the pre-existing layout-editor. This is based on the 
look of QtDesigner. I hope users will enjoy this change, I personally 
definitely prefer it over the alternating grey tones we had before (They
 were too sad!). I also worked a bit on the Code editor of the LNF 
Editor. By default the LNF code editor now highlights the part of the 
code that is part of the currently edited WidgetLook. Additionally, it 
jumps to the beginning of that code when changing to the editor. This 
should make it much easier to edit code by hand because the user does 
not need to scroll to the right widget every time and has an easier 
overview of the code relevant to the widget thanks to the colour 
highlighting.
The LNF editor is not complete yet, but definitely the main part of 
the work is done, the overall setup is there and most of the LNF is 
already displayed and editable, many features are tested and are 
actually working very well. It can already used for simple skinning such
 as mere replacement of images in a LNF file. In the future we will add 
some features that allow way easier creation of new LNFs and new 
Widgets, add inheritation and allow an even broader set of changes to 
LNFs. If you consider already using the CEED changes, you have to be 
aware that the LNF editor is currently unstable (make backups of your 
CEGUI datafiles and save regularly while working on them!) and some 
parts are not fully implemented yet, therefore it should be used with 
great caution until we officially announce it is finished.