DESCRIPTION
Agar is a cross-platform GUI system and framework.
It provides a programming platform and a standard toolkit of widgets from
which graphical applications can be built.
AGAR-CORE ↑
The
ag_core library is Agar's non-graphical platform and utility library.
It implements the base object system, events / virtual functions and timers.
It provides cross-platform interfaces to OS services such as
filesystems, kernel-based events, timers and threads.
To use this library alone (without GUI), link against
 agar-core-config --libs. 
| AG_Config(3) | Manage Agar configuration settings. | 
| AG_Core(3) | Core Agar library initialization. | 
| AG_DataSource(3) | Data sources and serialization. | 
| AG_Db(3) | Generic database access methods. | 
| AG_DSO(3) | Dynamic linker interface. | 
| AG_Error(3) | Error handling and error-checking memory allocation. | 
| AG_Event(3) | Event handlers / virtual functions. | 
| AG_EventLoop(3) | Low-level event loop. Event sources and sinks. | 
| AG_Execute(3) | File execution interface. | 
| AG_File(3) | File access routines. | 
| AG_Limits(3) | Limit constants. | 
| AG_Object(3) | The Agar object system. | 
| AG_String(3) | C string specific functions. | 
| AG_TextElement(3) | Multilanguage dynamic text buffer. | 
| AG_Threads(3) | Threads interface. | 
| AG_Timer(3) | The Agar timer facility. | 
| AG_Time(3) | Monotonically-increasing time sources. | 
| AG_User(3) | User account information access. | 
| AG_Variable(3) | Agar object variables. | 
| AG_Version(3) | Data file versioning. | 
AGAR-GUI: BASE SYSTEM ↑
The
ag_gui library includes the base Agar GUI system and its standard widget toolkit.
To use it, link against
 agar-config --libs. 
| AG_AlphaFn(3) | Alpha blending functions. | 
| AG_Color(3) | Color structure. | 
| AG_Cursor(3) | Cursor configuration. | 
| AG_Driver(3) | Driver (backend) interface. | 
| AG_DriverSw(3) | Driver interface for single-window drivers. | 
| AG_DriverMw(3) | Driver interface for multi-window drivers. | 
| AG_GlobalKeys(3) | Application-wide keyboard shortcuts. | 
| AG_GL(3) | OpenGL-specific functions. | 
| AG_GuiDebugger(3) | GUI debugging tool. | 
| AG_InitGraphics(3) | Agar GUI initialization. | 
| AG_Keyboard(3) | Interface to keyboard status. | 
| AG_KeySym(3) | Keyboard key definitions. | 
| AG_KeyMod(3) | Modifier keys definitions. | 
| AG_MouseButton(3) | Mouse button definitions. | 
| AG_StyleSheet(3) | Agar's version of cascading style sheets. | 
| AG_Surface(3) | Graphics surfaces. | 
| AG_Text(3) | Typography; interface to the font engine. | 
| AG_Units(3) | Conversion between different unit systems. | 
| AG_Widget(3) | The base class for Agar widgets (and windows). | 
| AG_WidgetPrimitives(3) | Rendering primitives for GUI elements. | 
| AG_Window(3) | The base container for Agar widgets. | 
AGAR-GUI: STANDARD WIDGETS ↑
Standard widgets in in
ag_gui (unless built with "--disable-widgets").
| AG_Box(3) | Horizontal/vertical widget container. | 
| AG_Button(3) | Push-button widget. | 
| AG_Checkbox(3) | Checkbox widget. | 
| AG_Combo(3) | Canned text input/drop-down menu widget. | 
| AG_Console(3) | Scrollable text console widget. | 
| AG_DirDlg(3) | Directory selection widget. | 
| AG_Editable(3) | The Agar text editor (plain editable field). | 
| AG_FileDlg(3) | File selection widget. | 
| AG_Fixed(3) | Container for fixed position/geometry widgets. | 
| AG_FontSelector(3) | Font selection widget. | 
| AG_GLView(3) | Low-level OpenGL context widget. | 
| AG_Graph(3) | Graph display widget. | 
| AG_FixedPlotter(3) | Plotter for integral values. | 
| AG_HSVPal(3) | Hue/saturation/value color picker widget. | 
| AG_Icon(3) | Drag-and-droppable object that can be inserted into AG_Socket(3) widgets. | 
| AG_Label(3) | Display a string of text (static or polled). | 
| AG_MPane(3) | Standard single, dual, triple and quad paned view. | 
| AG_Menu(3) | Menu widget. | 
| AG_Notebook(3) | Notebook widget. | 
| AG_Numerical(3) | Spinbutton widget (for integers or floats). | 
| AG_Pane(3) | Dual paned view. | 
| AG_Pixmap(3) | Displays arbitrary surfaces. | 
| AG_ProgressBar(3) | Progress bar widget. | 
| AG_Radio(3) | Simple radio group widget (integer). | 
| AG_Scrollbar(3) | Scrollbar (integer or floating-point). | 
| AG_Scrollview(3) | Scrollable view. | 
| AG_Separator(3) | Cosmetic separator widget. | 
| AG_Slider(3) | Slider control (integer or floating-point). | 
| AG_Socket(3) | Placeholder for drag-and-droppable AG_Icon(3). | 
| AG_Statusbar(3) | Specialized statusbar widget. | 
| AG_Table(3) | Table display widget. | 
| AG_Treetbl(3) | Tree-based table display widget. | 
| AG_Textbox(3) | The Agar text editor (an AG_Editable in a box). | 
| AG_Tlist(3) | Linearized tree / list box widget. | 
| AG_Toolbar(3) | Specialized button container for toolbars. | 
| AG_UCombo(3) | Single-button variant of AG_Combo(3). | 
AGAR-MATH ↑
The
ag_math library is a general-purpose math library which extends Agar with new widgets
and support for linear algebra / geometry types.
To use this library, link against
 agar-math-config --libs. 
