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). |