CREATE_WIDGET
Has two variants. One variant creates a heirarchy of widgets (as
defined in an XUI Resource Manager database) and returns the topmost
widget. The other variant creates and returns a widget using the
intrinsics or an XUI Toolkit low-level creation routine.
Syntax
widget := CREATE_WIDGET (widget_class, widget_name,
{parent_widget | SCREEN}
[, program_source [, closure
[, widget_arguments]]])
Creates the widget instance you specify, using the intrinsics of an XUI
Toolkit low-level creation routine.
widget := CREATE_WIDGET (resource_mngr_identifier_name,
resource_mngr_hierarchy_id,
{parent_widget | SCREEN}
[, program_source [, closure
[, widget_arguments]]])
Creates and returns a widget instance. This variant creates an entire
hierarchy of widgets (as defined in an XUI Resource Manager database)
and returns the topmost widget. All of the children of the returned
widget are also created. The topmost widget is not managed. If you
specify one or more callback arguments in your User Interface Language
(UIL) file, specify either the routine TPU$WIDGET_INTEGER_CALLBACK or
the routine TPU$WIDGET_STRING_CALLBACK.
Parameters
widget_class The integer returned by
DEFINE_WIDGET_CLASS that specified the
class of widget to be created.
widget_name A string that is the name to be given to
the widget.
parent_widget The widget that is to be the parent of
the newly created widget. Specify the
third parameter to CREATE_WIDGET as a
widget if the parent for the
newly-created widget already exists and
is not VAXTPU's main window widget.
SCREEN A keyword indicating that the newly
created widget is to be the child of
VAXTPU's main window widget.
program_source A string, buffer, range, learn or
program specifying the interface
callback. This code is executed when
the widget performs a callback to
VAXTPU.
closure The closure value can be any string or
integer value you want. VAXTPU simply
passes the value to the application when
the widget performs a callback to
VAXTPU.
widget_arguments A series of pairs of resource names and
resource values, passed as arrays or as
string/value pairs. For more
information on specifying this
parameter, see the documentation for
DECwindows VAXTPU.
resource_mngr_identifier_name A case-sensitive string that is the name
assigned to the widget in the UIL file
defining the widget.
resource_mngr_hierarchy_id The hierarchy identifier returned by the
built-in SET (DRM_HIERARCHY). This
identifier is passed to the XUI Resource
Manager, which uses the identifier to
find the resource name in the database.
Comments
The case of the widget's name that you specify as a parameter to
CREATE_WIDGET must be the same as the case of a widget's name in the
User Interface Definition (UID) file, if there is an accompanying UID
file.
Example
The following procedure creates a modal dialog box widget and maps the
widget to the VAXTPU screen, if the procedure "user_callback_routine"
is a valid callback routine and if there is an accompanying UIL file
defining the modal dialog box. To see such a UIL file, refer to the
documentation for DECwindows VAXTPU.
PROCEDURE user_create_dialog_box
LOCAL example_widget,
example_widget_name,
example_widget_hierarchy;
example_hierarchy := SET (DRM_HIERARCHY, "mynode$dua0:[smith]example");
example_widget_name := "EXAMPLE_BOX"; ! The widget EXAMPLE_BOX is
! defined in the UIL file.
IF GET_INFO (example_widget, "type") <> WIDGET
THEN
example_widget := CREATE_WIDGET (example_widget_name,
example_hierarchy,
SCREEN, "user_callback_routine");
ENDIF;
MANAGE_WIDGET (example_widget);
RETURN (TRUE);
ENDPROCEDURE;
To see an example of how to use the variant of CREATE_WIDGET that calls
the XUI Toolkit low-level creation routine, see the DECwindows VAXTPU
documentation.