MicroRaptor Gui

MicroRaptor Gui is a C API for creating user interfaces, it can be used as an application writing environment or as an interactive canvas for part of a larger interface.

Micro raptor builds on/integrates with cairos immediate mode vector rendering API

Callbacks registered during the painting of the frame - the cairo transformations in place during registration applies when called. Also works for dragging. Keybindings are also registered during painting.

Embeddable and stand-alone - as a "canvas" mrg can be used as widgets in Gtk+ applications or full-blown applications.

Multi-platform, both through SDL and GTKs multiplatform support, and built-in TUI (UTF-8 ansi/vt100) support for most modern terminals.

CSS styled rendering (using a context stack; where the pushing of contexts specifies the "element.class#id" of each now element rendering entered.

Backends / dependencies

MicroRaptor Gui has three independent backends it can use, SDL-1.2, GTK+-3.0 and ANSI/vt100 terminals, the GTK backend provides both full application hosting, and a widget for use as a canvas in GTK+applications. The terminal backends has mouse support, is utf8 native and for simple text-centric applications you can even build static libraries skipping even the cairo support.

Immediate mode UIs

In terms of programming paradigm, microraptor contains aspects of both traditional retained widget-tree/scene-graph ui's and (purist) immediate mode uis. Since microraptor doesn't have a retained scenegraph, and some of the freedoms gained with imgui, like being able to paint incrementally directly from data-structures are also gained with microraptor.