Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Users Guide
SL Corporation
OBJECT-ORIENTED
GRAPHICAL MODELING SYSTEM
Version 6.2a- 26 May 2006
LIMITATIONS ON USE
Sherrill-Lubinski Corporation
240 Tamal Vista Blvd.
Corte Madera, CA 94925
TECHNICAL SUPPORT
Phone 800.548.6881 (inside U.S.)
415.927.8400
Fax 415.927.8401
E-mail support@sl.com
5/26/06 v6.2x
Table of Contents
1. Overview
Dynamics .................................................................................... 1-2
Editing Functions ........................................................................ 1-3
Editor Layout .............................................................................. 1-4
Dialog Windows .......................................................................... 1-17
Palettes ........................................................................................ 1-18
Localization of output .................................................................. 1-19
Organization of the Manual ......................................................... 1-19
2. Tools
Create Tools ................................................................................ 2-1
Select Mode Tool ......................................................................... 2-9
Select Point Tool ......................................................................... 2-11
Change Tools ............................................................................... 2-12
View Tools .................................................................................. 2-13
View Preset Tool.......................................................................... 2-16
Keyboard Equivalents .................................................................. 2-17
3. Setting Object Properties
Graphic Properties ....................................................................... 3-2
Attaching a Name to Objects ....................................................... 3-23
Attaching a String to Pass to an Application (UserData) .............. 3-24
Attaching an Integer to Pass to an Application (UserWord) .......... 3-25
Setting Model Properties ............................................................. 3-26
4. Dynamics
Dynamic Descriptions.................................................................. 4-2
Attaching Dynamic Descriptions to Objects ................................. 4-5
Renaming Variables ..................................................................... 4-9
Previewing the Dynamic Behavior of Objects .............................. 4-12
5. Menus
File Menu .................................................................................... 5-3
Edit Pull-Down Menu .................................................................. 5-13
View Menu .................................................................................. 5-21
Model Pull-Down Menu............................................................... 5-23
Object Pull-Down Menu .............................................................. 5-24
Dynamics Pull-Down Menu ......................................................... 5-35
Options Pull-Down Menu ............................................................ 5-36
The SL-GMSDraw graphical editor is the primary tool used to create inter-
active graphical screens with colorful dynamic components. When you
begin a new Model, you can draw any screen object, attach dynamic
behavior to the object, and preview the behavior without leaving the graph-
ical editor. After you have verified and tested the Model within SL-GMS-
Draw, you can then save the Model to disk and easily integrate it into a
user-developed application, either as the primary interface screen or as a
SubModel.
There are two different environments for which SL-GMSDraw is available:
Unix/Motif
32-bit Windows 1
SL-GMSDraw is functionally identical in both environments. This manual
illustrates primarily the Windows environment.
This chapter presents an overview of the key points of SL-GMSDraw:
Easy dynamics specification
User-friendly editing functionality
Comprehensive editor layout
Dialog windows used for user input
Palettes of buttons, text boxes, and scales that can be selected
and placed into a Model
Internationalization/localization of menus and output
The organization of this manual is described at the end of the chapter.
Menus, Control(page
Icons, and Undo/Redo Tools
7)
Tools
View
(page 2-13)
Active
*
Working
*+ View
(page 16)
Object
Tools
(page 2-1)
Properties
Graphical
(page 3-2)
File Object
Palettes
Dynamics
Figure 1-5: Point Selection Control and Loop Control icons (Motif)
Loop Control
Select by Extent
Snap Mode
Figure 1-6: Point Selection Control and Loop Control icons (Windows)
The Point Selection Control icons provide different modes to pick Points
while building objects. Snap Mode allows you to place the next Point
picked at either the nearest grid intersection (Snap to Grid), the nearest
Motif
Windows
Tools
The panel of tools provided with the SL-GMSDraw editor allows you to cre-
ate, change, view objects, and to preset views. Use of these Tools is
described in Chapter 2 Tools.
Create Tools
Line
Polyline
Spline
Polygon
Closed Spline
Rectangle
Circle
Filled Polygon
Filled Closed Spline
Filled Rectangle
Filled Circle
Sector
Three Point Sector
Wedge
Marker
Text
Text Rectangle
Duplicate
Selection Tools
The View Tools in Figure 1-11: are used to visually move and
resize (pan and zoom) the graphics displayed in the Active
Working View window of SL-GMSDraw. They do not
permanently affect the objects displayed.
The view preset tool presents the same functionality as the set views found
in the View Options dialog. The view preset tool allows you to save up to 5
views.
Edge Properties
Text Properties
Marker Properties
Status Information
Information concerning the current operation is displayed in the status bar.
For example, if you are currently using the Line Tool, a prompt appears
that reminds you to enter the starting and ending Points of the Line. In the
Motif environment, the status information is displayed in the Status win-
dow, as shown in Figure 1-15:.
startbutton
Note that in all cases, clicking Apply applies changes without closing the
Window. Click Close to close the window without applying the changes. If
you make changes and forget to click Apply before clicking Close, a
prompt appears reminding you that the changes will be lost if you continue.
Clicking Reset redisplays the initial information you selected before any
changes were made.
Localization of output
Messages and other output from SL-GMSDraw is internationalized. The
internationalization of messages and other output is described in Localiza-
tion of output on page 6-7.
This chapter describes the options available with the SL-GMSDraw Tool
Panels. The Tools Panels contain:
Create Tools to create objects
Change Tools to change an existing object
Point Tools to manipulate individual Points in an object
View Tools for zooming and panning
View Preset Tool for setting up to 5 views
Create Tools
The Create Tools panel displays all the primitive graphical
objects (i.e., Lines, Polygons, Circles, and the like) that can be
created and added to Models developed with SL-GMSDraw.
When you select a tool, the icon is highlighted and remains
highlighted and pushed-in until you select another tool, or
double-click the right mouse button. When you select a tool, you
can draw any number of objects that meet the selected
parameters until you de-select the tool. You can also set a
preference that automatically disables the tool once a single
object is created. Click the Options Pull-Down menu and select
User Preferences to display the User Preferences window.
Next, select Create Single Objects. With this preference
selected, the editor returns to selection mode as soon as
the points needed to create the object are picked.
When you select a tool, you must then establish a series of
Points that define the object in the Active Working View (refer
to page 1-16). Click the left mouse button to select Points to
create any shape. The status bar displays prompts for each
remaining action needed to complete the object. To terminate
the activity, select another tool or click the right mouse button.
Lines
By comparison with a simple Line, a Polyline is defined by more than two
points a starting Point, ending Point, and additional Points between the
two. The Points are connected by SL-GMSDraw with straight lines.
Line Polyline
Splines
Points are connected by a Polyline as they are selected. On completion,
the Polyline you created is redrawn as a Spline, and the curved lines are
smoothed. When you create a Closed Spline or Filled Closed Spline,
SL-GMSDraw connects the end Points of the Polyline and converts them to
a Closed Spline.
Polygons
Polygons (Closed Polylines) may appear as triangles, trapezoids, rectan-
gles, or any shape composed of straight edges. When creating a Rectangle
or Filled Rectangle, you need only define the two Points that define one of
the diagonals. SL-GMSDraw automatically completes these simple rectan-
gles.
Filled Filled
Polygon Polygon Rectangle Rectangle
Circles
To identify the location and size of a Circle, select a center Point and a
Point on the outer edge of the circle.
Three Point Sector: SL-GMSDraw creates the Sector which best fits the
three Points picked.
Sector
If a final Point is picked that is clockwise from the second Point, SL-GMS-
Draw creates a Circle shape with a single piece missing (as shown below)
rather than a small Wedge.
Markers
Markers are small characters used to indicate positions of single Points.
Markers are created by picking Points in the Active Working View. All
Markers created until either another Tool is selected, or the right mouse
button is clicked, are treated as a single object (i.e., individual characters
can not be selected). The Undo Tool "unpicks" all Markers created since
the Marker tool was clicked.
The style of Marker created is set in the Default Graphic Properties win-
dow, as described in Marker Style on page 3-21.
Text
Text is any printable character entered from the keyboard. A Text object is
created by picking a Point to position the Text and then entering characters
from the keyboard. By default, the Text entered is centered left-to-right
around this Point. The alignment of the Text and the direction of the Text
that is written may both be changed by clicking Text in the Default Graph-
ic Properties window. Refer to Text font, size, alignment, direction, and col-
or on page 3-14.
Text Rectangles are Rectangles (either filled or unfilled) with Text written
on top of them. It is faster to erase and redraw Text Rectangles than it is to
erase and redraw ordinary Text. Text Rectangles are used to create Text
objects that will be changed by an application. Changing Text requires that
the old Text be erased by redrawing the Text in the erase color a rela-
tively slow operation for most graphical workstations. Text in Text Rectan-
gles is deleted by erasing the Rectangle a much faster operation.
Text may be constrained to fit within the boundaries of the Text Rectangle.
Refer to Text Rectangle constraint on page 3-19.
When you wish to enter multiple lines of Text, use the <RETURN> key to
begin each new line. When you are finished, click the right mouse button or
select another tool to terminate the procedure.1
Thus, to enter
This is five
lines of text,
with a blank
third line.
key in:
This is five<RETURN>
lines of text,<RETURN>
<RETURN>
with a blank<RETURN>
third line.<right mouse button>
Text entry is done in-place. Text replacement and editing are accomplished
using the Replace Text button (Replace button in Motif) in the Text tab of
the Default Graphic Properties window, described in the section Text font,
size, alignment, direction, and color on page 3-14.
1. The <ESCAPE> key can also be used to terminate the procedure on Motif
systems.
NOTE: The Select By Extent icon in the Main Menu can be used when
there is no empty space in which to place the cursor. Refer to
page 1-8 for additional information.
The Control Handles are useful for scaling (making larger or smaller) and
rotating objects.
Objects are scaled by simply clicking on a Control Handle of the selection
extent of a selected object and dragging the mouse. Dragging a corner
scales the object proportionally (by the same rescale percent for both
axes); dragging an edge scales the object non-proportionally (either in the
horizontal or vertical direction).
Move the selected Point by dragging the Point to another location in the
Active Working View. Click the right mouse button to complete the move
operation. Points on Text cannot be moved.
Delete the selected Point by pressing the <DELETE> key or by selecting
Delete from the Edit Pull-Down Menu. Points on Text, Pie, Sector,
Three-Point Sector, Rectangle, Marker, and Text Rectangle objects cannot
be deleted.
Change Tools
Duplicate
The Duplicate Tool is used to duplicate objects. When you select objects,
SL-GMSDraw outlines your selection with an echo rectangle. The four
anchor points of the echo rectangle are displayed as the mouse pointer is
moved to the location in which the copy is to be placed. The mouse pointer
is shown at the location of the Reference Point. The Reference Point can
be changed by clicking the Point Pull-Down Menu and selecting Set Refer-
ence Point.
The copy can be aligned with the original object by clicking the Edit
Pull-Down Menu and selecting Align (refer to Edit Pull-Down Menu on page
5-13 for the different types of alignment). In addition, the placement of a
copy (in relation to the original object) can be restrained horizontally or ver-
tically by holding down the <SHIFT> key.
The procedure used to modify object properties is described in Setting
Object Properties on page 3-1.
View Tools
View Tools provide a way to visually pan and zoom the
objects displayed in the Active Working View. They do not
permanently affect the objects displayed. To exit any of the
View Modes, either select another Tool or click the right
mouse button. To reset the View after any of the panning or
zooming operations, perform one of the following actions:
click the Reset View Tool, as described in Resetting the View
on page 2-15
click the View Pull-Down Menu and select Reset
Grabber Pan
limit is 0.01. The value of the zoom limit can be changed by clicking the
View Pull-Down Menu, selecting View Options, and modifying the Zoom
Limit value in the View Options window.
The Zoom In Once Tool zooms in on the entire View by a pre-defined per-
centage. The pre-defined percentage can be changed by clicking the View
Pull-Down Menu, selecting View Options, modifying the Zoom Percent
value, and clicking Apply in the View Options window.
The Zoom In Continuous Tool zooms in on the entire View, centered on a
Point picked in the Model, and continues zooming in until the mouse button
is released.
The Zoom Rect Tool provides the ability to zoom objects in a region of the
Model; the region is selected by clicking on two corners of a rectangular
region.
Reset View
The current zoom and pan settings for the Active Working View are saved
by clicking the Set button, and then clicking a preset button (1 - 5). When a
view preset button has a saved zoom and pan setting associated with it, the
buttons background color will change.
Keyboard Equivalents
Model creation tools have, to this point, been described in terms of select-
ing tool buttons, clicking on objects, and entering text. However, SL-GMS-
Draw provides keyboard combinations that speed up many Model-building
activities. Sometimes referred to as "quick keys" or "power-user keys," the
shortcut key combinations consist of simultaneous use of Tool Buttons and
Modifier keys: <ALT>, <CONTROL>, <SHIFT>, <TAB>, and certain num-
bers.
Available Operations
Available Operations
Available Operations
Graphic Properties
Fill Properties
Edge Properties
Text Properties
Marker Properties
The five tabs (Fill, Edge, Text, TRect, and Marker) of the Default Graphic
Properties dialog box, shown in Figure 3-19: on page 3-2 and Figure 3-20:
on page 3-3, change the graphic properties of selected objects. (Select
Properties from the Object Pull-Down Menu and then select Graphic in
the Properties submenu to access this dialog box.) Only the properties for
the selected tab are visible. To shift between the five different tabs, click
one of the tabs labeled Fill, Edge, Text, TRect, or Marker. (On Motif plat-
forms, the tabs are represented by buttons, along the left side of the dialog
box, that perform the same function as the tabs.)
Additionally, you can select the font type you wish to apply to any text you
have added to the object. The Default Graphic Properties dialog provides
Hershey and Raster type text choices. In addition, the Windows version
allows you to select one of several different TrueType text styles.
The color panel to the right side of each dialog box (patterned, in the case
of monochrome workstations) contains buttons that set the color of fill,
edge, text, or Marker (depending upon which view is being displayed).
When one of these buttons is clicked, the fill, edge, or text color of any
selected object is changed to the color indicated on the button.
By default, the color panel displays 32 colors. If more colors are defined in
the colordef.dat file, the user can scroll to select a color. See the section
Setting Color Definitions on page 6-8 for more information about defining
colors.
Direction Fill percent Interior Gradient dialog Fill and Unfill Pattern Color
The Fill graphic properties tab, shown in Figure 3-21:, has the following
active regions:
Direction
Fill percent
Interior
Gradient dialog
Fill and Unfill
Pattern
Color
Fill Direction
The fill direction buttons change the direction from which the fill
proceeds. Click the radio button corresponding to the
appropriate direction. Four fill directions are available, as
illustrated in Figure 3-22:.
The fill directions and percent of fill are used in dynamics where
the direction of fill and percent of fill are determined by data
values.
Fill Percent
The Fill Percent button (Fill % in Motif ) sets the fill percent (the
fraction of the selected polygon 1 that is filled), beginning at one
of the four sides. A dialog window prompts for the fill percent.
Fill Interior
The fill interior buttons specify whether the fill interior (finter)
color pattern for the selected object is hollow, solid, opaque, or
transparent:
Hollow the object is logically filled but no fill pattern
appears on the screen (finter = 0).
1. This includes Polygons, Closed Splines, Rectangles, Pies, Sectors, Three Point
Sectors, Circles, and Text Rectangles.
Gradient Dialog
The Gradient Dialog button allows the gradient fill attribute to
be set on a filled object. A Gradient Fill Properties dialog window
prompts for the gradient style, configuration, start color, and up
to 4 color intervals, as shown in Figure 3-23:.
Fill
The Fill button fills selected objects. Select one or more objects,
then click the Fill button. Next, modify the Fill properties by
clicking the color, style, interior, direction, and percentage
controls, as described in this section.
Unfill
The Unfill button resets selected objects to their unfilled state.
Fill Pattern
The boxes in the fill style panel are buttons which set the fill
pattern or style (fstyle). There are eleven pre-defined patterns.
Custom fill styles can be defined using fstyle entries in a
platform-independent gmsprefs.dat file, which is read by
SL-GMS during runtime initialization.
The fill pattern panel is enabled only when the fill interior is set
to Opaque or Transparent.
Fill Color
Sets fill color, as described on page 3-4.
The Edge graphic properties tab has the following active regions:
Edge Style (estyle)
User-entry of style other than defaults [Motif only; not yet
implemented in Windows]
Edge Width (ewidth)
Buttons to create either Closed or Open Polygons
User-entry of width other than defaults
Color
Edge Style
Set the edge style property of a selected object by clicking the
desired style in the Edge Style selector. In the Windows version,
spin buttons (up-down arrow buttons) can also be used to select
the edge style (the integer corresponding to the desired edge
style can also be entered directly in the text entry box to the left
of the spin buttons).
The edge style of an object can be set to 0 (none) if that object is
also filled. Not drawing the edge increases performance in the
drawing of filled objects by eliminating the step required to draw
the outline of the object.
For example:
Line
Command
Appearance
estyle 2 .............
estyle 12 ..........................
estyle 22 . . . . . . .
In summary, the valid Line styles for the estyle command are as follows:
Style Approximate
Description
Numbers Appearance
1 11 21 solid _________________
2 12 22 dot, dot2, dotx2 ..................
3 13 23 dashed, dashed2, dashedx2 __ __ __ __ __ __ __
Style Approximate
Description
Numbers Appearance
4 14 24 dashdot, dashdot2, dashdot2x __ . __ . __ . __ . __ .
5 15 25 border, border2, borderx2 __ __ . __ __ . __ __
6 16 26 center, center2, centerx2 ____ _ ____ _ __ _
7 17 27 divide, divide2, dividex2 __ . . __ . .__. . __ . .
8 18 28 hidden, hidden2, hiddenx2 ___________
9 19 29 phantom, phantom2, phantomx2 ____ _ _ ____ _ _ __
Edge Width
Set the edge width property of a selected object by clicking the
desired width in the Width selector. In the Windows version, spin
buttons (up-down arrow buttons) can also be used to select the
edge width (the integer corresponding to the desired edge width
can also be entered directly in the text entry box to the left of the
spin buttons).
box and click Apply. The Width selector provides lines with
widths ranging from 1 to 5, hence a value of 6 or more must be
used.
In the Windows version, spin buttons (up-down arrow buttons)
are used to select an edge width greater than five (the integer
corresponding to the desired edge width can also be entered
directly in the text entry box to the left of the spin buttons)
Edge Color
Set edge color, as described on page 3-4.
Scaling
Alignment Font Size TrueType Font Style
Font Type Text Direction
Color
Replace Text Selector
Font Name
As shown in Figure 3-25: and Figure 3-26:, the text graphic properties win-
dows contains the following active regions:
Text Alignment Panel
Font Type Selector
Text Direction
Font Size
Text Direction
Text Direction has two settings: left-to-right and top-to-bottom,
indicated by arrows. When the down arrow is selected, all Text
objects currently on the Select List, and all new Text objects will
display vertically. When the horizontal arrow is selected, all Text
objects currently on the Select List, and all new Text objects will
display horizontally.
Font Size
Set the height of text by clicking the font Size button in Motif,
then entering a value in the dialog box prompt. In Windows, the
font size setting can either be directly typed into the Height text
entry box, or the spin buttons (up/down arrows) can be used to
incrementally increase or decrease the font size. 3 Height is
specified in World Coordinates.4
The Size button dialog box in Motif, and the Default Graphic
Properties window in Windows also contain a check box labeled
Adjust for scaling. If this box is checked, the text height
attribute of each object on the Select List will be set to the given
value adjusted for a scaling matrix that may be attached to the
object. For example, suppose a Text Rectangle object were
scaled by a factor of 2, and the value "3" is entered for the size
of the text. The text height attribute of the object would be set to
1.5.
3. The value of the font height entered by the user is limited to the height of the
Model.
4. World Coordinates are double precision.
Font Name
On Motif systems, if Font Type is set to "Hershey," only the
names of the Hershey Fonts are displayed in the "Font Name"
scroll box. When "Raster" is selected, only the names of the
Raster fonts are displayed in the "Font Name" scroll box. Select
the font by clicking the appropriate entry in the "Font Name"
scrollbox.
On Windows systems, the available font names for Hershey,
TrueType, and the thirteen SL-GMS pre-defined fonts are
displayed at all times in the "Font Name" scrollbox. Hershey
fonts are designated with "Hs" preceding the name of the font.
TrueType fonts are designated with "TT".
The available fonts are defined in the file "fontdef.dat." A
discussion of setting font definitions is provided in the section
Setting text font definitions on page 6-4. The SL-GMS Quick
Reference provides additional information about font definitions
and availability.
Replace Text
To replace a text string, click the Replace Text button (Replace
button in Motif). The Object Text dialog window displays the
current Text string attached to the object. The Text string can be
added to, modified, or deleted.
Another manner in which to replace text is to click the Object
Pull-Down Menu and select Properties, then select Text to
display the Object Text dialog window.
Text Color
Sets text color, as described on page 3-4.
acters may overlay each other to stay inside the boundary. If the width of a
single character overflows the boundary, the characters will overlay each
other and the text will overflow the text rectangle (it will not be clipped).
This mode does not modify font size, just character positioning.
The Fit Width setting is only supported for precision 0 fonts (TrueType
fonts), and only on Windows platforms. The Fit Width setting is only for
horizontal text and width is determined by the width of the Text Rectangle
without any transformations applied (e.g., scaling, rotating).
Windows only: If you are going to rotate a Text Rectangle, and you want
the precision 0 (TrueType font) text to fit within the rotated rectangle, set
the text constraint to Fit Width. In addition, enable the rotation of Precision
0 (TrueType fonts)
Precision 0 fonts rotation is enabled in an application by calling
gmsTPrec0RotFlag( )5 or by sending the "tprec0_rot_flag" message to the
StandardTopState.6 Precision 0 fonts rotation is enabled in SL-GMSDraw
by sending the "tprec0_rot_flag to the StandardTopState in the ".gms-
drawrc" file 7 as shown below:
gmsdraw_standard_top_state tprec0_rot_flag 1
The text constraint can be set by selecting either None, Clip, or Fit Width.
In the Windows version, the numeric value can also be entered using the
spin-control box.
All Text Rectangle objects created after the text constraint is set will use
this mode unless another setting is selected.
Marker Style
Style Color
Style Color
The Marker graphic properties tab has the following active regions:
Marker Style (mstyle)
Color
Marker Style
Set the style property of a selected Marker by clicking the
desired style in the Marker Style selector. In the Windows
version, spin buttons (up-down arrow buttons) can also be used
to select the Marker style (the integer corresponding to the
desired Marker style can also be entered directly in the text entry
box to the left of the spin buttons).
Marker Color
Sets Marker color, as described on page 3-4.
UserData can be added to only one object at a time. If multiple objects are
on the Select List, use the Loop Control icons in the Main Menu bar (refer
to page 1-8) to move among the objects in the Select List.
When a blank Model is created using the the New with Background option
of the File Pull-Down Menu, SL-GMSDraw automatically creates a
non-detectable Filled Rectangle as the background object in the back-
ground color. The size of the background object is set by changing the
default values (72 units wide and 54 units high) in the Model Properties
window.
NOTE: The size of the Model is set to the size of the background object.
A blank Model can also be created using the New option of the File
Pull-Down Menu. The first object created in the Model (typically a Filled
Rectangle) is considered the background object. When the first object is
created in the Model, the Background Detectable and Background
Object Dimensions and Origin areas in the Model Properties window
are enabled. The size of the background object can be changed by modify-
ing the width and height values in the Model Properties window.
By default, the lower left corner of the WC-window is defined as the Point
0,0. To change the default, modify the text entry box designating the lower
left corner of the dotted-line graphic.
The color of the background object is set by entering an integer in the
Background Color entry box that corresponds to one of the color boxes in
the Default Graphic Properties window.
In addition, setting Background Detectable to OFF (i.e.,unchecked), will
cause the background object in the current Model to become undetectable.
Setting Background Detectable to ON (i.e., checked) allows the back-
ground object to be selected and modified.
If the Erase in Background Color is set to OFF (i.e., unchecked), the
Model erases objects using color index 0 (white). However, if objects are
being erased and redrawn on top of an object whose color is other than col-
or 0, "holes" are left as the dynamic objects are changed. An example is
the meter shown in Figure 3-36:. Each time the needle moves it is erased in
color 0 (white), and holes are left in the face of the meter marking the
previous positions of the needle. When the needle moves to 50, a white
line appears at 0 because the needle erased in white on the grey back-
ground.
filled. The color used by the Model to erase objects is called the back-
ground color. If the first object is not filled, the background color is set to
color index 0.
To correct the "holes" in the previous "meter" example, the first object in the
Model would be a Filled Rectangle whose color is the same as the "face" of
the meter. With Erase in Background Color set to ON, the needle erases
in the color of the meter "face" as shown in Figure 3-37:.
Figure 3-37: Background color set to the same color as meter "face"
The background color is used as the erase color for all objects in the Model
except for parts within a SubModel Instance which has its own background
color.
A UserData string can be added to the Model by clicking the UserData but-
ton in the Model Properties window. The Model Userdata window is dis-
played, as shown in Figure 3-38:. Enter the UserData string and click the
Apply button.
A UserWord can also be added to the Model by clicking the UserWord but-
ton in the Model Properties window. The Model Userword window is dis-
played, as shown in Figure 3-39:. Enter the UserWord and click the Apply
button.
.
Flag Description
Erase Flags
noerase Causes the update pass to omit erasure of
any of the Models parts before redrawing
the Model.
batcherase Causes all objects in a Model to be erased
first and the entire Model to be redrawn.
Point Flags
Flag Description
pts relative Forces the Points of a Polyline or Polygon
(filled ones also) to be transformed relative
to the first Point of the object; useful for
objects distorted while animated and
moved around the screen due to pixel
rounding.
pts symmetric Forces an objects Points to be transformed
relative to each other; useful for objects
distorted while animated and moved
around the screen due to pixel rounding.
General Flags
dynarray Marks a Model so it passes the index of
each part down as the traversal index to be
used in Array Dynamics.
doublebuffer Enables software double buffering.
Selecting the Apply button will apply the settings in the Model Properties
window to the current Model.
Selecting the Apply as Default button will apply the background color, and
on/off settings to all subsequent Models built within the current editing ses-
sion. The background object dimensions are also applied to all subsequent
Models built using the New with Background option of the File Pull-Down
Menu within the current editing session.
When you exit SL-GMSDraw, the settings in the Model Properties window
revert to SL-GMSDraw default values.
NOTE: To use the new Model property settings as defaults for future
editing sessions, the settings must be saved to a resource file.
The section Saving the Editor Set-up on page 6-4 provides more
information.
Dynamic Descriptions
A dynamic description is text in a syntax recognized by SL-GMS that spec-
ifies a change in the appearance of an object in response to a change in an
application variable, or an action that is taken in response to input events
for the object. A DynProp (Dynamic Property) comprises all of the dynamic
descriptions attached to an object.
* fcolor stat
involving formulas, function calls, data structures, files, and other data.
Expressions can include any number of references to variables or calls to
application-specific functions and standard arithmetic and logical opera-
tors. Expressions are parsed for conventional notations.
Actions in unconditional dynamic descriptions are executed whenever any
Variable Reference in an objects DynProp changes. Compare this to the
conditional dynamic description in Figure 4-3:. It specifies, "When the vari-
able tankvol1 is within the indicated range, the object becomes per-
cent-filled according to where in the range the variable falls, and the fill
color is set to the color indexed by 2."
tankvol1
= (tankmin + 1) : (tankmax - 1)
fpercent 0:100
fcolor 2
fpercent and fcolor are action keywords that change the fill percent and fill
color attributes of the object. tankvol1, tankmin, and tankmax are Variable
References. tankmin+1 and tankmax-1 are expressions.
Actions in conditional dynamic descriptions are executed only when the
testing of any logical expression results in TRUE after reading the value of
a Variable Reference. When an asterisk (*) is used in a conditional dynamic
description, the object is updated whenever the variable, or any variable in
the arguments in the action(s), changes.
Figure 4-2: on page 4-2 and Figure 4-3: show examples of unconditional
and conditional display dynamics. However, dynamic changes to objects
can also occur as a result of an input event, referred to as input dynamics.
# input
call gms_flash( ) dynamic
description
DynProp
tanklevel conditional
=* dynamic
fcolor noalarm description
NOTE: The input dynamic description shown above uses the call action
keyword to call a function. Other types of action keywords can
also be included in an input dynamic. gms_flash( ) is a function
call supplied in the SL-GMS GISMO Action Functions in the
SL-GMS Quick Reference. User-defined functions may also be
used.
Editing Dynamics
Dynamic descriptions are normally attached to objects by using the Object
Dynamic Properties option of the Dynamics Pull-Down Menu. The Object
Dynamic Properties option displays the Object Dynamic Properties window.
The Object Dynamic Properties window instances a simple text editor used
to create or modify the objects dynamic description. No changes are actu-
ally made to the objects dynamics until the Apply button is clicked.
Only one object at a time may have a DynProp edited in the Object Dynamic
Properties window. If multiple objects are on the Select List, use the Loop
Control buttons in the Main Menu bar (refer to page 1-8) to select the next
object on the Select List.
Click inside the Object Dynamic Properties window to begin editing. An
example of a DynProp typed into the Object Dynamic Properties window is
shown in Figure 4-5:.
Press the <RETURN> key at the end of a line to move the cursor to the
next line to be typed. To insert a line, click at the end of the previous line
and press the <RETURN> key. To modify a line, click the line, backspace
over the characters you wish to change, and enter the correct information.
You can place the cursor anywhere on the line and edit from that point. To
delete a line, either click on the line until the entire line is highlighted and
press the <RETURN> key or click on the line and use the <BACKSPACE>
key to delete all the characters in the line.
When you have entered the format of the dynamic descriptions correctly,
the DynProp automatically indents the line when you click the Apply button.
This indentation, illustrated in Figure 4-6:, clarifies the grouping of the
dynamic descriptions and the actions and variable tests within a particular
dynamic description. The indentation has no effect on the execution of the
dynamic description.
Error checking
Figure 4-7: illustrates a DynProp that contains an error. Line 3
reads "tankvol 1" instead of "tankvol1." SL-GMSDraw detects
Renaming Variables
SL-GMS allows you to reuse Models and control objects through instanc-
ing. Model Instances, also called Instances or SubModels, retain the
dynamic properties of the original Model. The various Instances are differ-
entiated from the original by renaming variables the driving variables are
renamed to different variable names. For example, when you develop a
panel of gauges used to represent the same process variable coming from
many different sites, a gauge Model is created with dynamic specifications
driven by the variable volts. The panel Model would then be created with a
collection of gauge Model Instances. The volts variable is renamed for
each instance. For example, volts1, volts2, and so on.
Double-click on a value to highlight and rename it. Once the value is edit-
ed, either double-click on another value or hit the <ENTER> key.
Click the Apply button to apply the renamed variables to the object. The
Apply button will be enabled after a change, when another cell is clicked,
or when hitting the <ENTER> key.
Only one Model Instance at a time may have its variables renamed. If mul-
tiple Model Instances are on the Select List, use the Loop Control buttons
in the Main Menu bar (refer to page 1-8) to select the next object on the
Select List.
Error checking
When you click the Apply button, SL-GMSDraw will determine whether or
not the renaming is valid. If it is not, a dialog box is displayed indicating the
line in which the error occurs. Click the OK button to acknowledge the error,
then correct the error and click the Apply button again.
Further information about the format and use of .dat files is provided in
the Dynamics chapter of the SL-GMS Reference and in the Dynamics Refer-
ence chapter of the SL-GMS Quick Reference.
When the Preview Options option is selected, the Preview Options window
is displayed, as shown in Figure 4-11:.
The Preview Options window controls the Timer Period (the number of milli-
seconds between each update). Click the Start button to load the "<model-
name.dat" file 1 and begin previewing the Model. Clicking the Stop button
terminates the preview. Clicking the Pause button suspends dynamic updat-
ing without leaving Preview Mode but the Model cannot be edited or saved.
1. If a "<modelname>.dat" file does not exist, a warning message will display and
previewing will not occur.
This chapter describes the menus that appear on the Main Menu bar. When
items on this menu bar are selected, additional pull-down menus will dis-
play.
.
Figure 5-1: illustrates the Main Menu bar with the following tool categories:
File Load, store, print, and other tools that provide access to
Model files
Edit Cut, paste, and other tools used to make changes to
objects
View Zoom, pan, and set screen size
Model Set Model properties
File Menu
The File Pull-Down Menu provides the standard application file functions
for Model files, such as opening and closing, saving, printing, and exiting
the SL-GMSDraw application. The options are described in the table "File"
Pull-Down Menu Options on page 5-4.
Import submenu
Export submenu
Option Description
New Displays an empty Model window with options clear, and
without a background rectangle.
New with Displays an empty Model window with options clear, and a
Background background rectangle.
Open .m1 File Loads and displays a Model from disk.
Close Stops editing the current Model. If the Model has not been
saved since the last change, prompts to save first.
Change Directory Brings up the Change Directory window, which allows you to
change directories for the Save As, Import, and Export options.
Merge... Adds the parts of another Model to the current Model. The
name of the current Model remains the same. The merged
Model still exists as a Model file and a copy of its parts
becomes a part of the current Model.
Save Writes the current Model to disk.
Save As... Prompts you to name the current Model and then saves it to
disk under that name; the file extension is ".m1". Full path
names may be used.
Import Prompts for files to be imported into the current Model.
SL-GMSDraw can import images files (.xwd on Motif, .bmp on
Windows, .jpeg, .jpg, and .jpe). If two files exist with the same
name but different extensions, the file with the extension ".bmp"
or ".xwd" is opened before the ".jpeg, .jpg, or .jpe." The
Available Images dialog of the Image submenu displays a
directory tree listing all image files in the current directory and
directories in the SL-GMS library paths.
Option Description
Export Prompts for the name of a file to be created. The current Model
is written into this file. SL-GMSDraw can export text models (.g)
and images (.xwd on Motif, .bmp on Windows, .jpeg, .jpg, and
.jpe). The JPEG Image option of the Export submenu invokes
a browser dialog that allows selection of the output file and
folder. The option also provides a slider for setting JPEG
quality.
View GML File Prompts for the name of a ".g" file to be viewed. Invokes the
Open .g File window displaying the ".g" file.
Print Invokes the Print submenu to print part or all of the current
(Windows) Model. The PostScript option of the Print submenu invokes the
SL-GMS Print Dialog window to generate a PostScript file.
Print Invokes the SL-GMS Print Dialog window to generate a
(Motif) PostScript file.
Exit Stops editing the current Model and terminates execution of
SL-GMSDraw. If the Model has not been saved since the last
change, prompts to save first.
For compatibility with all supported platforms, file names should not exceed
fourteen characters (including extensions). Model names should be ten (or
fewer) characters to allow for valid extensions of ".g," ".m1," ".ps," ".m2,"
".xwd," ".bmp," .jpg, and ".dat." The characters in the Model name can be
alphabetic, numeric, or underscore {A through Z, a through z, 0 through 9,
_ }. Model names cannot contain dashes, blanks, <ESCAPE>, or other
non-printing characters.
Import Image
Selecting the Image... option, of the Import submenu, displays the
Available Images window as shown in Figure 5-4:. The Available
Images dialog displays a tree listing image files in the current directory
and directories in the SL-GMS Library path. To preview an image, click
on the image file name and the image will display to the right of the
directory tree.
Bitmap Export
Selecting the Bitmap Image... option, of the Export submenu, displays
the Export Bitmap File window as shown in Figure 5-5:. The Unix
version of this window produces a .xwd file while the Windows version
produces a .bmp file.
GML Export
Selecting the GML Script... option, of the Export submenu,
automatically generates the appropriate file name and writes the file to
disk. A confirmation dialog appears once the operation is complete.
JPEG Export
Selecting the JPEG Image... option, of the Export submenu, displays
the Export JPEG File window as shown in Figure 5-6:.
Java Export
Selecting the export Java option displays the GUI interface for the
SL-GMS Code Generator for Java utility. This option is available only
with SL-GMS J/Developer or J/Network.
File Operations
The Open .m1 File, Merge, Save, and Save As options, when invoked, dis-
play the standard Explorer Browse window on Windows systems.
On Motif systems, the Save As option and the Save option (if the Model is
being saved for the first time) display a dialog window in which the name of
the file is entered. The Change Directory option can be used first, if
required. The Open .m1 File and Merge options invoke the Open .m1 File
window, shown in Figure 5-8: on page 5-10. This window lists the subdirec-
tories within the current directory, any parallel directories, and the parent
directory. You can select any directory by clicking it. The full file path can
also be typed in from the keyboard, but it must not contain dashes, blanks,
<ESCAPE>, or other non-printing characters.
Models are saved as files with the suffix ".m1" which makes these files
easy to distinguish from other files. Model files are binary files, that is, they
cannot be read or edited without using a special program such as SL-GMS-
The following table describes the elements of the Print Dialog window.
Option Description
Printer Name Specifies the printer to receive the PostScript output file.
Add Border Creates a thin black border around the PostScript output.
1. The Print option in Windows systems displays the standard Print dialog furnished
by the operating system.
Option Description
Add Init Graphics Puts "initgraphics" in the PostScript file.
Color Lines Prints any colored lines of width less than 1 in color.
Otherwise, colored lines of width less than 1 are changed to
black.
Print Grid Prints the grid in the Active Working View.
Print Background Prints the Models background object, if any.
Print HiLite Prints the selection highlight box that appears around an
object(s) currently selected, if any.
Output Orientation Valid values:
Portrait Landscape
Option Description
Undo "Undoes" the previous Model editing function. Sets the Undo
stack size, as described in User Preferences window on page
5-41.
Redo "Redoes" the previous Model editing function.
Cut Cuts objects in the current Select List.
Copy Copies objects in the current Select List.
Paste Pastes objects from the clipboard into the Model.
To Scratch Palette Displays the "_SCRATCH_" Palette window. The Scratch
Palette is then loaded with duplicates of the objects on the
Select List, replacing any objects previously in the Palette.
The duplicates are placed in the Palette at the lower left
corner, in the same relative position as the objects are in the
Active Working View. Objects can be copied from the
"_SCRATCH_" Palette window into a Model.
Delete Deletes objects in the current Select List.
Mirror Rotates and moves objects in the current Select List so that
they appear as a mirror image. The objects are mirrored in the
direction selected in the Mirror submenu.
Align Changes the alignment between a set of objects in the current
Select List. The objects are aligned according to the selection
in the Align submenu.
Order Controls the order of objects in the current Models part List.
The order of objects affects how objects are displayed. Refer
to page 5-16 for more information.
Option Description
Scale Relative Scales (resizes) objects in the current Select List to the
dimensions of the focus object (the first object added to the
Select List) in the horizontal direction only, the vertical
direction only, or equally in both directions.
Select Handles the Select List: adds objects to the Select List in the
order in which they were clicked and provides alternate
methods for selecting objects. Options in this submenu are
used when objects are changed or deleted in
SL-GMSDraw. Refer to page 5-17 for more information.
Insert Active X Creates an Active X Control from a list of Active X Controls on
Control the system. Refer to Inserting Active X Controls on page A-1
(Windows only) for more information.
Mirror submenu
Align submenu
Order submenu
Edit Pull-Down
Menu
Select submenu
Order
The Order submenu controls the order of objects in the current Models part
List. The order of objects affects how objects are displayed. Objects are
added to the Models part List in the order created. The first object in a
Models part List is displayed first and the last object is displayed last. Note
that objects displayed later may overwrite those displayed earlier if their
boundaries overlap. The Order submenu presents several methods for
changing the order of objects in the Models part List.
To view the order of objects on the Select List, click the Object
Pull-Down Menu and select Select List. A list of the objects on
the Select List is displayed in the Select List window.
Highlighting an object listed in the Select List window highlights
the object in the Active Working View.
Scale Relative
The Scale Relative submenu controls how objects are scaled relative to
each other. The first object added to the Select List is the "focus" object. All
other objects on the Select List are scaled relative to the dimensions of the
"focus" object.
Select
The Select submenu handles the Select List. Options in this submenu are
used when objects are changed or deleted in SL-GMSDraw. One way to
add objects to the Select List is by clicking them. As long as the objects are
detectable, they are added to the Select List in the order in which they are
clicked. This menu provides alternative methods for selecting objects.
Clicking the Edit Pull-Down Menu, selecting Select and then selecting by
Properties (By Property in Motif), displays the Select by Properties window,
shown in Figure 5-11:.
Objects are added to the Select List by first selecting an object (i.e., the
"focus" object). Then, use the Select by Properties window to designate the
properties of the "focus" object to be used to select additional objects.
Objects are also added to the Select List without first selecting an object.
All objects having dynamic properties, renamed variables, a Userword, or a
UserData string attached to them can be selected by clicking the appropri-
ate box in the Select by Properties window. In addition, the name attached
to an object can be used for selection. Wildcard characters can be used in
the entry of the name.
When the Add to List of Selected Objects is selected, then all the objects
that match the parameters set in the Set by Properties window are append-
ed to the existing Select List. However, if the Add to List of Selected Objects
is disabled then the existing Select List is cleared and all of the objects that
match the parameters set in the Set by Properties window are added (i.e.,
the newly-selected objects replace the old Select List).
View Menu
Windows menu
Motif menu
Properties submenu
Option Description
Group Creates a Group object. Select the desired objects, then click
Group. The number of objects on the Select List changes to
"1", indicating that the selected objects have become a single
Group object.
UnGroup Ungroups objects in a Group. Select the Group object, then
click UnGroup. The number of objects on the Select List
changes from "1" (the selected Group) to as many objects as
comprised the Group.
Special Ungroup Saves the properties of a single Group and ungroups the
Group. A single Group is placed on the Select List and then the
Special Ungroup option is selected. The selected Group is
ungrouped and its parts are put on the Select List. Any
properties saved by a previous Special Ungroup are lost. After
the individual parts of the group have been edited, the Special
Regroup option is selected. The properties saved are: Name,
UserData, DynProp, Transformation matrix, Reference Point,
UserWord, object_Flags, Visibility, and Detectability.
Special Regroup Regroups the parts and restores the properties previously
saved by the Special Ungroup option to a single Group.
Fill Group Displays a submenu containing Fill Group and Complex Fill
Group options. Refer to Figure 5-14: on page 5-24 and the
description on page 5-27 for further information.
Properties Displays a submenu including Graphic, Name, Userdata,
Userword, Flags, Information, and Text options. Refer to
Figure 5-14: on page 5-24. For a detailed explanation, see
page 5-28 to page 5-30.
Visibility On Makes objects on the Select List visible.
Visibility Off Makes objects on the Select List invisible. Invisible objects are
also undetectable.
Option Description
Detect On Makes objects on the Select List detectable.
Detect Off Makes objects on the Select List undetectable. Undetectable
objects offer two benefits. First, SL-GMS does not compute the
extent of such objects, which improves display performance for
the Model. Second, undetectable objects are more difficult to
select, offering some security against modification to the
Model designer. Although undetectable objects cannot be
selected by clicking, these objects can be selected by options
in the Select submenu of the Edit Pull-Down Menu, such as
Name, or by dragging an extent rectangle around the object.
Apply Transform Applies a transformation to objects on the Select List. A
transformation is Move, Rotate, Scale, Mirror, or any
combination of these operations. Transformations create a
special object called a transformation matrix, which displays
the transformed object in its new size or orientation. When a
transformation is applied, the Points used to orient the object
when it is displayed are changed and the transformation matrix
is removed. Removing the transformation matrix is desirable
because it speeds up the display of objects and reduces the
memory required to store them.
Option Description
Scale Displays the Scale window, which allows the user to enter
values for scaling an object(s) in both the x and y directions.
Objects can also be scaled proportionally. Refer to page 5-33.
Rotate Displays the Rotate window, which allows the user to rotate the
object(s) to a desired angle. Refer to page 5-34.
Select List Displays a list of the objects on the Select List in the Select List
window. Each object is listed in the following form:
memory address : class of object <object name>
Selecting the Fill Group option, shown in Figure 5-14: on page 5-24, will dis-
play the Fill Group submenu. The submenu provides two additional Group
types, as described in the following table.
Selecting the Properties option, shown in Figure 5-14: on page 5-24, dis-
plays the Properties submenu. The Properties submenu provides options to
display properties, as described in the following table.
Selecting the Graphic option of the Properties submenu displays one of the
views of the Default Graphic Properties window, described in the section
Graphic Properties on page 3-2.
Selecting the Information option of the Properties submenu displays a win-
dow that provides information about the selected object. The information
includes the class, name, position, and extent of the object. It also displays
the values of various attributes associated with the object. Figure 5-15: on
page 5-29 illustrates the information that is displayed when selecting, for
example, a Text Rectangle and then selecting the Information option of the
Properties submenu.
startbutton
Selecting the Flags option of the Properties submenu displays the Object
Flags window, as shown in Figure 5-19: on page 5-31. Flags can be set on
an object unconditionally.
The pts symmetric flag is more effective than the pts relative flag for allevi-
ating distortion due to pixel rounding errors. The pts relative flag is most
effective for complex, non-symmetrical objects.
Apply accepts the changes.
The Dynamics Pull-Down Menu is used to enter, edit, list, rename vari-
ables, and test the dynamic descriptions of objects. A detailed description
of each of these tasks is provided in the following table. The first two
options listed in the table work with one object at a time. If multiple objects
are on the Select List, use the Loop Control icons in the Main Menu bar
(refer to page 1-8) to move among the objects on the Select List.
Tools submenu
Tools submenu (Motif)
(Windows)
Selecting the Tools option displays the submenu shown in Figure 5-23:.
Option Description
Tools Displays the Tools submenu which contains options for
invoking windows. More information about Create Tools, View
Tools, and Change Tools panels is provided in Chapter 2
Tools.
Grid Options ... Displays the Grid Options window containing options used to
create a grid. Drawn before the Model is created, the grid, like
graph paper, aids in the designing of a Model. Refer to Grid
Options on page 5-38.
Snap and Point Displays the Snap and Point Modes window which contains
Modes buttons for selecting the snap and point modes. Refer to Snap
and Point Modes dialog on page 5-39 for more information.
Option Description
User Preferences Displays the User Preferences window used to set
... preferences for various items which change the nature of the
Model and its display. Refer to User Preferences window on
page 5-41.
Save Resources Saves the SL-GMSDraw settings in the resource file
.gmsdrawrc. This file is saved in the following directory: 1
32-bit Windows
If the environment variable %HOME% is defined:
%HOME%
else,
%gms_home%\lib
UNIX
users HOME directory
Set
grid size
Set grid Set space
color between grid
points
Set grid
offset points
Select grid Turn grid on/off
line style
Grid Options
Size changes the size of the grid spacing. Use any positive
real number for the horizontal and vertical spacing between grid
intersections; if only one number is entered, it is used for both
the horizontal and vertical spacing. The number represents
Active Working View units; the default Active Working View is 72
units wide by 54 units high, regardless of the size of the display
screen or Workstation Window. The spacings can have different
3. The grid does not draw on top of Control Objects. This capability will be available
in a future release.
values, for example, 2.5 units by 4 units. The default grid spacing
is 10 units by 10 units.
Divisions changes the count of the divisions or tick marks for
each single grid space: use any positive real number.
Grid On turns the display of the grid ON or OFF: the Active
Working View is cleared and the grid is either drawn or not drawn
and the objects in the Model are drawn over the grid.
Solid Lines toggles between the two grid display styles
solid lines or dots at the intersections.
Offset offsets the first grid intersection from the default. By
default, the first grid intersection is at the origin, the Point (0,0).
Color changes the color of the grid. To set the grid color, click
one of the colored boxes or enter the numeric color index in the
text entry box provided.
Option Description
Undo/Redo Stack Sets the number of editing operations that SL-GMSDraw is
Size able to undo.
Move Delay (ms.) Sets the delay (in milliseconds) between the time the mouse
begins to move and when that motion is rendered on the
screen.
Move Dist (pixels) Sets the distance (in pixels) that a Move operation must cover
before that motion is rendered on the screen.
Keyboard Move Sets the distance (in pixels) that arrow keys move an object
Delta on the screen.
Pick Aperture Specifies the size of the mouse picking rectangle as a
percentage of the screen width.
Option Description
Initial W.C. to Pixel Indirectly sets the initial size of subsequently created editor
Scale windows when entering a positive non-zero value. The value
is used as the scaling factor between World Coordinates and
pixels.
Option Description
Drag Objects Controls the appearance of objects while they are being
(Objects or Outline) dragged using the mouse. If this control is on, SL-GMSDraw
displays the entire object while it is being dragged. If this
control is off, SL-GMSDraw displays only the extent
rectangle of the object while it is being dragged. The latter
setting improves display performance when complex objects
are being dragged.
Blinking Selection Controls the appearance of the selection handles on
Handles selected objects. If this control is on, the selection handles
blink. If this control is off, the selection handles remain static.
GMS Control Resize If this control is on, SL-GMS Control Objects resize when the
Flag window is resized. If this control is off, SL-GMS Control
Objects will not resize when the window is resized.
UNIX Systems
<current directory>
<$GMS_HOME>/work/gmsrun/PALETTES
Once the Palette is displayed in a window, you can select any object in the
Palette Model by clicking it. Place a copy of the selected object into the
working Model by clicking the left mouse button once more in the working
Model. If the selected object from the Palette is a SubModel, the SubModel
is automatically added to the External SubModel List.
NOTE: Local SubModels by definition are available only to the Model that
contains them. Therefore, local SubModels must not be a part of
a Palette Model.
If the Available Palettes window becomes hidden, click the Available Palettes
option once again to pop it to the top.
Option Description
Available Displays the Available Palettes window containing a list of palettes
Palettes from which the user can select (see descriptions of available
palettes, below.)
Available Displays the Available Submodels window from which objects can
Submodels be selected from the current directory and directories in the
SL-GMS Library paths, and placed into the Active Working View.
Local Models display first in the list.
Controls Displays the Control Objects Palette from which Button, Container,
Text Field, Scale, Scrollbar, and Option Menu objects can be
selected and placed into the Active Working View. See the
SL-GMS Control Objects Reference Manual for a description of
Control Objects.
Buttons Contains a wider selection of predefined Button objects than those
provided in the Control Objects Palette .
Containers Contains a wider selection of predefined Container objects than
those provided in the Control Objects Palette.
Text Fields Contains a wider selection of predefined Text Field objects than
those provided in the Control Objects Palette.
Scales Contains a wider selection of predefined Scale objects than those
provided in the Control Objects Palette .
Scrollbars Contains a wider selection of predefined Scrollbar objects than
those provided in the Control Objects Palette.
Option Description
Show Reference Toggles the display of the Reference Point on and off.
Points
4. Note that a Reference Point can also be set on an object using the SL-GMS
function gmsRefPoint( ), described in Reference Point in the SL-GMS Function
Reference.
Option Description
Set Reference Sets the Reference Point on an object. The Reference Point is
Point used for the Copy, Move, Scale, or Rotate operations. If the
Reference Point is changed for an object on the Select List, the
Reference Points for all objects on the Select List are changed
simultaneously.
When objects are scaled, the center is the only Reference Point
whose use does not also result in a Move operation.
The About Gmsdraw option (About GMSDraw in Motif) displays the About
SL-GMSDRAW window, shown in Figure 5-30:. This window displays the
configuration number (i.e., the version number) of SL-GMS.
Platform Command
Motif gmsdraw_xm
32-bit gmsdraw_mfc
Windows1
1. Refers to a platform with a 32-bit
architecture running Mircrosoft Win-
dows NT or Windows 95.
Command-line options
The following are valid command-line switches to the SL-GMSDraw pro-
gram. Option key letters can be in either lower or upper case, as the
SL-GMSDraw program makes no distinction between the two.
Option Description
-f[msgfile] read State messages from a message file
Option Description
-i<library_path> adds a directory path for finding SubModels; any
Models that are in the <library_path> directory are
listed in the Available Submodels window
-o causes a Command Prompt window to be opened
(when the program starts up), so that startup text and
(Windows only) error messages can be viewed
-u[n] set update rate to n
You can change the appearance and behavior of the grid in the Active
Working View. Click the Options Pull-Down Menu and select Grid Options to
display the Grid Options window. The size, color, and manner the grid is
drawn can all be modified (refer to Grid Options window on page 5-38).
Click the Apply button to apply the changes to the grid. These changes
apply only to the current editing session.
Set
grid size
Set grid
Set space
color between grid
points
Set grid
offset points
Select grid Turn grid on/off
line style
Figure 6-2: Setting grid parameters with the "Grid Options" window
Aspects of the Active Working View in which the Model is created can also
be changed using the View Options window. Clicking the View Pull-Down
Menu and selecting View Options brings up the View Options window,
shown in Figure 6-3:.
32-bit Windows
If the environment variable %HOME% is defined:
%HOME%
else,
%gms_home%\lib
UNIX
users HOME directory
SL-GMS reads only one "fontdef.dat" file, searching first in the current
directory and, finally, in the $GMS_HOME/lib directory. The $GMS_HOME/lib
directory contains a default "fontdef.dat" file which specifies four Hershey
fonts. The format of the "fontdef.dat" file and the fonts available for each
type of workstation are described in the chapter Text in the SL-GMS Refer-
ence.
NOTE: The "fontdef.dat" file created above must be moved either to the
$GMS_HOME\lib directory or the working directory for your
Localization of output
The output of SL-GMSDraw is localized. Output from SL-GMSDraw goes
through a localization function (refer to the section Internationalization
localization files in the SL-GMS Function Reference). The function looks for
a string in the localization file "lib/gmsl10n.txt" using a key. If the key is
found, the localized string is used, otherwise the original default string is
used.
The format of the file is a set of STRING_RESOURCE key, string pairs
grouped together by SECTION names. A sample of the "gmsl10n.txt file is
shown below:
colors
in "colordef.dat"
Select
Print Grid
Select
Landscape
Make sure that the Print Grid and Landscape options are ON. Enter the
printer name and any other necessary parameters. Click the Print button in
the Print Dialog window.
When you are laying out the different Models, note which objects you are
using repeatedly or for more than one Model. You can create SubModels (a
Model instanced into another Model) with these objects and use them
again and again. Creating SubModels standardizes the appearance and
behavior of an object you use several times. Refer to the section Using
SubModels for Standardized Objects on page 6-14.
1. GISMOs are SL-GMS-supplied objects that have input dynamics and optional
display dynamics (changes to the appearance of the GISMO in response to
changes in one or more application variables). The input dynamics specify
actions to be performed whenever an input event occurs. The actions may be to
call a function, highlight the object, and so on. The functions that are called can
either be one of the SL-GMS supplied functions or a user-defined function. Refer
to the chapter GISMOs in the SL-GMS Reference.
erase
behavior color
detect
on/off
size
When a blank Model is created using the the New with Background option of
the File Pull-Down Menu, SL-GMSDraw automatically creates a non-detect-
able Filled Rectangle as the background object in the background color.
The size of the background object is set by changing the default values (72
units wide and 54 units high) in the Model Properties window.
NOTE: The size of the Model is set to the size of the background object.
A blank Model can also be created using the New option of the File
Pull-Down Menu. The first object created in the Model (typically a Filled
Rectangle) is considered the background object. When the first object is
created in the Model, the Background Detectable and Background Object
Dimensions and Origin areas are enabled. The size of the background
object can be changed by modifying the width and height values in the
Model Properties window.
By default, the lower left corner of the WC-window is defined as the Point
0,0. To change the default, modify the text entry box designating the lower
left corner of the dotted-line graphic.
The color of the background object is set by entering an integer in the
Background Color entry box that corresponds to one of the color boxes in
the Default Graphic Properties window.
In addition, setting Background Detectable to OFF (i.e.,unchecked), will
cause the background object in the current Model to become undetectable.
Setting Background Detectable to ON (i.e., checked) allows the background
object to be selected and modified.
The erase behavior of objects in the Model can also be controlled with the
Erase in Background Color setting. Refer to page 3-27 for a further descrip-
tion of the erase behavior of objects.
If you have set the size of the Model to a custom setting rather than the
default size (72 x 54 units), refer to Step 2 - Set the Size of the Model on
page 6-39 for further information.
#
call gms_flash( )
tanklevel
<90.0
fcolor noalarm
The section Editing Dynamics on page 4-5 describes how to type DynProps
into the Object Dynamic Properties window.
Renaming Variables
Models can be reused through instancing. Model Instances, also called
Instances or SubModels, retain the dynamic properties of the original Mod-
el. The various Instances are differentiated from the original Model by
renaming variables the driving variables are renamed to different vari-
able names.
For example, three Instances of the Text Display Control Object are placed
into a Model. The Text Display Control Object displays the value of the label
parameter. The original copy of the Text Display Control Object Model was
created with a dynamic description that displays the value of label. Howev-
er, for each of the three Instances of the Text Display Control Object, the
label parameter has been renamed to display the value of a different vari-
able. The first Instance needs to display the value of the variable volts1,
therefore, the label parameter is renamed to volts1. The second Instance
has label renamed to amps2, and the third Instance has label renamed to
volts3.
To rename variables, select an object, click the Dynamics Pull-Down Menu
and choose Object Renamed Variables. The Object Renamed Variables
option is described in the section Renaming Variables on page 4-9.
Any Models you create for use as SubModels are placed in the SUBMODS
subdirectory of the working directory. Models placed in this directory 2
appear in the Available Submodels window.
2. Models placed in the working directory also appear in the Available Submodels
window but it is good practice to create a SUBMODS subdirectory and place them
there.
Select each Instance of the Text Display and Text Display Box Control
objects in turn, renaming the variables listed in the table below. (Refer to
Renaming Variables on page 4-9).
The Text Display Box displays the value of the display_expr parameter. The
Text Display object displays the value of the label parameter. The maxchars
parameter sets the maximum number of characters displayed.
NOTE: The Text Display and Text Display Box Instances must be scaled
to fit the maximum number of characters that are displayed.
Static text can be created by using either the Text Tool or the Text Rectan-
gle Tool (used for text displayed within a rectangular frame) on the Create
Tools panel.
For a Text Rectangle object to display dynamic text, dynamic descriptions
need to be attached to the object. Refer to the section Attaching Dynamics
to an Object on page 6-12 for further information.
The part of a dynamic description required to add dynamic text to a Text
Rectangle object follows a regular format:
stext <argument> "format-string"
The stext keyword can be followed by a variable name or an expression,
which may itself contain variable names. The format string is always sur-
rounded by double quotes.
For example:
stext var1 "%s"
displays the value of the variable var1 as a string variable and:
stext var1 "%4.0f"
displays the value of the variable var1 as an integer (four characters with
zero characters after the decimal point).
To instance a Graph Model, click the Palettes Pull-Down Menu and select
Available Submodels. This will display the Available Submodels window,
shown in Figure 6-13:.
Scroll down the list of SubModels and click on the name of the Graph Mod-
el you wish to instance. The Graph Models provided by SL-GMS are found
in the scrolling list in the /demo/graphs/GRAPHS/ directory. Place a copy of
the Graph Model in the Active Working View by clicking the mouse in the
desired location. Rename the variables of the Graph Instance by selecting
the Graph Instance, clicking the Dynamics Pull-Down Menu and selecting
Object Renamed Variables. Refer to Renaming Variables on page 4-9 for fur-
ther information.
Any Graph Model you create should be placed in the working directory or a
GRAPHS subdirectory of the working directory. Graph Models placed in
either of these two directories will appear in the Available Submodels win-
dow.
Creating a Menu
You can add a menu to a Model using the Option Menu Control Object. The
Option Menu button has an optional label that presents a pull-down menu
when selected. Each entry may be one of three types:
Pushbutton (appears as a string label)
Cascade (appears as a string label with a right arrow indicator
aligned flush-right)
Separator (appears as a horizontal separator line)
To place an Instance of an Option Menu into the Model, click the Palettes
Pull-Down Menu and select Controls. This brings up the Available Palettes
window and displays the Controls Palette. Select the Option Menu control,
as shown in Figure 6-14: on page 6-23.
Option Menu
Control
Click again in the Active Working View where the Option Menu button will
appear in the Model.
The method used to define the menu entries is described in the section
Option Menu in the SL-GMS Control Object Reference Manual.
Control Objects
The easiest method to send messages to a State is to use one of
the Control Objects. The interface to send a message to a State
is already built into the Control Object. 3 All you need to do is
rename the appropriate variables (refer to the section Renaming
Variables on page 4-9).
Each of the Control Objects, with the exception of the Text
Display Box and the Text Display objects, can send a message
to a State. The Control Objects contain two parameters:
msg_statename and msg_strmsg.
Rename msg_statename to the name of the State which will
receive the message. msg_strmsg is the message sent to that
State. The message that is sent to the State is a string that
corresponds to the name of a method defined for that State.
If msg_statename is renamed to NULL (the default), then the
message is sent first to the current State. If the current State
does not contain a method with the same name as that of the
message string, then the State Management System passes the
message string up the State tree until a State is found with that
particular method defined in it. For example, a Model is
displayed using an Instance of the WinModState. The Model
3. Another advantage of Control Objects is that when they are added to a Model,
the objects will display as native controls. In a Windows system, a native control
means a Windows control object. In UNIX, native control generally means
X-based Motif widgets. Control Objects are described in the SL-GMS Control
Objects Reference Manual.
Renamed Variables
msg_statename1 msg_strmsg value2
Parent
Model State1 State Window
Result
name (Super- name2 position
State)
sibling + NULL 0.5 0.5 Window Model State is
created under the
Backplane State
1. A value of NULL is equivalent to "the State that receives the message";
"+" is equivalent to "the direct parent State of the State that receives the
message." However, the NULL value does not need to be included in the
value string, as it is the default.
2. A value of NULL is equivalent to "system generated." However, the
NULL value does not need to be included in the value string, as it is the
default.
GISMOs
A developer can build a GISMO 4 to send a message to a State.
The input dynamics of the GISMO can contain a call to a
user-defined function which contains the necessary function
calls to send a message to a State. The section State Class
Library Interface in the SL-GMS State Class Library Reference
Manual and the chapter General Application Development in the
SL-GMS Enhanced SMS Users Guide describe the functions
used to interface with the SL-GMS State Class Library.
4. The chapter GISMOs in the SL-GMS Reference and SL-GMS GISMO Library in
the SL-GMS Quick Reference describe how the GISMOs in the SL-GMS GISMO
Library are created.
GISMOs
Four types of GISMOs can be used to send data back to an
application: TEXTENTRY ARRAY, TEXTENTRY VAR, SLIDER,
and SCROLLBOX. The chapter GISMOs in the SL-GMS
Reference and SL-GMS GISMO Library in the SL-GMS Quick
Reference describe the different GISMOs, the parameters to
rename, and their corresponding data types.
Dialog Box
A dialog box allows the values of different variables to be set. A
dialog box can contain Text Edit Boxes, sliders, buttons, and
other objects which allow you to set the value of different
variables in an application. Further information is available in the
section Creating an SL-GMS Model dialog box on page 6-38.
UserData
UserData is an arbitrary string that is attached to an object.
When the object is selected at run time, the gmsQUserData( )
function is used in the application to obtain the UserData string
of the object. The application can use the UserData string in any
manner. The section UserData Property Dialog on page 5-30
describes how to attach the UserData string to an object.
UserWord
A UserWord is an integer that is attached to an object. When the
object is selected at run time, the gmsQUserWord( ) function is
used in the application to obtain the UserWord of the object. The
application can use the UserWord integer in any manner. The
section UserWord Property Dialog on page 5-30 describes how
to attach a UserWord to an object.
The following tables illustrate the variables that are renamed in the Button
object to send a "new_model_window" message to the WinModState. This
example opens a new window which displays the sibling Model.
Renamed Variables
msg_statename
1 msg_strmsg value2
5. The process for creating a Radio Button group is the same in a Windows system
but the concept of a "parent" container is not applicable.
button and to the container that groups them. Once this is done, the radio
buttons exhibit appropriate behavior automatically.
Open the Buttons Palette from the Palettes Pull-Down Menu and
copy three Radio Button Objects to the Active Working View.
Enlarge the container so that it surrounds the radio buttons.
For a Motif platform, there is no need to space the Radio Buttons
evenly because Motif automatically arranges items grouped
within a Container. Since the Column Container was used in
Step 1, these Radio Buttons automatically arrange into a column
(once the proper rename variables have been assigned to all of
the Control Objects). Note that had a Row Container been
chosen in Step 1, Motif would have placed the Radio Buttons
into a row.
1. Select all four control objects (the container and the three
radio buttons).
2. Click the Dynamics Pull-Down Menu and select Object
Renamed Variables. The Object Renamed Variables window is
displayed.
3. Step through the Select List using the Loop Control icons in
the Main Menu bar until the container object is selected. Its
variables now appear in the Object Renamed Variables win-
dow.
4. Assign a string value to the control_name variable. This value
will correspond to the parent_name variable for each of the
three Radio Buttons. This example assigns the value
my_container.
5. Click Apply to apply the change.
6. Step through the Select List using the Loop Control icons in
the Main Menu bar until one of the Radio Button objects is
selected. Its variables now appear in the Object Renamed
Variables window.
7. Assign my_container to the parent_name variable of the
Radio Button.
8. Click Apply to apply the change. Repeat the last three steps
for the remaining Radio Buttons.
Values for
Display/edit
Buttons for
apply/reset/cancel
There are two basic parts to a dialog box, as shown in Figure 6-21:. The
first part allows the values of different variables to be viewed and modified.
The second part contains three buttons that send messages to the Dia-
logState: to "apply" the value changes to the application variables; to
"reset" the displayed values to what they were before any change was
made; and to "cancel" (close) the dialog box. The physical arrangement of
the values for display/edit and the buttons do not need to be the same as
those shown in Figure 6-21:.
NOTE: The first object in the Model list is the background object.
background
color
width
height
NOTE: The size of the Model is set to the size of the background object.
Modify the Model width and height values (i.e., the background
object width and height) shown in Figure 6-22:. If the background
color of the dialog box is to be different from that of the default,
edit the default Background Color index and enter the new color
index.
When all of the appropriate Model properties have been edited,6
click the Apply button in the Model Properties window. When the
Apply button is clicked, SL-GMSDraw displays a rectangle
showing the new Model width and height in the default Model
window. Figure 6-23: on page 6-41 illustrates a Model width and
height of 40 and 30, respectively. Only the top and right side of
the rectangle are visible in Figure 6-23: on page 6-41 because
the left bottom corner of the Model is set to (0,0). The dialog box
6. The section Setting Model Properties on page 3-26 describes the different Model
properties in further detail.
30
40
NOTE: Selecting the Apply as Default button instead of the Apply button
applies the background color, and on/off settings to all
subsequent Models built within the current editing session. The
background object dimensions are also applied to all subsequent
Models built using the New with Background option of the File
Pull-Down Menu within the current editing session.
There is an easy way to ensure that the dialog box Model contains all of
the objects that it should. Click the Options Pull-Down Menu and select
User Preferences. This displays the User Preferences window. Enable
the Size Window to Model option and click Apply. Next, save the Model,
close the Model, and then reopen the Model. SL-GMSDraw redisplays
the Model in a window sized to 40 x 30, without displaying the rest of
the default area.
This must
be turned
on as shown
Text
Objects
(read-only)
The above example uses the Text Tool in the Create Tools panel
to create the text labels "Name", "Description",
"% Open", "Alarm Setpoint", and "Open/Close Valve". Text
Display Control Objects could also have been used. These are
read-only.
Text Display Box Control Objects are used to display the value of
the valve name and description variables. These are also
read-only and the value is output as a string.
The Text Display Box Control Object is found in the "c1_txtflds"
palette window, as shown in Figure 6-26:.
Select "String"
Click the Text Display Box that displays a "String" and place two
Instances into the Active Working View one Instance to the
right of the "Name" Text and one to the right of the "Description"
Text. Rename the display_expr parameter for these two
Instances to the variable names set by the application. For this
example, the parameters have been renamed, as shown in the
following table.
Scale Control Objects are used to display the %open and alarm
setpoint values. These objects display the current value and also
allow the value to be changed. Text Edit Box Control Objects can
also be used. To allow read/write capability, rename both the
set_variable and display_expr parameters to application
variables. The display_expr parameter determines the position of
the Scale indicator and the value displayed. When the scale
indicator is moved to change the value, the set_variable renamed
variable will set to the new value. (The value of the variable is
sent to the application when the Apply button is clicked.) If only
the display_expr parameter is renamed to an application
variable, the scale indicator will be read-only.
For this example, the display_expr and set_variable parameters
are renamed, as shown below.
Renamed Variables
Scale Object
display_expr set_variable
% Open "ValvePctopen" "ValvePctopen"
Alarm Setpoint "ValveSetpt" "ValveSetpt"
Parameter
Description
Name
min_value Minimum value of the Scale
max_value Maximum value of the Scale
decimal_point Number of places to the right of the decimal point
jump_value Fraction of the range (by default 1/10 of range)
numticks Number of tick marks
orientation1 Vertical or horizontal with minimum and maximum
at either end
1. The orientation variable is already renamed (i.e., you do not need
to rename it) for all Scale objects on the "c1_scales" Palette.
Sends the
"value"
parameter
as an integer
The following table shows the renamed variables for the three
buttons.
Renamed Variables
Button msg_statenam
msg_strmsg value
e1
Apply NULL "apply" NULL
Reset NULL "reset" NULL
Cancel NULL "cancel" NULL
1. Renaming the msg_statename variable to NULL indicates that the
message should be sent to the current State, which in this example is
the WinModState that is displaying the dialog box Model. However,
since the WinModState does not contain an apply, reset, or cancel
method, the message will be passed up to the DialogState which does
contain these methods. Since NULL is the default value for
msg_statename, it does not actually need to be renamed.
Apply Transformations
Each time an object is moved, rotated, or scaled in the Model, a transfor-
mation object is attached to the object. The following example shows the
portion of the ".g" file for a polygon object that has been moved and scaled.
poly \
11.1 65.9 9.29 53.8 21.7 52.7 \
29.8 57.4 25. 63.0
transformation . move 16.5 -48.9
object
. scale 16.5 -48.9 1.46 1.75
Each time this polygon is drawn on the screen, the system must compute
each of the transformations one for the move and one for the scale.
Selecting the Apply Transform option of the Object Pull-Down Menu com-
bines transformations accumulated during editing and applies them to the
Points defining graphical objects. This speeds up the display of objects and
reduces the memory required to store them.
Here is the same polygon object after Apply Transform is done. The trans-
formation objects for the move and scale operations have been applied to
the Points defining the polygon.
poly \
32.7 66.9 30.0 45.7 48.2 43.8 \
60.0 52.0 53.0 61.8
The M2 Filer
To achieve maximum possible screen-load performance of a top-level Mod-
el at run time, 7 the M2 filer is provided. The M2 filer provides a set of func-
tions to load and save Models in the ".m2" or contiguous filer format.
In ".m1" files, the format of the information stored is independent of the
internal memory representation of the data at runtime. Each graphical ele-
ment is stored as a separate entity; therefore, SL-GMS must parse and
reconstruct the elements as the file is read into memory.
The ".m2" format, on the other hand, contains an exact memory image of
the Model object. Using the M2 filer, the entire Model can be loaded with
one quick read, without having to parse and reconnect it, as with the nor-
mal ".m1" filer.
Two utilities convert files to the ".m2" format: gm2 and m1m2.
The gm2 utility converts ".g" files to ".m2" files.
gm2 <modelname>.g
If there is a change to the ".g" or ".m1" version of a Model, the ".m2" for-
matted file must be recreated using the appropriate utility.
By default, the State Management System first searches for "<model-
name>.m2", followed by "<modelname>.m1". 8
It is a good practice to free ".m2" Models when they are no longer needed,
to make the best use of time and memory.
8. Model search behavior for a given State can be changed using the
gmsStM2Flag( ) function, described in the section State miscellaneous in the
SL-GMS Function Reference Manual.
Testing a Model
Using Preview
SL-GMSDraw is able to preview the dynamic behavior of a Model by apply-
ing data from a file to the objects in the Model. The data specification file
(".dat") is created with the same name as that of the Model, along with the
suffix ".dat". (For example, if the Model is named "demo1.m1", the ".dat"
file will be named "demo1.dat").
To create or edit a ".dat" file during a session, the Edit Data File window
must be invoked. This is done by clicking the Dynamics Pull-Down Menu
and selecting the Edit Data File option. Text which creates or modifies the
".dat" file can then be entered in this window. If a data file already exists for
this Model, that data file will automatically display in the Edit Data File win-
dow. Clicking the Save File button will write the file to disk. Clicking the
Open File button will display a dialog window which allows entry of the
name of a data file.
A ".dat" file contains variable name and value pairs, separated by a space,
one pair per line.
volts1 120
The preview facility also recognizes other keywords in data files. The key-
words can be used to automatically generate trigonometric, incremental, or
random values for dynamic variables. The data format for a ".dat" file is
specified in the chapter Dynamics Reference in the SL-GMS Quick Refer-
ence.
The Model must be saved if it has been edited before the dynamics can be
exercised. In addition, while the Model is being previewed, it cannot be
edited or saved. After previewing, the Model is automatically reloaded so
that any changes made by the dynamic updating are discarded.
To preview the current Model, click the Dynamics Pull-Down Menu and
select Preview Options. This will display the Preview Options window, shown
in Figure 6-29:.
9. If a "<modelname>.dat" file does not exist, a warning message will display and
previewing will not occur.
Using SL-GMSRun
SL-GMSRun is useful for testing user-developed Models, including the dis-
play of object dynamics. SL-GMSRun is particularly useful for prototyping
screens in the early stages of system development when the critical deci-
sions are being made about the user interface.
Without any programming, SL-GMSRun can be invoked with different com-
mand line options to:
preview a Model
select a Model at run time and preview
preview a Model and utilize zoom and pan capabilities
preview dynamic update for a Model using a "<modelname>.dat"
file
generate a PostScript file of a Model
use a command file to generate a State tree
access all of the above capabilities via a control panel
The SL-GMS Enhanced State Management provides a description of the
features of the SL-GMSRun utility.
Select the control to be inserted and select OK. When the control is select-
ed, it can be moved or resized using the selection handles. The control is
not active at this point; it can be activated by testing the Model using the
Preview feature (refer to Testing a Model on page 6-52).