GLG 2.4 Release New Features and Enhancements

New Editor Features

Integrated Widget Palettes

All widget sets are now integrated into the builder environment in form of the palettes for drag-and-drop editing. You can browse through available widget palettes, select the widget you need and insert it in the drawing with one mouse click.

Click here to view the palettes and available widgets.

You can also load custom palettes into the editor and scan directories of GLG drawings into a palette for browsing.

Process Control Widget Set

A new process control widget set with over 140 pre-built process control symbols is now included in the GLG widget sets. This new widget set contains pre-built process control objects with dynamic behavior already attached. It can be used to build process control drawings and diagrams by selecting process objects from several process control palettes and connecting them with one of connector objects.

The dynamic properties of process control objects can be used to define their appearance and to update them with real-time data in a program.

Click here to view all available process control palettes.

Libraries of Custom Objects, Custom Palettes and OEM Customization

Custom objects can be created and made available through the Custom Object palette simply by saving them in the "widgets/custom_objects" directory. In addition to a custom object itself, a custom object drawing may also contain an icon to represent the object in the palette.

Custom palettes can also be created and added to the builder to create a customized or OEM version of it. These added palettes will be appearing in the builder's standard Palettes List and your custom objects will be available to users for drag-and-drop editing.

8-Point Resizing Box and Rotation Interface

An 8-point Resizing Box Interface simplifies resizing objects and groups of objects with the mouse, eliminating a need for using pull-down menus. It is especially convenient for editing objects in conjunction with the object palettes.

The Rotation Interface makes it possible to rotate objects with the mouse, eliminating another need for pull-down menus.

Object Selection Display Options

The object selection display option makes it possible to use different selection highlight methods. By default, selection shows both the control points and the resizing box. It can be changed to show just the points or just the box for convenient editing. A new <Ctrl-N> accelerator allows toggling through the selection display options.

When editing groups of objects with a lot of control points, you can speed up editing by selecting an option that shows just the resizing box. This will eliminate the processing time required to highlight all control points.

New Objects and Programming Features

Recta-Linear and Arc Connector Objects

The Connector object is a new type of object used to connect other objects in the drawing. For example, it may be used to connect nodes in a diagram.

The object maintains the geometry of the connecting line. The recta-linear connector maintains right angles between the connecting segments. The arc connector connects points with an arc.

The end points of the connector can be constrained to the control points of the objects it connects, so the connector adjusts its geometry when the connected objects move.

A new diagramming demo shows examples of using different connector objects to connect nodes in a diagram.

File Reference Objects (Subdrawings)

The Reference object available in release 2.3 is now extended to allow the referencing of files (subdrawings). If the referenced file is changed, all instances of it in other drawings will automatically pick up the change.

The reference object also has a new attribute to control the referencing type: an included template drawing or a referenced file. By constraining this reference type attribute of all reference objects in the drawing, all of them can be changed from included to referenced and back with just one click of the mouse.

The Hierarchy Traversing feature of the GLG Builder has been extended in release 2.4 to allow transparent navigation of all referenced subdrawings without manual loading of referenced files.

Alias Objects and Logical Resource Naming

Using the Alias object, logical names can be assigned to arbitrary resource hierarchies. For example, if have an object has a resource named "Group1/Group2/FillColor", the "ValueHighlight" alias may be given. Your application can then access this resource using it's logical "ValueHighlight" name rather than the full resource path name.

The Alias objects can also be used to map database tags with resource hierarchies. For example, the "value11" tag may be mapped to the "Group1/Group2/FillColor" resource of the previous example. The application can then access resources using tag names from the database.

Editor Interface for Adding Custom Data and Alias Objects

A new editor interface has been added to allow adding and editing of both the Custom Data and Alias objects in the GLG Builder. For convenience, the Custom Data and Alias status information has been added to the status panel display.

Rotated Text

A new text object rendering option allows displaying text rotated by 90 degrees. This is a convenient option for vertical graph and axis labels. It is accomplished by expanding the TextDirection attribute to handle two new settings: Vertical Rotated Right and Vertical Rotated Left. These settings may be used for all types of text objects, including autoscaled text.

Path Rotation Transformation

The path transformation has been extended to handle path rotation: the object can now rotate to follow the path's direction as the object moves along the path. A simple example is a road in the form of a circle, with train cars moving along it. The cars will rotate so as to follow the path's curvature as shown in the following picture:

An example of using the Path Rotation feature.

The attributes which have been added to the path transformation allow the enabling and disabling of path rotation. The default settings of these attributes provide compatibility with the earlier versions of drawings.

The path rotation may be used to attach objects (e.g. an arrow) to a polygon or a line. If the line is rotated or its control points moved, the attached object will rotate together with the line. The Factor attribute of the path transformation may be used to control the position of the object along the line (anywhere between the start and end points).

Using Path Rotation to attach arrows.

Subdrawing and Image Dynamics

