LibAgar is a cross-platform GUI system. It provides a base framework and a standard toolkit of widgets from which high-performance, portable graphical applications can be built.
The toolkit is extensible through class registration. A powerful style engine allows precise control over the appearance of elements. Agar applications work under X Windows, MS Windows, MacOS, SDL (1.2 and 2.0) and others. It can attach to an existing graphical context and work as a self-contained window manager. Agar is fully thread-safe when built with threads support.
Homepage
Download
Recent Releases
1.7.012 Dec 2024 12:20
major feature:
Added: sdl2fb: New driver for SDL 2.0 (single-window; frame-buffer mode). sdl2gl: New driver for SDL 2.0 (single-window; OpenGL mode). sdl2mw: New driver for SDL 2.0 (multi-window; OpenGL mode). glx: Added support for X Input Methods. Thanks sr20det!. AG_Button: New option `AG_BUTTON_CROP` (crop label surface to fit contents). Useful for condensing or removing typographical spacings so that individual glyphs (for example "Geometrical Shapes") can be made to align precisely. AG_Color: Added compression / decompression macros for 4/12/24/48-bit values. AG_Driver: New operation: `setMouseAutoCapture` (enable, disable or reset mouse auto-capture on button-down). AG_DriverSw: New option `clampOnResize` (clamp active Agar windows against new display size). AG_Error: New function `AG_De()` (output demessage when delevel is = 2). AG_FontBf: New bitmap font engine for the `.agbf` font format. AG_Menu: Implemented keyboard shortcuts. Added `AG_MENU_NO_BOOL_MSG` and `AG_MENU_FAST_BOOL_MSG` options. AG_Menu: Improved the performance of the `AG_MenuView` renderer by caching state-dependent opaque labels (embedding any icons), so blending is no longer required by `draw()`. Improved appearance of `AG_MenuView`. AG_Object: Introduce numerical class IDs and `*_ISA()` macros. AG_Object: New function `AG_ObjectFreeChildrenOfType()`. AG_Radio: New `HOMOGENOUS` option to divide space equally between items. Thanks Stephen!. AG_StyleSheet: New CSS selectors `E F`. Child widgets are now addressable by instance name (e.g., `AG_Combo "trigger"`) or class name (e.g., `AG_Combo AG_Button`). AG_StyleSheet: New CSS selector conditionals `width`, `height` and `zoom`. Widgets can be styled based on their current geometry or zoom level. AG_Surface: New field `Lpadding` (scaline start padding). Allows fast cropping of lines from the left. AG_Surface: Make it possible to increment the `pixels` pointer to fast crop lines from the top. Added `pixelsBase` pointer. AG_Surface: Added standard