A small nifty update.
I just implemented a theme loader for the rendering engine. Themes basically consist of simple key/value pairs that influence the rendering engine's appearance. What properties are available depends on the used engine. The standard (and included) rendering engine "BREW" for example mostly takes colors and font sizes etc. (other engines might also load images or have effects)
I tried to separate the loading code as much as possible to hang in loaders for your custom format. I did a reference implementation for the YAML file format, however it won't make it into the master branch since it needs a dependency (yaml-cpp) that I want to avoid for public releases.
Instead, a very simple theme format will be introduced, that'll look as follows:
Button.Normal.BackgroundColor = #aabbcc
...
If you're interested in seeing the YAML loader, check out the
"yaml" branch I uploaded to GitHub. How loading themes work can be seen in the
sample application.
Always keep in mind that the whole stuff will get easier in the future. SFGUI will get a "workspace" class that includes the used rendering engine and methods for loading themes more easily.
Stay tuned for the basic theme file format loader. I'd appreciate any testing or comments, so feel free to drop a line here.