TINA
state: discontinued    license: GPL    timestamp: 2007
Description
TINA is a portable cross-platform and serializable GUI library. The project files are located at http://sourceforge.net/projects/tina.

TINA is split off from the AlterNova project that originates from January 2003. It is dependant on the COW library and uses COW to serialize itself to XML or other formats. This way, designers can easily build a GUI in XML.
Environment and building
The code compiles with Python and SCons. It is dependent on the COW library from this website.
Setting it up
TINA has a proxy system for creating objects(like fonts and textures) and for drawing. This means that you have to feed TINA these objects so it can visualize the GUI. Because of that, any kind of rendering system can be used with TINA.
  1. Derive your own texture class from tina::TextureProxy.
  2. Derive your own texture font class from tina::FontProxy.
  3. Make a class that is derived from tina::ObjectCreationProxy. This proxy will create textures and fonts of the types that were made in the steps above.
  4. Call tina::Initialize(your_object_proxy) at the initialization code of your program. Don't forget to call cow::Initialize() first!
  5. Elsewhere in your code, you need to have a tina::SurfaceManager. Call Update() and Render(your_render_proxy) on it to make it work. Now you can add surfaces and controls to the surface manager and pass on the input logic to it.