Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

VAXTPU CREATE_WIDGET — VMS 5.2

 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.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026