| M_Matrix(3) | Matrix operations. Provides optimized methods for sparse matrices (common in scientific applications) as well as 4x4 matrices (common in computer graphics). | 
| M_Circle(3) | Circles in R2 and R3. | 
| M_Color(3) | Mapping between different color spaces. | 
| M_Complex(3) | Complex-number arithmetic. | 
| M_Sort(3) | Sort algorithms (qsort, heapsort, mergesort, radixsort) | 
| M_VectorZ(3) | Vectors with signed integer valued elements. | 
| M_String(3) | Math-specific extensions to the AG_Printf(3) engine. | 
| M_Line(3) | Lines, half-lines and line segments. | 
| M_Matview(3) | Visualization widget for M_Matrix(3). | 
| M_Plane(3) | Routines related to planes in R3. | 
| M_Plotter(3) | General-purpose plotting widget (displays sets of M_Real, M_Vector and M_Complex elements). | 
| M_PointSet(3) | Operations on sets of points (e.g., convex hull). | 
| M_Polygon(3) | Operations related to polygons in R2 and R3. | 
| M_Quaternion(3) | Basic quaternion arithmetic. | 
| M_Rectangle(3) | Routines specific to rectangles in R2 and R3. | 
| M_Triangle(3) | Routines specific to triangles in R2 and R3. | 
| M_Vector(3) | Vectors (optimized R2, R3 and R4 or general Rn). | 
AGAR-NET ↑
The
ag_net library provides network access methods and implements a modular HTTP/1.1
application server.
To use this library, link against
 agar-net-config --libs. 
| AG_Net(3) | Interface to network services. | 
| AG_Web(3) | HTTP/1.1 application server. | 
AGAR-SG ↑
The
ag_sg library (beta) provides a basic 3D engine.
It implements 3D scene-graph, rendering and geometry methods.
To use this library, link against
 agar-sg-config --libs. 
