User Interface: Dialogs
This section describes the User Interface (UI) components available in Pro/TOOLKIT for Pro/ENGINEER Wildfire 3.0 onwards. The following sections introduce each of the dialog component types, operations and callbacks available for each component, and the methods and techniques that can be used to instantiate and show customized user interface dialogs.
Introduction
This chapter includes documentation for each UI component. The documentation is divided into the following sections:
•  Attributes—Defines the names and functions that affect attributes on the UI component. Each component supports its own set of unique attributes; however, some attributes are supported by more than one component. Because of the fact that attributes typically work on more than one component, detailed documentation for the attributes is included in a master table at the end of this chapter.
•  Operations—Defines the component-specific functions that make more detailed modifications to the components.
•  Actions—Defines the functions that register action callbacks on a component.
Note
From Creo 3.0 onward, a new tool, Creo UI Editor, allows you to interactively create and edit dialog boxes for Creo Object TOOLKIT C++ and Creo Object TOOLKIT Java customizations. It provides a library of graphical user interface components such as buttons, lists, and so on. The new framework, User Interface Foundation Classes (UIFC), provides enhanced attributes and actions for the user interface components. The UIFC framework is available in Creo Object TOOLKIT C++ and Creo Object TOOLKIT Java. You can generate callbacks in Creo Object TOOLKIT C++ or Creo Object TOOLKIT Java. Refer to the Creo UI Editor User’s Guide, for more information.
About Creo Toolkit Support for User Interface
Creo TOOLKIT allows applications to create dialogs and dashboards with the same look and feel as those in Creo Parametric. Creo TOOLKIT users can accomplish this task by following the following steps:
•  Establish the main UI container object. This is either a dialog or a dashboard. Optionally, this can be read from a resource file to prepopulate the container with specific components.
•  Add components to the container (if they do not already exist).
•  Set attributes on components in the container.
•  Execute operations on components in the container. Operations also modify the component, but typically make more detailed or sophisticated changes than setting an individual attribute.
•  Establish action function callbacks on components in the container. Action functions are called when the user interacts with the component in some way. They allow the application to react to user events.
•  Show the dialog or dashboard.
•  Based on user actions, eventually you will need to close the container.
•  "Destroy" the container to free up the resources it uses.
Note
The functions described in this section do not support using Creo TOOLKIT to modify standard Creo Parametric dialogs.
The UI function library is integral to Creo Parametric, not the Creo TOOLKIT libraries; thus, the library can only be used while a Creo Parametric session is active. The library cannot be used to display user interfaces when the application is not connected to Creo Parametric running interactively.
UI Components
The behavior and uses of the different component types is introduced briefly below, and described in more detail in later sections. The component types are:
•  Tab—part of a dialog that can contain several groups of components, formatted such that only one group is visible at a time. A Tab component must always contain a set of Layout components; each layout contains the components that must displayed at one time. The Figure - ‘All Components Dialog’ shows a decorated Tab which displays a handle on each layout to allow the user to select which layout is visible.
•  Layout—an area of a dialog which can contain any number of other dialog components. A Layout can be used to better control the relative position of components in a dialog, by allowing the grids in different parts of the dialog to adopt unaligned rows or columns. A layout can also be used inside a Tab component.
•  Check Button—a button which toggles between a TRUE and FALSE state each time the user selects it.
•  Drawing Area—a component which allows points, lines, shapes, images and text (including symbols) to be drawn in a variety of colors.
•  Input Panel—a box containing a single line of text. The Input Panel may be set to expect text in different formats, for example a real number or an integer. The Input Panel may also be set to be read-only, when it is used by the application to show information to the user.
•  Label—a text string used to label the other components.
•  List—a box containing a list of text strings, which can be selected by the user. Users can set the List to allow selection of only one item at a time, or more than one.
•  Option Menu—a single-line box which allows selection of a single text string from a list of options. The selection is done using a pull-down menu, which appears when a button next to the text box is selected.
•  Progress Bar—a component which shows the progress of a time-consuming action.
•  Push Button—a button which performs some action when it is selected. It does not contain any remembered state. Push Buttons appear on almost every dialog as OK and Cancel buttons.
•  Radio Group—a set of buttons which individually act like check buttons, but which are connected to each other such that only one can be set to TRUE at any time. Selecting one button sets that button and unsets all others in the group.
•  Separator—a separator is for cosmetic purposes only, and helps to visually divide components into logical groups.
•  Slider—a device which allows the user to set a value in a predefined range by moving a handle with the mouse. Use sliders in situations where an exact value may not be needed. A slider should usually be tied programmatically with a read-only input panel to show the current value.
•  Spin-Box—a box containing a single numerical value that can be directly edited. The spin box also has up- and down-arrow buttons for increasing or decreasing the value in steps. A single click increments or decrements by a single step. Holding a button down makes the value change in repeated steps, first small steps and then large steps. The step sizes can be set for each spin box.
•  Table—a set of tabulated rows and columns containing text and other components.
•  Text Area—a box containing unformatted text containing any number of lines. It may be set to be read-only and used by the application to output information to the user.
•  Thumbwheel—a thumbwheel is similar to slider but provides finer control over a wider range of values. Unlike the slider, it does not provide a visual indication of the current value.
•  Tree—a tree contains nodes which are structured and displayed in a hierarchical formation.
Naming Convention for UI Components
The valid characters for naming UI components are:
•  A to Z (uppercase)
•  a to z (lowercase)
•  0 to 9
•  Underscore( _ )
•  Hypen(-)
Using any other characters in UI component names may result in an error.
Menubars and Menubar Components
A dialog can also contain its own menubar. These menubars support cascading menus.
See Example 15: Resource File for Dialog with Menubar for resource file code for this example.
The following components are used to define menu bars and their dependent menus:
•  Menubar—The menubar itself is just a container for the menu panes. A dialog can contain only one menubar, and it must contain at least one other component at the top level.
•  MenuPane—A menu pane describes a button on a menubar and also acts as a container for the components on the pull-down menu that appears when the user selects the menu pane button.
•  Cascade button—A button on a pull-down menu that contains its own menupane. Selecting the cascade button pulls out the menu described by the menupane.
The following components described in the previous section can also be added to menu panes, but in this case their appearance is automatically modified to suit the style of pull-down menus:
•  Check Button—This looks like a regular menu button, but in fact toggles its state. When TRUE, it shows a check mark next to the label.
•  Push Button—When added to a menu pane a pushbutton represents a command that causes some action.
•  Radio Group—A radio group on a menu pane behaves exactly as it would in the body of a dialog, although the appearance is rather different, as shown in the picture above.
•  Separator—A separator can be used to group buttons on a menu pane.
Dialog Attributes
Attribute Name
Get Function
Set Function(s)
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Dialog Operations
    Functions Introduced
    The function ProUIDialogCreate() loads a dialog from a resource file into memory. It can also create an empty dialog by passing a NULL value for the resource file name. The input arguments follow:
    •  session_dialog_name—Name of the dialog.
    •  resource—Name of the resource file.
    Note
    •  The function ProUIDialogCreate() requires that the resource file name input matches the case of the actual resource file.
    •  The dialog name specified in the resource file should match both the input argument resource and the name of the resource file without adding the suffix name.
    The following points must be noted while developing Creo TOOLKIT applications:
    •  Resource names of dialogs resources must not coincide with the resources that are defined by PTC.
    •  Dialog instance or session names must not coincide with the instance or session names that are defined by PTC.
    •  You can ensure uniqueness in the dialog resource and session names by adding a prefix that specifies the name of the Creo TOOLKIT application.
    Use the function ProUIDialogActivate() to display the dialog on the screen and makes it active by setting the key input focus on it. This function returns only after the function ProUIDialogExit() has been called on the same dialog.
    Use the function ProUIDialogComponentsCollect() to return the names of components in this dialog. This function can also filter components by their type.
    Note
    Refer to the section UI Components for the predefined list of component types.
    Use the function ProUIDialogMinimumsizeGet() to get the minimum size of the dialog in pixels.
    Use the function ProUIDialogSizeGet() to get the size of the dialog.
    Use the function ProUIDialogPositionReset() to reset the dialog in its previous screen position.
    Use the function ProUIDialogReconfigure() to reset the size and position of the dialog.
    Use the function ProUIDialogScreenpositionGet() get the screen position in pixels of the dialog component.
    Use the function ProUIDialogAboveactivewindowGet() to checks if the dialog is always going to be above the Creo Parametric dialogs currently active in the Creo Parametric window.
    Use the function ProUIDialogAboveactivewindowSet() to set focus of the dialog above any dialog in the currently active Creo Parametric window.
    Note
    Using the ProUIDialogAboveactivewindowSet() allows Creo TOOLKIT applications to always stay in focus in the Creo Parametric window during opening and closing events of Creo Parametric.
    Use the ProUIDialogDestroy() to remove the dialog instance from memory as it is not automatically removed.
    Use the function ProUIDialogShow() to show a secondary window when the primary window is being restored.
    Use the function ProUIDialogHide() to iconify a secondary window when the primary window is being minimized.
    Use the function ProUIDialogExit() to terminate the activation of the named dialog window. The function causes a return from the call to ProUIDialogActivate() that make it active.
    Use the function ProUIDialogDestroy() to remove the dialog from the memory.
    You can set a timer to schedule an action to be executed later in Creo Parametric session. The function ProUITimerCreate() creates a timer and registers the action. If you call the function ProUITimerCreate() with timer_name that already exists in the session, it returns an error. The input arguments for the function are:
    •  action—Specifies call to the action callback function ProUITimerAction(). You can invoke the action callback only once from the function ProUIDialogTimerStart(). To run the action again, you must call ProUIDialogTimerStart() again.
    •  appdata—Specifies the data that will be passed to the action callback.
    •  timer_name—Specifies the name of the timer.
    The function returns the ID of the timer, which will be used to start and stop the timer.
    Use the function ProUIDialogTimerStart() to start the timer. The action is executed after the specified interval of time. The input arguments are:
    •  dialog—Specifies the name of the dialog box. You can invoke only one timer at a time for a dialog box.
    •  timer_id—Specifies the ID of the timer, which was returned by the function ProUITimerCreate().
    •  duration—Specifies the time interval in milliseconds after which the action must be executed. The minimum value is set to 500 milliseconds.
    •  write_in_trail_file—Specifies if the timer action must be recorded in a trail file.
    The function ProUIDialogTimerStop() stops the timer and the action will not be executed. Specify the ID of the timer as the input argument.
    The function ProUITimerDestroy() removes the specified timer, which was created using the function ProUITimerCreate(). If the timer to be removed has already been started, it is first stopped, and then removed. Pass the ID of the timer as the input argument. After the timer is removed, its name is available for use again. You can specify the name to a new timer.
    Note
    You must use the functions ProUITimerCreate(), ProUIDialogTimerStart(), ProUIDialogTimerStop(), and ProUITimerDestroy() only in DLL mode.
    The function ProUIDialogMenupaneAdd() allows to create a menupane. After creating a menupane, you can add it to a cascade button in the menubar by using the ProUICascadebuttonPopupmenuSet() function. To add it directly to the menubar, use the ProUIMenubarNamesSet(). The input arguments for the function are:
    •  dialog—Specifies the name of the dialog box.
    •  name—Name of the menupane to be added.
    Example 1: Source for Dialog with Text Question, OK and Cancel Buttons
    The example in the file UgUIYesnoDialog.c located at <creo_toolkit_loadpoint>/protk_appls/pt_userguide/ptu_ui, shows the source code that uses this dialog.
    Adding and Removing Components
    Creo TOOLKIT provides functions to add components to a dialog. These functions accept an argument of type ProUIGridopts that determines the location and initial placement details of the component. In addition, a number of grid-specific attributes control the position and resizing of the newly created component within the grid of the Dialog.
    These grid-specific attributes are listed as follows:
    Attribute
    Default Value
    Description
    column
    PRO_UI_INSERT_NEW_COLUMN
    The column of the grid into which the component should be added. A value of PRO_UI_INSERT_NEW_COLUMN indicates that the component should be added to a newly created column to the left of any existing columns.
    row
    PRO_UI_INSERT_NEW_ROW
    The row of the grid into which the component should be added. A value of PRO_UI_INSERT_NEW_ROW indicates that the component should be added to a newly created row to the left of any existing rows.
    horz_cells
    1
    The number of cells which the component should occupy in the existing grid in a horizontal direction.
    vert_cells
    1
    The number of cells which the component should occupy in the existing grid in a vertical direction.
    horz_resize
    PRO_B_TRUE
    A flag indicating whether the grid cell containing the component should resize horizontally.
    vert_resize
    PRO_B_TRUE
    A flag indicating whether the grid cell containing the component should resize vertically.
    attach_top
    PRO_B_TRUE
    Attach the item to the top neighbor
    attach_bottom
    PRO_B_TRUE
    Attach the item to the bottom neighbor
    attach_left
    PRO_B_TRUE
    Attach the item to the left neighbor
    attach_right
    PRO_B_TRUE
    Attach the item to the right neighbor
    top_offset
    PRO_UI_USE_DEVICE_OFFSET
    Offset to the top neighbor. The default value PRO_UI_USE_DEVICE_OFFSET inherits the offset from the owning dialog.
    bottom_offset
    PRO_UI_USE_DEVICE_OFFSET
    Offset to the bottom neighbor. The default value PRO_UI_USE_DEVICE_OFFSET inherits the offset from the owning dialog.
    left_offset
    PRO_UI_USE_DEVICE_OFFSET
    Offset to the left neighbor. The default value PRO_UI_USE_DEVICE_OFFSET inherits the offset from the owning dialog.
    right_offset
    PRO_UI_USE_DEVICE_OFFSET
    Offset to the right neighbor. The default value PRO_UI_USE_DEVICE_OFFSET inherits the offset from the owning dialog.
    Note
    Components that are added to a dialog after it is displayed do not permit modification of all component attributes. When creating and displaying a dialog, it is preferable to use these functions to add the components before activating the dialog. If a component might be needed but should not be shown initially, add it before activation and set its .Visible attribute to false.
    Dialog Action Callbacks
    Functions Introduced
    Use the function ProUIDialogPremanagenotifyActionSet() to set the function to be called when the dialog is about to be managed. For example, when a dialog box is displayed or redisplayed.
    Use the function ProUIDialogPostmanagenotifyActionSet() to set the function to be called when the dialog has just been managed. For example, when a dialog box is displayed.
    Use the function ProUIDialogDestroynotifyActionSet() to set the function to be called when the dialog is about to be destroyed.
    Use the function ProUIDialogCloseActionSet() to set the action function to be called when the user attempts to close the dialog using the window close icon in the upper right corner of the dialog.
    Use the function ProUIDialogActivateActionSet() to set the function to be called when the dialog has just been activated and made the current foreground window. The action function for a given dialog can be called
    •  The dialog must not be the current foreground application.
    •  The dialog (when it is not the foreground application) is activated using one of the following methods:
      When the user clicks on the taskbar button for the given dialog.
      When the user switches to the given dialog using Alt+Tab.
      When the user clicks within the given dialog.
    Use the function ProUIDialogAppActionSet() to set a function to be called only once, when you return to or enter an event loop. The input arguments follow:
    •  dialog—Name of the dialog. The action is associated with the dialog and is automatically cancelled if the dialog is destroyed. The value can be NULL.
    •  function—Function to be called when you return to an event loop.
    •  data—Action data passed to the callback function. The value can be NULL.
    Use the function ProUIDialogAppActionRemove() to remove a function added via ProUIDialogAppActionSet(). The input arguments follow:
    •  dialog—Name of the dialog passed to the function ProUIDialogAppActionRemove().
    •  function— Function passed to ProUIDialogActionSet().
    •  data—Action data passed to ProUIDialogActionSet().
    Cascade Button
    Cascade Button Attributes
    Attribute Name
    Get Function
    Set Function(s)
    Checkbutton
    Checkbutton Attributes
    Attribute Name
    Get Function
    Set Function(s)
    Not Applicable
  • Not Applicable
  • Checkbutton Operations
    Functions Introduced
    Use the function ProUICheckbuttonAnchorSet() to set the position of the checkbutton with respect to a given anchor location. This function is applicable only if the parent of the checkbutton is a drawing area. The input argument anchor determines which part of the component is being positioned.
    Use the function ProUICheckbuttonSizeSet() to set the size of the checkbutton in pixels. This operation is applicable only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUICheckbuttonMinimumsizeGet()to retrieve the minimum size of the width and height of the check button in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUICheckbuttonPositionSet() to set the position to the checkbutton with respect to its parent. This operation is applicable only if the parent is a drawing area.
    Use the function ProUICheckbuttonPositionGet() to get the position of the checkbutton with respect to its parent. This operation is applicable only if the parent is a drawing area.
    Use the function ProUICheckbuttonSizeGet() to get the size of the checkbutton. This operation is applicable only if the parent is a drawing area.
    Checkbutton Action Callbacks
    Functions Introduced
    The function ProUICheckbuttonActivateActionSet() sets the callback action to be invoked when the user toggles the state of the checkbutton.
    Drawing Area
    Drawing Area Attributes
    Attribute Name
    Get Function
    Set Function(s)
  • Not Applicable
  • Not Applicable
  • Adding and Removing Components
    Components added to drawing areas are not managed in grids like components in most other containers. Instead, use the operations that set the component size and position to place the component how you wish in the drawing area.
    Note
    This means that components may possibly overlap each other in a drawing area depending on their individual placement.
    Drawing Area Action Callbacks
    Functions Introduced
    Use the function ProUIDrawingareaEnterActionSet() to set the action function to be called when the user has moved the cursor into the drawing area. This action will be generated only if tracking is enabled for the drawing area.
    Use the function ProUIDrawingareaExitActionSet() to set the function to be called when the user has moved the cursor out of the drawing area. This action will be generated only if tracking is enabled for the drawing area.
    Use the function ProUIDrawingareaMoveActionSet() to set the function to be called when the cursor is moved over the drawing area. This action will be generated only if tracking is enabled for the drawing area.
    Use the function ProUIDrawingareaLbuttonarmActionSet() to set the function to be called when the left mouse button is clicked in the drawing area.
    Use the function ProUIDrawingareaLbuttondisarmActionSet() to set the function to be called when the left mouse button is released in the drawing area.
    Use the function ProUIDrawingareaLbuttonactivateActionSet() to set the function to be called when the left mouse button is clicked and released in the drawing area.
    Use the function ProUIDrawingareaLbuttondblclkActionSet() to set the function to be called when the left mouse button is double-clicked in the drawing area.
    Use the function ProUIDrawingareaMbuttonarmActionSet() to set the function to be called when the middle mouse button is clicked in the drawing area.
    Use the function ProUIDrawingareaMbuttondisarmActionSet() to set the function to be called when the middle mouse button is released in the drawing area.
    Use the function ProUIDrawingareaMbuttonactivateActionSet() to set the function to be called when the middle mouse button is clicked and released in the drawing area.
    Use the function ProUIDrawingareaMbuttondblclkActionSet() to set the function to be called when the middle mouse button is double-clicked in the drawing area.
    Use the function ProUIDrawingareaRbuttonarmActionSet() to set the function to be called when the right mouse button is clicked in the drawing area.
    Use the function ProUIDrawingareaRbuttondisarmActionSet() to set the function to be called when the right mouse button is released in the drawing area.
    Use the function ProUIDrawingareaRbuttonactivateActionSet() to set the function to be called when the right mouse button is clicked and released in the drawing area.
    Use the function ProUIDrawingareaRbuttondblclkActionSet() to set the function to be called when the right mouse button is double-clicked in the drawing area.
    Use the function ProUIDrawingareaUpdateActionSet() to set the function to be called when the drawing area needs to be updated due to a system-level color scheme change.
    Use the function ProUIDrawingareaResizeActionSet() to set the function to be called when the drawing area is resized.
    Note
    Any graphics, text or images added to the drawing area is typically cleared after a resize.
    Use the function ProUIDrawingareaPostmanagenotifyActionSet() to set the function to be called when the drawing area has just been displayed. Use this callback to setup the initial graphics, text, and images in the drawing area.
    Drawing Area Operations
    Functions Introduced
    Use the function ProUIDrawingareaAnchorSet() to set the position of the drawing area with respect to a given anchor location. This function is applicable only if the parent of the drawing area is another drawing area.
    Use the function ProUIDrawingareaSizeGet() to get the size of the drawing area. This operation is applicable only if the parent is a drawing area.
    Use the function ProUIDrawingareaSizeSet() to set the size of the drawing area. This operation is applicable only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUIDrawingareaMinimumsizeGet() to retrieve the minimum size of the width and height of the drawing area in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUIDrawingareaPositionGet() to get the position of the drawing area with respect to its parent. This operation is applicable only if the parent is a drawing area.
    Use the function ProUIDrawingareaPositionSet() to set the position to the drawing area with respect to its parent. This operation is applicable only if the parent is a drawing area.
    Use the function ProUIDrawingareaClear() to clear the contents of the drawing area by painting it in the drawing background color.
    Use the function ProUIDrawingareaCopyArea() to copy the contents within a given boundary at a location in the drawing area to another location.
    Use the function ProUIDrawingareaPointDraw() to draw a point in the drawing area.
    Use the function ProUIDrawingareaPointsDraw() to draw an array of points in the drawing area.
    Use the function ProUIDrawingareaLineDraw() to draw a line in the drawing area.
    Use the function ProUIDrawingareaLinesDraw() to draw a set of lines between in the drawing area. Each line will be drawn from the indicated start point in the array to the corresponding endpoint.
    Use the function ProUIDrawingareaPolylineDraw() to draw a series of connected lines in the drawing area.
    Use the function ProUIDrawingareaRectDraw() to draw a rectangle in the drawing area.
    Use the function ProUIDrawingareaRectsDraw() to draw a set of rectangles in the drawing area.
    Use the function ProUIDrawingareaRectFill() to draw a filled rectangle in the drawing area.
    Use the function ProUIDrawingareaRectsFill() to draw a set of filled rectangles in the drawing area.
    Use the function ProUIDrawingareaShadowRectDraw() to draw a rectangle with a shadow border.
    Use the function ProUIDrawingareaShadowRectsDraw() to draw a set of rectangles with shadow borders.
    Use the function ProUIDrawingareaPolygonDraw() to draw a polygon in the drawing area.
    Use the function ProUIDrawingareaPolygonFill() to draw a filled polygon in the drawing area.
    Use the function ProUIDrawingareaArcDraw() to draw an arc in the drawing area.
    Use the function ProUIDrawingareaArcsDraw() to draw a set of arcs in the drawing area.
    Use the function ProUIDrawingareaArcFill() to draw a filled arc in the drawing area.
    Use the function ProUIDrawingareaArcsFill() to draw a set of filled arcs in the drawing.
    Use the function ProUIDrawingareaEllipseDraw() to draw an ellipse in the drawing area.
    Use the function ProUIDrawingareaEllipsesDraw() to draw a set of ellipses in the drawing area.
    Use the function ProUIDrawingareaEllipseFill() to draw a filled ellipse in the drawing area.
    Use the function ProUIDrawingareaEllipsesFill() to draw a set of filled ellipses in the drawing area.
    Use the function ProUIDrawingareaImageDraw() to draw an image in the drawing area.
    Use the function ProUIDrawingareaImagesDraw() to draw images at the given positions in the drawing area.
    Use the function ProUIDrawingareaStringDraw() to draw a string at the given position in the drawing area.
    Use the function ProUIDrawingareaStringsDraw() to draw strings at the given positions in the drawing.
    Use the function ProUIDrawingareaStringsizeGet() to get the size that the given text string will occupy in the drawing area, given the current drawing area font settings.
    Use the function ProUIDrawingareaStringbaselineGet() to get the height from the top of the string border to the string baseline for the given text string in the drawing area, given the current drawing area font settings.
    Use the function ProUIDrawingareaImagesizeGet() to get the size of the image in the drawing area.
    Use the function ProUIDrawingareaCursorposGet() to get the position of the cursor in the drawing area.
    Use the function ProUIDrawingareaCursorposSet() to set the cursor at the given location in the drawing area.
    Input Panel
    Input Panel Attributes
    Attribute Name
    Get Function
    Set Function(s)
  • Not Applicable
  • Input Panel Action Callbacks
    Functions Introduced
    Use the function ProUIInputpanelActivateActionSet() to set the action callback to be called when the user hits return in an input panel.
    Use the function ProUIInputpanelFocusinActionSet() to set the focus in action for an input panel. This function is called when the user moves the cursor onto the input panel using the mouse or <TAB> key.
    Use the function ProUIInputpanelFocusoutActionSet() to set the focus out action for an input panel. This function is called when the user moves the cursor off of the input panel using the mouse or <TAB> key.
    Use the function ProUIInputpanelInputActionSet() to set the action callback to be called when the user enters a key in an input panel.
    Input Panel Operations
    Functions Introduced
    Use the function ProUIInputpanelAnchorSet() to set the position of the input panel with respect to a given anchor location. This function is applicable only if the parent of the input panel is a drawing area.
    Use the function ProUIInputpanelSizeGet() to get the size of the input panel. This operation is applicable only if the parent is a drawing area.
    Use the function ProUIInputpanelSizeSet() to set the size of the input panel. This operation is applicable only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUIInputpanelMinimumsizeGet() to retrieve the minimum size of the width and height of the input panel in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUIInputpanelPositionGet() to get the position of the input panel with respect to its parent. This operation is applicable only if the parent is a drawing area.
    Use the function ProUIInputpanelPositionSet() to set the position to the input panel with respect to its parent. This operation is applicable only if the parent is a drawing area.
    Label
    Label Attributes
    Label Operations
    Functions Introduced
    Use the function ProUILabelAnchorSet() to set the location to position the label with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUILabelSizeSet() to set the size of the label. This field is used only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUILabelMinimumsizeGet() to retrieve the minimum size of the width and height of the label in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUILabelPositionGet() to get the position of the label with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUILabelPositionSet() to set the position to the label with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUILabelSizeGet() to get the size of the label. This field is used only if the parent is a drawing area.
    Use the function ProUILabelEnableResizing() to set the label to be resizeable.
    Layout
    Layout Attributes
    Adding and Removing Components
    Layout Operations
    Functions Introduced
    Use the function ProUILayoutAnchorSet() to set the position of the layout with respect to a given anchor location. This function is applicable only if the parent of the layout is a drawing area.
    Use the function ProUILayoutSizeSet() to set the size of the layout. This field is used only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUILayoutMinimumsizeGet() to retrieve the minimum size of the width and height of the layout in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUILayoutPositionGet() to get the position of the layout with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUILayoutPositionSet() to set the position to the layout with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUILayoutSizeGet() to get the size of the layout. This field is used only if the parent is a drawing area.
    The function ProUILayoutIsMapped() specifies if the given layout component is mapped. The value of the output flag is PRO_B_TRUE if the layout is mapped, else it is PRO_B_FALSE.
    The functions ProUILayoutShow() and ProUILayoutHide() show and hide the layout component respectively, along with its contents. Use the function ProUILayoutMappedSet() to keep the size of the layout unchanged while working with these functions. To collapse or expand the layout to its nominal size, use the function ProUILayoutMappedUnset().
    List
    List Attributes
    Attribute Name
    Get Function
    Set Function(s)
  • Not Applicable
  • Not Applicable
  • List Action Callbacks
    Functions Introduced
    Use the function ProUIListActivateActionSet() to set the activate action for a list. This function is called when the return key is pressed or the mouse is double-clicked in the list.
    Use the function ProUIListSelectActionSet() to set the select action for a list component.
    Use the function ProUIListTriggerhighlightActionSet() to set the trigger highlight action for a list. This function is called when the user moves the mouse over an item on the list.
    Use the function ProUIListFocusinActionSet() to set the focus in action for a list. This function is called when the user moves the cursor onto of the list using the mouse or <TAB> key.
    Use the function ProUIListFocusoutActionSet() to set the focus out action for a list. This function is called when the user moves the cursor off of the list using the mouse or <TAB> key.
    List Operations
    Functions Introduced
    Use the function ProUIListAnchorSet() to set the position of the list with respect to a given anchor location. This function is applicable only if the parent of the list is a drawing area.
    Use the function ProUIListSizeSet() to set the size of the list. This field is used only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUIListMinimumsizeGet() to retrieve the minimum size of the width and height of the list in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUIListPositionSet() to set the position to the list with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUIListPositionGet() to get the position of the list with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUIListSizeGet() to get the size of the list. This field is used only if the parent is a drawing area.
    Use the function ProUIlistStateGet() to get the state of the item in the list. The state is applicable only for a "check" type of list and refers to the checked or unchecked status of the item.
    Use the function ProUIListStateSet() to set the state of the item in the list. The state is applicable only for a "check" type of list and refers to the checked or unchecked status of the item.
    Example 2: To use UI List Functions
    The sample code in UgUIListImplement.c located at <creo_toolkit_loadpoint>/protk_appls/pt_userguide/ptu_ui shows the source code for UI List functions. The application gets the names of the parts that constitute any given drawing and then populates the list area in a newly created dialog with those names.
    Menubar
    Menubar Attributes
    Menupane Attributes
    Adding and Removing Components
    Optionmenu
    Optionmenu Attributes
    Attribute Name
    Get Function
    Set Function(s)
  • Not Applicable
  • Not Applicable
  • Optionmenu Action Callbacks
    Functions Introduced
    Use the function ProUIOptionmenuActivateActionSet() to set the activate action for an option menu. This function is called when the user modifies the contents of the option menu. The option menu must be editable. The action callback is called when you press the ENTER key in the input panel of the option menu.
    Use the function ProUIOptionmenuSelectActionSet() to set the select action for a option menu component.
    Use the function ProUIOptionmenuInputActionSet() to set the input action for an optionmenu. This function is called when the user changes the contents of the option menu. This is only valid for editable optionmenus.
    Use the function ProUIOptionmenuTriggerhighlightActionSet() to set the trigger highlight action for an optionmenu. This function is called when the user moves the mouse on an item in the drop down list of the optionmenu.
    Use the function ProUIOptionmenuFocusinActionSet() to set the focus in action for an optionmenu.
    Use the function ProUIOptionmenuFocusoutActionSet() to set the focus out action for an optionmenu.
    Optionmenu Operations
    Functions Introduced
    Use the function ProUIOptionmenuAnchorSet() to the position of the option menu with respect to a given anchor location. This function is applicable only if the parent of the option menu is a drawing area.
    Use the function ProUIOptionmenuSizeSet() to set the size of the optionmenu. This field is used only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUIOptionmenuMinimumsizeGet() to retrieve the minimum size of the width and height of the option menu in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUIOptionmenuPositionSet() to set the position to the optionmenu with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUIOptionmenuPositionGet() to get the position of the optionmenu with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUIOptionmenuSizeGet() to get the size of the optionmenu. This field is used only if the parent is a drawing area.
    Progressbar
    Progressbar Attributes
    Attribute Name
    Get Function
    Set Function(s)
  • Not Applicable
  • Progressbar Operations
    Functions Introduced
    Use the function ProUIProgressbarAnchorSet() to set the position of the progressbar with respect to a given anchor location. This function is applicable only if the parent of the progressbar is a drawing area.
    Use the function ProUIProgressbarSizeSet() to set the size of the progressbar. This field is used only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUIProgressbarMinimumsizeGet() to retrieve the minimum size of the width and height of the progress bar in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUIProgressbarPositionSet() to set the position to the progressbar with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUIProgressbarPositionGet() to get the position to the progressbar with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUIProgressbarSizeGet() to get the size of the progressbar. This field is used only if the parent is a drawing area.
    Pushbutton
    Pushbutton Attributes
    Pushbutton Operations
    Functions Introduced
    Use the function ProUIPushbuttonAnchorSet() to set the position of the pushbutton with respect to a given anchor location. This function is applicable only if the parent of the Pushbutton is a drawing area.
    Use the function ProUIPushbuttonSizeSet() to set the size of the pushbutton. This field is used only if the parent is a drawing area.
    Use the function ProUIPushbuttonPositionSet() to set the position to the pushbutton with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUIPushbuttonPositionGet() to get the position to the pushbutton with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUIPushbuttonSizeGet() to get the size of the pushbutton. This field is used only if the parent is a drawing area.
    Pushbutton Action Callbacks
    Function Introduced
    Use the function ProUIPushbuttonActivateActionSet() to set the activate action for a pushbutton. This function is called when the user selects the pushbutton.
    Example 3: Controlling Component Visibility or Sensitivity at Runtime
    The sample code in UgUIVisibility.c located at <creo_toolkit_loadpoint>/protk_appls/pt_userguide/ptu_ui shows how to control component visibility or sensitivity at runtime.
    Radiogroup
    Radiogroup Attributes
    Attribute Name
    Get Function
    Set Function(s)
  • Not Applicable
  • Radiogroup Operations
    Functions Introduced
    Use the function ProUIRadiogroupAnchorSet() to set the position of the radiogroup with respect to a given anchor location. This function is applicable only if the parent of the Radiogroup is a drawing area.
    Use the function ProUIRadiogroupSizeSet() to set the size of the radiogroup. This field is used only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUIRadiogroupMinimumsizeGet() to retrieve the minimum size of the width and height of the radiogroup in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUIRadiogroupPositionSet() to set the position to the radiogroup with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUIRadiogroupPositionGet() to get the position to the radiogroup with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUIRadiogroupSizeGet() to get the size of the radiogroup. This field is used only if the parent is a drawing area.
    Radiogroup Action Callback
    Function Introduced:
    Use the function ProUIRadiogroupSelectActionSet() to set the select action for a radio group. This function is called when the user selects one of the buttons in the radio group.
    Separator
    Separator Attributes
    Slider
    Slider Attributes
    Slider Operations
    Functions Introduced
    Use the function ProUISliderAnchorSet() to set the position of the slider with respect to a given anchor location. This function is applicable only if the parent of the Slider is a drawing area.
    Use the function ProUISliderSizeSet() to set the size of the slider. This field is used only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUISliderMinimumsizeGet() to retrieve the minimum size of the width and height of the slider in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUISliderPositionSet() to set the position to the slider with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUISliderPositionGet() to get the position to the slider with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUISliderSizeGet() to get the size of the slider. This field is used only if the parent is a drawing area.
    Slider Action Callbacks
    Function Introduced
    Use the function ProUISliderUpdateActionSet() to set the update action for the slider.
    Example 4: Source of Dialog with Slider and Linked InputPanel
    The sample code in UgUISlider.c located at <creo_toolkit_loadpoint>/protk_appls/pt_userguide/ptu_ui shows code for use of a dialog with Slider and Linked InputPanel.
    Spinbox
    Spinbox Attributes
    Attribute Name
    Get Function
    Set Function(s)
  • Not Applicable
  • Spinbox Action Callbacks
    Functions Introduced:
    Use the function ProUISpinboxUpdateActionSet() and ProUISpinboxActivateActionSet() to set the update and activate action for a spin box respectively.
    Spinbox Operations
    Functions Introduced
    Use the function ProUISpinboxAnchorSet() to set the position of the spinbox with respect to a given anchor location. This function is applicable only if the parent of the Spinbox is a drawing area.
    Use the function ProUISpinboxSizeSet() to set the size of the spinbox. This field is used only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUISpinboxMinimumsizeGet() to retrieve the minimum size of the width and height of the spin box in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUISpinboxPositionSet() to set the position to the spinbox with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUISpinboxPositionGet() to get the position to the spinbox with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUISpinboxSizeGet() to get the size of the spinbox. This field is used only if the parent is a drawing area.
    Tab
    Tab Attributes
    Tab Operations
    Functions Introduced
    Use the function ProUITabAnchorSet() to set the position of the Tab with respect to a given anchor location. This function is applicable only if the parent of the Tab is a drawing area.
    Use the function ProUITabSizeSet() to set the size of the Tab. This field is used only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUITabMinimumsizeGet() to retrieve the minimum size of the width and height of the tab in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUITabPositionSet() to set the position to the Tab with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUITabPositionGet() to get the position to the Tab with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUITabSizeGet() to get the size of the Tab. This field is used only if the parent is a drawing area.
    Use the function ProUITabLayoutAdd() to add a new layout to the tab. Even if the layout has a label assigned, you must set the tab labels with ProUITabLabelsSet() for the decorated tab to show the appropriate labels.
    Use the function ProUITabLayoutsInsert() to insert a new layout after an existing component in the tab. Even if the layouts have labels assigned, you must set the tab labels with ProUITabLabelsSet() for the decorated tab to show the appropriate labels.
    Use the function ProUITabItemNameSet() to set a new name to the item in the tab.
    Use the function ProUITabItemLabelSet() to set the label of the item in the tab.
    Use the function ProUITabItemImageSet() to set the image of the item in the tab.
    Use the function ProUITabItemHelptextStringSet() to set the text that should be displayed when the cursor is over the item in the tab.
    Use the function ProUITabItemLabelGet() to get the label of the item in the tab.
    Use the function ProUITabItemImageGet() to get the image of the item in the tab.
    Use the function ProUITabItemHelptextStringGet() to get the text that is displayed when the cursor is over the item in the tab.
    Use the function ProUITabItemExtentsGet() to get the boundary of the item that is in the tab relative to the top left corner of the dialog.
    Tab Action Callbacks
    Function Introduced
    Use the function ProUITabSelectActionSet() sets the select action for a tab. This function is called when the user selects the tab.
    Table
    Table Attributes
    Attribute Name
    Get Function
    Set Function(s)
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Adding and Removing Components
    Table Cell Functions
    Functions Introduced
    Use the function ProUITableCellLabelSet() to set the text contained in the table cell.
    Use the function ProUITableCellLabelGet() to get the text contained in the table cell.
    Use the function ProUITableCellHelpTextSet() to set the help text for the table cell.
    Use the function ProUITableIsCellSensitive() to determine if the table cell is sensitive to user input.
    Use the function ProUITableCellEnable() to set the table cell to be sensitive to user input.
    Use the function ProUITableCellDisable() to set the table cell to be insensitive to user input.
    Use the function ProUITableCellComponentNameSet() to set the component name contained in the table cell.
    Use the function ProUITableCellComponentNameGet() to get the component name contained in the table cell.
    Use the function ProUITableCellComponentCopy() to copy a predefined component and places it in the table in the designated cell. The component will be displayed in this cell.
    Use the function ProUITableCellComponentDelete() to remove the component contained in the table cell.
    Use the function ProUITableAnchorCellSet() to set the coordinates of the table selection anchor cell.
    Use the function ProUITableAnchorCellGet() to get the coordinates of the table selection anchor cell.
    Use the function ProUITableFocusCellSet() to set the coordinates of the table selection focus cell.
    Use the function ProUITableFocusCellGet() to get the coordinates of the table selection focus cell.
    Use the function ProUITableCellAttachTop() to attach the contents of the cell to the top of the cell.
    Use the function ProUITableCellUnattachTop() to unattach the contents of the cell from the top of the cell.
    Use the function ProUITableIsCellAttachedTop() to determine if the contents of the cell are attached to the top of the cell.
    Use the function ProUITableCellAttachBottom() to attach the contents of the cell to the bottom of the cell.
    Use the function ProUITableCellUnattachBottom() to unattach the contents of the cell from the bottom of the cell.
    Use the function ProUITableIsCellAttachedBottom() to determine if the contents of the cell are attached to the bottom of the cell.
    Use the function ProUITableCellAttachLeft() to attach the contents of the cell to the left of the cell.
    Use the function ProUITableCellUnattachLeft() to unattach the contents of the cell from the left of the cell.
    Use the function ProUITableIsCellAttachedLeft() to determine if the contents of the cell are attached to the left of the cell.
    Use the function ProUITableCellAttachRight() to attach the contents of the cell to the right of the cell.
    Use the function ProUITableCellUnattachRight() to unattach the contents of the cell from the right of the cell.
    Use the function ProUITableIsCellAttachedRight() to determine if the contents of the cell are attached to the right of the cell.
    Use the function ProUITableCellHelptextStringGet() to get the help-text that is displayed while the cursor is over the table cell.
    Use the function ProUITableCellHelptextStringSet() to set the help-text to be displayed when the cursor is over the table cell.
    Use the function ProUITableCellForegroundColorGet() to get the foreground color of the table cell.
    Use the function ProUITableCellForegroundColorSet() to set the foreground color of the table.
    Use the function ProUITableCellBackgroundColorGet() to get the background color of the table cell.
    Use the function ProUITableCellBackgroundColorSet() to set the background color of the table cell.
    Example 5: To Assign Components into Table Cells
    The sample code in UgUITables.c located at <creo_toolkit_loadpoint>/protk_appls/pt_userguide/ptu_ui shows how to assign components into table cells.
    Table Row Functions
    Functions Introduced
    Use the function ProUITableRowIndexGet() to get the index of the table row with the given name.
    Use the function ProUITableRowRename() to rename the table row.
    Use the function ProUITableRowLabelSet() to set the user-visible label for the table row.
    Use the function ProUITableRowLabelGet() to get the user-visible label for the table row.
    Use the function ProUITableRowsInsert() to insert one or more new rows into the table.
    Use the function ProUITableRowsDelete() to delete one or more rows from the table.
    Use the function ProUITableRowCellsSelect() to select the cells of the given rows of the table. The table selection policy must be either Multiple or Extended.
    Use the function ProUITableRowCellsDeselect() to deselect the cells of the given rows of the table.
    Use the function ProUITableRowCellLabelsSet() to set the contents of the cells of the rows using a single string.
    Table Column Functions
    Functions Introduced
    Use the function ProUITableColumnIndexGet() to get the column index for a given column.
    Use the function ProUITableColumnRename() to rename a table column.
    Use the function ProUITableColumnLabelSet() to set the user visible label for the column.
    Use the function ProUITableColumnLabelGet() to get the user-visible label for the column.
    Use the function ProUITableColumnWidthSet() to set the width of the column in the table.
    Use the function ProUITableColumnWidthGet() to get the width of the column in the table.
    Use the function ProUITableColumnResizingFactorSet() to set the resizing factor of the column in the table.
    Use the function ProUITableColumnResizingFactorGet() to get the resizing factor of the column in the table.
    Use the function ProUITableColumnsInsert() to insert one or more columns into the table.
    Use the function ProUITableColumnsDelete() to delete one or more columns from the table.
    Use the function ProUITableColumnCellsSelect() to select the cells of the given columns in the table.
    Use the function ProUITableColumnCellsDeselect() to deselect the cells of the given columns in the table.
    Use the function ProUITableResetColumnWidth() to set the column width to the default.
    Example 6: To Access and Modify Names and Labels for the Table Rows and Columns
    The sample code in UgUITables.c located at <creo_toolkit_loadpoint>/protk_appls/pt_userguide/ptu_ui shows how to access and modify names and labels for the Table rows and columns and also to access, allocate and free the string and wide string arrays.
    Table Operations
    Functions Introduced
    Use the function ProUITableAnchorSet() to set the position of the table with respect to a given anchor location. This function is applicable only if the parent of the table is a drawing area.
    Use the function ProUITableSizeSet() to set the size of the table. This field is used only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUITableMinimumsizeGet() to retrieve the minimum size of the width and height of the table in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUITablePositionSet() to set the position to the table with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUITablePositionGet() to get the position to the table with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUITableSizeGet() to get the size of the table. This field is used only if the parent is a drawing area.
    Use the function ProUITableComponentCopy() to copy a predefined component and place it in the table. The component is not displayed until it is assigned to a table cell using ProUITableCellComponentNameSet(). However, you can update the component's properties as needed and display it at a later time.
    Use the function ProUITableComponentDelete() to delete a specified component from the table.
    Table Action Callbacks
    Functions Introduced
    Use the function ProUITableArmActionSet() to set the arm action for a table. This function is called when the user changes the selection anchor cell and focus cell in the table.
    Use the function ProUITableDisarmActionSet() to set the disarm action for a table. This function is called when the user changes the selection focus cell in the table.
    Use the function ProUITableSelectActionSet() to set the select action for a table. This function is called when the user changes the selected cells in the table.
    Use the function ProUITableActivateActionSet() to set the activate action for a table. This function is called when the user presses the return key or double-clicks the left mouse button in the table.
    Use the function ProUITableFocusinActionSet() to set the focus in action for a table.
    Use the function ProUITableFocusoutActionSet() to set the focus out action for a table.
    Use the function ProUITableColumnselectActionSet() to set the column selection action for the table. This function is called when the user changes the currently selected table columns.
    Example 7: To Access Selected Names Array from Tables
    The sample code in UgUITables.c located at <creo_toolkit_loadpoint>/protk_appls/pt_userguide/ptu_ui shows how to access selected names array from tables.
    Textarea
    Textarea Attributes
    Textarea Operations
    Functions Introduced
    Use the function ProUITextareaAnchorSet() to set the position of the Textarea with respect to a given anchor location. This function is applicable only if the parent of the Textarea is a drawing area.
    Use the function ProUITextareaSizeSet() to set the size of the Textarea. This operation is applicable only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUITextareaMinimumsizeGet to retrieve the minimum size of the width and height of the textarea in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUITextareaPositionGet() to get the position of the Textarea with respect to its parent. This operation is applicable only if the parent is a drawing area.
    Use the function ProUITextareaPositionSet() to set the position to the Textarea with respect to its parent. This operation is applicable only if the parent is a drawing area.
    Use the function ProUITextareaSizeGet() to get the size of the Textarea. This operation is applicable only if the parent is a drawing area.
    Textarea Action Callbacks
    Functions Introduced
    Use the function ProUITextareaActivateActionSet() to set the action callback to be called when the user hits return in an Textarea.
    Use the function ProUITextareaFocusinActionSet() to set the focus in action for an Textarea. This function is called when the user moves the cursor onto the Textarea using the mouse or <TAB> key.
    Use the function ProUITextareaFocusoutActionSet() to set the focus out action for an Textarea. This function is called when the user moves the cursor off of the Textarea using the mouse or <TAB> key.
    Use the function ProUITextareaInputActionSet() to set the action callback to be called when the user enters a key in an Textarea.
    Thumbwheel
    Thumbwheel Attributes
    Thumbwheel Operations
    Functions Introduced
    Use the function ProUIThumbwheelAnchorSet() to set the position of the Thumbwheel with respect to a given anchor location. This function is applicable only if the parent of the Thumbwheel is a drawing area.
    Use the function ProUIThumbwheelSizeSet() to set the size of the Thumbwheel. This field is used only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUIThumbwheelMinimumsizeGet() to retrieve the minimum size of the width and height of the thumb wheel in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUIThumbwheelPositionSet() to set the position to the Thumbwheel with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUIThumbwheelPositionGet() to get the position to the Thumbwheel with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUIThumbwheelSizeGet() to get the size of the Thumbwheel. This field is used only if the parent is a drawing area.
    Thumbwheel Action Callbacks
    Functions Introduced
    Use the function ProUIThumbwheelUpdateActionSet() to set the update action for the Thumbwheel.
    Tree
    Tree Attributes
    Attribute Name
    Get Function
    Set Function(s)
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Not Applicable
  • Note
    Many of the properties of trees are currently only supported as a part of the resource file. Only very basic trees can be created using programmatic means.
    Adding and Removing Components
    Tree Column Functions
    Functions Introduced
    Use the function ProUITreeColumnCreate() to create a column of the given name in the attribute window of the tree. The name must be unique within the scope of the columns of the tree.
    Use the function ProUITreeColumnTitleGet() to obtain the title of a column in the tree.
    Use the function ProUITreeColumnWidthGet() to obtain the width of a column in the tree.
    Use the function ProUITreeColumnVisibilityGet() to obtain the visibility of a column in the tree.
    Use the function ProUITreeColumnJustificationGet() to obtain the justification of a column in the tree.
    Use the function ProUITreeColumnTitleSet() to set a title to the column in the tree.
    Use the function ProUITreeColumnWidthSet() to set a width to the column in the tree.
    Use the function ProUITreeColumnVisibilitySet() to set visibility of the column in the tree.
    Use the function ProUITreeColumnJustificationSet() to set justification to the column in the tree.
    Tree Node Functions
    Functions Introduced
    Use the function ProUITreeNodeComponentSet() to set the component to be displayed in the given column corresponding to the given node name of the tree.
    Use the function ProUITreeNodeChildrenGet() to get the child nodes for the node in the tree.
    Use the function ProUITreeNodeLabelGet() to get the label of the node in the tree.
    Use the function ProUITreeNodeLabelSet() to set the label of the node in the tree.
    Use the function ProUITreeNodeParentGet() to get the parent of the node in the tree.
    Use the function ProUITreeNodeTypeGet() to get the name of the node type associated with the node.
    Use the function ProUITreeNodeTypeSet() to set the name of the node type associated with the node.
    Use the function ProUITreeNodeExtentsGet() to get the boundary of the node of the tree relative to the top-left corner of the dialog.
    Use the function ProUITreeNodesOfTypeGet() to get the name of all nodes of the tree associated with the node type.
    Use the function ProUITreeNodeAdd() to add a new node to the tree.
    Use the function ProUITreeNodeInsert() to insert a new node before a node in the tree.
    Use the function ProUITreeNodeCollapse() to collapse a node in the tree making its children invisible.
    Use the function ProUITreeNodeDelete() to delete the node in the tree.
    Use the function ProUITreeNodeExists() to checks if the given node exists or not.
    Use the function ProUITreeNodeExpand() to expand the node of the tree making all of its children visible.
    Use the function ProUITreeNodeHelptextGet() to get the help text of the node in the tree.
    Use the function ProUITreeNodeIsVisible() to checks if the node is shown or hidden.
    Use the function ProUITreeNodeIsExpanded() to checks if the node is expanded or collapsed.
    Use the function ProUITreeNodeIsSelected() to checks if the node is selected or not.
    Use the function ProUITreeNodeFontstyleGet() to get the fontstyle of the node.
    Use the function ProUITreeNodeHelptextSet() to set the helptext of the node in tree.
    Use the function ProUITreeNodeShow() to display the node in a tree.
    Use the function ProUITreeNodeHide() to hide the node in the tree.
    Use the function ProUITreeNodeSelect() to select the node in the tree.
    Use the function ProUITreeNodeDeselect() to unselect the node in the tree.
    Use the function ProUITreeNodeFontstyleSet() to set fontstyle to the node in the tree.
    Use the function ProUITreeNodeMove() to move the node in the tree to a child of the given parent node.
    Use the function ProUITreeNodeRename() to rename the given node of the tree using the given name.
    Use the function ProUITreeNodetypeAdd() to add a new node type to the tree using the information supplied in the given data structure. Use ProUITreeNodeTypeAlloc() to fill the ProUITreeNodeType().
    Use the function ProUITreeNodetypeDelete() to delete a node type from the tree using the information supplied in the given data structure.
    Use the function ProUITreeNodeColumntextSet() to set the given text to be displayed in the given column corresponding to the given node of the tree.
    Use the function ProUITreeNodesSelect() to select an array of nodes in the tree.
    Use the function ProUITreeNodetypeSelect() to select all the nodes corresponding to a given node type.
    Use the function ProUITreeAllnodesSelect() to select all nodes in the tree.
    Use the function ProUITreeNodesDeselect() to unselect an array of nodes in the tree.
    Use the function ProUITreeNodetypeDeselect() to unselect all the nodes corresponding to a given node type.
    Use the function ProUITreeAllnodesDeselect() to unselect all the nodes in the tree.
    Use the function ProUITreeParentnameGet() to get the name of the parent to the tree component.
    Use the function ProUITreeChildnamesGet() to get the name of the children to the tree component.
    Use the function ProUITreeNodeVisitAction() for visiting nodes.
    Use the function ProUITreeNodeFilterAction() for filtering nodes.
    Use the function ProUITreeNodesVisit() to visits all the descendent nodes of the given node in the tree.
    Tree NodeType Functions
    Functions Introduced
    Use the function ProUITreeNodeTypeAlloc() to allocate ProUITreeNodeType data.
    Use the function ProUITreeNodeTypeFree() to free ProUITreeNodeType data.
    Use the function ProUITreeNodeTypeExpandImageSet() to set the image to appear when the nodetype is expanded.
    Use the function ProUITreeNodeTypeExpandImageGet() to get the image that appears when the nodetype is expanded.
    Use the function ProUITreeNodeTypeCollapseImageSet() to set the image to appear when the nodetype is collapsed.
    Use the function ProUITreeNodeTypeCollapseImageGet() to get the image that appears when the nodetype is collapsed.
    Use the function ProUITreeNodeTypePrefixSet() to set prefix to the nodetype.
    Use the function ProUITreeNodeTypePrefixGet() to get prefix of the nodetype.
    Use the function ProUITreeNodeTypeAppendStringSet() to append the string to the nodetype.
    Use the function ProUITreeNodeTypeAppendStringGet() to get the appended string to the nodetype.
    Use the function ProUITreeNodeTypeNodesSet() to set the nodes to the nodetype.
    Use the function ProUITreeNodeTypeNodesGet() to get the nodes to the nodetype.
    Tree Operations
    Functions Introduced
    Use the function ProUITreeAnchorSet() to set the position of the Tree with respect to a given anchor location. This function is applicable only if the parent of the Tree is a drawing area.
    Use the function ProUITreeSizeSet() to set the size of the Tree. This field is used only if the parent is a drawing area. The function will fail, if you specify a value smaller than the minimum size for the input arguments width or height.
    Use the function ProUITreeMinimumsizeGet() to retrieve the minimum size of the width and height of the tree in pixels. Use this function only if the parent is a drawing area.
    Use the function ProUITreePositionSet() to set the position to the Tree with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUITreePositionGet() to get the position to the Tree with respect to its parent. This field is used only if the parent is a drawing area.
    Use the function ProUITreeSizeGet() to get the size of the Tree. This field is used only if the parent is a drawing area.
    Use the function ProUITreeSashPositionGet() to get the position of the sash between the tree hierarchy and the attribute window.
    Use the function ProUITreeStateGet() to get the state of the item in the tree. The function ProUITreeStateSet() sets the state of an item in the tree. The state is applicable only for a "check" type of list and refers to the checked or unchecked status of the item in the tree.
    The function ProUITreeMixedStateGet() returns if the specified item in the tree is in an indeterminate state. Use the function ProUITreeMixedStateSet() to set the specified item in the tree in an indeterminate state. An indeterminate state indicates that the component is in mixed state, that is, has no selection. The state is applicable only for a "check" type of tree.
    The function ProUITreeLastentereditemGet() returns the name of the item, which is was last pointed to by the pointer.
    Use the function ProUITreeNodescrollposSet() to scroll the window where the named item appears at a defined ProUILocation.
    Tree Action Callbacks
    Functions Introduced
    Use the function ProUITreeSelectActionSet() to set the select action for a Tree. This function is called when the user changes the selected cells in the Tree.
    Use the function ProUITreeActivateActionSet() to set the activate action for a Tree. This function is called when the user presses the return key or double-clicks the left mouse button in the Tree.
    Use the function ProUITreeFocusinActionSet() to set the focus in action for a Tree.
    Use the function ProUITreeFocusoutActionSet() to set the focus out action for a Tree.
    Use the function ProUITreeSelectActionSet() to set the action function to be called when the tree is selected. The left mouse button, the SPACE key and the navigation keys (if the selection policy is PROUISELPOLICY_BROWSE or PROUISELPOLICY_EXTENDED) can be used to make a selection in the tree.
    Use the function ProUITreeActivateActionSet() to set the action function to be called when the tree is activated. The tree is activated by the press of RETURN key or the double click of LEFT mouse button over the node in the tree.
    Use the function ProUITreeExpandActionSet() to set the action function to be called when the user attempts to expand a tree node by clicking on the '+' sign.
    Note
    You must make this callback call ProUITreeNodeExpand() to actually expand the node.
    Use the function ProUITreeCollapseActionSet() to set the action function to be called when the user attempts to collapse a tree node by clicking on the '-' sign.
    Note
    You must make this callback call ProUITreeNodeCollapse() to actually collapse the node.
    Use the function ProUITreeFocusinActionSet() to set the action function to be called when the tree has got keyboard input focus.
    Use the function ProUITreeFocusoutActionSet() to set the action function to be called when the tree has lost keyboard input focus.
    Use the function ProUITreeTreecellselectActionSet() to set the action function to be called when the cell of the attribute window of the tree has been selected.
    Use the function ProUITreeTreecellactivateActionSet() to set the action function to be called when the cell of the attribute window of the tree has been activated.
    Use the function ProUITreeTreecellinputActionSet() to set the action function to be called when text has been entered into a cell of the attribute window of the tree.
    Use the function ProUITreeTreecelldeleteActionSet() to set the action function to be called when the DELETE key has been pressed in a cell of the attribute window of the tree.
    Use the function ProUITreeMoveActionSet() to set the action function to be called when the sash of the tree between the tree hierarchy and the attribute window has been moved.
    Use the function ProUITreeUpdateActionSet() to set the update action for the tree.
    Master Table of Resource File Attributes
    Resource File Attribute
    Permitted Values
    Description
    .ActivateOnReturn
    Of Boolean type
    TRUE (default)
    Flag indicating whether a RETURN key press should generate a UI_ACTIVATE_ACTION callback or whether it should cause the default button in the Dialog to be pressed.
    .ArcDirection
    Enumerated type ProUIArcDirection
    The direction to use when drawing arcs in a drawing area: PROUIARCDIR_CLOCKWISE draws in a clockwise direction between the two line segments in order to form the arc.PROUIARCDIR_COUNTERCLOCKWISE Draws in a counterclockwise direction between the two line segments in order to form the arc.
    .ArcFillMode
    Enumerated type ProUIArcFillMode
    The type of fill to generate for an arc drawn in a drawing area: PROUIARCFILL_PIE—Fills the arc bounded by two line segments joining the endpoints of the arc and its center point. PROUIARCFILL_CHORD—Fills the arc bounded by a single line segment that joins the two endpoints of the arc.
    .Alignment
    Enumerated type ProUIAlignment.Default is "left"
    The alignment of the text:
    .AttachBottom
    Of Boolean type
    TRUE (default), FALSE
    The four Attach attributes specify to which sides of its grid location a component is attached. If it is attached to none the component will float inside the area available without changing size when the dialog is resized. If it is attached to the left only, for example, it will stay at the left of the area available. If it is attached both left and right, it will stretch horizontally to fit the space available. If it is attached both top and bottom it will stretch vertically.
    .AttachTop
    .AttachRight
    .AttachLeft
    .Mixedvalue
    Of Boolean type
    TRUE (default), FALSE
    The Mixed value is an intermediate mixed state set by the application. Attempts to get the state of the check button by ProUICheckbuttonGetState will fail when the check button is in a mixed state. The mixed state is reset automatically when the user activates the check button.
    .Autohighlight
    Of Boolean type
    FALSE (default)
    Flag indicating whether to highlight the entire row when a selection is made in a cell in the row.
    .BackgroundColor
    Integer type based on ProUIColorType or a user defined color type.
    The background color of the component as a user specified color or a window color of ProUIColorType.
    .BgColor
    Integer type based on ProUIColorType or a user defined color type.
    The background drawing color of the component as a user specified color or a window color of ProUIColorType. This cannot be set in a resource file.
    .BottomOffset
    Of Integer type
    Default Value is -1
    The four Offset attributes describe the minimum gap, in pixels, between the component and the edge of the area available to it. The maximum value of an offset is 20. The default, -1, is equivalent to no offset. It is usual in Creo Parametric to put an offset of 4 around each component, so the minimum distance between components is 8 pixels. If you have a vertical column of components such as input panels in a single layout, you can reduce the overall vertical gap between them to 4 pixels.
    .TopOffset
    .RightOffset
    .LeftOffset
    .Bitmap
    Of String type
    The icon of the component.
    This may be a PNG, PCX, GIF, BMP, ICO or CUR file. The file must be visible to Creo Parametric by residing in Creo Parametric's text directory or in the Creo TOOLKIT application's text directory.
    .ButtonStyle
    Enumerated type ProUIButtonStyle
    Following are the available types:
    1. PROUIBUTTONSTYLE_CHECK—The horizontal and vertical margins are equal, no shadow border is drawn and by default, the button accepts keyboard input.
    2. PROUIBUTTONSTYLE_TOGGLE—The horizontal margin is twice as wide as the vertical margin, the shadow border is always drawn and by default, the button accepts keyboard input.
    3. PROUIBUTTONSTYLE_TOOL—The horizontal and vertical margins are equal, the shadow border is always drawn and by default, the button does not accept keyboard input.
    4. PROUIBUTTONSTYLE_FLAT—The horizontal and vertical margins are equal, the shadow border is only drawn when the pointer is moved over the component and by default the button does not accept keyboard input.
    5. PROUIBUTTONSTYLE_LINK—The button works like a hyperlink.
    .ModalOverride
    Enumerated data type ProUIModalOverride
    ModalOverride determines whether the component is also blocked when its Dialog is blocked. It determines if there is an attempt to dismiss a blocking Dialog and menu before processing the action callbacks for the component. The following are the valid values:
    •  PROUIMODALOVERRIDE_NORMAL —The component is blocked whenever the Dialog is blocked. Callbacks are processed without an attempt to dismiss a blocking Dialog and menu.
    •  PROUIMODALOVERRIDE_ASYNC—The component is never blocked. Callbacks are processed without an attempt to dismiss a blocking Dialog and menu.
    •  PROUIMODALOVERRIDE_CAN_DISMISS_MENUS—The component is never blocked. Callbacks are processed only if a blocking Dialog and menu are successfully dismissed.
    .CascadeDirection
    Enumerated type ProUICascadeDirection
    The direction in which the MenuPane should cascade when the CascadeButton is activated. Following are the possible values:
    PROUICASCADEDIR_TOP_LEFT—Up and to the left
    PROUICASCADEDIR_TOP_RIGHT—Up and to the right
    PROUICASCADEDIR_BOTTOM_LEFT—Down and to the left
    PROUICASCADEDIR_BOTTOM_RIGHT—Down and to the right
    .ChildNames
    Of String array type
    Names of the children of the component. Read Only. This cannot be specified in a resource file.
    .ClassName
    Of String type
    Name of the class of the component. It is Read-only type. These are defined in the ProUI.h file. This cannot be specified in a resource file.
    .ClipChildren
    Of Boolean type
    TRUE (default), FALSE
    Flag indicating whether drawing operations within a DrawingArea are clipped so that they do not overlap any children contained within the DrawingArea.
    .Columns
    Of Integer type
    Default Value is 16
    The width of the InputPanel, in character widths. Column widths are determines by the widest possible character in the font of the component (typically 'W'). Thus, a component with a width of 16 will likely hold words with more than 16 characters.
    .ColumnLabel
    Of WideString type
    The tab-separated labels to be displayed as the column headers of a List.
    .ColumnLabels
    Of WideString type
    The labels of the columns of a table.
    .ColumnNames
    Of String Array type
    The names of the columns of a table.
    .ColumnResizings
    Of Integer Array type
    Default Value is 0
    The resizing factors of the columns of a Table.
    .ColumnSelectionPolicy
    Enumerated type ProUISelectionpolicy
    The types of selection supported for the columns of a table:
    •  PROUISELPOLICY_SINGLE—No item or one item can be selected at a time. Click to clear a selected item.
    •  PROUISELPOLICY_BROWSE—Only one item can be selected at a time. You cannot clear the selection. You can replace the selected item with another selection.
    •  PROUISELPOLICY_MULTIPLE—More than one item can be selected. Click to clear a selected item.
    •  PROUISELPOLICY_EXTENDED—When no key is pressed, only one item can be selected at a time. You cannot clear the selection. You can replace the selected item with another selection.
    Press SHIFT or CTRL keys, to select multiple items.
    Press SHIFT key to select a range of items.
    Press CTRL key to select multiple items. You can click to select and clear an item.
    .ColumnWidths
    Of Integer Array type
    Default Value is the value of DefaultColumnWidth
    The widths of the columns of a Table, in character widths. You can refer to .Columns
    .Decorated
    Boolean, default is true
    Flag indicating whether the component has a decorated shadow border.
    .DefaultButton
    Of String type
    The name of the component of the dialog which is to be treated as the default button of the dialog. The default button is automatically activated when the user hits RETURN or presses the middle mouse button within the Dialog.
    .DefaultColumnWidth
    Of Integer type
    Default Value is 8
    The default column width if no widths are specified or if any of the ColumnWidths members are less than or equal to 0.
    .Denominator
    Of Integer type
    Default Value is 1
    The denominator value of the fractional contents of the InputPanel.
    .DialogStyle
    Enumerated type ProUIDialogStyle
    The options defined by the enumerated data type ProUIDialogStyle control the blocking behavior of Creo Parametric window. The dialog style types that are supported by Creo TOOLKIT application are as follows:
    •  PROUIDIALOGSTYLE_PARENT_MODAL—You can use this option, when you want to block the parent window.
    Note
    You cannot perform the following operations after you use this option:
      Close the newly created dialog box.
      Click any button on the Creo user interface.
      Close the Creo window.
    •  PROUIDIALOGSTYLE_WORKING—You can use this option, if you want to block both the application and the process. The application and the process are blocked until all the pending events are processed.
    Note
    You can close the newly created dialog box, however, you cannot open a Creo part file with the dialog box open.
    •  PROUIDIALOGSTYLE_APPLICATION_MODAL—You can use this option if you want to block the application.
    Note
    You cannot perform the following operations after you use this option:
      Close the newly created dialog box
      Click any button on the Creo user interface.
      Close the Creo window.
    •  PROUIDIALOGSTYLE_MODELESS—You can use this option if you do not want to block anything.
    Note
    You can close the newly created dialog box, and open a Creopart file.
    Other dialog style values should not be used in Creo TOOLKIT dialogs. The only purpose of the other dialog style values is to be returned by the function ProUIDialogDialogstyleGet() on a dialog created by Creo Parametric.
    .Digits
    Of Integer type
    Default Value is -1
    The number of digits to be displayed if the contents are being treated as a number.
    A value of 0 indicates that this attribute should be ignored when formatting the value.
    .Double
    Of Float type
    Default Value is 0
    The double value of the contents of the component.
    .DoubleFormat
    Of String type
    Default Value is "%.*lf"
    The format of the contents of the component if they are being treated as a double. The value of this attribute is a C formatting string, which can handle the precision and value of the contents of the InputPanel.
    Note: the formatting is not applied to values entered into the component until the component's Double value is accessed programmatically.
    .DoubleIncrement
    Of Float type
    Default Value is 1
    Slow increment to be used when Spinbox value is a double.
    .DrawingHeight
    Of Integer type
    Default Value is 100
    Height in pixels of the drawing area.
    .DrawingMode
    Enumerated type ProUIDrawingMode
    The drawing mode of the DrawingArea. Following are the possible values:
    PROUIDRWMODE_COPY—Draw using the foreground drawing color.
    PROUIDRWMODE_NOT—Draw, inverting the existing pixels of the component.
    PROUIDRWMODE_AND—Draw using a combination of the foreground drawing color AND the existing pixels.
    PROUIDRWMODE_OR—Draw using a combination of the foreground drawing color OR the existing pixels.
    PROUIDRWMODE_XOR—Draw using a combination of the foreground drawing color XOR the existing pixels.
    .DrawingWidth
    Of Integer type
    Default Value is 100
    Width in pixels of the drawing area.
    .Editable
    Of Boolean type
    TRUE (default), FALSE
    Flag indicating whether the text contents of the component may be modified by the user.
    .FastDoubleIncrement
    Of Float type
    Default Value is 10
    The fast increment to be used when the SpinBox value is a double
    .FastIncrement
    Of Integer type
    Default Value is 10
    The fast increment to be used when the SpinBox value is an integer.
    .FillMode
    Enumerated type ProUIFillMode
    The current drawing fill mode of the DrawingArea. Following are the possible values:
    PROUIFILLMODE_SOLID—Fill using the foreground drawing color.
    PROUIFILLMODE_LIGHT_STIPPLE— Fill using a 75% stipple of the foreground and background drawing colors.
    PROUIFILLMODE_MEDIUM_STIPPLE— Fill using a 50% stipple of the foreground and background drawing colors.
    PROUIFILLMODE_HEAVY_STIPPLE— Fill using a 25% stipple of the foreground and background drawing colors.
    .Focus
    Of String type
    The name of the component on which the cursor is positioned when the dialog is activated. If the Dialog is already active then this specifies the name of the component within the Dialog on which on which the focus is set and the cursor is positioned.
    .FontClass
    Enumerated type ProUIFontClass
    The base font class to be used to draw text in the component.
    .FontSize
    Of Float type
    Default Value is 0
    Point size of the font used to draw text in the component.
    .FontStyle
    Enumerated type ProUIFontStyle
    A bitwise OR of the styles of the font used to draw text in the component.
    Note: All styles are not supported for a given font class and platform.
    .ForegroundColor
    Integer type based on ProUIColorType or a user defined color type.
    The foreground color of the component.
    .FgColor
    Integer type based on ProUIColorType or a user defined color type.
    The foreground drawing color of the component as a user specified color or a window color of ProUIColorType.
    .Height
    Of Integer type
    Default Value is -1
    Height in pixels of the component.
    .HelpText
    Of WideString type
    The popup help-text to be displayed whilst the pointer is over the component.
    .HorzAtPoint
    Of Integer type
    Default Value is 0
    The horizontal location from the existing dialog to which a new dialog is being positioned horizontally. The possible alignment types are left/ center/right.
    .HorzDialog
    Of String type
    The name of the dialog to which the existing dialog is relatively being positioned horizontally.
    .HorzMethod
    Enumerated type ProUIHorzPosition
    Horizontal positioning method of the dialog.
    .HorzPoint
    Enumerated type ProUIHorzPosition.
    The horizontal location on thedialog which is used for positioning.
    .HorzPosition
    Of Integer type
    Default Value is -1
    Desired horizontal position of the dialog. This is the absolute position.
    .HorzPosOffset
    Of Integer type
    Default Value is -1
    The desired horizontal offset between the dialog to which it is being relatively positioned and the existing dialog.
    .HorzSize
    Of Integer type
    Default Value is -1
    The desired width of the dialog.
    .Images
    Of String array typeDefault Value is NULL
    The names of the images, which will be drawn in a DrawingArea. Each image may be a PNG, PCX, GIF, BMP, ICO or CUR file.
    .Increment
    Of Integer type
    Default Value is 1
    The slow increment to be used when the SpinBox value is an integer.
    .Integer
    Of Integer typeDefault Value is 0
    The integer value of the contents of the component.
    .InputType
    Enumerated type ProUIInputtype
    Datatype of the contents of the input panel.
    Following are the possible types:
    •  PROUIINPUTTYPE_STRING
    •  PROUIINPUTTYPE_WSTRING
    •  PROUIINPUTTYPE_INTEGER
    •  PROUIINPUTTYPE_DOUBLE
    •  PROUIINPUTTYPE_FRACTION
    •  PROUIINPUTTYPE_RELATION
    .ItemHelpText
    Of WideString Array type
    The popup help-text to be displayed for the items of the component whilst the pointer is over the component. The array size should match the number of items in the component.
    .ItemImage
    Of String Array type
    The images of the items of the component. Each image may be a PNG, PCX, GIF, BMP, ICO or CUR file. The array size should match the number of items in the component.
    .Label
    Of WideString type
    The text shown on the component.
    (For dialogs: this is the dialog title).
    .Labels
    Of WideString type
    The user visible text for each of the items of the component.
    .LabelAlignment
    Of Integer type
    Default Value is 2
    The justification of the label of the Tree if the Tree has an attribute window and can be as follows:
    •  PROUIALIGNMENT_LEFT
    •  PROUIALIGNMENT_RIGHT
    •  PROUIALIGNMENT_CENTER
    .Lastentereditem
    String
    The name of the item, which was last pointed to by the pointer.
    .Nodescrollpos
    String
    The name of the node indicates the window to be scrolled where the named item appears at a defined location.
    .Length
    Of Integer type
    Default Value is 8
    The length of the Slider, in character widths.
    .ListState
    Of Integer Array type
    The state of each of the items of the List.
    .LineStyle
    Enumerated type ProUILineStyle
    The current line drawing style of the DrawingArea.
    Following are the available types:
    •  PROUILINESTYLE_SOLID
    —Draw solid lines in the foreground drawing color.
    •  PROUILINESTYLE_DOTTED—Draw dotted lines in the foreground and background drawing colors.
    •  PROUILINESTYLE_DASHED
    —Draw dashed lines in the foreground and background drawing colors.
    .ListType
    Enumerated type ProUIListtype
    The possible list types are as follows:
    PROUILISTTYPE_STANDARD—No column headers or check marks.PROUILISTTYPE_TABULATED—Display column headers, but do not display check marks.
    PROUILISTTYPE_CHECK—Display check marks, but do not display column headers. The value of the check mark for each item is accessed by ProUIListStateGet() and ProUIListStateSet()
    .LockedColumns
    Of Integer type
    Default Value is 0
    The number of locked columns of the table.
    .LockedRows
    Of Integer type
    Default Value is 0
    The number of locked rows of the Table.
    .Mapped
    Of Boolean type
    FALSE (default)
    For a dialog component this flag indicates whether the dialog is visible on the screen or not. For all other components this flag indicates whether the component occupies any space when it is invisible.
    .MaxDouble
    Of Float type
    8.507e+37
    The maximum double value of the contents of the component.
    .MaxInteger
    Of Integer type
    2147483647
    The maximum integer value of the contents of the component.
    .MaxLen
    Of Integer type
    Default Value is 32
    The maximum length of the text contents of the component.
    .MinColumns
    Of Integer type
    Default Value is 4
    The minimum width of the component, in character widths.
    .MinDouble
    Of Float type
    -8.507e+37
    The minimum double value of the contents of the component.
    .MinInteger
    Of Integer type
    -2147483647
    The minimum integer value of the contents of the component.
    .MinRows
    Of Integer type
    Default Value is 1
    The minimum number of visible rows of the component.
    .MixedState
    Of Integer Array type
    The indeterminate state of the items in a Tree.
    .Names
    Of String Array type
    The names of the items of the component.
    .Numerator
    Of Integer type
    Default Value is 0
    The numerator value of the fractional contents of the InputPanel.
    .Ordinal
    Of Integer type
    Default Value is 0
    The ordinal value of the fractional contents of the InputPanel.
    .Orientation
    Enumerated type ProUIOrientation
    The orientation of the component. It is of the following types:
    PROUI_HORIZONTAL
    PROUI_VERTICAL
    .ParentName
    Of String type
    The name of the parent component of the component.
    .Password
    Of Boolean type
    FALSE (default)
    Flag indicating whether the component is used for password entry.
    .PolygonFillMode
    Enumerated type ProUIPolygonFillMode
    The fill mode to be used when drawing Polygons in the DrawingArea.
    .PopupMenu
    Of String type
    Allows you to designate the popup menu for a component This is the name of a MenuPane component to use as a popup menu for the given component.
    .PopupWhenInsen
    Of Boolean type
    Flag indicating whether the component should display its popup menu when it is insensitive (TRUE) or whether no popup menu should be displayed at such times (FALSE).
    .ProgressStyle
    Enumerated type ProUIProgressstyle
    The display style of the ProgressBar. It is of the following types:
    •  PROUIPROGRESS_NOTEXT
    •  PROUIPROGRESS_VALUE
    •  PROUIPROGRESS_PERCENT
    •  PROUIPROGRESS_INTERVALS
    .RememberPosition
    Of Boolean type
    TRUE (default), FALSE
    Controls whether Creo Parametric should store the location of the dialog when it is destroyed, and apply the position to the dialog again if it is shown again.
    .RememberSize
    Of Boolean type
    TRUE (default), FALSE
    Controls whether Creo Parametric should store the size the dialog when it is destroyed, and apply the size to the dialog again if it is shown.
    .Resizeable
    Of Boolean type
    TRUE (default), FALSE
    Identifies whether a component is allowed to resize based on changing of content. If the content is larger than the component, set this to TRUE to resize to contain the new content. Set it to FALSE to truncate or shorten the content.
    .ResizableCols
    Of Boolean type
    TRUE (default), FALSE
    Flag indicating whether the Tree columns may be resized using the column headers as draggable sashes.
    .Rows
    Of Integer type
    Default Value is 8
    The number of rows of the component.
    .RowLabels
    Of WideString Array type
    The labels of the rows of the component. If labels are specified then the table will display row headers, otherwise no row headers are displayed.
    .RowNames
    Of String Array type
    The names of the rows of the component.
    .RowSelectionPolicy
    Enumerated type ProUISelectionpolicy
    The types of selection supported for the rows of a table:
    •  PROUISELPOLICY_SINGLE—No item or one item can be selected at a time. Click to clear a selected item.
    •  PROUISELPOLICY_BROWSE—Only one item can be selected at a time. You cannot clear the selection. You can replace the selected item with another selection.
    •  PROUISELPOLICY_MULTIPLE—More than one item can be selected. Click to clear a selected item.
    •  PROUISELPOLICY_EXTENDED—When no key is pressed, only one item can be selected at a time. You cannot clear the selection. You can replace the selected item with another selection.
    Press SHIFT or CTRL keys, to select multiple items.
    Press SHIFT key to select a range of items.
    Press CTRL key to select multiple items. You can click to select and clear an item.
    .ScrollBarsWhenNeeded
    Of Boolean type
    Flag indicating whether scrollbars should only be displayed when they are required (TRUE) or whether they should always be displayed (FALSE).
    .SelectableNames
    Of String Array type
    The names of the items of the component that may be selected. An empty array indicates that every item is currently selectable.
    .SelectedNames
    Of String Array type
    The names of the currently selected items of the component. An empty array indicates that no item of the component is selected. This attribute may not be set in the resource file.
    .SelectedColumnNames
    Of String Array type
    The names of the currently selected columns of the Table. This attribute may not be set in the resource file.
    .SelectedRowNames
    Of String Array type
    The names of the currently selected rows of the Table. This attribute cannot be set through the resource file.
    .SelectionPolicy
    Enumerated type ProUISelectionPolicy
    The type of selection allowed for items in the component:
    •  PROUISELPOLICY_SINGLE—No item or one item can be selected at a time. Click to clear a selected item.
    •  PROUISELPOLICY_BROWSE—Only one item can be selected at a time. You cannot clear the selection. You can replace the selected item with another selection.
    •  PROUISELPOLICY_MULTIPLE—More than one item can be selected. Click to clear a selected item.
    •  PROUISELPOLICY_EXTENDED—When no key is pressed, only one item can be selected at a time. You cannot clear the selection. You can replace the selected item with another selection.
    Press SHIFT or CTRL keys, to select multiple items.
    Press SHIFT key to select a range of items.
    Press CTRL key to select multiple items. You can click to select and clear an item.
    .SelectByCell
    Of Boolean type
    Flag indicating whether the Tree attribute window allows selection by cell (TRUE) or whether all the cells of the selected node of the Tree are selected when a node is selected (FALSE).
    .SelectCBRegardless
    Of Boolean type
    Flag indicating whether the Tree should generate a UI_SELECT_ACTION callback when the currently selected item is re-selected (TRUE) or whether such a selection should be ignored as the state has not changed.
    .Sensitive
    Of Boolean type
    Flag indicating whether the component is disabled (FALSE) or sensitive to user input (TRUE).
    .Set
    Of Integer type
    Default Value is 0
    The state of the component.
    .ShowGrid
    Of Boolean type
    Flag indicating whether to display the grid lines of the Table.
    .StartLocation
    Enumerated type ProUIStartLocation
    Following are the possible user defined start locations and anchor positions for a UI component:
    PROUIDEFAULT_LOCATION—default location
    PROUITOP_LEFT—top left-hand corner
    PROUITOP_MIDDLE—top edge
    PROUITOP_RIGHT—top right-hand corner
    PROUIMIDDLE_LEFT—left-hand edge
    PROUIMIDDLE_MIDDLE—middle
    PROUIMIDDLE_RIGHT—right-hand edge
    PROUIBOTTOM_LEFT—bottom left-hand corner
    PROUIBOTTOM_MIDDLE—bottom edge
    PROUIBOTTOM_RIGHT—bottom right-hand corner
    .String
    Of String type
    The contents of the InputPanel as a string
    .TabCharsAllow
    Of Boolean type
    Flag indicating the behavior of the input panel when the TAB key is pressed. If the value is True, inserts a TAB key press into the text of input panel as a tab character. If the value is False, uses the TAB key press for focus traversal. The input panel ignores the tab key press. This attribute may not be set in the resource file.
    .Tracking
    Of Boolean type
    Flag indicating whether the DrawingArea generates a UI_MOVE_ACTION whenever the pointer is moved over the visible region of the component.
    .TreeAttributeWindow
    Of Boolean type
    Flag indicating whether the Tree has an attribute window.
    .TreeBoxNodes
    Of Boolean type
    Flag indicating whether the nodes of the Tree should be displayed with a bounding rectangle.
    .TreeCellInput
    Of WideString type
    The text entered by the user which caused a UI_TREE_CELL_INPUT_ACTION to be generated. This cannot be specified in the resource file.
    .TreeCellSelCol
    Of String type
    The name of the column of the selected cell of the attribute window of the Tree. This cannot be specified in the resource file.
    .TreeCellSelNode
    Of String type
    The name of the node of the selected cell of the attribute window of the Tree. This cannot be specified in the resource file.
    .TreeChildOrder
    Of Integer type
    Default Value is 1
    The method used to order the children of a parent node of the Tree.
    .TreeColumnsJusts
    Of Integer Array type
    The justifcations of the text of the columns of the attribute window of the Tree.
    .TreeColumnsNames
    Of String Array type
    The names of the columns of the attribute window of the Tree.
    .TreeColumnsTitles
    Of WideStringArray type
    The labels of the column headers of the attribute window of the Tree.
    .TreeColumnsWidths
    Of Integer Array type
    The widths of the columns of the attribute window of the Tree.
    .TreeColumnOrder
    Of String Array type
    The display order of the columns of the attribute window of the Tree. An empty array indicates that the columns should be displayed in the order in which they were created.
    .TreeCurrent
    Of String type
    The name of the current node of the Tree. This is the node which is drawn with a dotted focus rectangle if the Tree component has the keyboard input focus. This cannot be specified in the resource file.
    .TreeDisplayRoot
    Of Boolean type
    Flag indicating whether the root node of the Tree should be displayed (TRUE) or whether it should be hidden from view (FALSE).
    .TreeExpColNode
    Of String type
    The name of the node of the Tree which was expanded or collapsed to generate a UI_EXPAND_ACTION or a UI_COLLAPSE_ACTION, respectively. This cannot be specified in the resource file.
    .TreeIndicateChildren
    Of Boolean type
    Flag indicating whether the nodes of the Tree should be displayed with a "..." suffix to indicate that they have children when the nodes themselves are not expanded.
    .TreeInitialSashPercent
    Of Integer type
    Default Value is 50
    The initial percentage position of the sash of the Tree between the Tree hierarchy and the attribute window of the Tree.
    .TreeKeyboardInput
    Of Boolean type
    Flag indicating whether the attribute window of the Tree should respond to keyboard input and generate a UI_TREE_CELL_INPUT_ACTION.
    .TreeLinkStyle
    Of Integer type
    Default Value is 2
    The link-style used to indicate the children of a parent node of the Tree.
    .TreeNodeTypeAppends
    Of WideStringArray type
    The text to be appended to the labels of the nodes of the node types of the Tree.
    .TreeNodeTypeCollapsedImages
    Of String Array type
    The image to be displayed with the collapsed nodes of the node types of the Tree.
    .TreeNodeTypeExpandedImages
    Of String Array type
    The image to be displayed with the expanded nodes of the node types of the Tree.
    .TreeNodeTypeHelpTexts
    Of WideStringArray type
    The help text of the nodes of the node types of the Tree.
    .TreeNodeTypeNames
    Of String Array type
    The names of the node types of the Tree.
    .TreeNodeTypePrefixs
    Of WideStringArray type
    The text to be prepended to the labels of the nodes of the node types of the Tree.
    .TreeRedraw
    Of Boolean type
    Flag indicating whether redraws are allowed in the Tree. This cannot be specified in the resource file.
    .TreeRootNode
    Of String type
    The name of the root node of the Tree. This cannot be specified in the resource file.
    .TreeState
    Of Integer Array type
    The state of each of the items in the Tree.
    .TreeVerticalSBPosition
    Of Integer type
    Default Value is 3.
    The position of the vertical scrollbar of the Tree.
    .TruncateLabel
    Of Boolean type
    Flag indicating whether to truncate the labels of newly created cells in the Table to the size of their cell.
    Modifying this after adding rows and columns will have no effect on any existing cell's appearance.
    .UnitsPerRotation
    Of Integer type
    Default Value is 360.
    The amount by which the value of the thumbwheel should be incremented for each complete revolution of the wheel.
    .Value
    Of WideString type
    The text contents of the component.
    .VertAtPoint
    Enumerated type ProUIVertPosition.
    The vertical location from the existing dialog to which a new dialog is being positioned vertically.
    .VertDialog
    Of String type
    The name of the dialog to which the existing dialog is relatively being positioned.
    .VertMethod
    Enumerated type ProUIPositioninMethod
    Vertical positioning method of the dialog.
    .VertPoint
    Enumerated type ProUIVertPosition.
    The vertical location on the dialog, which is used for positioning.
    .VertPosOffset
    Of Integer type
    Default Value is -1
    The desired vertical offset between the dialog to which it is being relatively positioned and the existing dialog.
    .VertSize
    Of Integer type
    Default Value is -1
    The desired height of the dialog.
    .Visible
    Of Boolean type
    Flag indicating whether the component is shown (TRUE) or hidden (FALSE).
    .VisibleNames
    Of String Array type
    The names of the visible items of the component. An empty array indicates that every item of the component is visible.
    .VisibleRows
    Of Integer type
    Default Value is 4
    The number of visible rows of the component.
    .WideString
    Of WideString type
    The contents of the InputPanel as a wide-string.
    .Width
    Of Integer type
    Default Value is -1
    Width of the component, in pixels.
    Using Resource Files
    Resource files are text files that describe the overall structure of a dialog box.
    Note
    For most Creo TOOLKIT applications, it is not required to use resource files. Instead you can use the functions described in the previous sections to create, lay out, and populate dialog boxes directly. Information in this section is provided for the few applications that still require resource files.
    When the Creo TOOLKIT application wants to show a dialog box to the Creo Parametric user, it simply asks Creo Parametric to load the dialog box from the resource file. The first task for the Creo TOOLKIT user who wants to display a dialog box is to write the resource file.
    The resource file describes:
    •  Overall attributes of the dialog box.
    •  A list of components it contains.
    •  Attributes of the components themselves and the relative positions of the components.
    •  Rules for how they behave when the user resizes the dialog box.
    Many of the dialog box and component attributes can also be read and modified programmatically with Creo TOOLKIT functions.
    A resource file must be called dialog_name.res where dialog_name is the name of the dialog box. The name of the resource file should be in the lower case. Resource files used by the Creo TOOLKIT application must be stored under the text directory referred to by the text_dir statement in the Creo TOOLKIT registry file.
    Location and Translation of Resource Files
    If the application uses language-specific directories, the resource file must be located in the <application_text_dir>/<language_dir>/resource directory. One resource file must exist for each language supported by the application. If the application supports only one language, then the resource file may be located in the <application_text_dir>/resource directory.
    A Creo TOOLKIT application can optionally include only one resource file for all supported languages in the <application_text_dir>/resource directory. This application should also include a text file containing the translated entities and translated text for each additional language, in the format used by the function ProMessageDisplay(), in the <application_text_dir>/resource/<language_dir> directory. The translation text file should include the following items:
    •  The component and attribute for each translated item in line 1
    •  The English text in line 2
    •  The translated entities and translated text in line 3
    •  Line 4 should be left blank
    Function Introduced:
    Use the function ProUITranslationFilesEnable() to set your Creo TOOLKIT application to use the single resource file and multiple translation files method of deploying resource files for translated dialog boxes. Call this function from your application’s user_intialize() function before any call is made to another ProUI* function.
    Syntax of Resource Files
    The resource file is composed of nested statements; each statement is enclosed in parentheses, and contains either a keyword or the name of a dialog or component attribute followed by one or more values and/or other statements.
    The top-level statement in a resource file for dialog must always be
    (
    Dialog dialog_name     (other statements...   ) 
    )
    where dialog_name is the name of the dialog itself. The dialog name is used to refer to the dialog from the source code of the application. The name of a dialog can be of any length, and contains alphanumeric characters and underscores. Case is ignored.
    If the resource file contains only a layout, the top-level statement would be
    (
    Layout layout_name     (other statements...   ) 
    )
    instead. Collectively, the top statement describes the outermost container in the resource file.
    The two statements that follow the name of the container are always Components and Resources.
    The Components statement simply lists the types and names of the components that the dialog contains.
    Components of type Layout, MenuPane, CascadeButton, Table, or Tree may have their own container-level statements following the Dialog statement. The formats of these statements are exactly the same as the Dialog statement.
    If one of the components is a tab, the layouts that the tab contains are listed after the tab name in the Components part of the Dialog statement. Similarly, if one of the components is a MenuBar or a CascadeButton, the MenuPanes that it contains are listed after the MenuBar name in the Components part of the Dialog statement.
    A Resources statement contains one or more attribute assignments. Each attribute assignment statement is of this form
    (componentname.attributename    value)
    The Resource statement defines the attributes of the dialog and the components, and the Layout which defines the relative positions of the components, and the way in which they behave when the dialog is resized. If the component name is missing, the statement (for example, (.attributename value)) will be assumed to apply to an attribute of the dialog or layout itself. The attributes and their values are described in detail in the following sections of this chapter.
    The last attribute statement in a Resources statement is a special one called .Layout. The value of a .Layout statement is always a single statement of type Grid. The Grid statement describes a flexible grid of rows and columns in which the components are placed; this defines the neighbor-relations between components, in other words their relative positions. The absolute positions, and the sizes, of the components may change as the grid stretches and shrinks in response to the user resizing the window containing the dialog. Components of type MenuPane do not require a .Layout statement.
    The Grid statement contains the following values:
    •  Rows statement—lists the rows in the grid.
    •  Cols statement—lists the columns in the grid.
    •  Values list—specify the contents of each grid location in turn, reading left-to-right, top-to-bottom. Each of the values can be either
      The name of a component
      A Pos statement, to specify the row and column number of the next component in the list, if it is not in the next available location. A Pos statement allows you to skip some locations, leaving them empty.
      Another Grid statement, to show that the location contains several components on their own local grid.
    The value of a Rows or Cols statement is a list of integers, one for each row or column. The value of the integer is 0 if the row or column cannot be resized when user resized the dialog. the integer value is 1 if it can be resized. (It is normal to set this to 1, so that all the components in the dialog will stretch when the dialog stretches.)
    The size and position of the components within the grid is also partly determined by the values set for the Attach and Offset attributes described in more detail in the section Master Table of Resource File Attributes.
    Note
    Ensure that the resource file contains a new line after the last parenthesis, or else the function ProUIDialogCreate() will return an error.
    Example 8: Dialog with All Components
    (Dialog allcomponents
        (Components
            (PushButton                     PushButton1)
            (PushButton                     PushButton2)
            (Tab                            Tab3
                                            Layout11
                                            Layout8)
            (Label                          Label16)
        )
        (Resources
            (PushButton1.Label              "OK")
            (PushButton1.TopOffset          4)
            (PushButton1.BottomOffset       4)
            (PushButton1.LeftOffset         4)
            (PushButton1.RightOffset        4)
            (PushButton2.Label              "Cancel")
            (PushButton2.TopOffset          4)
            (PushButton2.BottomOffset       4)
            (PushButton2.LeftOffset         4)
            (PushButton2.RightOffset        4)
            (Tab3.Decorated                 True)
            (Label16.Label                  "Push Buttons")
            (.Label                         "All Components")
            (.Layout
                (Grid (Rows 1 1 1) (Cols 1)
                    Tab3
                    Label16
                    (Grid (Rows 1) (Cols 1 1)
                        PushButton1
                        PushButton2
                    )
                )
            )
        )
    )
    (Layout Layout11
        (Components
            (SubLayout                      Layout1)
        )
    
        (Resources
            (.Label           "Tab with two layouts")
            (.Decorated                     True)
            (.Layout
                (Grid (Rows 1) (Cols 1)
                    Layout1
                )
            )
        )
    )
    (Layout Layout1
        (Components
            (InputPanel                     InputPanel1)
            (Label                          Label1)
            (CheckButton                    CheckButton1)
            (Label                          Label2)
            (Label                          Label3)
            (Label                          Label4)
            (List                           List1)
            (Label                          Label5)
            (OptionMenu                     OptionMenu1)
            (Label                          Label6)
            (Label                          Label8)
            (RadioGroup                     RadioGroup1)
            (Slider                         Slider1)
            (Label                          Label9)
            (TextArea                       TextArea1)
            (Label                          Label10)
            (CheckButton                    CheckButton3)
            (Label                          Label7)
            (Label                          Label11)
            (ThumbWheel                     ThumbWheel1)
            (ProgressBar                    ProgressBar1)
            (SpinBox                        SpinBox1)
            (Label                          Label14)
            (Separator                      Separator1)
            (Label                          Label13)
            (Table                          Table1)
            (Label                          Label17)
        )
        (Resources
            (InputPanel1.InputType          2)
            (Label1.Label                   "Input Panel")
            (Label1.AttachLeft              True)
            (CheckButton1.Label             "Check2")
            (CheckButton1.Set               True)
            (CheckButton1.TopOffset         4)
            (CheckButton1.BottomOffset      4)
            (CheckButton1.LeftOffset        4)
            (CheckButton1.RightOffset       4)
            (Label2.Label                   "Check Buttons")
            (Label2.AttachLeft              True)
            (Label2.TopOffset               4)
            (Label2.BottomOffset            4)
            (Label2.LeftOffset              4)
            (Label2.RightOffset             4)
            (Label3.Label                   "Label")
            (Label3.AttachLeft              True)
            (Label4.Label                   "Label Text")
            (List1.Names                    "n1"
                                            "n2"
                                            "n3"
                                            "n4"
                                            "n5")
            (List1.Labels                   "Value 1"
                                            "Value 2"
                                            "Value 3"
                                            "Value 4"
                                            "Value 5")
            (Label5.Label                   "List")
            (Label5.AttachLeft              True)
            (OptionMenu1.Names              "n1"
                                            "n2"
                                            "n3"
                                            "n4"
                                            "n5")
            (OptionMenu1.Labels             "Option 1"
                                            "Option 2"
                                            "Option 3"
                                            "Option 4"
                                            "Option 5")
            (Label6.Label                   "Option Menu")
            (Label6.AttachLeft              True)
            (Label8.Label                   "Radio Group")
            (Label8.AttachLeft              True)
            (RadioGroup1.Orientation        True)
            (RadioGroup1.AttachLeft         False)
            (RadioGroup1.AttachRight        False)
            (RadioGroup1.AttachTop          False)
            (RadioGroup1.AttachBottom       False)
            (RadioGroup1.Names              "n1"
                                            "n2"
                                            "n3")
            (RadioGroup1.Labels             "Rad1"
                                            "Rad2"
                                            "Rad3")
            (RadioGroup1.Alignment          2)
            (Label9.Label                   "Slider")
            (Label9.AttachLeft              True)
            (Label10.Label                  "Text Area")
            (Label10.AttachLeft             True)
            (CheckButton3.Label             "Check1")
            (Label7.Label                   "Thumbwheel")
            (Label7.AttachLeft              True)
            (Label11.Label                  "Progress bar")
            (Label11.AttachLeft             True)
            (Label14.Label                  "Spinbox")
            (Label14.AttachLeft             True)
            (Label13.Label                  "Separator")
            (Label13.AttachLeft             True)
            (Table1.RowNames                "r1"
                                            "r2"
                                            "r3")
            (Table1.RowLabels               "1"
                                            "2"
                                            "3")
            (Table1.ColumnNames             "c1"
                                            "c2"
                                            "c3")
            (Table1.ColumnLabels            "- A -"
                                            "- B -"
                                            "- C -")
            (Table1.ColumnWidths            4
                                            4
                                            4)
            (Table1.VisibleRows             4)
            (Table1.ShowGrid                True)
            (Label17.Label                  "Table")
            (Label17.AttachLeft             True)
            (.Label                         "Decorated layout")
            (.Decorated                     True)
            (.TopOffset                     4)
            (.BottomOffset                  4)
            (.LeftOffset                    4)
            (.RightOffset                   4)
            (.Layout
                (Grid (Rows 1 1 1 1 1 1 1 1 1 1 1 1 1) (Cols 1 1)
                    Label2
                    (Grid (Rows 1 1) (Cols 1)
                        CheckButton3
                        CheckButton1
                    )
                    Label1
                    InputPanel1
                    Label3
                    Label4
                    Label5
                    List1
                    Label6
                    OptionMenu1
                    Label11
                    ProgressBar1
                    Label8
                    RadioGroup1
                    Label13
                    Separator1
                    Label9
                    Slider1
                    Label14
                    SpinBox1
                    Label17
                    Table1
                    Label10
                    TextArea1
                    Label7
                    ThumbWheel1
                )
            )
        )
    )
    
    (Layout Layout8
       (Components
          (Label                          Label15)
        )
        (Resources
            (Label15.Bitmap         "ptc_logo")      
            (.Label                 "Second layout")
            (.Layout
                (Grid (Rows 1) (Cols 1)
                    Label15
                )
            )
        )
    )
    Example 9: Resource File for Dialog with Four Components on 2x2 Grid
    This example shows a simple dialog which contains four components on a single 2-by-2 grid.
    (Dialog Simple
         (Components
             (PushButton                     OK)
             (PushButton                     Cancel)
             (Label                          RadioLabel)
             (RadioGroup                     Tolgroup)
         )
        (Resources
             (OK.Label                       "OK")
             (OK.TopOffset                   4)
             (OK.BottomOffset                4)
             (OK.LeftOffset                  4)
             (OK.RightOffset                 4)
             (Cancel.Label                   "Cancel")
             (Cancel.TopOffset               4)
             (Cancel.BottomOffset            4)
             (Cancel.LeftOffset              4)
             (Cancel.RightOffset             4)
             (RadioLabel.Label               "Value to use")
             (RadioLabel.TopOffset           4)
             (RadioLabel.BottomOffset        4)
             (RadioLabel.LeftOffset          4)
             (RadioLabel.RightOffset         4)
             (Tolgroup.Orientation           True)
             (Tolgroup.Names                 "Top"
                                             "Middle"
                                             "Bottom")
             (Tolgroup.Labels                "Upper limit"
                                             "Nominal"
                                             "Lower limit")
             (.Label                         "Simple Dialog")
             (.Layout
                 (Grid (Rows 1 1) (Cols 1 1)
                     RadioLabel
                     Tolgroup
                     OK
                     Cancel
                 )
             )
         )
     )
    
    Example 10: Resource File for Subgrid Dialog
    This example shows the resource file for the preceding subgrid dialog.
    (Dialog subgrid
         (Components
             (PushButton                     OK)
             (PushButton                     Cancel)
             (InputPanel                     FeatNamePanel)
             (Label                          FeatNameLabel)
         )
        (Resources
             (OK.Label                       "OK")
             (OK.TopOffset                   4)
             (OK.BottomOffset                4)
             (OK.LeftOffset                  4)
             (OK.RightOffset                 4)
             (Cancel.Label                   "Cancel")
             (Cancel.TopOffset               4)
             (Cancel.BottomOffset            4)
             (Cancel.LeftOffset              4)
             (Cancel.RightOffset             4)
             (FeatNamePanel.TopOffset        4)
             (FeatNamePanel.BottomOffset     4)
             (FeatNamePanel.LeftOffset       4)
             (FeatNamePanel.RightOffset      4)
             (FeatNameLabel.Label            "Feature name")
             (.Label                         "Subgrid")
             (.Layout
                 (Grid (Rows 1 1 1) (Cols 1)
                     FeatNameLabel
                     FeatNamePanel
                     (Grid (Rows 1) (Cols 1 1)
                         OK
                         Cancel
                     )
                 )
             )
         )
     )
    
    Example 11: Resource File for Subgrid Dialog with Resize
    A better way to lay out the dialog in the previous example would be to place the input panel text to the left of the input panel. If this were done with a single 2-by-2 grid, the input panel label and panel itself would resize to take up the same width as the OK and Cancel buttons. To avoid this you can put the first two components in a layout of their own, which therefore has its own grid, so the columns can take up their own widths.
    This example demonstrates this method.
    (Dialog subgrid
         (Components
             (PushButton                     OK)
             (PushButton                     Cancel)
             (InputPanel                     FeatNamePanel)
             (Label                          FeatNameLabel)
         )
        (Resources
             (OK.Label                       "OK")
             (OK.TopOffset                   4)
             (OK.BottomOffset                4)
             (OK.LeftOffset                  4)
             (OK.RightOffset                 4)
             (Cancel.Label                   "Cancel")
             (Cancel.TopOffset               4)
             (Cancel.BottomOffset            4)
             (Cancel.LeftOffset              4)
             (Cancel.RightOffset             4)
             (FeatNamePanel.TopOffset        4)
             (FeatNamePanel.BottomOffset     4)
             (FeatNamePanel.LeftOffset       4)
             (FeatNamePanel.RightOffset      4)
             (FeatNameLabel.Label            "Feature name")
             (.Label                         "Subgrid")
             (.Layout
                 (Grid (Rows 1 1 1) (Cols 1)
                     FeatNameLabel
                     FeatNamePanel
                     (Grid (Rows 1) (Cols 1 1)
                         OK
                         Cancel
                     )
                 )
             )
         )
     )
    
    Example 12: Resource File with Offsets, Attachments, and Help Text
    This example shows a section of resource file which specifies offsets, attachments, and help text is shown below. This is an extended version of the previous example.
        (Resources
             (FeatNameLabel.Label            "Feature name")
             (FeatNameLabel.AttachLeft       True)
             (FeatNameLabel.TopOffset        4)
             (FeatNameLabel.BottomOffset     4)
             (FeatNameLabel.LeftOffset       4)
             (FeatNameLabel.RightOffset      4)
             (FeatNamePanel.HelpText         "Enter the Feature name here.")
             (FeatNamePanel.TopOffset        4)
             (FeatNamePanel.BottomOffset     4)
             (FeatNamePanel.LeftOffset       4)
             (FeatNamePanel.RightOffset      4)
             ....
         )
    The .Bitmap attribute is the name of a file which contains a bitmap description of an image which should be applied to the component. The file can be one of the following types:
    •  .GIF
    •  .PNG
    •  .PCX
    •  .BMP
    •  .ICO
    •  .CUR
    If you supply only the root of the filename, the .bif format will be assumed.
    Example 13: Resource File with Text Question, OK and Cancel Buttons
    This example shows the use of a simple dialog, which contains a text question and OK and Cancel buttons. It would be used for any kind of confirmation request.
    For a programatic method of creating this dialog box refer to Example 1: Source for Dialog with Text Question, OK and Cancel Buttons.
    (Dialog confirm
         (Components
             (Label                          Question)
             (PushButton                     OK)
             (PushButton                     Cancel)
         )
        (Resources
             (Question.Label                 "Dummy label")
             (Question.TopOffset             4)
             (Question.BottomOffset          4)
             (Question.LeftOffset            4)
             (Question.RightOffset           4)
             (OK.Label                       "OK")
             (OK.TopOffset                   4)
             (OK.BottomOffset                4)
             (OK.LeftOffset                  4)
             (OK.RightOffset                 4)
             (Cancel.Label                   "Cancel")
             (Cancel.TopOffset               4)
             (Cancel.BottomOffset            4)
             (Cancel.LeftOffset              4)
             (Cancel.RightOffset             4)
             (.Label                         "Confirm")
             (.Layout
                 (Grid (Rows 1 1) (Cols 1)
                     Question
                     (Grid (Rows 1) (Cols 1 1)
                         OK                     Cancel
                     )
                 )
             )
         )
     )
    
    Example 14: UI List Resource File
    The example below shows the resource file used to create UI List.For a programatic method of creating the UI List refer to Example 2: To use UI List Functions.
    (Dialog ug_uilist
        (Components
            (SubLayout                      ug_uilist_layout1)
            (SubLayout                      ug_uilist_layout2)
        )
    
        (Resources
            (.Label                         "UI List")
            (.Layout
                (Grid (Rows 1 1) (Cols 1)
                    ug_uilist_layout1
                    ug_uilist_layout2
                )
            )
        )
    )
    
    (Layout ug_uilist_layout1
        (Components
            (List                           ug_uilist_comp)
            (Label                          ug_uilist_label_1)
            (TextArea                       ug_uilist_txtarea)
            (Label                          ug_uilist_lable_2)
        )
    
        (Resources
            (ug_uilist_label_1.Label        "List area")
            (ug_uilist_txtarea.FontStyle    4)
            (ug_uilist_lable_2.Label        "Text Area")
            (.Decorated                     True)
            (.DecoratedStyle                3)
            (.Layout
                (Grid (Rows 1 1 1 1) (Cols 1)
                    ug_uilist_label_1
                    ug_uilist_comp
                    ug_uilist_lable_2
                    ug_uilist_txtarea
                )
            )
        )
    )
    
    (Layout ug_uilist_layout2
        (Components
            (PushButton                     ug_uilist_ok)
            (PushButton                     ug_uilist_cancel)
        )
    
        (Resources
            (ug_uilist_ok.Label             "Ok")
            (ug_uilist_ok.TopOffset         4)
            (ug_uilist_ok.BottomOffset      4)
            (ug_uilist_ok.RightOffset       20)
            (ug_uilist_cancel.Label         "Cancel")
            (ug_uilist_cancel.TopOffset     4)
            (ug_uilist_cancel.BottomOffset  4)
            (ug_uilist_cancel.LeftOffset    20)
            (.Layout
                (Grid (Rows 1) (Cols 1 1 1)
                    ug_uilist_ok
                    (Pos 1 3)
                    ug_uilist_cancel
                )
            )
        )
    )
    Example 15: Resource File for Dialog with Menubar
    The example below shows the resource file used to create the dialog with MenuBars as described in section Example 9: Resource File for Dialog with Four Components on 2x2 Grid.
    (Dialog menus
        (Components
            (MenuBar                        MenuBar1
                                            MenuPane1
                                            MenuPane2)
            (TextArea                       TextArea1)
        )
    
        (Resources
            (TextArea1.Rows                 10)
            (TextArea1.Columns              25)
            (.Label                         "Menubar dialog")
            (.Layout
                (Grid (Rows 1) (Cols 1)
                    TextArea1
                )
            )
        )
    )
    
    (MenuPane MenuPane1
        (Components
            (PushButton                     PushButton1)
            (PushButton                     PushButton2)
        )
    
        (Resources
            (.Label                         "MenuPane1")
    	  (PushButton1.Label              "Button1")
    	  (PushButton2.Label              "Button2")
        )
    )
    
    (MenuPane MenuPane2
        (Components
            (PushButton                     PushButton3)
            (Separator                      Separator1)
            (RadioGroup                     RadioGroup1)
            (RadioGroup                     RadioGroup2)
            (Separator                      Separator2)
            (CascadeButton                  CascadeButton2
                                            MenuPane4)
            (CheckButton                    CheckButton1)
        )
    
        (Resources
    	  (.Label                         "MenuPane2")
            (PushButton3.Label              "Pushbutton")
            (RadioGroup1.Names              "RG1"
                                            "RG2")
            (RadioGroup1.Labels             "Radio group 1"
                                            "Radio group 2")
            (CascadeButton2.Label           "Cascade button")
            (CheckButton1.Label             "Checkbutton")
        )
    )
    
    (MenuPane MenuPane4
        (Components
            (PushButton                     PushButton5)
            (PushButton                     PushButton6)
        )
    
        (Resources
            (PushButton5.Label              "Pushbutton")
            (PushButton6.Label              "Pushbutton")
        )
    )
    Example 16: Progress Bar Resource File
    (Dialog progressbars
        (Components
            (ProgressBar                    ProgressBar2)
            (ProgressBar                    ProgressBar3)
            (ProgressBar                    ProgressBar4)
            (ProgressBar                    ProgressBar5)
            (Label                          Label2)
            (Label                          Label3)
            (Label                          Label4)
            (Label                          Label5)
            (Separator                      Separator1)
            (SpinBox                        SpinBox1)
            (SpinBox                        SpinBox2)
            (ThumbWheel                     ThumbWheel1)
        )
    
        (Resources
            (ProgressBar2.ProgressStyle     0)
            (ProgressBar2.TopOffset         4)
            (ProgressBar2.BottomOffset      4)
            (ProgressBar2.LeftOffset        4)
            (ProgressBar2.RightOffset       4)
            (ProgressBar3.ProgressStyle     1)
            (ProgressBar3.TopOffset         4)
            (ProgressBar3.BottomOffset      4)
            (ProgressBar3.LeftOffset        4)
            (ProgressBar3.RightOffset       4)
            (ProgressBar4.TopOffset         4)
            (ProgressBar4.BottomOffset      4)
            (ProgressBar4.LeftOffset        4)
            (ProgressBar4.RightOffset       4)
            (ProgressBar5.ProgressStyle     3)
            (ProgressBar5.TopOffset         4)
            (ProgressBar5.BottomOffset      4)
            (ProgressBar5.LeftOffset        4)
            (ProgressBar5.RightOffset       4)
            (Label2.Label                   "No text")
            (Label2.AttachLeft              True)
            (Label3.Label                   "Value")
            (Label3.AttachLeft              True)
            (Label4.Label                   "Percentage")
            (Label4.AttachLeft              True)
            (Label5.Label                   "Interval")
            (Label5.AttachLeft              True)
            (Separator1.Orientation         True)
            (SpinBox1.Columns               8)
            (SpinBox1.Editable              False)
            (SpinBox1.IntegerBase           8)
            (SpinBox1.Rate                  1)
            (SpinBox1.InputType             3)
            (SpinBox1.Digits                3)
            (SpinBox1.DoubleFormat          "%12.*le")
            (ThumbWheel1.DecoratedStyle     4)
            (ThumbWheel1.InfiniteRange      False)
            (.Layout
                (Grid (Rows 1 1 1 1 1 1) (Cols 1 1 1)
                    (Pos 1 2)
                    Label2
                    ProgressBar2
                    (Pos 2 2)
                    Label3
                    ProgressBar3
                    (Pos 3 2)
                    Label4
                    ProgressBar4
                    (Pos 5 1)
                    Label5
                    Separator1
                    ProgressBar5
                    SpinBox1
                    SpinBox2
                    ThumbWheel1
                )
            )
        )
    )
    Example 17: Component Visibility Resource File
    For a programatic method of creating this dialog box refer to Example 3: Controlling Component Visibility or Sensitivity at Runtime.
    
    (Dialog uguivisibility
        (Components
          (SubLayout                       PushbuttonVisibility)
          (PushButton                      CloseButton)
    )
        (Resources
          (CloseButton.Label                "Close")
          (CloseButton.TopOffset            4)
          (CloseButton.BottomOffset         4)
          (CloseButton.LeftOffset           4)
          (CloseButton.RightOffset          4)
          (.Label                           "Component Visibility")
          (.Layout
              (Grid (Rows 1 1) (Cols 1)
                                            PushbuttonVisibility
    CloseButton
                 )
             )
         )
     )
     
        (Layout                               PushbuttonVisibility
          (Components
             (PushButton                     TargetBtn)
             (CheckButton                    VisibleCheck)
             (CheckButton                    SensitiveCheck)
             (InputPanel                     ButtonLabel)
         )
        (Resources
             (TargetBtn.Label                "PushButton")
             (TargetBtn.TopOffset            4)
             (TargetBtn.BottomOffset         4)
             (TargetBtn.LeftOffset           4)
             (TargetBtn.RightOffset          4)
             (TargetBtn.Resizeable           True)
             (VisibleCheck.Label             "Visible")
             (VisibleCheck.Set                True)
             (VisibleCheck.TopOffset          4)
             (VisibleCheck.BottomOffset       4)
             (VisibleCheck.LeftOffset         4)
             (VisibleCheck.RightOffset        4)
             (SensitiveCheck.Label            "Sensitive")
             (SensitiveCheck.Set              True)
             (SensitiveCheck.TopOffset        4)
             (SensitiveCheck.BottomOffset     4)
             (SensitiveCheck.LeftOffset       4)
             (SensitiveCheck.RightOffset      4)
             (ButtonLabel.Value               "PushButton")
             (ButtonLabel.TopOffset           4)
             (ButtonLabel.BottomOffset        4)
             (ButtonLabel.LeftOffset          4)
             (ButtonLabel.RightOffset         4)
             (.Label                       "PushButtons")
             (.Layout
                 (Grid (Rows 1) (Cols 1 1 1 1)
                     TargetBtn
                     VisibleCheck
                     SensitiveCheck
                     ButtonLabel
                 )
             )
         )
     )
    Example 18: Resource File for Dialog with Slider and Linked InputPanel
    This example shows the resource file for a dialog with slider and linked input panel. For a programatic method of creating this dialog box refer to Example 4: Source of Dialog with Slider and Linked InputPanel.
    (Dialog angle
         (Components
             (SubLayout                      Layout1)
             (SubLayout                      Layout2)
         )
        (Resources
             (.Label                         "Angle")
             (.DefaultButton                 "OK")
             (.Layout
                 (Grid (Rows 1 1) (Cols 1)
                     Layout1                 Layout2
                 )
             )
         )
     )
    (Layout Layout1
         (Components
             (Slider                         Slider)
             (InputPanel                     InputPanel)
             (Label                          Prompt)
         )
        (Resources
             (Slider.MinInteger              -180)
             (Slider.MaxInteger              180)
             (Slider.Length                  12)
             (Slider.Tracking                True)
             (Slider.TopOffset               4)
             (Slider.BottomOffset            4)
             (Slider.LeftOffset              4)
             (Slider.RightOffset             4)
             (InputPanel.Columns             4)
             (InputPanel.AttachLeft          False)
             (InputPanel.AttachRight         False)
             (InputPanel.MinInteger          -180)
             (InputPanel.MaxInteger          180)
             (InputPanel.TopOffset           4)
             (InputPanel.BottomOffset        4)
             (InputPanel.LeftOffset          4)
             (InputPanel.RightOffset         4)         
             (InputPanel.InputType           2)
             (Prompt.Label                   "Dummy text")
             (.Layout
                 (Grid (Rows 1 1) (Cols 1)
                     Prompt 
                    (Grid (Rows 1) (Cols 1 1)
                         Slider
                         InputPanel
                    )
                 )
             )
         )
     )
    (Layout Layout2
         (Components
             (PushButton                     OK)
             (PushButton                     Cancel)
         )
        (Resources
             (OK.Label                       "OK")
             (OK.TopOffset                   4)
             (OK.BottomOffset                4)
             (OK.LeftOffset                  4)
             (OK.RightOffset                 4)
             (Cancel.Label                   "Cancel")
             (Cancel.TopOffset               4)
             (Cancel.BottomOffset            4)
             (Cancel.LeftOffset              4)
             (Cancel.RightOffset             4)
             (.Layout
                 (Grid (Rows 1) (Cols 1 1)
                     OK                 Cancel
                 )
             )
         )
     )
    Example 19: UG Tables Resource File
    The following example shows a resource file containing a table. Components may be assigned to a table through the table layout. Components of the table layout are invisible until assigned or copied in to a table cell.
    (Dialog uguitableexample
        (Components
            (SubLayout                      TableLayout)
            (SubLayout                      ButtonLayout)
            (OptionMenu                     ToCopy)
        )
    
        (Resources
            (ToCopy.Visible                 False)
            (ToCopy.AttachTop               True)
            (ToCopy.AttachBottom            True)
            (ToCopy.Names                   "ONE"
                                            "MANY")
            (ToCopy.Labels                  "Select One"
                                            "Select Many")
            (.Label                         "UG Tables")
            (.Layout
                (Grid (Rows 1 0 1) (Cols 1)
                    TableLayout
                    ButtonLayout
                    ToCopy
                )
            )
        )
    )
    
    (Layout TableLayout
        (Components
            (Table                          LargeTable)
        )
    
        (Resources
            (LargeTable.Columns             40)
            (LargeTable.MinRows             4)
            (LargeTable.TopOffset           4)
            (LargeTable.BottomOffset        4)
            (LargeTable.LeftOffset          4)
            (LargeTable.RightOffset         4)
            (LargeTable.RowNames            "A"
                                            "B"
                                            "C"
                                            "D"
                                            "E")
            (LargeTable.ColumnNames         "1"
                                            "2"
                                            "3"
                                            "4")
            (LargeTable.RowLabels           "Alpha"
                                            "Beta"
                                            "Gamma"
                                            "Delta"
                                            "Epsilon")
            (LargeTable.ColumnLabels        "One"
                                            "Two"
                                            "Three"
                                            "Four")
            (LargeTable.ShowGrid            True)
            (.AttachLeft                    True)
            (.AttachRight                   True)
            (.AttachTop                     True)
            (.AttachBottom                  True)
            (.Layout
                (Grid (Rows 1) (Cols 1)
                    LargeTable
                )
            )
        )
    )
    
    (TableLayout LargeTable
        (Components
            (PushButton                     BaseButton)
            (CheckButton                    BaseCheckButton)
            (InputPanel                     BaseInputPanel)
        )
    
        (Resources
            (BaseButton.Label               "Table Button")
            (BaseCheckButton.Label          "Table Check Button")
            (BaseInputPanel.Value           "Table Input Panel")
        )
    )
    
    (Layout ButtonLayout
        (Components
            (PushButton                     CloseButton)
            (PushButton                     ModifySelectButton)
            (Label                          Label1)
        )
    
        (Resources
            (CloseButton.Label              "Close")
            (CloseButton.TopOffset          4)
            (CloseButton.BottomOffset       4)
            (CloseButton.LeftOffset         4)
            (CloseButton.RightOffset        4)
            (ModifySelectButton.Label       "Toggle cells")
            (ModifySelectButton.Visible     False)
            (ModifySelectButton.TopOffset   4)
            (ModifySelectButton.BottomOffset 4)
            (ModifySelectButton.LeftOffset  4)
            (ModifySelectButton.RightOffset 4)
            (.Layout
                (Grid (Rows 1 1) (Cols 1 1 1)
                    (Pos 1 3)
                    Label1
                    ModifySelectButton
                    CloseButton
                )
            )
        )
    )
    Example 20: UG Tables Component Resource File
    The following example demonstrates different methods that can be used to assign components into table cells. The example directly assigns a stored component, copies a stored component, copies a component from elsewhere in the dialog, and copies a component from another independent dialog.
    The Example 19: UG Tables Resource File is the primary resource file for the following example. The table components dialog is another dialog from which the following resource code will copy a component into the table.
    For a programatic method of assigning components into table cells refer to Example 5: To Assign Components into Table Cells.
    (Dialog uguitablecomponents
        (Components
            (PushButton                     ExternalButtonToCopy)
        )
    
        (Resources
            (ExternalButtonToCopy.Label     "From other dialog...")
            (.Layout
                (Grid (Rows 1) (Cols 1)
                    ExternalButtonToCopy
                )
            )
        )
    )
    NakedWindow Operations
    NakedWindow is an application defined area where controls can be positioned precisely by the application code.
    It is recommended that you use the NakedWindow component:
    •  To contain application defined content. For example, a Win32 HWND object whose content is not being ported.
    •  To have precise control over child position.
    Note
    Use the DrawingArea component to draw your own content.
    Functions Introduced
    Use the function ProUINakedwindowShow() to make the naked window visible.
    Use the function ProUINakedwindowHide() to make the naked window invisible.
    Use the function ProUINakedwindowHide() to determine if the naked window is visible or invisible.
    Use the function ProUINakedwindowEnable() to set the naked window and all its children to be sensitive to user input.
    The function ProUINakedwindowDisable() ignores the flag children always-on-top when arranging them.
    The function ProUINakedwindowIsEnabled() checks if the naked window is sensitive or insensitive to the user input.
    Use the function ProUINakedwindowMappedSet() to set the naked window to occupy space when invisible.
    The function ProUINakedwindowMappedUnset() sets the naked window not to occupy space when invisible.
    The function ProUINakedwindowIsMapped() checks if the naked window occupies any space when it is invisible.
    The function ProUINakedwindowEnablePopupwheninsensitive() shows the popup menu when the naked window is insensitive.
    The function ProUINakedwindowDisablePopupwheninsensitive() hides the popup menu when the naked window is insensitive.
    The function ProUINakedwindowIsPopupwheninsensitiveEnabled() checks the status (shown/hidden) of the popup menu when the naked window is insensitive. The output state is a ProBoolean and is PRO_B_TRUE when the popup menu is shown for the insensitive naked window; PRO_B_FALSE when the popup menu is hidden for the insensitive naked window.
    Use the function ProUINakedwindowEnableAlwaysontop() to make children that have always-on-top enabled to be always placed above their siblings in the Z-order.
    The function ProUINakedwindowDisableAlwaysontop() to ignore the flag children always-on-top when arranging them.
    The function ProUINakedwindowIsAlwaysontopEnabled() checks if the NakedWindow always places children with always-on-top behavior enabled to always be above their siblings in the Z-order when arranging them. The output state is a ProBoolean and is PRO_B_TRUE if the NakedWindow always places children with always-on-top behavior enabled to always be above their siblings in the Z-order, PRO_B_FALSE otherwise
    Use the function ProUINakedwindowAttachLeft() to attach the naked window at left side of the parent component
    Use the function ProUINakedwindowUnattachLeft() to not attach the naked window at left side of the parent component.
    The function ProUINakedwindowIsAttachedLeft() checks if the naked window is attached at left side of the parent component. The output state is a ProBoolean and is PRO_B_TRUE when the naked window is attached at left side of the parent component. PRO_B_FALSE when the naked window is not attached at left side of the parent component.
    Use the function ProUINakedwindowAttachRight() to attach the naked window at right side of the parent component
    Use the function ProUINakedwindowUnattachRight() to not attach the naked window at right side of the parent component.
    The function ProUINakedwindowIsAttachedRight() checks if the naked window is attached at right side of the parent component. The output state is a ProBoolean and is PRO_B_TRUE when the naked window is attached at right side of the parent component. PRO_B_FALSE when the naked window is not attached at right side of the parent component.
    Use the function ProUINakedwindowAttachTop() to attach the naked window at top side of the parent component.
    Use the function ProUINakedwindowUnattachTop() to not attach the naked window at top side of the parent component.
    The function ProUINakedwindowIsAttachedTop() checks if the naked window is attached at top side of the parent component. The output state is a ProBoolean and is PRO_B_TRUE when the naked window is attached at top side of the parent component. PRO_B_FALSE when the naked window is not attached at top side of the parent component.
    Use the function ProUINakedwindowAttachBottom() to attach the naked window at bottom side of the parent component.
    Use the function ProUINakedwindowUnattachBottom().to not attach the naked window at bottom side of the parent component.
    The function ProUINakedwindowIsAttachedBottom() checks if the naked window is attached at bottom side of the parent component. The output state is a ProBoolean and is PRO_B_TRUE when the naked window is attached at bottom side of the parent component. PRO_B_FALSE when the naked window is not attached at bottom side of the parent component.
    Component Name
    Get Functions
    Set Functions
    Helptext
    Foregroundcolor
    Backgroundcolor
    Nakeddisplay
  • Not Applicable
  • Nakedwindow
  • Not Applicable
  • Nakedwidth
    Nakedheight
    Nakedminwidth
    Nakedminheight
    Defaultbuttonaction
    Alwaysallowevents
    Popupmenu
    Parentname
  • ()
  • Leftoffset
    Rightoffset
    Topoffset
    Bottomoffset
    Anchor
  • Not Applicable
  • Size
    Position
    Cursorpos
    ResizeAction
  • Not Applicable
  • KeyAction
  • Not Applicable
  • FocusinAction
  • Not Applicable
  • FocusoutAction
  • Not Applicable
  • DestroynotifyAction
  • Not Applicable
  • PremanagenotifyAction
  • Not Applicable
  • PostmanagenotifyAction
  • Not Applicable
  • Adding and Removing Components
    Component Name
    Add Function
    Remove Function
    Nakedwindow
    Checkbutton
    Drawingarea
    Inputpanel
    Label
    Layout
    List
    Optionmenu
    Progressbar
    Pushbutton
    Radiogroup
    Slider
    Spinbox
    Tab
    Table
    Textarea
    Thumbwheel
    Tree
    Nakedwindow
    Nakedwindow
    Nakedwindow
    Nakedwindow
    Nakedwindow