FRex:
It's almost finished. I'm not just replacing the fast delegates by std::function, but also change the whole signalling concept internally. Besides of that, we're also dropping sfg::SharedPtr in favor of std::shared_ptr.
After the changes there will be only one function that can be used to register a signal callback. It expects a function<void( uint32_t, shared_ptr<sfg::Object> )>, where the first parameter is the signal ID and the second the emitter object (or widget).
To make it more comfortable to work with, I'm writing sfg::SignalRouter, which you can use to register signals per widget like this:
sfg::SignalRouter router;
router.AddHandler( my_widget, sfg::Button::OnLeftClick, []( shared_ptr<sfg::Button> button ) { // Do something } );
The router will then dispatch signals whenever it receives them from the proper object. The third parameter, by the way, is a std::function.
Also, for a future version (maybe for 0.3.0 or 0.4.0, it's really not decided yet), it's planned to decouple the widgets completely from rendering. At the moment they are calling the active rendering engine to get visuals, which makes them dependent on the engine.
So basically at least the signalling/shared_ptr stuff is what's taking so long -- besides me not having as much free time as I'd love to have.
Na, I'll just have to recreate the build scripts for SFGUI as well, but I'm already behind with Thor.
SFGUI is more important!!1!