addSymbol()
Adds a panel reference in a panel or layout at a later time during run time. To suppress the Initialize scripts of the reference the function createSymbol() can be used instead.
Synopsis
int addSymbol(shape panel | (string moduleName, string panelName), string
fileName, string refName, dyn_string subst, int x, int y, float angle, float
scx, float scy[, string ewoName]);
Vertical or Horizontal Layout
int addSymbol(shape panel | (string moduleName, string panelName), string
fileName, string refName, int index, string layout, dyn_string subst =
makeDynString());
Grid Layout
int addSymbol(shape panel | (string moduleName, string panelName), string
fileName, string refName, int row, int column, string layout, int rowspan = 1,
int columnspan = 1, dyn_string subst = makeDynString());
Table Header - Vertical alignment
addSymbol(shape panel | (string moduleName, string panelName),
string fileName, string symbolName, mapping options);
Parameter
Parameter | Meaning |
---|---|
panel | A shape variable pointing to a panel. Either this parameter or the combination of moduleName and panelName can be used to define the target. |
moduleName, panelName |
Module and panel name of the target as string. In order to add an object in a tab, both parameters have to be replaced by the functions myModuleName() and myPanelName(). If an empty string "" is used instead of myPanelName(), the tab is used as this panel. |
fileName | File name under which the reference is stored. |
refName | Name of the reference, that is unique (Module Name + Panel Name) with which the reference can be addressed, for example from a Control script. |
symbolName |
A symbol is shown in a shape that is specified via the mapping options - see below. |
options |
The mapping can optionally contain the following keys (string) (data type of the value in brackets): "dollars" (dyn_string) ... dollar parameter "targetShape" (string) ... name of the shape in which the symbol should be displayed (currently only a maps or table shape is possible). "columnHeader" (string) ... only if a table shape is used as
targetShape, the name of the column is specified here, in whose
header area the symbol will be displayed. For an example of
table header - vertical alignment, see chapter addSymbol() - Example for vertical Alignment of a Table Column.
Anmerkung: If an icon is used in a column
header, the usual column name/icon is not displayed. If the
column name is wrong, -1 is returned. In case of incorrect
data (e.g. wrong column) the panel reference still exists in
the panel, but its scripts may not be started and will not
be displayed correctly in the targetShape.
|
subst | Definition of $ parameters (similar to opening a panel). |
x, y | Are the coordinates at which the reference refName is displayed in the panel panelName. |
angle | Relative rotation around the reference point of the panel reference to be displayed. |
scx, scy | Scaling with center in the reference point of the panel reference to be displayed. |
ewoName | Name of the EWO to which shapes should be added. Currently this is supported by the GisViewer.ewo only. |
index | The position inside of the layout to which the symbol should be added. The index count is started at 0. |
layout | Name of the layout object to which the object should be placed. |
row | The horizontal position inside of the grid to which the symbol should be added. The row index count is started at 0. |
column | The vertical position inside of the grid to which the symbol should be added. The column index count is started at 0. |
rowspan | The number of horizontal grid areas the symbol should use. (optional) |
columnspan | The number of vertical grid areas the symbol should use. (optional) |
Return Value
Returns 0, in the event of a failure returns -1.
Errors
Missing arguments in the function.
Description
This function can be used to insert panel references in a panel or objects into a layout at a later date during run time. All symbols that are loaded later are removed when the panel is closed or with the function removeSymbol().
When using the function addSymbol(), the active element which starts the addSymbol() command, looses the focus. The focus switches to the last inserted element.
For example: a cursor moves up or down in a combo box, and each entry inserts an element using addSymbol(). This works only once, because the cursor switches to the inserted element.
For keeping the focus on the object, you set the focus by using setInputFocus() back to the object:
setInputFocus (myModuleName(), myPanelName(), this.name);
If an object is loaded into a reference via the addSymbol() function and an acknowledgement was configured for this object, the acknowledgement data point is not loaded into the panel when configuring sum alerts via the +panel button. The acknowledgement data point is not loaded since the addSymbol() is called first at runtime and the data point is not available yet.
When adding a reference into a horizontal or vertical layout the reference is appended after the stated position whereas for a grid layout the reference is added to the stated position. In either case the layout is extended with the stated position if the stated position did not exist before.
When adding a reference it is assigned to the panel and correspondingly functions called within the reference that affect a panel also are applied to the container panel, e.g. PanelOff() within the reference will close the whole panel.
There is no hierarchy of panel references that have been added using addSymbol().
Shapes inside panels loaded with addSymbol() can be addressed as
panelName.shapeName
. However, additional levels of nesting are
not possible (e.g.: panelNameA.panelNameB.shapeName
will not work).
The shapes can be addressed directly, in which case shapes with the same name in
different instances of a panel cannot be distinguished.
Inserts "pump" in the top left corner (0,0) of the "overview" panel in the "gedi" module.
main()
{
addSymbol("gedi","overview","pump","p1","",0,0,0,1,1);
}
Adds the reference "Reference1" containing two graphics elements to the panel "Ellipse" and passes the colors for the objects as dollar parameters "$p1:"+"blue","$p2:"+"green". In the first example the panel "Ellipse.pnl" is opened in the module "Ellipse". In the second example the reference is added to the panel "Ellipse.pnl" using addSymbol().
In the reference "Reference1", set the colors of the graphics objects using the dollar parameters <ShapeName>.backCol($p1); , for example, ELLIPSE1.backCol($p1);
main()
{
ModuleOnWithPanel("Ellipse",50,50,70,70,2,2,"None","Ellipse.pnl",
"Ellipse",makeDynString());
}
main()
{
addSymbol("Ellipse", "Ellipse", "Referenz1.pnl", "Ref1",
makeDynString("$p1:"+"blue","$p2:"+"green"), 50, 50, 0, 1, 1);
}
Assignment
Graphics function
Availability
UI