Its all SFML - no OS specific code. Originally, the drawing was all done as opengl code, but most of it is now done with SFML graphic calls, and should be completely converted before release. The naming conventions and exact function naming, etc is still subject to change. The idea, of course, is to make things easy to use. Currently, in addition to including the files in your project's development environment (I use Code::Blocks most of the time), 4 lines of code are needed to enable it.
// 1) access the header file:
#include "sigui.hpp"
...
sf::RenderWindow App(sf::VideoMode(800, 600, 32), "Test"); // eg.
// 2) after creating the renderwindow and before declaring any gui components, initialize the gui system:
GUIinitialize(&App);
...
while (App.GetEvent(Event))
{
// 3) at the beginning of the event handler:
if (GUIprocessEvent(Event)) continue;
...
// 4) after drawing your scene and before issuing the App.Display():
GUIdraw();
---------------------------------------------------
After step 2, you will need to declare all of the gui components. These are placed on "Forms" with the SFML renderwindow being a default form named "GUImain". A Form can be created with:
GUIform Form1(100, 50, 500, 300, "First Form"); // left, top, width, height
// a menu added with:
GUImenuBar Menu1(&Form1, "Files, Edit, View, Options, Help, Exit");
// callback function specified:
Menu1.MenuItemOnClick(5, &getoutahere); // respond to "Exit"
There are different ways to create the components, just some quick examples are shown. Form and component colors can be changed and images can be applied. Overall, it is still an "old-school" rectangle based GUI.