ParameterEdit
| Description: | Draws an interface to allow the user to choose how to edit a parameter. Used in tag widgets. |
| Returns: | Self |
Usage: ![]() |
Steady State only. |
| Function Groups: | Graphics, Variable |
| Related to: | NumericParameterEdit | ParameterSet |
Format: ![]() |
\ParameterEdit(ParmVal, ParmPtr, Enable, Title, Modules, Contexts, Parameters, TitleWidth, StartIndex, PtrWaitClose, DialogRoot[, FocusID, Description]) |
| Parameters: |
| ParmVal |
| The variable to be changed. Metadata indicating the revision number (always 0) must be attached. |
| ParmPtr |
| Code Pointer to the parameter value so the ParameterEdit modules can dissect and categorize it |
| Enable |
| Flag - TRUE to enable the drawing of this parameter edit module. |
| Title |
| Title for this parameter |
| Modules |
| Array of module names (snap-ins such as ParmEditColor, etc.) for parameter editing |
| Contexts |
| No longer used. Should be set to INVALID. Context is always Code. |
| Parameters |
| Parameters for the parameter edit modules. A multidimensional array, where each sub-array is a parameter list for each of the entries in the Modules array. |
| TitleWidth |
| Width allotted for the title. If Invalid, uses a standard size (160px). |
| StartIndex |
| Starting Index for Parm Edit Modules |
| PtrWaitClose |
| Set to true to tell caller to wait to close |
| DialogRoot |
| Calling dialog window |
| FocusID |
| Optional focus ID value from 0 to 32767 . Defaults to 1 if the control is enabled, otherwise 0. The parameter edit control will have two parts and thus use two ID values: the one specified (or the default) and one greater than that. |
| Description |
| Optional text, describing this parameter |
| Comments: | Metadata indicating the version number must be added to the ParmVal parameter. For example,{ Set up variables for ParameterEdit }
MetaData(Value, "Revision") = 0;Do not attempt to modify parameter values directly. Rather, set this to a copy of the Parms array value and then reassign this when updated. For example: { In the init state: }
MyPanelParm = MyOldPanelParm = Parms[#MyParm];
{ In the main panel: }
ParameterEdit(MyPanelParm, ParmDefs[#MyParm], ...);
If MyPanelParm != MyOldPanelParm || Valid(MyPanelParm) != Valid(MyOldPanelParm);
[
MyOldPanelParm = Parms[#MyParm] = RootValue(MyPanelParm);
]Wrappers such as NumericParameterEdit exist to make this function easier to use. See: ParameterEdit Snap-ins |
Example:
GUITransform(0, 1, 1, 0 { Unit Outline },
1 - (Left) { Left Scaling },
Top + PickValid(Height, 0) { Bottom Scaling },
Right { Right Scaling },
1 - (Top + TitleBarHeight) { Top Scaling },
1 { Overall Scaling },
0, 0 { Trajectory, Rotation },
PickValid(DrawOptions, 1), 0 { Visibility, Reserved },
0, 0, 0 { Selectability },
ParmEditObj = \ParameterEdit(
TextHAlign { Parameter Value },
CodePtr { Pointer to Parm Code },
PickValid(DrawOptions, 1) { Enable Flag },
\GetPhrase(PickValid(ParmLabel, \HorizAlignmentLabel))
{ Title },
Modules { Array of Parm Edit Modules },
Contexts { Contexts for Edit Modules },
Parameters { Parameters for Edit Modules},
Invalid { Title Width },
Invalid { Start Index },
PtrWaitClose { Wait to close },
DialogRoot { Calling dialog window }
));
