|
Align and Layout Operations Edit Toolbox for Fast Object Editing
Temporary Groups and Multiple Object Selection
Multiple-Step Undo and Other Builder Interface Features
Numerical Text Input
New Features of Interaction Handlers
Increase and Decrease Keyboard acceleratorsConfiguration File and Miscellaneous Setup Options
Button Repeat Functionality
Wrap-around Feature
Spinner Interaction Handler
New Widgets
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
TextColor attribute
New Map Server Features
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
added
to
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
color palette.
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
for
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
used.
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
resource
values before and after
hierarchy setup has been added to both the GLG Java bean and GLG
ActiveX Control.
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
as
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
machine(s).
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.