New Toolkit Features
Align and Layout Operations
Temporary Groups and Multiple Object Selection
New Features of Interaction Handlers
Increase and Decrease Keyboard acceleratorsConfiguration File and Miscellaneous Setup Options
Button Repeat Functionality
Spinner Interaction Handler
Numerical Input WidgetsNew Rendering Features
Rate of Turn and Altimeter Avionics Gauges
Spinner and Sliding Spinner Widgets
Synchronized Timer TransformsNew Programming API Features
Improved Arrow Rendering
Improved Rendering of Line Graphs
Arrow Size Attribute
X and Y Text Box Offsets
Added support for Align and Layout operations, both to the Builder
and programming API. In the Builder, the Align and Layout Toolbox was added
to provide icon-based access to alignment and layout operations.
Options for setting the objects size and spaces between them, in both
world coordinates and screen pixels, are provided in addition to other
common align and layout operations. The programming
API provides programmatic access to all alignment and layout features
available in the Builder.
The new Edit
Toolbox has been added to the Graphics Builder to
provide an easy icon-based access to attribute editing, which is
convenient for quick editing of objects and groups of objects. For
example, a user can keep the Edit Toolbox open, select different
objects and edit their colors without the need for an extra mouse click
to open a color palette for each object. The existing Object Properties
dialog provides an interface for more advanced editing, such as
constraining and assigning attribute names to object attributes.
The temporary groups and multiple object selection features were
the Builder for the convenience of editing of multiple objects, without
a need to create a permanent group. The Builder supports object
selection keyboard accelerators familiar to the Windows users. To
select multiple objects, either Ctrl-click on each object with the
mouse, or click and drag the mouse to select all objects in the area.
To add or delete an object from selection or temporary group, simply
Ctrl-click on the object.
The new Select All, Select Multiple Objects and Select Rectangular Area selection options have been added, as well as an option to alternate the type of the currently selected group between temporary and permanent.
The mouse bindings to create a permanent group has been changed to click-drag-release to match that of the temporary group. The click-drag-click sequence is kept for the cases when two control
points are defined, such as creating a rectangle object.
Added 10-step undo history support, as
well as undoing EditAll,
Align and Layout actions.
Added cursor shape visual feedback for editing modes that require selecting objects or points in the drawing, such as constraining to points or object attributes, etc.
Added visual feedback for group zooming, showing the outline of the group when an object inside the group is selected.
Added Ctrl-Shift-click binding to select next object in the permanent group. The Set Focus binding was changed from Ctrl-click to Ctrl-Shift-click as well, to avoid an interference with the multiple
object selection bindings. The Ctrl-Shift-click is context-sensitive: it moves the editing focus into the viewport which is selected by the click (if any), or selects an object inside the group if a
permanent group is selected.
Added numerical input validation to text input objects, with
subtypes to accept only decimal or integer numbers. Added Low and High
parameters to GlgNText handler that define minimum and maximum input
range, MaxLength parameter for the maximum input length and
InputInvalid parameter to indicate the text input widget status. The Value parameter is used to set or query the numerical value, and the InputFormat parameter specifies the format in which the value is displayed.
Added IncreaseKeys and DecreaseKeys
bindings for GlgSlider and
GlgKnob interaction handlers that allow incrementing or decrementing
the gauge's value using keyboard accelerators.
Added repeat functionality (RepeatTimeout and RepeatInterval parameters) to the GlgButton and GlgNButton input handlers to generate repeated button activate actions when the button widget is held down with the mouse.
Added Wrap resource to the GlgSlider and GlgKnob handlers to allow wrap-around when the value reaches the minimum or maximum value as the result of repeated pressing of the Increase or Decrease buttons or keyboard accelerators.
Added GlgSpinner handler to support a spinner widget containing a text entry with Increase and Decrease buttons, and an optional slider or knob.
The configuration file support has been added to the Builder to
define its initial start-up options. The configuration file may define
such Builder options as ModalDialogs, GridInterval, DrawingAreaColor,
PickResolution, SaveFormat and others. The configuration file also supports syntax for setting GLG's global configuration resources.
Added functionality to define the default font table globally, without the need to edit viewport's font table in the drawing. This provides a convenient option for customizing the application by the end user, without the need to edit the drawings.
Added functionality to globally define the number of colors in the default colortable. It may be defined in the Graphics Builder's configuration file to control the number of colors in the Builder's
Added a version-specific GLG_DIR_X_X environment variable that makes it easier to use several different versions of GLG on one system.
Added integer and double numerical
input widgets to special widgets.
Added Rate of Turn and Altimeter avionics gauges to the avionics widget set.
Added sliding spinner to control widgets, added several flavors of spinner widgets to special widgets.
Improved drawing of arrows
polygons with tiny first and/or last
segments, which is often the case when the recta-linear connectors are
used in diagramming applications. If the first (or last) segment is too
small to draw the arrow, the next (or previous) segment will be
Improved rendering of a line gap separating current and past samples of line graphs with WRAP scroll type, as well as scatter and polar line graphs.
Changed timer transformations to keep them in sync after enabling or disabling an individual timer transform. A negative period value may be used for an alternative behavior.
Added rendering attribute that allows setting
an arrow size for each
individual polygon. If the attribute is set to null value, the globally
defined arrow size is used.
The type of the text box offset attribute has been changed from D (double) to G (geometrical: x, y and z) to allow setting x and y offsets separately.
A new TextColor attribute has been added to access the color of the text object. The EdgeColor attribute which was previously used for this purpose has been changed to control the edge color of the text box. The GlgCompatibilityMode global configuration parameter has been introduced to allow setting a backward compatibility mode, so that the old source code can operate the same way without a need to change the EdgeColor resource name for the text object.
Added GLG_SHALLOW_CLONE clone type
to the GLG API, providing
functionality to copy contents of arrays without copying each element.
It may be used to safely iterate through elements of an array
and delete some elements without affecting the iteration sequence.
New callbacks for setting initial
values before and after
hierarchy setup has been added to both the GLG Java bean and GLG
Added GlgGetMajorVersion and GlgGetMinorVersion methods to the GLG API.
Added Fast CGI support for the GLG Map Server. Running the Map
Server in the FastCGI mode significantly increases its performance by
preserving the GIS data cache between the map queries and eliminating
repeated loading of the GIS data from the hard drive on every request.
The Fast CGI mode makes the map server process persistent, eliminating
the process start-up time. Instead of starting the map server
executable and exiting after processing every GIS request, the map
server is kept in memory and is reused to serve multiple GIS requests.
The Map Server in FastCGI mode can run locally (on the same machine
the Web server) or remotely. The remote execution option allows
distributing the load of the map generation, minimizing the web server
load by forwarding the GIS request to a map server running on another
The Fast CGI parameters of the web server may be further tuned to optimize a particular usage pattern. For example, the FastCGI process may be forced to restart after handling a certain number of map requests. The maximum number of the Fast CGI processes in the Fast CGI process pool can also be specified.