The handling of List transformations has been improved, allowing the usage of a list to specify names of referenced files or images. This may be used to implement subdrawing and image dynamics.

The Factor attribute of series objects allows attaching transformations to them as well.

Enhanced Graph Editing

Graph widgets now allow defining legend labels, dataset colors of multi-set graphs and other static information in the editor and saving this information with the drawing. In earlier versions, this had to be accomplished by a program at run time.

Dynamic's Control Point Display

New options have been added to allow the displaying of control points of geometrical transformations attached to an object. This provides a better feedback about the transformation's parameters and allows editing transformations with the mouse using the control points.

Reference Anchoring

This is a feature which makes adjusting the position of a reference object relative to it's control point simpler. Pressing both the <Shift> and <Control> keys activates the reference anchoring mode. In this mode, moving the reference's control point adjusts the point position relative to the reference object's graphics without moving the reference object itself.

This is convenient when reference objects are used as nodes and control points are used as attachment points for connecting edges. Adjusting the position of a control point allows for greater control of the attachment point.

Also provided is an option to control resizing behavior of reference objects: resizing the box or resizing relative to its control point. A second option maintains the position of the reference's control point relative to the object's graphics.

Enhanced Hidden Surface Removal Algorithm

An option of the Depth Sort algorithm allows for faster hidden surface removal in the case of drawings containing a large number of objects.

Enhanced Rotation Transformation and Arc Angles

The Start Angle attribute of the Rotate transformation simplifies defining the start angle of rotation. In earlier versions, the object had to be rotated to define the starting position. Now this can be accomplished simply by setting the start angle attribute. This also simplifies editing since the start angle may be easily changed later.

The Start Scale parameter has been added to the Scale transformation to match the attributes and convenience of the Rotate transformation.

The arc object has an additional Angle Type attribute, enabling the use of alternative ways of defining the arc's angle. The angle may be defined as either a difference between the start and end angles, or as an angle value relative to the start angle. These two types of arcs may be used to define different arc dynamics.

Defining arc angles with the mouse in the editor has also been improved for greater precision.

A Rotate Angle parameter has been added to the GlgKnob handler to allow two ways of defining the rotation angle.

Enhanced Scrollbar Support

The PageIncrement and PageSize parameters have been added to the GlgNSlider handler to better support native scrollbar input objects. These parameters are supported in a cross-platform way, for both C/C++ and Java environments.

Enhanced Text Scaling and Automatic Decluttering

The Minimum Font Size attribute has been added to the text object, allowing both the minimum and maximum size of the autoscaled text to be defined. Earlier, only the maximum size limit could be defined.

The default value of the Minimum Font Size attribute is 0 for compatibility with earlier versions. Setting the Minimum Font Size to -1 enables automatic text label decluttering which may be used with GIS drawings. If the drawing is zoomed out of and there is not enough space to draw the text label, the text will not be displayed. The label will automatically appear when the drawing is zoomed into and there is enough space to draw the text again.

The number of default fonts has been increased by adding one more big font size.

Separate Handling of Named, Default and Alias Resources

The GLG Extended API now allows separate querying of named, default and alias resources.

The Named, Default and Alias toggles have been added into the resource browser in the GLG Builder to allow for the selective displaying of the named, default and alias resources.

Scripting Capabilities for Batch Processing

New resource setting capabilities were added to the gconvert utility for batch processing. The utility can take a resource setting string to be applied to the converted drawing. It can also take a set of resource setting commands from a file in the GLG Script format.

Miscellaneous Editor Interface Improvements

Enhanced Transform Editing

Transformation list editing has been enhanced to allow reordering transformations on the object transform list, as well as deleting the transformation in any position on the list.

Transformed Attribute Value Display

The Attribute Editing dialog has an additional field displaying the transformed value of an attribute. The transformed value shows the effect of all transformations being applied to the object. For color objects, both the original and transformed values are also displayed as colors.

Recent Drawings and Objects List

A list of the recently loaded drawings and objects is now kept for convenience of editing. You can load any of the recently edited drawings or objects by selecting them from the list.

Quick ZoomTo Access

A ZoomTo button was added to the control panel to enable quick access to the ZoomTo feature, bypassing the pull-down menus.

Bug Fixes

Disassociating of Hierarchy Setup from Exposure Events

In earlier releases of GLG, the hierarchy setup was intertwined with the exposure and painting event. This has finally been changed to allow for greater flexibility and programming control.

Fixed Tooltip Display near the Border of the Screen

Tooltips are now "forced" inside the screen (previously, tooltips could extend beyond the screen, making parts of them unreadable).

Fixed PostScript Printing in the Java Version of GLG

PostScript printing in the Java version of GLG had trouble working with big numbers due to the setGrouping setting. It has been fixed in GLG 2.4.

Fixed Message Propagation for Embedded Handlers

There were problems with message propagation in the case of embedded interaction handlers (e.g. a button inside a slider). These problems have been fixed in GLG 2.4.