| SG(3) | Base scene graph object. | 
| SG_Image(3) | Textured polygon generated from an image surface. | 
| SG_Camera(3) | Viewpoint in scene (tied to the SG_View(3) widget). | 
| SG_CgProgram(3) | Vertex/fragment program in the Cg language. | 
| SG_Circle(3) | Circle (reference geometry). | 
| SG_Geom(3) | Base class for reference geometry objects. | 
| SG_Light(3) | Light source. | 
| SG_Node(3) | Base class for all elements of a SG(3) scene. | 
| SG_Object(3) | Base class for polyhedral objects (as brep). | 
| SG_Plane(3) | Plane (reference geometry). | 
| SG_Point(3) | Single point (reference geometry). | 
| SG_Polygon(3) | Polygon (reference geometry). | 
| SG_PolyBall(3) | Sphere (as polyhedral approximation). | 
| SG_PolyBox(3) | Rectangular box (as polyhedron). | 
| SG_Program(3) | Base class for vertex or fragment programs. | 
| SG_Rectangle(3) | Rectangle (reference geometry). | 
| SG_Sphere(3) | Sphere (reference geometry). | 
| SG_Texture(3) | Texture compiled from a set of surfaces. | 
| SG_Triangle(3) | Triangle (reference geometry). | 
| SG_View(3) | Agar visualization and editor widget for SG(3) scenes. | 
| SG_Voxel(3) | Voxel object. | 
AGAR-SK ↑
The
ag_sk library (beta) implements dimensioned 2D sketches with constraint solving
through degree-of-freedom analysis.
Sketches contain sets of metric relations (i.e., distances, angles)
and logical relations (i.e., coincidence, parallelism, tangency).
To use this library, link against
 agar-sk-config --libs. 
| SK(3) | Base sketch object. | 
| SK_View(3) | Agar visualization widget for sketch objects. | 
AGAR-AU ↑
The
ag_au library (beta) provides a sound interface extends
ag_gui with widgets useful in audio applications such as waveform visualizers.
To use this library, link against
 agar-au-config --libs. 
| AU(3) | Audio library initialization. | 
| AU_Wave(3) | Structure containing an audio stream. | 
| AU_DevOut(3) | Interface to audio output device. | 
AGAR-MAP ↑
The
ag_map library (beta) implements a simple and extensible 2D/3D tile engine.
To use this library, link against
 agar-map-config --libs. 
| MAP(3) | Base map object. | 
| MAP_Actor(3) | Map object rendered dynamically. | 
| MAP_View(3) | Visualization and edition widget. | 
| RG(3) | Feature-based 2D pixel graphics. | 
| RG_Feature(3) | Base feature framework. | 
| RG_Pixmap(3) | A pixmap image element. | 
| RG_Sketch(3) | A vector sketch element. | 
| RG_Texture(3) | A texture element. | 
| RG_Tile(3) | Base tile element. | 
| RG_Tileview(3) | Edition and visualization widget. | 
AGAR-VG ↑
The
ag_vg library implements basic 2D vector graphics display.
It includes an editor tool framework.
Geometrical placement of elements is determined by linear transformations
using floating-point methods.
To use this library, link against
 agar-vg-config --libs. 
| VG(3) | Vector drawing object. | 
| VG_View(3) | Display and edition widget. | 
| VG_Arc(3) | Arc entity. | 
| VG_Circle(3) | Circle entity. | 
| VG_Line(3) | Line entity. | 
| VG_Polygon(3) | Polygon entity. | 
| VG_Text(3) | Text entity. | 
COMMON MANUAL SECTIONS ↑
Manual pages are provided for most Agar object classes.
Some sections are standard throughout the documentation:
| INHERITANCE HIERARCHY | List of inherited parent classes (see AG_Object(3) for details on inheritance). | 
| EVENTS | The list of events defined (or raised) by this object (see AG_Event(3) for details on events). | 
| STRUCTURE DATA | List of public structure members which are safe to access directly. Multithreaded applications must use AG_ObjectLock(3) prior to accessing this data (although in some contexts, such as inside event handler routines, objects can be presumed locked; see AG_Threads(3) for details). | 
