GLG 2.6 Release New Features and Enhancements
Integrated
Zooming and Panning
Includes integrated scrollbars (controlled by the
PanEnabled attribute of the viewport) which scroll the drawing and
automatically
adjust to the drawing extent changes. Also includes integrated support
for
zooming and panning keystrokes with integrated ZoomTo and Fit Drawing
features.
The zoom and pan key accelerators are controlled by the ZoomEnabled
attribute
of the viewport.
The programming API is also provided, so that the
program
can use custom zoom controls (buttons with custom icons, etc.)
and
then call the zoom methods when the zoom or pan buttons are pressed.
Integrated panning and zooming eliminates
programming
used in the older versions of GLG to implement zoom and pan features,
and
provides better visual feedback.
Integrated
Object
Tooltips
Integrated tooltips feature enables support for
adding
MouseOver tooltips to individual objects in the drawing.
It's done by adding the TooltipString custom
property
to the object. If an object (or any of its parents) has this property,
the
tooltip will be activated when the mouse is moved on top of the object.
The tooltip delay is controlled by the
GlgMouseTooltipTimeout
configuration resource. A new ProcessMotion attribute of the viewport
object
controls the tooltips, as well and selection events and mouse highlight
described
below.
A new GlgButtonTooltipTimeout configuration resource
is
also added to control delay of the button tooltips, which was not
configurable
before.
Integrated
Highlight on MouseOver (Custom Hot Spots)
The integrated highlight on the mouse over event
can
be enabled for selected objects to implement a custom "hot spot"
functionality.
For example, it may be used to change line width or display an outline
around
the object to highlight it when the mouse moves over the object.
It's done by defining a MouseOverState resource of
D-type.
The value MouseOverState resource of the object (or its closest parent)
will
be changed to 1 when the mouse is moved over the object, and changed
back
to 0 when it moves away. The MouseOverState may control any of the
object
attributes to achieve any custom highlighting effects.
Integrated
MouseClick Feedback and Toggle
The integrated MouseClick highlight and toggle
may
be used to implement button press feedback (for example, flatten the
object
when it's clicked on with the mouse or toggle the object
position).
Both features may be used to implement light viewport-less buttons and
toggles
with various feedbacks and visual effects.
The integrated highlight is added to an object by
defining
a D-type resource named MouseClickState. This resource can control any
of
the object properties, changing them when the object is clicked on with
the
mouse. The resource's value will be set to 1 when the object is
clicked
with the left mouse button, and reset back to 0 when the button is
released.
The resource can control a visual feedback of any type (attribute
change,
object movement, etc.).
If a MouseClickToggle resource (D-type) is defined
for
an object, its value will be toggled between 0 and 1 every time the
object
is selected with the left mouse button.
Each of the MouseClickState and MouseClickToggle
resources
can be defined on the object level or at the level of any of the
object's
parents.
Integrated MouseClick Highlight and Toggle features
can
be used to implement light viewport-less buttons and toggles with
various
visual feedbacks and effects.
New Selection
Event
The selection model has been extended to include
several
new selection events. In addition to the SelectCallback, the
InputCallback
will also be invoked with the ObjectSelection event, providing Object
IDs
of all objects potentially selected with the mouse, in addition to
object
names provided by the SelectCallback. This allows the program to
process
selection of unnamed objects or objects with duplicate names without a
need
to use the TraceCallback, as it was required in the past.
The ObjectSelection event may also be generated on
the
mouse move events, if desired.
Custom
MouseOver and MouseClick Events
Custom MouseClick, MouseRelease and MouseOver
events
can be defined for individual objects, making it easier to handle
object
selection.
The MouseClickEvent property (S-type) can be added
to
objects to generate custom MouseClick events when the object is
selected
with the mouse button (the MouseRelease event will be generated when
the
mouse is released).
The MouseOverEvent property of S-type can be added
to
objects to generate custom MouseOver events when the mouse moves on top
of the object (MouseOver event with an empty event label will also be
generated
when the mouse moves away).
These properties can be added at a specific location
in
the object hierarchy, making sure that, for example, selecting any
sub-object
of a composite node object will result in the selection event for the
node.
In the past, it was accomplished by custom application code, which was
converting
sub-objects selection to the selection of the node containing them.
The value of these event properties specifies a
custom
event label, so that an application can define custom selection event
types
(for example, NodeSelection and LinkSelection events) right in the
Graphics
Builder, without writing any custom code. In the Input Callback, an
application
can query the type of the custom event and perform different actions
depending
on the event type. This can significantly reduce the amount of code
required
to handle elaborate object selection.
New
Avionics Widget
Set and new Controls
A new Avionics Widget Set has been added, with
gauges
for building avionics panels. The existing Control Widget Set has been
extended
by adding windowless versions of the controls. The windowless controls
have
a round shape suitable for integration with instrument panels which
have
a custom image background.
JPEG Support
The JPEG format support has also been added to
the
GLG image object to support TrueColor images. It's available in both
C/C++
and Java versions of the Toolkit.
Multiple
Input
Callbacks
In the 2.6 release, each viewport can have its
own
Input, Select and Trace callbacks, which makes it easier to encapsulate
various parts of the application code. Previously, only Select and
Trace
callbacks could be used this way, while the Input callback could be
added
only to the top viewports and not to the children viewports.
Viewport Span
Attributes
SpanX and SpanY viewport attributes were
introduced
to allow changing the [-1000;+1000] default coordinate extent of the
viewport.
The new SpanX and SpanY attributes allow better control over the
coordinate
span for custom handling of viewports with non-square drawing areas.
Light
Object and Light-Weight Viewports
The viewport's light attributes were split into a
separate Light object, which could be added to a viewport only when
necessary,
decreasing the space consumed by the viewport objects.
Arbitrary
Path Support for the Series
The Series object now allows using arbitrary
transformations
to define its path. For example, a Path and Rotate transformations can
be
used, while only linear transformation was allowed in the past.
Graphics
Builder
User Interface Improvements
Include the following new features:
automatic inversion of the control points and dragging color when
editing
dark drawings
improved cloning type selection interface for various operations
keeping the drawing order when exploding objects in the Builder
keeping the zoom state when traversing down into a group
added the ">>" sign to the aliases in the resource browser
viewport font and color table editing interface change
and other features.
Glg Bean
Interface
Changes
The Glg Bean for Java has additional properties
and
methods for smoother Java integration. The Input, Selection and Ready
callbacks
can now be added as Java listeners. The new H and V callbacks and
listeners
were added to allow setting the initial resources of the drawing before
it
is displayed the first time. The H callback is invoked before the
object
hierarchy is setup, and V callback is invoked after hierarchy setup.
The new DrawingName property and SetParentApplet
method
have been added for transparent loading of drawings from either URL or
a
file, as well as for better bean encapsulation when it's used as a
component
inside another applet.
New coding examples illustrating various scenarios
of
the Glg Bean usage (as an applet, bean, etc.) have been added to the
release.
The Ext suffix for the Bean's Extended API method
names
has been eliminated for better compatibility with the C/C++ version of
the
Toolkit. The old methods with the Ext suffix are still supported for
backward
compatibility.
DXF Converter
Updates
The DXF converter has been updated to handle new
primitives
and the latest versions of the AutoCAD.
Miscellaneous
Bug Fixes
Miscellaneous bug fixes and user interface
improvements
have been implemented in the new release. All bugs reported prior to
the
release date have been fixed and closed.