It's not a good idea to use this library for your projects, yet. Changes are and will be massive, so a project using SFGUI at the moment will have to do a rewrite in a lot of places.
nulloid:
I'm currently heavily designing the new architecture and implementing it step-by-step, evaluating what's good and what needs to be rewritten.
Okay, to don't let you in the dark, this is what I've done so far, or better: what's still being implemented.
The way SFGUI will work in the future is by automatic layouting. Currently you have to specify positions, widths and heights to get your widgets on the screen. Everyone who already worked with useful GUI frameworks (e.g. GTK or Qt) will know the concept of "sizers" which I adapted from the GTK's implementation a lot.
That change forced me to implement some basic widgets at first which weren't there in the latest commit: Window, Container, Bin and Box:
The container is a base class for other container-like widgets.
The bin is a container widget that can hold exactly one child.
The box is a so called "box sizer" (like VBox and HBox of GTK) that automatically arranges widgets horizontally or vertically, dependant on their needed minimum size (you can specify custom sizes, too, of course, however this is not recommended because it could destroy a natural GUI).
The window is what you probably imagine, a classic graphical window, that inherits the bin widget, therefore a window can hold only one window (don't scream, that's enough and logical. Remember you can also put in sizers there
).
The graphical part has been completely separated into render engines for now. The render engine takes care of producing visuals for the proper widgets, i.e. how they look like. Render engines are written in C++ but can be highly customized by themes (which are basically nothing more than some properties that fine-control the render engine's behaviour).
Presently two graphical widgets are nearly done: Window and button. Also a standard rendering engine "BREW" (Basic Rendering Engine for Widgets, neat name, eh?
) is being enhanced as soon as new widgets arrive. BREW is very basic, which means that every widget is painted just using sf::Shapes -- thickness, colors etc. can be however adjusted via the theme.
When all that stuff is done, I'll provide another rendering engine that takes images for drawing, so you can have more pretty visuals. Besides from that, it's of course possible to write an own rendering engine that, for example, uses animated sprites or even super-uber-mega effects for the widgets. No limits here!
As you may note, the changes I just described are really huge, so the code of SFGUI currently looks like a complete rewrite and even feels like a such. I didn't mention the eventing system that has also completely changed, just like the signalling.
I can understand when people who were and are interested in the "previous" SFGUI are sighing now, but I promise, give it some time to develop to a good state, and I ensure that you'll be a lot happier with the new approach than the previous one.
Stay tuned!