I am pleased to announce the official release of Agar 1.3.3. The source
code and precompiled packages are now available for download at:

        http://libagar.org/download.html

Release Notes for Agar 1.3.3 (Blackened Soil Remains)
-----------------------------------------------------

Here are some of the most notable changes since Agar 1.3.2, in no
particular order. 

- Implemented Ada bindings (thanks rothwell!).
- Documentation fixes. Many new manual pages and examples were also added.
- Merged Math library (originally from FreeSG) into Agar distribution.
- Include files are now preprocessed for addition of visibility-related
  specifiers (see http://gcc.gnu.org/wiki/Visibility)
- Merged ag_net library into ag_core (though API is still not official).
- Generated IDE "project files" are now distributed in the source .zip only.
- The MAP library has been removed from the Agar distribution and moved to
  the FreeSG distribution (http://freesg.org/).
- Describe important documentation conventions in AG_Intro(3) and AG_Threads(3).

- CORE: Implemented AG_DSO(3) as general interface to dynamic library
  loading, and AG_LoadClass() more specifically for AG_Object classes.
- CORE: Added namespaces to Agar class specifications. Object classes can now
  be specified in "Namespace(Foo:Bar)" format.
- CORE: It is now possible to specify DSOs ("@libname") in class specification
  strings.
- GUI: Bindings to long double and [SU]int64 are now fully supported when
  compiled against support for the types.
- CORE: Application data directories are no longer created on startup unless
  AG_CREATE_DATADIR is given to AG_InitCore().
- CORE: Added AG_SetCfgTYPE() and AG_CfgTYPE() macros.
- CORE: More consistent definitions in <core/limits.h>
- CORE: Implemented AG_SetErrorCode(), AG_GetErrorCode().
- CORE: Implemented AG_SetFatalCallback() for catching fatal errors.
- CORE: Work around AltiVec check issue on MacOS X 10.4.
- CORE: Implemented AG_PropDefined() to check existence of an Object property.
- CORE: Implemented AG_EventInit(), AG_EventArgs() and AG_EventPush<Type>()
  to facilitate manipulation of AG_Event structures.
- CORE: Implemented datafile debugging and error-check routines in
  AG_DataSource. Markers can be optionally inserted into datafiles to provide
  a simple form of type checking (useful for debugging). Added agar-disasm(1)
  tool to examine datafiles containing this information.
- CORE: Implemented AG_ObjectReadHeader(), useful to quickly check the
  signature of a datafile.
- DEV: Various GUI-related fixes.
- VG: Library has been reimplemented for the most part and is now officially
  supported. Since it was previously undocumented, these changes will not be
  listed here.

- GUI: Implemented AG_InitVideoSDL(). This allows Agar to use an already
  initialized SDL display surface.
- GUI: Many fixes, optimizations and clean-up related to clipping and culling
  of widgets. The AG_WIDGET_CLIPPING option has been replaced by
  AG_{Push,Pop}ClipRect(). Agar now uses a stack of clipping rectangles, with
  their intersection used as the actual clipping rectangle during rendering.
- GUI: The AG_WidgetDraw() routine no longer recurses over the child widgets
  of container widgets. This provides container widgets with control over
  their order of rendering, and ability to apply their own clipping rectangles.
- GUI: Remove various dependencies on SDL-specific APIs. Added AG_Surface(3)
  and AG_Rect(3) interfaces.
- GUI: Improved behavior of many of the standard widgets when resized to very
  small sizes.
- GUI: Implemented AG_Slider(3) widget for editing numerical values within a
  given range.
- GUI: Implemented AG_Scrollview(3) widget as a general-purpose scrollable
  container.
- GUI: AG_Combo(3), AG_UCombo(3): New AG_TLIST_SCROLLTOSEL option.
- GUI: Much clean up and beautification of geometry and sizing-related
  code in the standard widget library.
- GUI: Various cosmetic fixes to widget primitives, such as the GL
  implementation of BoxDisabled().
- GUI: Add support for bindings to floating-point and [SU]int{8,16,32,64}.
  Implemented AG_ScrollbarSet<Type>Increment().
- GUI: Implemented AG_LabelValign(), AG_TextValign(), AG_TextError().
- GUI: Pack AG_Label(3) in AG_Button(3), AG_Checkbox(3) instead of directly
  rendering text.
- GUI: Add FLAG16, FLAG32 bindings to AG_Checkbox(3).
- GUI: Fix annoying directory change behavior in AG_FileDlg(3).
- GUI: Add AG_PIXMAP_RESCALE option, AG_PixmapReplaceCurrentSurface() and
  AG_PixmapUpdateCurrentSurface() in AG_Pixmap(3).
- GUI: Implement graph-{vertex,edge}-selected events and
  AG_Graph{Vertex,Edge}{Find,PopupMenu}() functions in AG_Graph(3).
- GUI: Add AG_GRAPH_NO_{MOVE,SELECT,MENUS} options to AG_Graph(3).
- GUI: Added AG_ColorsSet{RGB,RGBA}(), AG_ColorsGet{RGB,RGBA}().
- GUI: Added AG_Expand(), AG_ExpandHoriz(), AG_ExpandVert() as an alternative
  to providing FOO_HFILL, FOO_VFILL or FOO_EXPAND initialization flags to
  widgets.
- GUI: Added AG_WidgetSet{Position,Size,Geometry}() routines to provide a
  function interface to widget geometry modifications.
- GUI: GUI-specific code can now be isolated from the standard event loop
  using AG_{Begin,End}Rendering() to enclose AG_WidgetDraw() usages and
  AG_ViewUpdateFB().
- GUI: Added generic AG_WIDGET_NOSPACING flag (advisory to container widgets).
- GUI: Reimplemented default WindowBorder() style operation; added wBorderSide,
  wBorderBot parameters.
- GUI: Added AG_{Textbox,Editable}SizeHintLines() routines.
- GUI: Added alternate AG_RadioNew{Int,Uint}() constructors to AG_Radio(3).
- GUI: Implement AG_TlistSizeHintLargest(), AG_TlistScrollTo{Start,End}() in
  AG_Tlist(3).
- GUI: Many improvements to AG_Table(3). Added AG_TableSetColHeight(),
  AG_TableSetColMin(), AG_TableSetDefaultColWidth(), AG_TableSetRowHeight(),
  AG_TableSetSelectionMode(), AG_TableSetSelectionColor(). Also implemented
  AG_TABLE_SCROLL_TO_SEL, AG_TABLE_HIGHLIGHT_COLS options and horizontal
  scrolling.
- GUI: Fixed many issues related to sizing, rendering and event delivery of
  widgets embedded into AG_Table(3) cells (thanks sacrebleu!)
- GUI: The delivery of events such as mousebuttondown is now determined by
  sensitivity rectangles (rSens) associated with widgets, defaulting to the
  effective widget geometries. These rectangles can be modified in
  size_allocate() or draw() context.
- GUI: Fixed bug that would prevent AG_SizeSpec "%" specifiers from working
  correctly.
- GUI: Added alternate "range" constructors AG_NumericalNew<Type>R() to
  AG_Numerical(3).
- GUI: In AG_Window(3), implemented AG_WindowSetGeometryRect(),
  AG_WindowSetGeometryAligned(), AG_WindowSetGeometryAlignedPct(),
  AG_WindowSetMinSize(), AG_WindowSetMinSizePct(), AG_WindowSelectedWM(),
  AG_WindowIsVisible().
- GUI: Allow extension of the "polled" label format specifiers using
  AG_RegisterLabelFormat() and AG_LABEL_ARG() macro.
- GUI: Polled labels now recognize %lf, %lg, %llf and %llf specifiers for
  double and long double. Added much needed examples to AG_Label(3).
- GUI: Added AG_ProgressBarNewInt() constructor to AG_ProgressBar(3).

I would like to thanks everyone who contributed code, feedback and bug
reports.


_______________________________________________
Agar mailing list
[email protected]
http://libagar.org/lists.html

Reply via email to