<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" 
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<article lang="en">
<articleinfo>
  <title>API Documentation</title>
</articleinfo>
<section>
<title>RexxDW/Introduction</title>
<anchor id="robo0"/>
<anchor id="RexxDW2fIntroduction"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   RexxDW is an external function package that allows a Rexx programmer to write
   cross platform GUI applications, using a lightweight portable GUI API called
   Dynamic Windows (dwindows).
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   The fundamental building blocks of a RexxDW program consist of two major
   components; widgets and event handlers or callbacks.
</para>

<para>
   Various widgets are packed into the required layout and events
   are connected to the widgets to carry out the required behaviour.
</para>

<para>
   The structure of a RexxDW program consists of various initialisation; creation
   of the widgets, packing them, connecting callbacks, and then calling the
   event loop handler to dispatch the event to the appropriate callbacks.
   The callbacks are normal Rexx subroutines.
</para>

<para>
   There are two event loop handlers depending on whether your Rexx interpreter
   supports the RexxCallback() API. <link linkend="robo231">DW_main</link>() is used for interpreters that have
   RexxCallback(); <link linkend="robo232">DW_main_iteration</link>() is used for those interpretes that don't.
</para>
<formalpara><title>DERIVED FROM</title><para></para></formalpara>
<para>
   All of the functions in RexxDW are based on the same function in dwindows.
   Some function arguments will differ due to the nature of the Rexx API
   interface.
</para>

<para>
   The format of the function names is dw_(target)_(action)[_(options)].
   eg. for tree widgets, functions act on both the tree itself and the tree items
   within the tree widget, so <link linkend="robo180">DW_tree_new</link>() executes the "new" action on the
   tree widget, <link linkend="robo190">DW_tree_item_change</link>() executes the "change" action on the
   tree item, not the tree.
</para>

<para>
   Some dwindows functions are not available in RexxDW, mainly because they are
   not able to be implemented:
   dw_icon_load, etc...
</para>

<para>
   A number of functions have been added to RexxDW that are not part of dwindows:
   dw_and, dw_or, dw_radiobutton_set, dw_radiobutton_get,...
</para>
<formalpara><title>TODO</title><para></para></formalpara>
<itemizedlist><listitem><para>   document dw_exec()??
</para></listitem><listitem><para>   add DW_container_get_column_type and DW_filesystem_get_column_type
</para></listitem><listitem><para>   can dw_window_maximize() be implemented as dw_window_set_style() with MAXIMIZE
     attribute set and MINIMIZE attribute unset?
</para></listitem><listitem><para>   no VALUE_CHANGE callback on spinbutton widget
</para></listitem><listitem><para>   document that KEY_PRESS needs to be trapped in toplevel window
     but BUTTON_PRESS in low-level window (confirm on all platforms)
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>BUGS</title><para></para></formalpara>
<itemizedlist><listitem><para>   bug in (Windows at least) item_select callback on container. Seems that
     the callback gets called twice irrespective of whether 0 or 1 is
     returned from the callback.
</para></listitem><listitem><para>   bug (Windows) with drawing directly to a render window (ie not via a pixmap)
     (see rexxdw.rexx, <link linkend="robo263">Utility</link> TAB)
</para></listitem><listitem><para>   bug dw_listbox_selected() is supposed to return DW_LIT_NONE (-1)
     but dw_listbox_selected() returns unsigned int
</para></listitem><listitem><para>   Under GTK+ 2.0 or greater, a call to dw_window_set_font() causes an expose
     event to fire. If dw_window_set_font() is called within the expose callback,
     you get an infinite loop. Bit of a bugger if your expose event sets different
     fonts for different lines!!!
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>PORTABILITY</title><para></para></formalpara>
<para>
   RexxDW runs on Windows 9x/Me/NT/2k/XP, OS/2 3.0+ and on any Un*x platform
   that has GTK+ 1.x installed (but works better with GTK+ 2.x).
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   RexxDW lives at href:http://rexxdw.sf.net
   Dynamic Windows lives at href:http://dwindows.netlabs.org
</para>
</section>
<section>
<title>RexxDW/Constants</title>
<anchor id="robo1"/>
<anchor id="RexxDW2fConstants"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following "constants" are defined when RexxDW starts. By default, all constants
   are stored in an array with the stem preset to !REXXDW.!
   This can be changed by using the 'CONSTANTPREFIX' value of <link linkend="robo276">DW_variable</link>().
   If you use "Procedure" on your labels, you MUST "EXPOSE !REXXDW." or the
   stem you set with <link linkend="robo276">DW_variable</link>() will not be visible.
   To reference the constants defined below, you must prefix them. So
   the "constant" DW_DESKTOP would be, by default, referenced in your code as
   !REXXDW.!DW_DESKTOP.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo276">DW_variable</link>
</para>
<section>
<title>Constants/MiscellaneousFlags</title>
<anchor id="robo2"/>
<anchor id="Constants2fMiscellaneousFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   MiscellaneousFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of miscellaneous flags.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   GTK_MAJOR_VERSION        - 0 if NOT GTK+ platform, 1 for GTK+ 1.x, 2 for GTK+ 2.x
</para></listitem><listitem><para>   HAVE_REXXCALLBACK        - 1 if the interpreter supports RexxCallback() API
</para></listitem><listitem><para>   DW_DESKTOP               - the psuedo "window" which is the desktop
</para></listitem><listitem><para>   DIRSEP                   - the Operating System directory separator
</para></listitem><listitem><para>   PATHSEP                  - the Operating System path separator
</para></listitem></itemizedlist><para>
</para>
</section>
<section>
<title>Constants/FileDialogFlags</title>
<anchor id="robo3"/>
<anchor id="Constants2fFileDialogFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   FileDialogFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the pre-defined flags that are used in a call to
   <link linkend="robo246">DW_file_browse</link>() to determine the dialog type displayted.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_DIRECTORY_OPEN        - a directory selector dialog
</para></listitem><listitem><para>   DW_FILE_OPEN             - a file open dialog
</para></listitem><listitem><para>   DW_FILE_SAVE             - a file save dialog
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo246">DW_file_browse</link>
</para>
</section>
<section>
<title>Constants/ContainerScrollFlags</title>
<anchor id="robo4"/>
<anchor id="Constants2fContainerScrollFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ContainerScrollFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the pre-defined flags that are used in a call to
   <link linkend="robo93">DW_container_scroll</link>() to indicate the direction of scrolling.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_SCROLL_UP             - scroll up a number of lines
</para></listitem><listitem><para>   DW_SCROLL_DOWN           - scroll down a number of lines
</para></listitem><listitem><para>   DW_SCROLL_TOP            - scroll to the top of the container
</para></listitem><listitem><para>   DW_SCROLL_BOTTOM         - scroll to the bottom of the container
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo93">DW_container_scroll</link>
</para>
</section>
<section>
<title>Constants/TextAttributeFlags</title>
<anchor id="robo5"/>
<anchor id="Constants2fTextAttributeFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   TextAttributeFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the pre-defined flags that are used in a call to
   <link linkend="robo219">DW_window_set_style</link>() to specify the formatting of text within a widget.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<para>
   The following work on all platforms:
</para>
<literallayout class="monospaced">
    - DW_DT_LEFT               - text is left-aligned
    - DW_DT_RIGHT              - text is right-aligned
    - DW_DT_CENTER             - text is centered
    - DW_DT_VCENTER            - text is centered vertically
</literallayout>
<para>

   The following attributes only have an effect on OS/2:
</para>
<literallayout class="monospaced">
    - DW_DT_QUERYEXTENT
    - DW_DT_UNDERSCORE
    - DW_DT_STRIKEOUT
    - DW_DT_TEXTATTRS
    - DW_DT_EXTERNALLEADING
    - DW_DT_TOP
    - DW_DT_BOTTOM
    - DW_DT_HALFTONE
    - DW_DT_MNEMONIC
    - DW_DT_WORDBREAK
    - DW_DT_ERASERECT
</literallayout>
<para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo219">DW_window_set_style</link>
</para>
</section>
<section>
<title>Constants/WindowStyleFlags</title>
<anchor id="robo6"/>
<anchor id="Constants2fWindowStyleFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   WindowStyleFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the pre-defined flags that can be used when
   creating a new window.
   Any number of values from "Style Types" can be used plus optionally
   one value from "Initial State Types" are logically "or"ed together using <link linkend="robo270">DW_or</link>().
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<para>
   Style Types:
</para>
<literallayout class="monospaced">
    - DW_FCF_TITLEBAR        - display titlebar
    - DW_FCF_SYSMENU
    - DW_FCF_MENU
    - DW_FCF_SIZEBORDER
    - DW_FCF_MINBUTTON       - display minimise button
    - DW_FCF_MAXBUTTON       - display maximise button
    - DW_FCF_MINMAX
    - DW_FCF_VERTSCROLL
    - DW_FCF_HORZSCROLL
    - DW_FCF_DLGBORDER
    - DW_FCF_BORDER
    - DW_FCF_SHELLPOSITION
    - DW_FCF_TASKLIST
    - DW_FCF_NOBYTEALIGN
    - DW_FCF_NOMOVEWITHOWNER
    - DW_FCF_SYSMODAL
    - DW_FCF_HIDEBUTTON
    - DW_FCF_HIDEMAX
    - DW_FCF_AUTOICON
</literallayout>
<para>

   Initial State Types:
</para>
<literallayout class="monospaced">
    - DW_FCF_MAXIMIZE        - start maximised
    - DW_FCF_MINIMIZE        - start minimised
</literallayout>
<para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo192">DW_window_new</link>
</para>
</section>
<section>
<title>Constants/ContainerColumnFlags</title>
<anchor id="robo7"/>
<anchor id="Constants2fContainerColumnFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ContainerColumnFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the pre-defined flags that can be used when
   creating a container widget.
   When used in <link linkend="robo75">DW_container_setup</link>() or <link linkend="robo76">DW_filesystem_setup</link>(), one value from
   "Column Types", one value from "Alignment" and any value from "Separators"
   are logically "or"ed together using <link linkend="robo270">DW_or</link>().
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<para>
   Column Types:
</para>
<literallayout class="monospaced">
    - DW_CFA_BITMAPORICON   - the column contains an image
    - DW_CFA_STRING         - the column contains an unstructured string
    - DW_CFA_ULONG          - the column contains an integer
    - DW_CFA_TIME           - the column contains a time in the format Time('N')
    - DW_CFA_DATE           - the column contains a date in the format Date('S')
    - DW_CFA_STRINGANDICON  - the column contains a string and an image (not implemented)
</literallayout>
<para>

   Alignment:
</para>
<literallayout class="monospaced">
    - DW_CFA_CENTER         - the column is centered
    - DW_CFA_LEFT           - the column is left aligned
    - DW_CFA_RIGHT          - the column is right aligned
</literallayout>
<para>

   Separators (not applicable on all platforms):
</para>
<literallayout class="monospaced">
    - DW_CFA_HORZSEPARATOR  - the column has a cell border on the top and bottom
    - DW_CFA_SEPARATOR      - the column has a cell border on the left and right
</literallayout>
<para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo75">DW_container_setup</link>, <link linkend="robo76">DW_filesystem_setup</link>
</para>
</section>
<section>
<title>Constants/ContainerQueryFlags</title>
<anchor id="robo8"/>
<anchor id="Constants2fContainerQueryFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ContainerQueryFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the pre-defined flags that can be used when
   querying a container widget.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_CRA_ALL       - all rows are queried
</para></listitem><listitem><para>   DW_CRA_SELECTED  - only rows selected are queried
</para></listitem><listitem><para>   DW_CRA_CURSORED  - only the row(s) currently have focus; ie. highlighted
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo90">DW_container_query_start</link>, <link linkend="robo91">DW_container_query_next</link>
</para>
</section>
<section>
<title>Constants/MLESearchFlags</title>
<anchor id="robo9"/>
<anchor id="Constants2fMLESearchFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   MLESearchFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the pre-defined flags that can be used in
   the SearchFlags argument in <link linkend="robo139">DW_mle_search</link>().
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_MLE_CASESENSITIVE - search done respecting case
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo139">DW_mle_search</link>
</para>
</section>
<section>
<title>Constants/MLEEditableFlags</title>
<anchor id="robo10"/>
<anchor id="Constants2fMLEEditableFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   MLEEditableFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the pre-defined flags that can be used in
   the EditableFlags argument in <link linkend="robo141">DW_mle_set_editable</link>().
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_EDITABLE          - MLE is editable
</para></listitem><listitem><para>   DW_READONLY          - MLE is not editable; ie readonly
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo141">DW_mle_set_editable</link>
</para>
</section>
<section>
<title>Constants/MLEWordWrapFlags</title>
<anchor id="robo11"/>
<anchor id="Constants2fMLEWordWrapFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   MLEWordWrapFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the pre-defined flags that can be used in
   the WordWrapFlags argument in <link linkend="robo143">DW_mle_set_word_wrap</link>().
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_WORD_WRAP         - words are wrapped in the MLE
</para></listitem><listitem><para>   DW_DONT_WORD_WRAP    - no word wrapping occurs in the MLE
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo143">DW_mle_set_word_wrap</link>
</para>
</section>
<section>
<title>Constants/PointerTypes</title>
<anchor id="robo12"/>
<anchor id="Constants2fPointerTypes"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   PointerTypes
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the pre-defined mouse pointer types used
   in the Pointer argument in DW_window-set_pointer().
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_POINTER_DEFAULT   - the default pointer shape
</para></listitem><listitem><para>   DW_POINTER_CLOCK     - a clock pointer
</para></listitem><listitem><para>   DW_POINTER_ARROW     - an arrow pointing to the top left
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo211">DW_window_set_pointer</link>
</para>
</section>
<section>
<title>Constants/Colours</title>
<anchor id="robo13"/>
<anchor id="Constants2fColours"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   Colours
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the pre-defined colours known to RexxDW.
   These colour constants are used in functions that require pre-defined
   colours.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_CLR_BLACK
</para></listitem><listitem><para>   DW_CLR_DARKRED
</para></listitem><listitem><para>   DW_CLR_DARKGREEN
</para></listitem><listitem><para>   DW_CLR_BROWN
</para></listitem><listitem><para>   DW_CLR_DARKBLUE
</para></listitem><listitem><para>   DW_CLR_DARKPINK
</para></listitem><listitem><para>   DW_CLR_DARKCYAN
</para></listitem><listitem><para>   DW_CLR_PALEGRAY
</para></listitem><listitem><para>   DW_CLR_DARKGRAY
</para></listitem><listitem><para>   DW_CLR_RED
</para></listitem><listitem><para>   DW_CLR_GREEN
</para></listitem><listitem><para>   DW_CLR_YELLOW
</para></listitem><listitem><para>   DW_CLR_BLUE
</para></listitem><listitem><para>   DW_CLR_PINK
</para></listitem><listitem><para>   DW_CLR_CYAN
</para></listitem><listitem><para>   DW_CLR_WHITE
</para></listitem><listitem><para>   DW_CLR_DEFAULT
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo253">DW_color_background_set</link>, <link linkend="robo254">DW_color_foreground_set</link>, <link linkend="robo255">DW_color_choose</link>
</para>
</section>
<section>
<title>Constants/WidgetOrientation</title>
<anchor id="robo14"/>
<anchor id="Constants2fWidgetOrientation"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   WidgetOrientation
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following constants are used in widgets that require an orientation
   to be specified.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_VERT                - vertical orientation
</para></listitem><listitem><para>   DW_HORZ                - horizontal orientation
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo54">DW_box_new</link>, <link linkend="robo55">DW_groupbox_new</link>, <link linkend="robo173">DW_splitbar_new</link>, <link linkend="robo159">DW_scrollbar_new</link>
</para>
</section>
<section>
<title>Constants/NotebookTabLocation</title>
<anchor id="robo15"/>
<anchor id="Constants2fNotebookTabLocation"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   NotebookTabLocation
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following constants are used in the TabLocation argument in a call
   to <link linkend="robo147">DW_notebook_new</link>() to specify whether notebook tabs are located at the
   top or bottom of the window.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_TAB_TO_TOP          - notebook tabs are displayed across the top
</para></listitem><listitem><para>   DW_TAB_TO_BOTTOM       - notebook tabs are displayed across the bottom
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo147">DW_notebook_new</link>
</para>
</section>
<section>
<title>Constants/NotebookPageLocation</title>
<anchor id="robo16"/>
<anchor id="Constants2fNotebookPageLocation"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   NotebookPageLocation
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following constants are used in the PageLocation argument in a call
   to <link linkend="robo148">DW_notebook_page_new</link>() to specify if the page is created in front
   or behind other pages.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_PAGE_TO_FRONT       - page is created in front of other pages
</para></listitem><listitem><para>   DW_PAGE_TO_BACK        - page is created behind other pages
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo148">DW_notebook_page_new</link>
</para>
</section>
<section>
<title>Constants/MenuConstants</title>
<anchor id="robo17"/>
<anchor id="Constants2fMenuConstants"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   MenuConstants
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following constants are used in a number of menu related function calls.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_MENU_START          - add the item at the start of the menu items
</para></listitem><listitem><para>   DW_MENU_END            - add the item at the end of the menu items
</para></listitem><listitem><para>   DW_MENU_CHECKABLE      - the menu item is checkable
</para></listitem><listitem><para>   DW_MENU_NOT_CHECKABLE  - the menu item is not checkable
</para></listitem><listitem><para>   DW_MENU_SEPARATOR      - the string to indicate the menu item is a separator
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo128">DW_menu_append_item</link>, <link linkend="robo131">DW_menu_item_set_check</link>
</para>
</section>
<section>
<title>Constants/BoxExpansionFlags</title>
<anchor id="robo18"/>
<anchor id="Constants2fBoxExpansionFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   BoxExpansionFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following constants are used in the box packing functions to
   specify whether the box expand in a horizontal or vertical direction.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_EXPAND_HORZ         - expand the box horizontally
</para></listitem><listitem><para>   DW_DONT_EXPAND_HORZ    - don't expand the box horizontal
</para></listitem><listitem><para>   DW_EXPAND_VERT         - expand the box vertically
</para></listitem><listitem><para>   DW_DONT_EXPAND_VERT    - don't expand the box vertically
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo56">DW_box_pack_start</link>, <link linkend="robo57">DW_box_pack_end</link>
</para>
</section>
<section>
<title>Constants/ListboxSelection</title>
<anchor id="robo19"/>
<anchor id="Constants2fListboxSelection"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ListboxSelection
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following constants are used in the Selection argument to a call to
   <link linkend="robo111">DW_listbox_new</link>().
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_LB_SINGLE_SELECTION    - indicates that only 1 row in the listbox is selectable
</para></listitem><listitem><para>   DW_LB_MULTIPLE_SELECTION  - indicates that multiple rows in the listbox are selectable
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo111">DW_listbox_new</link>
</para>
</section>
<section>
<title>Constants/ListboxSelected</title>
<anchor id="robo20"/>
<anchor id="Constants2fListboxSelected"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ListboxSelected
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the pre-defined flags that can be used when
   setting the State of a listbox or combobox.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_LB_SELECTED      - set the item to be selected
</para></listitem><listitem><para>   DW_LB_UNSELECTED    - set the item to NOT be selected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo119">DW_listbox_select</link>
</para>
</section>
<section>
<title>Constants/ListboxReturn</title>
<anchor id="robo21"/>
<anchor id="Constants2fListboxReturn"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ListboxReturn
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is the return value from <link linkend="robo120">DW_listbox_selected</link>() or
   <link linkend="robo121">DW_listbox_selected_multi</link>() if no item in the listbox has been selected.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_LB_NONE          - no listbox item selected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo120">DW_listbox_selected</link>(), <link linkend="robo121">DW_listbox_selected_multi</link>()
</para>
</section>
<section>
<title>Constants/WidgetChecked</title>
<anchor id="robo22"/>
<anchor id="Constants2fWidgetChecked"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   WidgetChecked
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following constants are used to indicate the state of a widget
   that can have a boolean state.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_CHECKED             - widget is "on" or set
</para></listitem><listitem><para>   DW_UNCHECKED           - widget is "off" or unset
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo68">DW_checkbox_set</link>, <link linkend="robo69">DW_radiobutton_set</link>
</para>
</section>
<section>
<title>Constants/ContainerClearFlags</title>
<anchor id="robo23"/>
<anchor id="Constants2fContainerClearFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ContainerClearFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following constants are used in the Redraw argument to a call to
   <link linkend="robo87">DW_container_clear</link>().
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_REDRAW              - redraw the cleared container
</para></listitem><listitem><para>   DW_DONT_REDRAW         - don't redraw the cleared container
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo73">DW_container_new</link>
</para>
</section>
<section>
<title>Constants/ContainerSelection</title>
<anchor id="robo24"/>
<anchor id="Constants2fContainerSelection"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ContainerSelection
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following constants are used in the Selection argument to a call to
   <link linkend="robo73">DW_container_new</link>().
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_SINGLE_SELECTION    - indicates that only 1 row in the container is selectable
</para></listitem><listitem><para>   DW_MULTIPLE_SELECTION  - indicates that multiple rows in the container are selectable
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo73">DW_container_new</link>
</para>
</section>
<section>
<title>Constants/RectangleFill</title>
<anchor id="robo25"/>
<anchor id="Constants2fRectangleFill"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   RectangleFill
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following constants are used in the Fill argument to a call to
   <link linkend="robo104">DW_draw_rect</link>().
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_FILL      - draws a filled rectangle
</para></listitem><listitem><para>   DW_DONT_FILL - draws an outline rectangle 1 pixel in width
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo104">DW_draw_rect</link>
</para>
</section>
<section>
<title>Constants/MessageboxFlags</title>
<anchor id="robo26"/>
<anchor id="Constants2fMessageboxFlags"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   MessageboxFlags
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following constants are used in the Flags argument to a call to
   <link linkend="robo225">DW_messagebox</link>(). Logically "or" one value from Buttons and one value from Icons
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<para>
   Buttons:
</para>
<literallayout class="monospaced">
    - DW_MB_OK
    - DW_MB_OKCANCEL
    - DW_MB_YESNO
    - DW_MB_YESNOCANCEL
</literallayout>
<para>

   Icons:
</para>
<literallayout class="monospaced">
    - DW_MB_WARNING
    - DW_MB_ERROR
    - DW_MB_INFORMATION
    - DW_MB_QUESTION
</literallayout>
<para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo225">DW_messagebox</link>
</para>
</section>
<section>
<title>Constants/MessageboxResults</title>
<anchor id="robo27"/>
<anchor id="Constants2fMessageboxResults"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   MessageboxResults
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following constants are returned from a call to <link linkend="robo225">DW_messagebox</link>().
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_MB_RETURN_OK
</para></listitem><listitem><para>   DW_MB_RETURN_YES
</para></listitem><listitem><para>   DW_MB_RETURN_NO
</para></listitem><listitem><para>   DW_MB_RETURN_CANCEL
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo225">DW_messagebox</link>
</para>
</section>
<section>
<title>Constants/VirtualKeys</title>
<anchor id="robo28"/>
<anchor id="Constants2fVirtualKeys"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   VirtualKeys
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the mnemonic key values known to RexxDW.
   These keys are returned in a KeyPressEvent Callback, in the VirtualKey
   argument.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_VK_CANCEL
</para></listitem><listitem><para>   DW_VK_BACK
</para></listitem><listitem><para>   DW_VK_TAB
</para></listitem><listitem><para>   DW_VK_CLEAR
</para></listitem><listitem><para>   DW_VK_RETURN
</para></listitem><listitem><para>   DW_VK_MENU
</para></listitem><listitem><para>   DW_VK_PAUSE
</para></listitem><listitem><para>   DW_VK_CAPITAL
</para></listitem><listitem><para>   DW_VK_ESCAPE
</para></listitem><listitem><para>   DW_VK_SPACE
</para></listitem><listitem><para>   DW_VK_PRIOR
</para></listitem><listitem><para>   DW_VK_NEXT
</para></listitem><listitem><para>   DW_VK_END
</para></listitem><listitem><para>   DW_VK_HOME
</para></listitem><listitem><para>   DW_VK_LEFT
</para></listitem><listitem><para>   DW_VK_UP
</para></listitem><listitem><para>   DW_VK_RIGHT
</para></listitem><listitem><para>   DW_VK_DOWN
</para></listitem><listitem><para>   DW_VK_SELECT
</para></listitem><listitem><para>   DW_VK_PRINT
</para></listitem><listitem><para>   DW_VK_EXECUTE
</para></listitem><listitem><para>   DW_VK_SNAPSHOT
</para></listitem><listitem><para>   DW_VK_INSERT
</para></listitem><listitem><para>   DW_VK_DELETE
</para></listitem><listitem><para>   DW_VK_HELP
</para></listitem><listitem><para>   DW_VK_LWIN
</para></listitem><listitem><para>   DW_VK_RWIN
</para></listitem><listitem><para>   DW_VK_NUMPAD0
</para></listitem><listitem><para>   DW_VK_NUMPAD1
</para></listitem><listitem><para>   DW_VK_NUMPAD2
</para></listitem><listitem><para>   DW_VK_NUMPAD3
</para></listitem><listitem><para>   DW_VK_NUMPAD4
</para></listitem><listitem><para>   DW_VK_NUMPAD5
</para></listitem><listitem><para>   DW_VK_NUMPAD6
</para></listitem><listitem><para>   DW_VK_NUMPAD7
</para></listitem><listitem><para>   DW_VK_NUMPAD8
</para></listitem><listitem><para>   DW_VK_NUMPAD9
</para></listitem><listitem><para>   DW_VK_MULTIPLY
</para></listitem><listitem><para>   DW_VK_ADD
</para></listitem><listitem><para>   DW_VK_SEPARATOR
</para></listitem><listitem><para>   DW_VK_SUBTRACT
</para></listitem><listitem><para>   DW_VK_DECIMAL
</para></listitem><listitem><para>   DW_VK_DIVIDE
</para></listitem><listitem><para>   DW_VK_F1
</para></listitem><listitem><para>   DW_VK_F2
</para></listitem><listitem><para>   DW_VK_F3
</para></listitem><listitem><para>   DW_VK_F4
</para></listitem><listitem><para>   DW_VK_F5
</para></listitem><listitem><para>   DW_VK_F6
</para></listitem><listitem><para>   DW_VK_F7
</para></listitem><listitem><para>   DW_VK_F8
</para></listitem><listitem><para>   DW_VK_F9
</para></listitem><listitem><para>   DW_VK_F10
</para></listitem><listitem><para>   DW_VK_F11
</para></listitem><listitem><para>   DW_VK_F12
</para></listitem><listitem><para>   DW_VK_F13
</para></listitem><listitem><para>   DW_VK_F14
</para></listitem><listitem><para>   DW_VK_F15
</para></listitem><listitem><para>   DW_VK_F16
</para></listitem><listitem><para>   DW_VK_F17
</para></listitem><listitem><para>   DW_VK_F18
</para></listitem><listitem><para>   DW_VK_F19
</para></listitem><listitem><para>   DW_VK_F20
</para></listitem><listitem><para>   DW_VK_F21
</para></listitem><listitem><para>   DW_VK_F22
</para></listitem><listitem><para>   DW_VK_F23
</para></listitem><listitem><para>   DW_VK_F24
</para></listitem><listitem><para>   DW_VK_NUMLOCK
</para></listitem><listitem><para>   DW_VK_SCROLL
</para></listitem><listitem><para>   DW_VK_LSHIFT
</para></listitem><listitem><para>   DW_VK_RSHIFT
</para></listitem><listitem><para>   DW_VK_LCONTROL
</para></listitem><listitem><para>   DW_VK_RCONTROL
</para></listitem><listitem><para>   DW_VK_LMENU
</para></listitem><listitem><para>   DW_VK_RMENU
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo35">KeyPressEventCallback</link>
</para>
</section>
<section>
<title>Constants/KeyStates</title>
<anchor id="robo29"/>
<anchor id="Constants2fKeyStates"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   KeyStates
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the mnemonic key state values known to Rexx/DW.
   These keys are returned in a KeyPressEvent Callback, in the KeyState
   argument.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_KC_CTRL
</para></listitem><listitem><para>   DW_KC_SHIFT
</para></listitem><listitem><para>   DW_KC_ALT
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo35">KeyPressEventCallback</link>
</para>
</section>
<section>
<title>Constants/MouseButtons</title>
<anchor id="robo30"/>
<anchor id="Constants2fMouseButtons"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   MouseButtons
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following is a list of the mnemonic mouse button values known to RexxDW.
   These buttons are returned in a ButtonPressEvent Callback, in the <link linkend="robo58">Button</link>
   argument.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<itemizedlist><listitem><para>   DW_VK_LBUTTON
</para></listitem><listitem><para>   DW_VK_RBUTTON
</para></listitem><listitem><para>   DW_VK_MBUTTON
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo36">ButtonPressEventCallback</link> <link linkend="robo37">ButtonReleaseEventCallback</link>
</para>
</section>
</section>
<section>
<title>RexxDW/Fontnames</title>
<anchor id="robo31"/>
<anchor id="RexxDW2fFontnames"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   Fontnames
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Font names in Rexx/DW are platform dependent. This section explains how to specify fonts
   on each of the supported platforms.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Windows:
</para>
<literallayout class="monospaced">
      Fonts are specifed in the format: 'size.family [Bold] [Italic]'
      As an example, the following specify various font specifications for 8 point
      Courier:
         fixedfont      = '8.Courier'
         italicfont     = '8.Courier Italic'
         boldfont       = '8.Courier Bold'
         bolditalicfont = '8.Courier Bold Italic'
</literallayout>
<para>
   GTK+ 2.x:
</para>
<literallayout class="monospaced">
      Fonts are specified in the format: 'family [bold] [italic] size'
      As an example, the following specify various font specifications for 14 point
      monospace:
         fixedfont      = 'monospace 14'
         italicfont     = 'monospace italic 14'
         boldfont       = 'monospace bold italic 14'
         bolditalicfont = 'monospace italic 14'
</literallayout>
<para>
   GTK+ 1.x:
</para>
<literallayout class="monospaced">
      Fonts are specified using full X11 specification.
      As an example, the following specify various font specifications for 120
      courier:
         fixedfont      = '-adobe-courier-medium-r-normal-*-*-120-*-*-m-*-iso8859-1'
         italicfont     = '-adobe-courier-medium-o-normal-*-*-120-*-*-m-*-iso8859-1'
         boldfont       = '-adobe-courier-bold-r-normal-*-*-120-*-*-m-*-iso8859-1'
         bolditalicfont = '-adobe-courier-bold-o-normal-*-*-120-*-*-m-*-iso8859-1'
</literallayout>
<para>
   OS/2:
</para>
<literallayout class="monospaced">
      Fonts are specifed in the format: 'size.family [Bold] [Italic]'
      As an example, the following specify various font specifications for 5
      System VIO:
         fixedfont      = '5.System VIO'
         italicfont     = '5.System VIO Italic'
         boldfont       = '5.System VIO Bold'
         bolditalicfont = '5.System VIO Bold Italic'
</literallayout>
<para>
</para>
</section>
<section>
<title>RexxDW/Packing</title>
<anchor id="robo32"/>
<anchor id="RexxDW2fPacking"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   Packing
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   One of the most important aspects of laying out widgets in a Rexx/DW program is
   how packing works.  This section explains the Rexx/DW packing mechanism.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The above ??????
   TODO - horz/vert boxes, pack empty spaces, expand/dont_expand
</para>
</section>
<section>
<title>RexxDW/Callbacks</title>
<anchor id="robo33"/>
<anchor id="RexxDW2fCallbacks"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   Callbacks
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Rexx/DW is an event driven application. What this means is that internally various
   events occur, such as a key press, a window becoming exposed. Rexx/DW allows you
   to call an internal Rexx procedure when various events occur.
</para>

<para>
   Each widget you create has certain valid events associated with it. As part of your
   code you associate a particular event with a widget. This is done by calling
   <link linkend="robo239">DW_signal_connect</link>(). This associates an event on a particular widget with an
   internal Rexx procedure, so that when the particular event occurs on that widget
   your procedure is executed and certain parameters are passed to it. Details on what
   parameters are passed is detailed below depending on the type of event.
</para>

<para>
   The internal Rexx procedure is called in the context of where <link linkend="robo231">DW_main</link>() or
   <link linkend="robo232">DW_main_iteration</link>() is called. This is important when considering what Rexx
   variables may or may not be in scope. It is probably better to always use
   PROCEDURE EXPOSE (myglobals) on procedures so you know that any variables you
   use within your procedure will not affect an others outside without you explicitly
   listing them.
</para>

<para>
   Once you have handled an event in your code, you can return 1 to inform Dynamic Windows
   that all processing has been handled for the particular event. Dynamic Windows will
   not execute its default event handling code.
   If your event handler returns 0, then Dynamic Windows will execute its default event
   handling code.
</para>
<formalpara><title>ATTRIBUTES</title><para></para></formalpara>
<para>
   The values of the supported events are:
</para>
<itemizedlist><listitem><para>   REXXDW_CONFIGURE_EVENT_CB
</para></listitem><listitem><para>   REXXDW_KEY_PRESS_EVENT_CB
</para></listitem><listitem><para>   REXXDW_BUTTON_PRESS_EVENT_CB
</para></listitem><listitem><para>   REXXDW_BUTTON_RELEASE_EVENT_CB
</para></listitem><listitem><para>   REXXDW_MOTION_NOTIFY_EVENT_CB
</para></listitem><listitem><para>   REXXDW_DELETE_EVENT_CB
</para></listitem><listitem><para>   REXXDW_EXPOSE_EVENT_CB
</para></listitem><listitem><para>   REXXDW_CLICKED_EVENT_CB
</para></listitem><listitem><para>   REXXDW_ITEM_ENTER_EVENT_CB
</para></listitem><listitem><para>   REXXDW_ITEM_CONTEXT_EVENT_CB
</para></listitem><listitem><para>   REXXDW_LIST_SELECT_EVENT_CB
</para></listitem><listitem><para>   REXXDW_ITEM_SELECT_EVENT_CB
</para></listitem><listitem><para>   REXXDW_SET_FOCUS_EVENT_CB
</para></listitem><listitem><para>   REXXDW_VALUE_CHANGED_EVENT_CB
</para></listitem><listitem><para>   REXXDW_SWITCH_PAGE_EVENT_CB
</para></listitem><listitem><para>   REXXDW_COLUMN_CLICK_EVENT_CB
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   With Rexx interpreters that don't provide RexxCallBack() it is not possible to
   inform Dynamic Windows to execute the default callback functionality after
   your event handler has executed its code, because the return value is returned
   to the Rexx program; via <link linkend="robo232">DW_main_iteration</link>(), not to Dynamic Windows.
</para>
<section>
<title>Callbacks/ConfigureEventCallback</title>
<anchor id="robo34"/>
<anchor id="Callbacks2fConfigureEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ConfigureEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = ConfigureEventCallback(<link linkend="robo191">Window</link>, Width, Height [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_CONFIGURE_EVENT signal fires on a window. This event usually
   occurs when a window's size is changed.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>   - value of the window handle that has been resized
</para></listitem><listitem><para>   Width    - the new width of <link linkend="robo191">Window</link> in pixels
</para></listitem><listitem><para>   Height   - the new height of <link linkend="robo191">Window</link> in pixels
</para></listitem><listitem><para>   UserData - following optional values that the user supplied when the signal event
              was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_CONFIGURE_EVENT, 'configure_cb', ,
   'fred', 'mary'
...
configure_cb: Procedure Expose !REXXDW.
Parse Arg win, width, height, var1, var2
Say 'New width:' width 'height:' height 'for <link linkend="robo191">Window</link>:' win 'UserVar1:' var1 ,
   'UserVar2:' var2
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/KeyPressEventCallback</title>
<anchor id="robo35"/>
<anchor id="Callbacks2fKeyPressEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   KeyPressEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = KeyPressEventCallback(<link linkend="robo191">Window</link>, ASCIIKey, VirtualKey, KeyState [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_KEY_PRESS_EVENT signal fires on a window. Occurs when the user
   presses a key.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle in which the key was pressed
</para></listitem><listitem><para>   ASCIIKey   - the Hex representation of the key pressed. If not as ASCII key
                  then the empty string is returned and VirtualKey should be used
</para></listitem><listitem><para>   VirtualKey - the mnemonic key value of the key pressed
</para></listitem><listitem><para>   KeyState   - indicates whether SHIFT, CTRL or ALT modifiers are active
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo28">VirtualKeys</link> <link linkend="robo29">KeyStates</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_KEY_PRESS_EVENT, 'keypress_cb', ,
   'fred', 'mary'
...
keypress_cb: Procedure Expose !REXXDW.
Parse Arg win, ascii, virtual, state, var1, var2
Say 'ASCII Key:' ascii 'Virtual Key:' virtual 'State:' state 'UserVar1:' ,
   var1 'UserVar2:' var2
If virtual = !REXXDW.!DW_VK_F1 Then Return 1
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/ButtonPressEventCallback</title>
<anchor id="robo36"/>
<anchor id="Callbacks2fButtonPressEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ButtonPressEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = ButtonPressEventCallback(<link linkend="robo191">Window</link>, X, Y, <link linkend="robo58">Button</link> [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_BUTTON_PRESS_EVENT signal fires on a window. This occurs when
   the user clicks a button with the mouse.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle in which the mouse button was pressed
</para></listitem><listitem><para>   X          - the X coordinate where the mouse button was pressed, relative
                  to the top left corner of the <link linkend="robo191">Window</link>
</para></listitem><listitem><para>   Y          - the Y coordinate where the mouse button was pressed, relative
                  to the top left corner of the <link linkend="robo191">Window</link>
</para></listitem><listitem><para>   <link linkend="robo58">Button</link>     - which mouse button was pressed
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo30">MouseButtons</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_BUTTON_PRESS_EVENT, ,
   'buttonpress_cb', 'fred'
...
buttonpress_cb:
Parse Arg win, x, y, button, data
Say '<link linkend="robo58">Button</link>:' button 'pressed at:' x'/'y 'in <link linkend="robo191">Window</link>:' win
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/ButtonReleaseEventCallback</title>
<anchor id="robo37"/>
<anchor id="Callbacks2fButtonReleaseEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ButtonReleaseEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = ButtonReleaseEventCallback(<link linkend="robo191">Window</link>, X, Y, <link linkend="robo58">Button</link> [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_BUTTON_RELEASE_EVENT signal fires on a window. This occurs when
   the user releases a button on the mouse.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle in which the mouse button was released
</para></listitem><listitem><para>   X          - the X coordinate where the mouse button was released, relative
                  to the top left corner of the <link linkend="robo191">Window</link>
</para></listitem><listitem><para>   Y          - the Y coordinate where the mouse button was released, relative
                  to the top left corner of the <link linkend="robo191">Window</link>
</para></listitem><listitem><para>   <link linkend="robo58">Button</link>     - which mouse button was released
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo30">MouseButtons</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_BUTTON_RELEASE_EVENT, ,
   'buttonrelease_cb', 'fred'
...
buttonreleases_cb:
Parse Arg win, x, y, button, data
Say '<link linkend="robo58">Button</link>:' button 'released at:' x'/'y 'in <link linkend="robo191">Window</link>:' win
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/MotionNotifyEventCallback</title>
<anchor id="robo38"/>
<anchor id="Callbacks2fMotionNotifyEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   MotionNotifyEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = MotionNotifyEventCallback(<link linkend="robo191">Window</link>, X, Y, <link linkend="robo58">Button</link> [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_MOTION_NOTIFY_EVENT signal fires on a window. This occurs when
   the user moves the mouse.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle in which the mouse button was released
</para></listitem><listitem><para>   X          - the X coordinate where the mouse button was released, relative
                  to the top left corner of the <link linkend="robo191">Window</link>
</para></listitem><listitem><para>   Y          - the Y coordinate where the mouse button was released, relative
                  to the top left corner of the <link linkend="robo191">Window</link>
</para></listitem><listitem><para>   State      - ?????????????????
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo36">ButtonPressEventCallback</link> <link linkend="robo37">ButtonReleaseEventCallback</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
 ...
Call dw_signal_connect window, !REXXDW.!DW_MOTION_NOTIFY_EVENT, ,
   'motionnotify_cb', 'fred'
...
motionnotify_cb:
Parse Arg win, x, y, state, data
Say 'Mouse movied to' x'/'y 'in <link linkend="robo191">Window</link>:' win 'with state:' state
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/DeleteEventCallback</title>
<anchor id="robo39"/>
<anchor id="Callbacks2fDeleteEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DeleteEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = DeleteEventCallback(<link linkend="robo191">Window</link> [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_DELETE_EVENT signal fires on a window. This occurs when
   the user closes the window by clicking the close icon on the window title bar,
   or when dw_window_destroy() ???? is called on the window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle in which the mouse button was released
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo194">DW_window_destroy</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_DELETE_EVENT, 'delete_cb', ,
   'fred'
...
delete_cb:
Parse Arg win, data
Say '<link linkend="robo191">Window</link>:' win 'deleted'
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/ExposeEventCallback</title>
<anchor id="robo40"/>
<anchor id="Callbacks2fExposeEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ExposeEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = ExposeEventCallback(<link linkend="robo191">Window</link>, X, Y, Width, Height [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_EXPOSE_EVENT signal fires on a window. This occurs when
   the window is exposed.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle in which the mouse button was released
</para></listitem><listitem><para>   X          - the top left X coordinate of the exposed area
</para></listitem><listitem><para>   Y          - the top left Y coordinate of the exposed area
</para></listitem><listitem><para>   Width      - the width of the exposed area
</para></listitem><listitem><para>   Height     - the height of the exposed area
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_EXPOSE_EVENT, 'expose_cb', ,
   'fred'
...
expose_cb:
Parse Arg win, x, y, width, height, data
Say '<link linkend="robo191">Window</link>:' win 'exposed at' x'/'y 'size:' width'/'height
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/ClickedEventCallback</title>
<anchor id="robo41"/>
<anchor id="Callbacks2fClickedEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ClickedEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = ClickedEventCallback(<link linkend="robo191">Window</link> [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_CLICKED_EVENT signal fires on a window. This occurs when
   the user clicks in the window; usually a button window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle that was clicked
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_CLICKED_EVENT, 'clicked_cb', ,
   'fred'
...
clicked_cb:
Parse Arg win, data
Say '<link linkend="robo191">Window</link>:' win 'clicked'
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/ItemEnterEventCallback</title>
<anchor id="robo42"/>
<anchor id="Callbacks2fItemEnterEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ItemEnterEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = ItemEnterEventCallback(<link linkend="robo191">Window</link>, Text [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_ITEM_ENTER_EVENT signal fires on a window. This occurs when
   the user double-clicks or presses ENTER key in a container window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle that was clicked
</para></listitem><listitem><para>   Text       - the string set by a call to <link linkend="robo84">DW_container_set_row_title</link>()
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo84">DW_container_set_row_title</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_ITEM_ENTER_EVENT, 'itementer_cb', ,
   'fred'
...
itementer_cb:
Parse Arg win, text, data
Say 'Item text' text 'entered in <link linkend="robo191">Window</link>:' win 'userdata:' data
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/ItemContextEventCallback</title>
<anchor id="robo43"/>
<anchor id="Callbacks2fItemContextEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ItemContextEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = ItemContextEventCallback(<link linkend="robo191">Window</link>, Text, X, Y, ItemData [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_ITEM_CONTEXT_EVENT signal fires on a window. This occurs when
   the user clicks the right mouse button in a container or tree window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle that was clicked
</para></listitem><listitem><para>   Text       - the string set by a call to <link linkend="robo84">DW_container_set_row_title</link>()
                  or the third argument ???? to <link linkend="robo190">DW_tree_item_change</link>()
</para></listitem><listitem><para>   X          - the X coordinate where the mouse button was pressed, relative
                  to the top left corner of the <link linkend="robo191">Window</link>
</para></listitem><listitem><para>   Y          - the Y coordinate where the mouse button was pressed, relative
                  to the top left corner of the <link linkend="robo191">Window</link>
</para></listitem><listitem><para>   ItemData   - ????
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo84">DW_container_set_row_title</link>, <link linkend="robo190">DW_tree_item_change</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   When connecting this signal to a <link linkend="robo179">Tree</link> widget, <link linkend="robo239">DW_signal_connect</link>() MUST
   be called BEFORE the <link linkend="robo179">Tree</link> is populated.
   When connecting this signal to a Container widget, <link linkend="robo239">DW_signal_connect</link>() MUST
   be called AFTER the Container is populated.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_ITEM_CONTEXT_EVENT, ,
   'itemcontext_cb', 'fred'
...
itemcontext_cb:
Parse Arg win, text, x, y, itemdata, userdata
Say 'Item text' text 'entered in <link linkend="robo191">Window</link>:' win 'at' x'/'y 'userdata:' userdata
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/ListSelectEventCallback</title>
<anchor id="robo44"/>
<anchor id="Callbacks2fListSelectEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ListSelectEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = ListSelectEventCallback(<link linkend="robo191">Window</link>, Item [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_LIST_SELECT_EVENT signal fires on a window. This occurs when
   the user clicks an entry in a listbox or combobox; ie an item in a list is
   selected.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle that was clicked
</para></listitem><listitem><para>   Item       - the index of the item in the list that is selected. This
                  index is 0-based.
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_LIST_SELECT_EVENT, ,
   'listselect_cb', 'fred'
...
listselect_cb:
Parse Arg win, item, userdata
Say 'Item number' item 'selected in <link linkend="robo191">Window</link>:' win 'userdata:' userdata
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/ItemSelectEventCallback</title>
<anchor id="robo45"/>
<anchor id="Callbacks2fItemSelectEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ItemSelectEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = ItemSelectEventCallback(<link linkend="robo191">Window</link>, Item, Text, Itemdata [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_ITEM_SELECT_EVENT signal fires on a window. This occurs when
   the user clicks the left button on an item in a container or tree window.
   selected.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle that was clicked
</para></listitem><listitem><para>   Item       - the index of the item in the list that is selected. This
                  index is 0-based.
</para></listitem><listitem><para>   Text       - the string set by a call to <link linkend="robo84">DW_container_set_row_title</link>()
                  or the second argument to <link linkend="robo181">DW_tree_insert</link>()
</para></listitem><listitem><para>   ItemData   - the string set by a the fifth argument to a call to <link linkend="robo181">DW_tree_insert</link>()
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   When connecting this signal to a <link linkend="robo179">Tree</link> widget, <link linkend="robo239">DW_signal_connect</link>() MUST
   be called BEFORE the <link linkend="robo179">Tree</link> is populated otherwise the signal will never
   fire.
   When connecting this signal to a Container widget, <link linkend="robo239">DW_signal_connect</link>() MUST
   be called AFTER the Container is populated.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_ITEM_SELECT_EVENT, ,
   'itemselect_cb', 'fred'
...
itemselect_cb:
Parse Arg win, item, text, userdata
Say 'Item number' item 'selected in <link linkend="robo191">Window</link>:' win 'text is:' text ,
   'userdata:' userdata
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/SetFocusEventCallback</title>
<anchor id="robo46"/>
<anchor id="Callbacks2fSetFocusEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   SetFocusEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = SetFocusEventCallback(<link linkend="robo191">Window</link> [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_SET_FOCUS_EVENT signal fires on a window. This occurs when
   the user gives focus to a window, either by clicking the left button in
   the window or by tabbing to the window.
   selected.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle that was clicked
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_SET_FOCUS_EVENT, 'setfocus_cb', ,
   'fred'
...
setfocus_cb:
Parse Arg win, userdata
Say '<link linkend="robo191">Window</link>:' win 'now has focus userdata:' userdata
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/ValueChangedEventCallback</title>
<anchor id="robo47"/>
<anchor id="Callbacks2fValueChangedEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ValueChangedEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = ValueChangedEventCallback(<link linkend="robo191">Window</link>, Value [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_VALUE_CHANGED_EVENT signal fires on a window. This occurs when
   the user adjusts a scrollbar, or a slider control.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle that was clicked
</para></listitem><listitem><para>   Value      - the new value of the top of the scrollbar thumb in units defined
                  by <link linkend="robo160">DW_scrollbar_set_range</link>()
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo160">DW_scrollbar_set_range</link>, <link linkend="robo165">DW_slider_set_pos</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_VALUE_CHANGED_EVENT, ,
   'valuechanged_cb', 'fred'
...
valuechanged_cb:
Parse Arg win, val, userdata
Say 'The top of the scrollbar thumb is now' val 'in <link linkend="robo191">Window</link>:' win ,
   'userdata:' userdata
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/SwitchPageEventCallback</title>
<anchor id="robo48"/>
<anchor id="Callbacks2fSwitchPageEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   SwitchPageEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = SwitchPageEventCallback(<link linkend="robo191">Window</link>, Page [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_SWITCH_PAGE_EVENT signal fires on a window. This occurs when
   the user clicks on a tab in a notebook.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle that was clicked
</para></listitem><listitem><para>   Page       - the index of the page of the notebook selected. Page numbers are
                  0 based.
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_SWITCH_PAGE_EVENT, ,
   'switchpage_cb', 'fred'
...
switchpage_cb:
Parse Arg win, page, userdata
Say 'Page' page 'of <link linkend="robo191">Window</link>:' win 'selected. userdata:' userdata
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/ColumnClickEventCallback</title>
<anchor id="robo49"/>
<anchor id="Callbacks2fColumnClickEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   ColumnClickEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = ColumnClickEventCallback(<link linkend="robo191">Window</link>, Column [,UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a DW_COLUMN_CLICK_EVENT signal fires on a window. This occurs when
   the user clicks on a column heading of a container window.
   selected.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo191">Window</link>     - value of the window handle that was clicked
</para></listitem><listitem><para>   Column     - the index of the column of the container selected. Column numbers are
                  0 based.
</para></listitem><listitem><para>   UserData   - following optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the default callback is not called.
   Return 0 to enable the default callback to be called.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_signal_connect window, !REXXDW.!DW_COLUMN_CLICK_EVENT, ,
   'columnclick_cb', 'fred'
...
columnclick_cb:
Parse Arg win, column, userdata
Say 'Column' column 'of <link linkend="robo191">Window</link>:' win 'selected. userdata:' userdata
Return 1
</literallayout>
</section>
<section>
<title>Callbacks/TimerEventCallback</title>
<anchor id="robo50"/>
<anchor id="Callbacks2fTimerEventCallback"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   TimerEventCallback
</para>
<formalpara><title>USAGE</title><para></para></formalpara>
<para>
   rcode = TimerEventCallback([UserData[,...]])
</para>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Called when a generic timer goes off. This occurs after the period specified
   by <link linkend="robo242">DW_timer_connect</link>().
   selected.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   UserData   - optional values that the user supplied when the signal event
                  was connected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RETURN VALUE</title><para></para></formalpara>
<para>
   Return 1 to ensure that the timer is rearmed.
   Return 0 to ensure that the timer is not rearmed.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The return code from the function called as a result of the timer firing determines
   whether the timer continues to fire after the specified period.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo242">DW_timer_connect</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_timer_connect window, 5000, 'timer_cb', 'fred'
...
timer_cb:
Parse Arg userdata
Say 'Our timer went off after 5 seconds' 'userdata:' userdata
Return 1
</literallayout>
</section>
</section>
<section>
<title>RexxDW/Functions</title>
<anchor id="robo51"/>
<anchor id="RexxDW2fFunctions"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The following external functions comprise Rexx/DW.
</para>
<section>
<title>Functions/Widgets</title>
<anchor id="robo52"/>
<anchor id="Functions2fWidgets"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Widgets are the fundamental display items in RexxDW. RexxDW supports a range
   of widgets to enable a rich GUI interface for your Rexx programs.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   RexxDW supports all common widget types as follows:
</para>
<literallayout class="monospaced">
      box
      button
      checkbox/radiobutton
      container/filesystem
      dialog
      rendering
      entryfield
      listbox/combobox
      menu
      multiline edit
      notebook
      percent
      scrollbar
      slider
      spinbutton
      splitbar
      text
      tree
      window
</literallayout>
<para>
</para>
<section>
<title>Widgets/Box</title>
<anchor id="robo53"/>
<anchor id="Widgets2fBox"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Boxes are used to layout the GUI display. <link linkend="robo52">Widgets</link> are packed into a
   box to position that widget. A box can be horizontal or vertical, which
   determines the arrangement of the widgets packed into the box.
   So to arrange two widgets side-by-side, you would create a horizontal box,
   your two widgets, and pack those two widgets into the box and they appear
   beside each other.
</para>
<section>
<title>Box/DW_box_new</title>
<anchor id="robo54"/>
<anchor id="Box2fDW5fbox5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_box_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_box_new( Orientation )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new generic box window.
   A box is the basic widget for arranging the location and position of
   other widgets.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Orientation- !REXXDW.!DW_VERT to indicate a vertical box
                  !REXXDW.!DW_HORZ to indicate a horizontal box
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo55">DW_groupbox_new</link>, <link linkend="robo14">WidgetOrientation</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The orientation of a box determines the orientation of the widgets that are
   packed into this box. Creating a horizontal box and packing two buttons into it
   will result in the two buttons being placed side by side.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
box = dw_box_new( !REXXDW.!DW_VERT )
Call dw_box_pack_start win, box, 0, 0, !REXXDW.!DW_EXPAND_HORZ, ,
   !REXXDW.!DW_EXPAND_VERT, 0
</literallayout>
</section>
<section>
<title>Box/DW_groupbox_new</title>
<anchor id="robo55"/>
<anchor id="Box2fDW5fgroupbox5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_groupbox_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_groupbox_new( Orientation, Title )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new generic groupbox window.
   A box is the basic widget for arranging the location and position of
   other widgets. The difference between a box and a groupbox is that
   a groupbox contains a border and a Title in the top left corner.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Orientation- !REXXDW.!DW_VERT to indicate a vertical box
                  !REXXDW.!DW_HORZ to indicate a horizontal box
</para></listitem><listitem><para>   Title      - the text to display as the box title
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo54">DW_box_new</link>, <link linkend="robo14">WidgetOrientation</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The orientation of a box determines the orientation of the widgets that are
   packed into this box. Creating a horizontal box and packing two buttons into it
   will result in the two buttons being placed side by side.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
box = dw_groupbox_new( !REXXDW.!DW_VERT, 'Editor' )
Call dw_box_pack_start win, box, 0, 0, !REXXDW.!DW_EXPAND_HORZ, ,
   !REXXDW.!DW_EXPAND_VERT, 0
</literallayout>
</section>
<section>
<title>Box/DW_box_pack_start</title>
<anchor id="robo56"/>
<anchor id="Box2fDW5fbox5fpack5fstart"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_box_pack_start
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_box_pack_start( ParentBox, BoxToPack, BoxWidth, BoxHeight, HorzExpand, VertExpand, Padding )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Packs the BoxToPack at the start of the ParentBox; ie at the left of a horizontal
   ParentBox, or the top of a vertical ParentBox. The height and width of the box can
   be specified as is the ability to allow the box to expand horizontally or vertically.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   ParentBox  - the box into which the BoxToPack is packed
</para></listitem><listitem><para>   BoxToPack  - the box that requires packing
</para></listitem><listitem><para>   BoxWidth   - the initial width of the box in pixels
</para></listitem><listitem><para>   BoxHeight  - the initial height of the box in pixels
</para></listitem><listitem><para>   HorzExpand - indicate if the box can be expanded horizontally.
                  Specify either !REXXDW.!DW_EXPAND_HORZ or !REXXDW.!DW_DONT_EXPAND_HORZ
</para></listitem><listitem><para>   VertExpand - indicate if the box can be expanded vertically.
                  Specify either !REXXDW.!DW_EXPAND_VERT or !REXXDW.!DW_DONT_EXPAND_VERT
</para></listitem><listitem><para>   Padding    - The number of pixels of padding to add around all sides of BoxToPack
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo57">DW_box_pack_end</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The BoxToPack argument can be 0, which will result in empty space being packed.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
button = dw_bitmapbutton_new_from_file( 'Quit', 0, 'quit' )
Call dw_box_pack_start win, button, 0, 32, !REXXDW.!DW_EXPAND_HORZ, ,
   !REXXDW.!DW_DONT_EXPAND_VERT, 0
</literallayout>
</section>
<section>
<title>Box/DW_box_pack_end</title>
<anchor id="robo57"/>
<anchor id="Box2fDW5fbox5fpack5fend"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_box_pack_end
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_box_pack_end( ParentBox, BoxToPack, BoxWidth, BoxHeight, HorzExpand, VertExpand, Padding )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Packs the BoxToPack at the end of the ParentBox; ie at the right of a horizontal
   ParentBox, or the bottom of a vertical ParentBox. The height and width of the box can
   be specified as is the ability to allow the box to expand horizontally or vertically.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   ParentBox  - the box into which the BoxToPack is packed
</para></listitem><listitem><para>   BoxToPack  - the box that requires packing
</para></listitem><listitem><para>   BoxWidth   - the initial width of the box in pixels
</para></listitem><listitem><para>   BoxHeight  - the initial height of the box in pixels
</para></listitem><listitem><para>   HorzExpand - indicate if the box can be expanded horizontally.
                  Specify either !REXXDW.!DW_EXPAND_HORZ or !REXXDW.!DW_DONT_EXPAND_HORZ
</para></listitem><listitem><para>   VertExpand - indicate if the box can be expanded vertically.
                  Specify either !REXXDW.!DW_EXPAND_VERT or !REXXDW.!DW_DONT_EXPAND_VERT
</para></listitem><listitem><para>   Padding    - The number of pixels of padding to add around all sides of BoxToPack
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo56">DW_box_pack_start</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The BoxToPack argument can be 0, which will result in empty space being packed.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
button = dw_bitmapbutton_new_from_file( 'Quit', 0, 'quit' )
Call dw_box_pack_end win, button, 0, 32, !REXXDW.!DW_EXPAND_HORZ, ,
   !REXXDW.!DW_DONT_EXPAND_VERT, 0
</literallayout>
</section>
</section>
<section>
<title>Widgets/Button</title>
<anchor id="robo58"/>
<anchor id="Widgets2fButton"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Buttons enable an action to be carried out by the user clicking the
   left mouse button on the widget.
   RexxDW supports two types of button; plain text buttons and bitmap
   buttons.
</para>
<section>
<title>Button/DW_button_new</title>
<anchor id="robo59"/>
<anchor id="Button2fDW5fbutton5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_button_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_button_new( ButtonText, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new text button.
   A button is a widget which contains text and can be clicked to execute
   some action.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   ButtonText - the text to display in the button
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo60">DW_bitmapbutton_new_from_file</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
button = dw_button_new( "Quit", 10 )
</literallayout>
</section>
<section>
<title>Button/DW_bitmapbutton_new_from_file</title>
<anchor id="robo60"/>
<anchor id="Button2fDW5fbitmapbutton5fnew5ffrom5ffile"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_bitmapbutton_new_from_file
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_bitmapbutton_new_from_file( BubbleText, Id, Filename )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new button window using a bitmap image.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   BubbleText - the text to display when the mouse is over the button
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem><listitem><para>   Filename   - the name of a file containing a valid bitmap image (.BMP, or .XPM)
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo59">DW_button_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
button = dw_bitmapbutton_new_from_file( 'Quit', 0, 'quit' )
Call dw_box_pack_start win, button, 32, 32, !REXXDW.!DW_DONT_EXPAND_HORZ, ,
   !REXXDW.!DW_DONT_EXPAND_VERT, 0
</literallayout>
</section>
</section>
<section>
<title>Widgets/Calendar</title>
<anchor id="robo61"/>
<anchor id="Widgets2fCalendar"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   The Calendar widget displays a month calendar from which the user can
   select a date.
</para>
<section>
<title>Calendar/DW_calendar_new</title>
<anchor id="robo62"/>
<anchor id="Calendar2fDW5fcalendar5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_calendar_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_calendar_new( Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new calendar.
   A calendar is a widget which allows the user to select a date.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo63">DW_calendar_get_date</link>, <link linkend="robo64">DW_calendar_set_date</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   On OS/2 this is a dummy text widget. On GTK, only 1 month is ever displayed.
   On Windows, more than 1 month is displayed depending on whether the widget is
   packed with expanding on.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
calendar = dw_calendar_new( 10 )
</literallayout>
</section>
<section>
<title>Calendar/DW_calendar_get_date</title>
<anchor id="robo63"/>
<anchor id="Calendar2fDW5fcalendar5fget5fdate"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_calendar_get_date
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   date = dw_calendar_get_date( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Gets the selected date of the widget.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo62">DW_calendar_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The date selected in Rexx's DATE('S') format.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo62">DW_calendar_new</link>, <link linkend="robo64">DW_calendar_set_date</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
calendar = dw_calendar_new( 10 )
...
date = dw_calendar_get_date( calendar )
</literallayout>
</section>
<section>
<title>Calendar/DW_calendar_set_date</title>
<anchor id="robo64"/>
<anchor id="Calendar2fDW5fcalendar5fset5fdate"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_calendar_set_date
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_calendar_set_date( Win, Date )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the date for the widget.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo62">DW_calendar_new</link>()
</para></listitem><listitem><para>   Date       - the date to set the widget to. Must be in Rexx DATE( 'S' ) format.
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo62">DW_calendar_new</link>, <link linkend="robo63">DW_calendar_get_date</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
calendar = dw_calendar_new( 10 )
...
date = dw_calendar_set_date( calendar, Date( 'S' ) )
</literallayout>
</section>
</section>
<section>
<title>Widgets/CheckboxAndRadiobutton</title>
<anchor id="robo65"/>
<anchor id="Widgets2fCheckboxAndRadiobutton"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Checkboxes provide a simple mechanism for a user to indicate a boolean
   value response.
   Radiobuttons provide the user with a means to choose from a list of
   options.
</para>
<section>
<title>CheckboxAndRadiobutton/DW_checkbox_new</title>
<anchor id="robo66"/>
<anchor id="CheckboxAndRadiobutton2fDW5fcheckbox5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_checkbox_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_checkbox_new( CheckboxText, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new checkbox.
   A checkbox is a widget that allows for a boolean value to be set. It
   contains text to describe the boolean value being set.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   CheckboxText - the text to display next to the checkbox
</para></listitem><listitem><para>   Id           - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo70">DW_checkbox_get</link>, <link linkend="robo68">DW_checkbox_set</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
checkbox = dw_checkbox_new( "Allow user to delete", 0 )
</literallayout>
</section>
<section>
<title>CheckboxAndRadiobutton/DW_radiobutton_new</title>
<anchor id="robo67"/>
<anchor id="CheckboxAndRadiobutton2fDW5fradiobutton5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_radiobutton_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_radiobutton_new( ButtonText, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new radiobutton.
   A radiobutton is a widget that allows for one of a number of values to be set. It
   contains text to describe the value being set. A number of radiobuttons are
   created together with one of them set at any point in time.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   ButtonText - the text to display next to the radiobutton
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo66">DW_checkbox_new</link>, <link linkend="robo55">DW_groupbox_new</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   For radiobuttons to work properly, all radiobuttons that are to be grouped together
   MUST be packed into the same groupbox and they MUST have a unique Id within the
   groupbox.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
langs = 'Rexx Perl Tcl C COBOL'
groupbox = dw_groupbox_new( !REXXDW.!DW_VERT, 0, 'Favourite Language' )
Do i = 1 To Words( langs )
   rb.i = dw_radiobutton_new( Word( langs, i ), i*10 )
   Call dw_box_pack_start groupbox, rb.i, 150, 15, !REXXDW.!DW_EXPAND_HORZ, ,
      !REXXDW.!DW_DONT_EXPAND_VERT, 0
End
Call dw_radiobutton_set rb.1, !REXXDW.!DW_CHECKED
</literallayout>
</section>
<section>
<title>CheckboxAndRadiobutton/DW_checkbox_set</title>
<anchor id="robo68"/>
<anchor id="CheckboxAndRadiobutton2fDW5fcheckbox5fset"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_checkbox_set
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_checkbox_set( Win, State )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the state of the specified checkbox.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo66">DW_checkbox_new</link>()
</para></listitem><listitem><para>   State      - the initial state of the checkbox;
                  !REXXDW.!DW_CHECKED or !REXXDW.!DW_UNCHECKED
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo66">DW_checkbox_new</link>, <link linkend="robo70">DW_checkbox_get</link>, <link linkend="robo22">WidgetChecked</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
checkbox = dw_checkbox_new( "Allow access", 0 )
Call dw_checkbox_set( checkbox, !REXXDW.!DW_CHECKED )
</literallayout>
</section>
<section>
<title>CheckboxAndRadiobutton/DW_radiobutton_set</title>
<anchor id="robo69"/>
<anchor id="CheckboxAndRadiobutton2fDW5fradiobutton5fset"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_radiobutton_set
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_radiobutton_set( Win, State )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the state of the radiobutton to checked or not.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo67">DW_radiobutton_new</link>()
</para></listitem><listitem><para>   State      - set to DW_CHECKED or DW_UNCHECKED
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo71">DW_radiobutton_get</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
langs = 'Rexx Perl Tcl C COBOL'
groupbox = dw_groupbox_new( !REXXDW.!DW_VERT, 0, 'Favourite Language' )
Do i = 1 To Words( langs )
   rb.i = dw_radiobutton_new( Word( langs, i ), i*10 )
   Call dw_box_pack_start groupbox, rb.i, 150, 15, !REXXDW.!DW_EXPAND_HORZ, ,
      !REXXDW.!DW_DONT_EXPAND_VERT, 0
End
Call dw_radiobutton_set rb.1, !REXXDW.!DW_CHECKED
</literallayout>
</section>
<section>
<title>CheckboxAndRadiobutton/DW_checkbox_get</title>
<anchor id="robo70"/>
<anchor id="CheckboxAndRadiobutton2fDW5fcheckbox5fget"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_checkbox_get
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_checkbox_get( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Queries the state of the specified checkbox.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo66">DW_checkbox_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   1 if the checkbox is checked, 0 if not checked.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo66">DW_checkbox_new</link>, <link linkend="robo68">DW_checkbox_set</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
checkbox = dw_checkbox_new( "Allow access", 0 )
...
rc = dw_checkbox_get( checkbox )
cb_result = 'Unchecked Checked'
Say 'Allow access checkbox' Word( cb_result, rc+1 )
</literallayout>
</section>
<section>
<title>CheckboxAndRadiobutton/DW_radiobutton_get</title>
<anchor id="robo71"/>
<anchor id="CheckboxAndRadiobutton2fDW5fradiobutton5fget"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_radiobutton_get
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   boolean = dw_radiobutton_get( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Determines if a radiobutton has been checked or not.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo67">DW_radiobutton_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   1 if the radiobutton is checked, 0 if unchecked
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo69">DW_radiobutton_set</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
langs = 'Rexx Perl Tcl C COBOL'
groupbox = dw_groupbox_new( !REXXDW.!DW_VERT, 0, 'Favourite Language' )
Do i = 1 To Words( langs )
   rb.i = dw_radiobutton_new( Word( langs, i ), i*10 )
   Call dw_box_pack_start groupbox, rb.i, 150, 15, !REXXDW.!DW_EXPAND_HORZ, ,
      !REXXDW.!DW_DONT_EXPAND_VERT, 0
End
Call dw_radiobutton_set rb.1, !REXXDW.!DW_CHECKED
...
Do i = 1 To Words( langs )
   If dw_radiobutton_get( rb.i ) Then
      Do
         Say 'Your favourite language is' Word( langs, i )
         Leave
      End
End
</literallayout>
</section>
</section>
<section>
<title>Widgets/ContainerAndFilesystem</title>
<anchor id="robo72"/>
<anchor id="Widgets2fContainerAndFilesystem"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   These widgets provide a two-dimensional display of read-only data.
   Data are displayed in rows and columns, with automatically created scrollbars
   to display the complete set of data. Columns can be resized by the user at runtime.
   A Filesystem is the same as a normal Container, except that the first column
   consists of a column of string and icon items, which usually displays a filename.
</para>

<para>
   All DW_container*() functions (for which there is no specific "Filename" equivalent)
   also works with a "Filename" widget.
</para>
<section>
<title>ContainerAndFilesystem/DW_container_new</title>
<anchor id="robo73"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_container_new( Id, Selection )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new container.
   A container is a widget that provides a grid of cells with column headings.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem><listitem><para>   Selection  - !REXXDW.!DW_SINGLE_SELECTION indicates that only 1 row in the container is selectable
                  !REXXDW.!DW_MULTIPLE_SELECTION indicates that multiple rowsin the container are selectable
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo24">ContainerSelection</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_alloc</title>
<anchor id="robo74"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5falloc"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_alloc
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   alloc = dw_container_alloc( Win, RowCount )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Allocates working memory for a container window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   RowCount   - the number of rows of data that the container will initially contain
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   An identifier for the working memory.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo73">DW_container_new</link>, <link linkend="robo87">DW_container_clear</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   After a container window is created, you need to allocate memory for the initial
   number of rows that the container will contain. This call does that and must
   be called after creating the container. The allocated memory will be freed when
   the container is destroyed and by a call to <link linkend="robo87">DW_container_clear</link>().
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
alloc = dw_container_alloc( container, 10 )
...
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_setup</title>
<anchor id="robo75"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fsetup"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_setup
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_container_setup( Win, FlagsArray, TitlesArray[,Separator] )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Defines properties for the columns in a container.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   FlagsArray - an array containing column flags
</para></listitem><listitem><para>   TitlesArray- an array containing column heading titles
</para></listitem><listitem><para>   Separator  - An optional flag under OS/2 ?????
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo80">DW_container_change_item</link>, <link linkend="robo76">DW_filesystem_setup</link>, <link linkend="robo7">ContainerColumnFlags</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The FlagsArray is a Rexx stem variable name, including a trailing period. The 0th
   compound variable (eg Flags.0) contains a count of the number of items in the
   array. Each item in the array can contain a combination of the values
   described in <link linkend="robo7">ContainerColumnFlags</link>.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
flags.0 = 2
flags.1 = dw_or( !REXXDW.!DW_CFA_STRINGANDICON, !REXXDW.!DW_CFA_LEFT, ,
   !REXXDW.!DW_CFA_SEPARATOR, !REXXDW.!DW_CFA_HORZSEPARATOR )
flags.2 = dw_or( !REXXDW.!DW_CFA_STRING, !REXXDW.!DW_CFA_LEFT, ,
   !REXXDW.!DW_CFA_SEPARATOR, !REXXDW.!DW_CFA_HORZSEPARATOR )
titles.0 = 2
titles.1 = 'Title'
titles.2 = 'Command'
...
container = dw_container_new( 1, !REXXDW.!DW_MULTIPLE_SELECTION )
Call dw_container_setup container, 'flags.', 'titles.', 0
alloc = dw_container_alloc( container, numrows )
...
Do i = 1 To numrows
   Call dw_container_set_item container, alloc, 0, i-1, title.i, icon.i
   Call dw_container_set_item container, alloc, 1, i-1, command.i
   Call dw_container_set_row_title alloc, i-1, "Row"i
End
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_filesystem_setup</title>
<anchor id="robo76"/>
<anchor id="ContainerAndFilesystem2fDW5ffilesystem5fsetup"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_filesystem_setup
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_filesystem_setup( Win, FlagsArray, TitlesArray, Separator )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Defines properties for the columns in a filesystem container.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   FlagsArray - an array containing column flags
</para></listitem><listitem><para>   TitlesArray- an array containing column heading titles
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo82">DW_filesystem_change_item</link>, <link linkend="robo75">DW_container_setup</link>, <link linkend="robo7">ContainerColumnFlags</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The FlagsArray is a Rexx stem variable name, including a trailing period. The 0th
   compound variable (eg Flags.0) contains a count of the number of items in the
   array. Each item in the array can contain a combination of the values
   described in <link linkend="robo7">ContainerColumnFlags</link>.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
flags.0 = 2
flags.1 = dw_or( !REXXDW.!DW_CFA_STRINGANDICON, !REXXDW.!DW_CFA_LEFT, ,
   !REXXDW.!DW_CFA_SEPARATOR, !REXXDW.!DW_CFA_HORZSEPARATOR )
flags.2 = dw_or( !REXXDW.!DW_CFA_STRING, !REXXDW.!DW_CFA_LEFT, ,
   !REXXDW.!DW_CFA_SEPARATOR, !REXXDW.!DW_CFA_HORZSEPARATOR )
titles.0 = 2
titles.1 = 'Title'
titles.2 = 'Command'
...
container = dw_container_new( 1, !REXXDW.!DW_MULTIPLE_SELECTION )
alloc = dw_container_alloc( container, numrows )
Call dw_filesystem_setup container, 'flags.', 'titles.'
...
normalfileicon = dw_icon_load_from_file( '/home/mark/normalfile' )
Do i = 1 To numrows
   Call dw_filesystem_set_file container, alloc, '/home/mark/myfile', myicon
   Call dw_filesystem_set_item container, alloc, 0, i-1, title.i, icon.i
   Call dw_filesystem_set_item container, alloc, 1, i-1, command.i
   Call dw_container_set_row_title alloc, i-1, "Row"i
End
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_set_item</title>
<anchor id="robo77"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fset5fitem"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_set_item
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_container_set_item( Win, Memory, Column, Row, Data [,Data2] )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Adds  the initial data into a cell of a container.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Memory     - the memory identifier returned by a call to <link linkend="robo74">DW_container_alloc</link>()
</para></listitem><listitem><para>   Column     - the column of the data to be changed, 0 based
</para></listitem><listitem><para>   Row        - the row of the data to be changed, 0 based
</para></listitem><listitem><para>   Data       - the new data value for the cell
</para></listitem><listitem><para>   Data2      - extra data for the cell if the column type is !REXXDW.!DW_CFA_STRINGANDICON
                  (not implemented yet)
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo80">DW_container_change_item</link>, <link linkend="robo75">DW_container_setup</link>, <link linkend="robo7">ContainerColumnFlags</link>
   <link linkend="robo82">DW_filesystem_change_item</link>, <link linkend="robo79">DW_filesystem_set_item</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The Data (and Data2) arguments must match the data type of the column when
   defined in the call to <link linkend="robo75">DW_container_setup</link>().
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
flags.0 = 2
flags.1 = dw_or( !REXXDW.!DW_CFA_STRINGANDICON, !REXXDW.!DW_CFA_LEFT, ,
   !REXXDW.!DW_CFA_SEPARATOR, !REXXDW.!DW_CFA_HORZSEPARATOR )
flags.2 = dw_or( !REXXDW.!DW_CFA_STRING, !REXXDW.!DW_CFA_LEFT, ,
   !REXXDW.!DW_CFA_SEPARATOR, !REXXDW.!DW_CFA_HORZSEPARATOR )
titles.0 = 2
titles.1 = 'Title'
titles.2 = 'Command'
...
container = dw_container_new( 1, !REXXDW.!DW_MULTIPLE_SELECTION )
alloc = dw_container_alloc( container, numrows )
Call dw_container_setup container, 'flags.', 'titles.', 0
...
Do i = 1 To numrows
   Call dw_container_set_item container, alloc, 0, i-1, title.i, icon.i
   Call dw_container_set_item container, alloc, 1, i-1, command.i
   Call dw_container_set_row_title alloc, i-1, "Row"i
End
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_filesystem_set_file</title>
<anchor id="robo78"/>
<anchor id="ContainerAndFilesystem2fDW5ffilesystem5fset5ffile"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_filesystem_set_file
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_filesystem_set_file( Win, Memory, Row, Filename, Icon )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Adds the data in the first cell of a filesystem container.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Memory     - the memory identifier returned by a call to <link linkend="robo74">DW_container_alloc</link>()
</para></listitem><listitem><para>   Row        - the row of the data to be changed, 0 based
</para></listitem><listitem><para>   Filename   - the new filename for the cell
</para></listitem><listitem><para>   Icon       - the icon identifier returned from <link linkend="robo228">DW_icon_load_from_file</link>()
                  to be the new icon for the cell
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo81">DW_filesystem_change_file</link>, <link linkend="robo79">DW_filesystem_set_item</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
normalfileicon = dw_icon_load_from_file( '/home/mark/normalfile' )
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
alloc = dw_container_alloc( container, 10 )
...
Call dw_filesystem_set_file container, alloc, 10, '/home/mark/newfile.txt', ,
   normalfileicon
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_filesystem_set_item</title>
<anchor id="robo79"/>
<anchor id="ContainerAndFilesystem2fDW5ffilesystem5fset5fitem"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_filesystem_set_item
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_filesystem_set_item( Win, Memory, Column, Row, Data [,Data2] )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Adds  the initial data into a cell of a filesystem container.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Memory     - the memory identifier returned by a call to <link linkend="robo74">DW_container_alloc</link>()
</para></listitem><listitem><para>   Column     - the column of the data to be changed, 0 based
</para></listitem><listitem><para>   Row        - the row of the data to be changed, 0 based
</para></listitem><listitem><para>   Data       - the new data value for the cell
</para></listitem><listitem><para>   Data2      - extra data for the cell if the column type is !REXXDW.!DW_CFA_STRINGANDICON
                  (not implemented yet)
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo80">DW_container_change_item</link>, <link linkend="robo75">DW_container_setup</link>, <link linkend="robo7">ContainerColumnFlags</link>
   <link linkend="robo82">DW_filesystem_change_item</link>, <link linkend="robo77">DW_container_set_item</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The Data (and Data2) arguments must match the data type of the column when
   defined in the call to <link linkend="robo75">DW_container_setup</link>().
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
flags.0 = 2
flags.1 = dw_or( !REXXDW.!DW_CFA_STRINGANDICON, !REXXDW.!DW_CFA_LEFT, ,
   !REXXDW.!DW_CFA_SEPARATOR, !REXXDW.!DW_CFA_HORZSEPARATOR )
flags.2 = dw_or( !REXXDW.!DW_CFA_STRING, !REXXDW.!DW_CFA_LEFT, ,
   !REXXDW.!DW_CFA_SEPARATOR, !REXXDW.!DW_CFA_HORZSEPARATOR )
titles.0 = 2
titles.1 = 'Title'
titles.2 = 'Command'
...
container = dw_container_new( 1, !REXXDW.!DW_MULTIPLE_SELECTION )
alloc = dw_container_alloc( container, numrows )
Call dw_filesystem_setup container, 'flags.', 'titles.', 0
...
Do i = 1 To numrows
   Call dw_filesystem_set_file container, alloc, i-1, fname.i, icon.i
   Call dw_filesystem_set_item container, alloc, 0, i-1, title.i, icon.i
   Call dw_filesystem_set_item container, alloc, 1, i-1, command.i
   Call dw_container_set_row_title alloc, i-1, "Row"i
End
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_change_item</title>
<anchor id="robo80"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fchange5fitem"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_change_item
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_container_change_item( Win, Column, Row, Data [,Data2] )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Changes the data in a cell of a container.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Column     - the column of the data to be changed, 0 based
</para></listitem><listitem><para>   Row        - the row of the data to be changed, 0 based
</para></listitem><listitem><para>   Data       - the new data value for the cell
</para></listitem><listitem><para>   Data2      - extra data for the cell if the column type is !REXXDW.!DW_CFA_STRINGANDICON
                  (not implemented yet)
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo77">DW_container_set_item</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The Data (and Data2) arguments must match the data type of the column when
   defined in the call to <link linkend="robo75">DW_container_setup</link>().
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
...
Call dw_container_change_item container, 0, 10, 'New string data'
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_filesystem_change_file</title>
<anchor id="robo81"/>
<anchor id="ContainerAndFilesystem2fDW5ffilesystem5fchange5ffile"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_filesystem_change_file
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_filesystem_change_file( Win, Row, Filename, Icon )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Changes the data in the first cell of a filesystem container.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Row        - the row of the data to be changed, 0 based
</para></listitem><listitem><para>   Filename   - the new filename for the cell
</para></listitem><listitem><para>   Icon       - the icon identifier returned from <link linkend="robo228">DW_icon_load_from_file</link>()
                  to be the new icon for the cell
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo82">DW_filesystem_change_item</link>, <link linkend="robo78">DW_filesystem_set_file</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
normalfileicon = dw_icon_load_from_file( '/home/mark/normalfile' )
...
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
...
Call dw_filesystem_change_file container, 10, '/home/mark/newfile.txt', ,
   normalfileicon
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_filesystem_change_item</title>
<anchor id="robo82"/>
<anchor id="ContainerAndFilesystem2fDW5ffilesystem5fchange5fitem"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_filesystem_change_item
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_filesystem_change_item( Win, Column, Row, Data [,Data2] )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Changes the data in a cell of a container.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Column     - the column of the data to be changed, 0 based
</para></listitem><listitem><para>   Row        - the row of the data to be changed, 0 based
</para></listitem><listitem><para>   Data       - the new data value for the cell
</para></listitem><listitem><para>   Data2      - extra data for the cell if the column type is !REXXDW.!DW_CFA_STRINGANDICON
                  (not implemented yet)
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo77">DW_container_set_item</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The Data (and Data2) arguments must match the data type of the column when
   defined in the call to <link linkend="robo75">DW_container_setup</link>().
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
...
Call dw_filesystem_change_item container, 0, 10, 'New string data'
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_insert</title>
<anchor id="robo83"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5finsert"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_insert
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_container_insert( Win, Memory, RowCount )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Inserts the allocated memory into the container.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Memory     - the memory identifier returned by a call to <link linkend="robo74">DW_container_alloc</link>()
</para></listitem><listitem><para>   RowCount   - the number of rows of data that the container will initially contain
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo73">DW_container_new</link>, <link linkend="robo74">DW_container_alloc</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
alloc = dw_container_alloc( container, numrows )
...
Call dw_container_insert container, alloc, numrows
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_set_row_title</title>
<anchor id="robo84"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fset5frow5ftitle"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_set_row_title
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_container_set_row_title( Memory, Row, TitleText )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Assigns a textual string for the specified Row. Used to identify this
   row in other container functions
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Memory     - the memory identifier returned by a call to <link linkend="robo74">DW_container_alloc</link>()
</para></listitem><listitem><para>   Row        - the row of data to be assigned the value; 0 based
</para></listitem><listitem><para>   TitleText  - the text to be associated with the row
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo92">DW_container_cursor</link>, <link linkend="robo89">DW_container_delete_row</link>,
   <link linkend="robo91">DW_container_query_next</link>, <link linkend="robo90">DW_container_query_start</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
alloc = dw_container_alloc( container, numrows )
...
Do i = 1 To numrows
   Call dw_container_set_row_title alloc, i-1, "Row"i
End
...
Call dw_container_delete_row container, "Row10"
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_set_column_width</title>
<anchor id="robo85"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fset5fcolumn5fwidth"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_set_column_width
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_container_set_column_width( Win, Column, Width )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the width of the column in the container to Width pixels.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Column     - the column that requires a specific width; 0 based
</para></listitem><listitem><para>   Width      - the width of the column in pixels
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo86">DW_container_optimize</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Columns with a set fixed width are not changed when <link linkend="robo86">DW_container_optimize</link>()
   is called.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_MULTIPLE_SELECTION )
...
Call dw_container_set_width( container, 0, 25 )
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_optimize</title>
<anchor id="robo86"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5foptimize"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_optimize
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_container_optimize( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Rearranges the width of the container columns to provide the optimum
   display of the columns.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
alloc = dw_container_alloc( container, numrows )
...
Call dw_container_insert container, alloc, numrows
Call dw_container_optimize container
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_clear</title>
<anchor id="robo87"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fclear"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_clear
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_container_clear( Win, Redraw )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Clears the container of all rows and frees the memory allocated with
   <link linkend="robo74">DW_container_alloc</link>().
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Redraw     - see <link linkend="robo23">ContainerClearFlags</link>
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo88">DW_container_delete</link>, <link linkend="robo23">ContainerClearFlags</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
...
Call dw_container_clear container, !REXXDW.!DW_DONT_REDRAW
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_delete</title>
<anchor id="robo88"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fdelete"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_delete
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_container_delete( Win, NumRows )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Deletes NumRows from the the container starting with the first row.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   NumRows    - the number of rows to delete
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo89">DW_container_delete_row</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
...
Call dw_container_delete container, 5
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_delete_row</title>
<anchor id="robo89"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fdelete5frow"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_delete_row
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_container_delete_row( Win, TitleText )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Deletes the row from the container which has the specified TitleText
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   TitleText  - the text that was set by a call to <link linkend="robo84">DW_container_set_row_title</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo88">DW_container_delete</link>, <link linkend="robo84">DW_container_set_row_title</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
alloc = dw_container_alloc( container, numrows )
...
Do i = 1 To numrows
   Call dw_container_set_row_title alloc, i-1, "Row"i
End
...
Call dw_container_delete_row container, "Row10"
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_query_start</title>
<anchor id="robo90"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fquery5fstart"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_query_start
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   text = dw_container_query_start( Win, Flags )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Initiates a query on a container for subsequent calls to <link linkend="robo91">DW_container_query_next</link>().
   Returns the title text associated with the first row in the container based on
   Flags.
   The title text having previously been set with a call to <link linkend="robo84">DW_container_set_row_title</link>().
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Flags      - !REXXDW.!DW_CRA_ALL indicates that all rows in the container
                  should be queried.
                  !REXXDW.!DW_CRA_SELECTED indicates that only those rows that have been
                  selected should be queried.
                  !REXXDW.!DW_CRA_CURSORED indicates that only those items that
                  have focus should be queried.
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The title text of the row or the empty string to indicate the end of the
   query. ie no more rows are available for querying.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo91">DW_container_query_next</link>, <link linkend="robo84">DW_container_set_row_title</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_MULTIPLE_SELECTION )
...
selected = dw_container_query_start( container, !REXXDW.!DW_CRA_SELECTED )
Do While selected \= ''
   Say 'Title of row selected is' selected
   selected = dw_container_query_next( container, !REXXDW.!DW_CRA_SELECTED )
End
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_query_next</title>
<anchor id="robo91"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fquery5fnext"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_query_next
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   text = dw_container_query_next( Win, Flags )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the title text associated with the next row in the container.
   The title text having previously been set with a call to <link linkend="robo84">DW_container_set_row_title</link>().
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Flags      - !REXXDW.!DW_CRA_ALL indicates that all rows in the container
                  should be queried.
                  !REXXDW.!DW_CRA_SELECTED indicates that only those rows that have been
                  selected should be queried.
                  !REXXDW.!DW_CRA_CURSORED indicates that only those items that
                  have focus should be queried.
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The title text of the row or the empty string to indicate the end of the
   query. ie no more rows are available for querying.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   As the only way of knowing that the query has returned all rows in subsequent calls
   to this function, all rows MUST have a non-blank title text.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo90">DW_container_query_start</link>, <link linkend="robo84">DW_container_set_row_title</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_MULTIPLE_SELECTION )
...
selected = dw_container_query_start( container, !REXXDW.!DW_CRA_SELECTED )
Do While selected \= ''
   Say 'Title of row selected is' selected
   selected = dw_container_query_next( container, !REXXDW.!DW_CRA_SELECTED )
End
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_cursor</title>
<anchor id="robo92"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fcursor"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_cursor
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_container_cursor( Win, TitleText )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Rearranges the view of the container so that the row with the specified
   TitleText is visible.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   TitleText  - the text that was set by a call to <link linkend="robo84">DW_container_set_row_title</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo84">DW_container_set_row_title</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_SINGLE_SELECTION )
alloc = dw_container_alloc( container, numrows )
...
Do i = 1 To numrows
   Call dw_container_set_row_title alloc, i-1, "Row"i
End
...
Call dw_container_cursor container, "Row10"
</literallayout>
</section>
<section>
<title>ContainerAndFilesystem/DW_container_scroll</title>
<anchor id="robo93"/>
<anchor id="ContainerAndFilesystem2fDW5fcontainer5fscroll"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_container_scroll
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_container_scroll( Win, Direction, NumRows )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Scrolls the current view of the container by NumRows rows in the
   direction specified by Direction.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Direction:
      o !REXXDW.!DW_SCROLL_TOP shows the first rows in the container
      o !REXXDW.!DW_SCROLL_BOTTOM shows the last rows in the container
      o !REXXDW.!DW_SCROLL_UP scrolls up NumRows rows
      o !REXXDW.!DW_SCROLL_DOWN scrolls down NumRows rows
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo4">ContainerScrollFlags</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The NumRows argument is ignored for !REXXDW.!DW_SCROLL_TOP and
   !REXXDW.!DW_SCROLL_BOTTOM.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
container = dw_container_new( 1, !REXXDW.!DW_MULTIPLE_SELECTION )
...
Call dw_container_scroll( container, !REXXDW.!DW_SCROLL_UP, 10 )
</literallayout>
</section>
</section>
<section>
<title>Widgets/Rendering</title>
<anchor id="robo94"/>
<anchor id="Widgets2fRendering"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   A rendering widget allows low-level graphics drawing to be done.
   Two widget types can be rendered; a render window and a pixmap.
</para>

<para>
   The "normal" way to write low-level graphics is to draw into an
   off-screen pixmap, and then "bitblt" the off-screen pixmap into
   the render window. This is much faster that drawing directly into
   the render window itself.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Two callbacks can be used with Render windows; DW_EXPOSE_EVENT and
   DW_CONFIGURE_EVENT.
   Whenever the Render window's size is changed a "configure" event is fired.
   Whenever a portion of the window is made visible, an "expose" event fires.
</para>
<section>
<title>Rendering/DW_render_new</title>
<anchor id="robo95"/>
<anchor id="Rendering2fDW5frender5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_render_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_render_new( Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new render window.
   A render window is used to draw primitive graphics on, or to be the window in
   which a pixmap is rendered.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A render identifier.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
render = dw_render_new( 10 )
depth = dw_color_depth_get()
pixmap = dw_pixmap_new( render, 64, 64, depth )
</literallayout>
</section>
<section>
<title>Rendering/DW_pixmap_new</title>
<anchor id="robo96"/>
<anchor id="Rendering2fDW5fpixmap5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_pixmap_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_pixmap_new( Win, Width, Height, Depth )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new pixmap widget of the given dimensions.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo95">DW_render_new</link>()
                  that the pixmap is associated with
</para></listitem><listitem><para>   Width      - the width of the pixmap in pixels
</para></listitem><listitem><para>   Height     - the height of the pixmap in pixels
</para></listitem><listitem><para>   Depth      - the colour depth of the pixmap as returned from <link linkend="robo248">DW_color_depth_get</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A pixmap identifier.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
render = dw_render_new( 10 )
depth = dw_color_depth_get()
pixmap = dw_pixmap_new( render, 64, 64, depth )
</literallayout>
</section>
<section>
<title>Rendering/DW_pixmap_new_from_file</title>
<anchor id="robo97"/>
<anchor id="Rendering2fDW5fpixmap5fnew5ffrom5ffile"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_pixmap_new_from_file
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_pixmap_new_from_file( Win, Filename )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new pixmap widget from the specified Filename.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo95">DW_render_new</link>()
                  that the pixmap is associated with
</para></listitem><listitem><para>   Filename   - the name of a file containing a valid bitmap image (.BMP, or .XPM)
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A pixmap identifier.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The size of the pixmap is determined from the dimensions of the .BMP or .XPM
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
render = dw_render_new( 10 )
pixmap = dw_pixmap_new_from_file( render, '/home/mark/mypixmap' )
</literallayout>
</section>
<section>
<title>Rendering/DW_pixmap_destroy</title>
<anchor id="robo98"/>
<anchor id="Rendering2fDW5fpixmap5fdestroy"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_pixmap_destroy
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_pixmap_destroy( Pixmap )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Destroys a Pixmap.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Pixmap     - the pixmap identifier returned from <link linkend="robo96">DW_pixmap_new</link>()
                  or <link linkend="robo97">DW_pixmap_new_from_file</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo96">DW_pixmap_new</link>, <link linkend="robo97">DW_pixmap_new_from_file</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
render = dw_render_new( 10 )
pixmap = dw_pixmap_new_from_file( render, '/home/mark/mypixmap' )
...
Call dw_pixmap_destroy( pixmap )
</literallayout>
</section>
<section>
<title>Rendering/DW_pixmap_bitblt</title>
<anchor id="robo99"/>
<anchor id="Rendering2fDW5fpixmap5fbitblt"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_pixmap_bitblt
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_pixmap_bitblt( DestWin, DestPixmap, DestX, DestY, Width, Height, SrcWin, SrcPixmap, SrcX, SrcY )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Copies a portion of a render window or pixmap to another render window or pixmap.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   DestWin    - the destination window identifier returned from <link linkend="robo95">DW_render_new</link>()
</para></listitem><listitem><para>   DestPixmap - the destination pixmap identifier returned from <link linkend="robo96">DW_pixmap_new</link>()
                  or <link linkend="robo97">DW_pixmap_new_from_file</link>()
</para></listitem><listitem><para>   DestX      - the X coordinate of the destination measured in pixels
</para></listitem><listitem><para>   DestY      - the Y coordinate of the destination measured in pixels
</para></listitem><listitem><para>   Width      - the width of the portion to copy measured in pixels
</para></listitem><listitem><para>   Height     - the height of the portion to copy measured in pixels
</para></listitem><listitem><para>   SrcWin     - the source window identifier returned from <link linkend="robo95">DW_render_new</link>()
</para></listitem><listitem><para>   SrcPixmap  - the source pixmap identifier returned from <link linkend="robo96">DW_pixmap_new</link>()
</para></listitem><listitem><para>   SrcX       - the X coordinate of the source measured in pixels
</para></listitem><listitem><para>   SrcY       - the Y coordinate of the source measured in pixels
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo96">DW_pixmap_new</link>, <link linkend="robo97">DW_pixmap_new_from_file</link>, <link linkend="robo95">DW_render_new</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Only one of DestWin, DestPixmap is specified; the other should be 0
   Only one of SrcWin, SrcPixmap is specified; the other should be 0
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
render = dw_render_new( 10 )
depth = dw_color_depth_get()
pixmap = dw_pixmap_new( render, 64, 64, depth )
...
Call dw_pixmap_bitblt( render, 0, 0, 0, 64, 64, 0, pixmap, 0, 0 )
</literallayout>
</section>
<section>
<title>Rendering/DW_pixmap_width</title>
<anchor id="robo100"/>
<anchor id="Rendering2fDW5fpixmap5fwidth"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_pixmap_width
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   width = dw_pixmap_width( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   returns the width of the specified pixmap.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo96">DW_pixmap_new</link>()
                  or <link linkend="robo97">DW_pixmap_new_from_file</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The pixmap's width
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo101">DW_pixmap_height</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
render = dw_render_new( 10 )
pixmap = dw_pixmap_new_from_file( render, '/home/mark/mypixmap' )
Say 'The width of the pixmap is' dw_pixmap_width( pixmap )
</literallayout>
</section>
<section>
<title>Rendering/DW_pixmap_height</title>
<anchor id="robo101"/>
<anchor id="Rendering2fDW5fpixmap5fheight"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_pixmap_height
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   width = dw_pixmap_height( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   returns the height of the specified pixmap.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo96">DW_pixmap_new</link>()
                  or <link linkend="robo97">DW_pixmap_new_from_file</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The pixmap's height
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo100">DW_pixmap_width</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
render = dw_render_new( 10 )
pixmap = dw_pixmap_new_from_file( render, '/home/mark/mypixmap' )
Say 'The height of the pixmap is' dw_pixmap_height( pixmap )
</literallayout>
</section>
<section>
<title>Rendering/DW_draw_text</title>
<anchor id="robo102"/>
<anchor id="Rendering2fDW5fdraw5ftext"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_draw_text
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_draw_text( Win, Pixmap, Fill, X, Y, Text )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Draws the specified Text at the coordinates X/Y.
   The colour of the Text is set by a call to <link linkend="robo254">DW_color_foreground_set</link>().
   The font of the text is set by a call to <link linkend="robo213">DW_window_set_font</link>() against
   the render box in which the text is drawn eith directly, or via a pixmap.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo95">DW_render_new</link>()
</para></listitem><listitem><para>   Pixmap     - the pixmap identifier returned from <link linkend="robo96">DW_pixmap_new</link>()
</para></listitem><listitem><para>   X          - the x coordinate in pixels of the top left corner
</para></listitem><listitem><para>   Y          - the y coordinate in pixels of the top left corner
</para></listitem><listitem><para>   Text       - the text to be drawn
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo95">DW_render_new</link>, <link linkend="robo96">DW_pixmap_new</link>, <link linkend="robo254">DW_color_foreground_set</link>
   <link linkend="robo103">DW_draw_line</link>, <link linkend="robo105">DW_draw_point</link>, <link linkend="robo104">DW_draw_rect</link>, <link linkend="robo25">RectangleFill</link>, <link linkend="robo213">DW_window_set_font</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Only one of Win or Pixmap is required. The other argument should be set to 0.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
win = dw_render_new( 0 )
Call dw_window_set_font win, myfont
...
Call dw_draw_text win, 0, 10, 34, 'A string at 10/34'
</literallayout>
</section>
<section>
<title>Rendering/DW_draw_line</title>
<anchor id="robo103"/>
<anchor id="Rendering2fDW5fdraw5fline"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_draw_line
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_draw_line( Win, Pixmap, X1, Y1, X2, Y2 )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Draws a line between the coordinates X1/Y1 and X2/Y2 in either the render
   window identfied by Win or the pixmap identified by Pixmap. The line is 1 pixel
   in width and the colour of the line is set by a call to <link linkend="robo254">DW_color_foreground_set</link>().
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo95">DW_render_new</link>()
</para></listitem><listitem><para>   Pixmap     - the pixmap identifier returned from <link linkend="robo96">DW_pixmap_new</link>()
</para></listitem><listitem><para>   X1         - the x coordinate in pixels of one end of the line
</para></listitem><listitem><para>   Y1         - the y coordinate in pixels of one end of the line
</para></listitem><listitem><para>   X2         - the x coordinate in pixels of the other end of the line
</para></listitem><listitem><para>   Y2         - the y coordinate in pixels of the other end of the line
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo95">DW_render_new</link>, <link linkend="robo96">DW_pixmap_new</link>, <link linkend="robo254">DW_color_foreground_set</link>,
   <link linkend="robo105">DW_draw_point</link>, <link linkend="robo104">DW_draw_rect</link>, <link linkend="robo102">DW_draw_text</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Only one of Win or Pixmap is required. The other argument should be set to 0.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
win = dw_render_new( 0 )
...
Call dw_draw_line win, 0, 10, 10, 34, 56
</literallayout>
</section>
<section>
<title>Rendering/DW_draw_rect</title>
<anchor id="robo104"/>
<anchor id="Rendering2fDW5fdraw5frect"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_draw_rect
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_draw_rect( Win, Pixmap, Fill, X, Y, Width, Height )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Draws a rectangle with the top left corner at the coordinates X/Y with
   the specified Width and Height. All measurements are in pixels.
   The colour of the rectangle is set by a call to <link linkend="robo254">DW_color_foreground_set</link>().
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo95">DW_render_new</link>()
</para></listitem><listitem><para>   Pixmap     - the pixmap identifier returned from <link linkend="robo96">DW_pixmap_new</link>()
</para></listitem><listitem><para>   Fill       - indicate if a filled or outline rectangle is drawn
</para></listitem><listitem><para>   X          - the x coordinate in pixels of the top left corner
</para></listitem><listitem><para>   Y          - the y coordinate in pixels of the top left corner
</para></listitem><listitem><para>   Width      - the width of the rectangle
</para></listitem><listitem><para>   Height     - the height of the rectangle
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo95">DW_render_new</link>, <link linkend="robo96">DW_pixmap_new</link>, <link linkend="robo254">DW_color_foreground_set</link>
   <link linkend="robo103">DW_draw_line</link>, <link linkend="robo105">DW_draw_point</link>, <link linkend="robo102">DW_draw_text</link>, <link linkend="robo25">RectangleFill</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Only one of Win or Pixmap is required. The other argument should be set to 0.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
win = dw_render_new( 0 )
...
Call dw_draw_rect win, 0, !REXXDW.!DW_FILL, 10, 34, 40, 40
</literallayout>
</section>
<section>
<title>Rendering/DW_draw_point</title>
<anchor id="robo105"/>
<anchor id="Rendering2fDW5fdraw5fpoint"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_draw_point
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_draw_point( Win, Pixmap, X, Y )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Draws a point 1 pixel in size at the coordinates X/Y. The colour of the point
   is set by a call to <link linkend="robo254">DW_color_foreground_set</link>().
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo95">DW_render_new</link>()
</para></listitem><listitem><para>   Pixmap     - the pixmap identifier returned from <link linkend="robo96">DW_pixmap_new</link>()
</para></listitem><listitem><para>   X          - the x coordinate in pixels of the point
</para></listitem><listitem><para>   Y          - the y coordinate in pixels of the point
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo95">DW_render_new</link>, <link linkend="robo96">DW_pixmap_new</link>, <link linkend="robo254">DW_color_foreground_set</link>
   <link linkend="robo103">DW_draw_line</link>, <link linkend="robo104">DW_draw_rect</link>, <link linkend="robo102">DW_draw_text</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Only one of Win or Pixmap is required. The other argument should be set to 0.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
win = dw_render_new( 0 )
...
Call dw_draw_point win, 0, 10, 34
</literallayout>
</section>
</section>
<section>
<title>Widgets/EntryField</title>
<anchor id="robo106"/>
<anchor id="Widgets2fEntryField"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Entryfields allow a user to enter a single line of text.
</para>
<section>
<title>EntryField/DW_entryfield_new</title>
<anchor id="robo107"/>
<anchor id="EntryField2fDW5fentryfield5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_entryfield_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_entryfield_new( CurrentText, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new entryfield.
   An entryfield is a single line window into which text can be entered.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   CurrentText - the initial text to display in the entryfield
</para></listitem><listitem><para>   Id          - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo108">DW_entryfield_password_new</link>, <link linkend="robo109">DW_entryfield_set_limit</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
entryfield = dw_entryfield_new( "Initial value", 0 )
</literallayout>
</section>
<section>
<title>EntryField/DW_entryfield_password_new</title>
<anchor id="robo108"/>
<anchor id="EntryField2fDW5fentryfield5fpassword5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_entryfield_password_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_entryfield_password_new( CurrentText, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new password entryfield.
   A password entryfield is similar to an entryfiled, but any character displayed
   in the entryfield is replaced by an asterisk to mask the contents.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   CurrentText - the initial text to display in the entryfield
</para></listitem><listitem><para>   Id          - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo107">DW_entryfield_new</link>, <link linkend="robo109">DW_entryfield_set_limit</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
entryfield = dw_entryfield_password_new( "mypassword", 0 )
</literallayout>
</section>
<section>
<title>EntryField/DW_entryfield_set_limit</title>
<anchor id="robo109"/>
<anchor id="EntryField2fDW5fentryfield5fset5flimit"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_entryfield_set_limit
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_entryfield_set_limit( Win, Length )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the maximum number of characters that can be entered into an entryfield.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo107">DW_entryfield_new</link>()
                  or <link linkend="robo108">DW_entryfield_password_new</link>()
</para></listitem><listitem><para>   Length     - the maximum number of characters allowed
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo107">DW_entryfield_new</link>, <link linkend="robo108">DW_entryfield_password_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
entryfield = dw_entryfield_password_new( "mypassword", 0 )
Call dw_entryfield_set_limit entryfield, 10
</literallayout>
</section>
</section>
<section>
<title>Widgets/ListboxAndCombobox</title>
<anchor id="robo110"/>
<anchor id="Widgets2fListboxAndCombobox"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Listboxes provide a list of selectable items. A combobox is a listbox
   plus an entry field.
</para>
<section>
<title>ListboxAndCombobox/DW_listbox_new</title>
<anchor id="robo111"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_listbox_new( Id, Selection )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new listbox.
   A listbox contains a list of item values.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem><listitem><para>   Selection  - indicates if one or more items are selectable at once
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo112">DW_combobox_new</link>, <link linkend="robo19">ListboxSelection</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
listbox = dw_listbox_new( 10, !REXXDW.!DW_LB_SINGLE_SELECTION )
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_combobox_new</title>
<anchor id="robo112"/>
<anchor id="ListboxAndCombobox2fDW5fcombobox5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_combobox_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_combobox_new( ComboboxText, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new combobox.
   A combobox contains a single line text entry field plus a selectable item
   from a list of pre set item values.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   ButtonText - the text to display as the default value of the combobox
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo111">DW_listbox_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
combobox = dw_combobox_new( "Default", 0 )
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_listbox_selector_new</title>
<anchor id="robo113"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5fselector5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_selector_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_listbox_selector_new( LeftHeading, RightHeading, Width, Height, ValueArray, SetArray )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new Listbox Selector widget.
   A Listbox Selector widget provides two listboxes side-by-side with buttons to move items
   from one listbox to another.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   LeftHeading  - the text to appear above the left Listbox
</para></listitem><listitem><para>   RightHeading - the text to appear above the right Listbox
</para></listitem><listitem><para>   Width        - the minumum width of the Listboxes
</para></listitem><listitem><para>   Height       - the minumum height of the Listboxes
</para></listitem><listitem><para>   ValueArray   - an array containing the text to be displayed in the Listboxes
</para></listitem><listitem><para>   SetArray     - an array specifying which values in ValueArray are displayed
                    in which Listbox
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier, which is actually a <link linkend="robo53">Box</link> widget suitable for packing.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The ValueArray is a Rexx "array" containing the items that are to be displayed
   in the Listboxes. The SetArray is a Rexx "array" with values set to 1 or 0.
   When creating the Listbox Selector, if an item in the SetArray has a value of 1
   the corresponding item in the ValueArray is displayed in the left Listbox.
   When an item is moved from the left Listbox to the right Listbox, the corresponding
   item in the SetArray is set to 1.
   When an item is moved from the right Listbox to the left Listbox, the corresponding
   item in the SetArray is set to 0.
   The ValueArray and SetArray stem variable names should be global, so that they can
   be referenced inside RexxDW callbacks.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
value.0 = 3
value.1 = 'line 1'
value.2 = 'line 2'
value.3 = 'line 3'
ind.0 = 3
ind.1 = 1
ind.2 = 1
ind.3 = 0
ls = dw_listbox_selector_new( 'Selected', 'Available', 100, 200, 'value.', 'ind.' )
...
Do i = 1 To value.0
   If ind.i = 1 Then Say 'Value:' value.i 'has been selected'
End
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_listbox_append</title>
<anchor id="robo114"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5fappend"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_append
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_listbox_append( Win, Text )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Appends the specified Text to the end of the current items in the listbox
   or combobox specified by Win.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo111">DW_listbox_new</link>()
                  or <link linkend="robo112">DW_combobox_new</link>
</para></listitem><listitem><para>   Text       - the text of the item to append to the list
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
listbox = dw_listbox_new( 0, !REXXDW.!DW_LB_SINGLE_SELECTION )
Do i = 1 To 5
   Call dw_listbox_append listbox, text.i
End
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_listbox_list_append</title>
<anchor id="robo115"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5flist5fappend"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_list_append
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_listbox_list_append( Win, TextArray )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Appends each item in the specified TextArray to the end of the current
 items in the listbox or combobox specified by Win.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo111">DW_listbox_new</link>()
                  or <link linkend="robo112">DW_combobox_new</link>
</para></listitem><listitem><para>   TextArray  - an array containing text of the items to append to the list
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
listbox = dw_listbox_new( 0, !REXXDW.!DW_LB_SINGLE_SELECTION )
text.0 = 3
text.1 = 'line 1'
text.2 = 'line 2'
text.3 = 'line 3'
Call dw_listbox_list_append listbox, 'text.'
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_listbox_clear</title>
<anchor id="robo116"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5fclear"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_clear
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_listbox_clear( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Removes all items from the listbox or combobox specified by Win.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo111">DW_listbox_new</link>()
                  or <link linkend="robo112">DW_combobox_new</link>
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo118">DW_listbox_delete</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
listbox = dw_listbox_new( 0, !REXXDW.!DW_LB_SINGLE_SELECTION )
Do i = 1 To 5
   Call dw_listbox_append listbox, text.i
End
...
Call dw_listbox_clear( listbox )
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_listbox_count</title>
<anchor id="robo117"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5fcount"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_count
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   count = dw_listbox_count( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the number of items in the listbox or combobox specified by Win.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo111">DW_listbox_new</link>()
                  or <link linkend="robo112">DW_combobox_new</link>
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The number of items in the list.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
combobox = dw_combobox_new( "Default", 0 )
Do i = 1 To 5
   Call dw_listbox_append combobox, text.i
End
Say 'There are' dw_listbox_count( combobox ) 'items in the list'
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_listbox_delete</title>
<anchor id="robo118"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5fdelete"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_delete
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_listbox_delete( Win, Index )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Deletes the item specified by Index from the list of items in the listbox
   or combobox specified by Win.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo111">DW_listbox_new</link>()
                  or <link linkend="robo112">DW_combobox_new</link>
</para></listitem><listitem><para>   Index      - the 0 based index of the item to delete
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo116">DW_listbox_clear</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
combobox = dw_combobox_new( "Default", 0 )
Do i = 1 To 5
   Call dw_listbox_append combobox, text.i
End
...
Call dw_listbox_delete combobox, 4
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_listbox_select</title>
<anchor id="robo119"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5fselect"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_select
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_listbox_select( Win, Index, State )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the State of the item specified by Index in the list of items in the listbox
   or combobox specified by Win.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo111">DW_listbox_new</link>()
                  or <link linkend="robo112">DW_combobox_new</link>
</para></listitem><listitem><para>   Index      - the 0 based index of the item to change its state
</para></listitem><listitem><para>   State      - indicates whether the item is to be selected or not
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo120">DW_listbox_selected</link>, <link linkend="robo20">ListboxSelected</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   If the listbox was created with DW_LB_SINGLE_SELECTION, then setting an item
   to be selected will unselect an item that is currently selected.
   If the listbox was created with DW_LB_MULTIPLE_SELECTION, then setting an item
   to be selected will leave any other item already selected alone.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
listbox = dw_listbox_new( 10, !REXXDW.!DW_LB_SINGLE_SELECTION )
Do i = 1 To 5
   Call dw_listbox_append listbox, text.i
End
...
Call dw_listbox_select listbox, 4, !REXXDW.!DW_LB_SELECTED
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_listbox_selected</title>
<anchor id="robo120"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5fselected"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_selected
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   index = dw_listbox_selected( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the index of the item in the listbox or combobox currently
   selected or !REXXDW.!DW_LB_NONE if none selected.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo111">DW_listbox_new</link>()
                  or <link linkend="robo112">DW_combobox_new</link>
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The 0 based index of the item selected.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo21">ListboxReturn</link>, <link linkend="robo119">DW_listbox_select</link>, <link linkend="robo121">DW_listbox_selected_multi</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
listbox = dw_listbox_new( 10, !REXXDW.!DW_LB_SINGLE_SELECTION )
Do i = 1 To 5
   Call dw_listbox_append listbox, text.i
End
...
Call dw_listbox_select listbox, 4, !REXXDW.!DW_LB_SELECTED
...
Say 'Item' dw_listbox_selected( listbox ) 'is currently selected'
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_listbox_selected_multi</title>
<anchor id="robo121"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5fselected5fmulti"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_selected_multi
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   index = dw_listbox_selected_multi( Win, Start )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the index of the next item in the listbox currently
   selected or !REXXDW.!DW_LB_NONE if none selected.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo111">DW_listbox_new</link>()
</para></listitem><listitem><para>   Start      - the index to start looking from
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The 0 based index of the next item selected.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo21">ListboxReturn</link>, <link linkend="robo119">DW_listbox_select</link>, <link linkend="robo120">DW_listbox_selected</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   This call only works on listboxes created with DW_LB_MULTIPLE_SELECTION;
   and not on comboboxes.
   The first call should use -1 as Start, and on subsequent calls, the
   index returned from the previous call.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
listbox = dw_listbox_new( 10, !REXXDW.!DW_LB_MULTIPLE_SELECTION )
Do i = 1 To 5
   Call dw_listbox_append listbox, text.i
End
...
Call dw_listbox_select listbox, 2, !REXXDW.!DW_LB_SELECTED
Call dw_listbox_select listbox, 4, !REXXDW.!DW_LB_SELECTED
...
idx = -1
Do Forever
   idx = dw_listbox_selected_multi( listbox, idx )
   If idx = !REXXDW.!DW_LB_NONE Then Leave
   Say 'Item' idx 'is currently selected'
End
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_listbox_set_top</title>
<anchor id="robo122"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5fset5ftop"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_set_top
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_listbox_set_top( Win, Index )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the item with Index to be the first item displayed in the viewport of
   the listbox.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo111">DW_listbox_new</link>()
</para></listitem><listitem><para>   Index      - the 0 based index of the item to display at the top of the viewport
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   This does not work on comboboxes.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
listbox = dw_listbox_new( 10, !REXXDW.!DW_LB_SINGLE_SELECTION )
Do i = 1 To 5
   Call dw_listbox_append listbox, text.i
End
...
Call dw_listbox_set_top listbox, 4
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_listbox_set_text</title>
<anchor id="robo123"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5fset5ftext"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_set_text
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_listbox_set_text( Win, Index, Text )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the Text of the Index item in the listbox or combobox
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo111">DW_listbox_new</link>()
                  or <link linkend="robo112">DW_combobox_new</link>
</para></listitem><listitem><para>   Index      - the 0 based index of the item to change its text
</para></listitem><listitem><para>   Text       - the new text of the item
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo114">DW_listbox_append</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
listbox = dw_listbox_new( 10, !REXXDW.!DW_LB_SINGLE_SELECTION )
Do i = 1 To 5
   Call dw_listbox_append listbox, text.i
End
...
Call dw_listbox_set_text listbox, 4, 'New Text'
</literallayout>
</section>
<section>
<title>ListboxAndCombobox/DW_listbox_get_text</title>
<anchor id="robo124"/>
<anchor id="ListboxAndCombobox2fDW5flistbox5fget5ftext"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_listbox_get_text
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   text = dw_listbox_get_text( Win, Index )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the text of the item with Index in the listbox or combobox
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo111">DW_listbox_new</link>()
                  or <link linkend="robo112">DW_combobox_new</link>
</para></listitem><listitem><para>   Index      - 0 based index into the list of items for which the text is required
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The text of the item.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
combobox = dw_combobox_new( "Default", 0 )
Do i = 1 To 5
   Call dw_listbox_append combobox, text.i
End
Say 'Item 3 is' dw_listbox_get_text( combobox, 3 )
</literallayout>
</section>
</section>
<section>
<title>Widgets/Menu</title>
<anchor id="robo125"/>
<anchor id="Widgets2fMenu"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Menus provide a list of textual options to the user to select
   an action. RexxDW provides standard drop-down menus located directly
   under the window's titlebar, or floating popup menus.
</para>
<section>
<title>Menu/DW_menu_new</title>
<anchor id="robo126"/>
<anchor id="Menu2fDW5fmenu5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_menu_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_menu_new( Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new menu.
   This menu can be used as a submenu linked to a menubar, or as a popup menu.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo127">DW_menubar_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
menu = dw_menu_new( 10 )
</literallayout>
</section>
<section>
<title>Menu/DW_menubar_new</title>
<anchor id="robo127"/>
<anchor id="Menu2fDW5fmenubar5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_menubar_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_menubar_new( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new menubar.
   A menubar is located at the top of the specified toplevel window
   identified by Win.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - a window identifier returned from a call to <link linkend="robo192">DW_window_new</link>().
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A menubar identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo126">DW_menu_new</link>, <link linkend="robo192">DW_window_new</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Currently under GTK+ you need to call this function AFTER other widgets
   have been created in the window that this menubar is to reside.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
win = dw_window_new( !REXXDW.!DW_DESKTOP, '<link linkend="robo191">Window</link> on desktop', style )
...
menubar = dw_menubar_new( win )
</literallayout>
</section>
<section>
<title>Menu/DW_menu_append_item</title>
<anchor id="robo128"/>
<anchor id="Menu2fDW5fmenu5fappend5fitem"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_menu_append_item
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   index = DW_menu_append_item( <link linkend="robo125">Menu</link>, Title, Id, Flags, End, Check, Submenu )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Append a menu item to an existing menu or menubar. The menu item can be an
   individual item or another submenu.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo125">Menu</link>       - the menu identifier returned from <link linkend="robo126">DW_menu_new</link>() or <link linkend="robo127">DW_menubar_new</link>()
</para></listitem><listitem><para>   Title      - the text of the menu item
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the menu item
</para></listitem><listitem><para>   Flags      - effectively ignored
</para></listitem><listitem><para>   End        - indicates if the menu item appears at the start or end of the
                  existing list. One of DW_MENU_START or DW_MENU_END
</para></listitem><listitem><para>   Check      - indicates if the menu item is checkable or not
                  one of DW_MENU_CHECKABLE or DW_MENU_NOT_CHECKABLE
</para></listitem><listitem><para>   Submenu    - a menu identifier returned from a a call to <link linkend="robo126">DW_menu_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A menu identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo126">DW_menu_new</link>, <link linkend="robo127">DW_menubar_new</link>, <link linkend="robo17">MenuConstants</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Preceding a letter of the Title, will enable that letter to be typed on the
   keyboard to invoke the callback associated with that menu item.
   In the source below, with the menu item displayed, typing 'a' will execute
   'AddRepositoryCallback'
   The Title can also be set to DW_MENU_SEPARATOR which will display a line instead
   of text.
</para>

<para>
   A menu item MUST have a unique Id within a particular menu, otherwise the
   callbacks will not work.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
menu = dw_menu_new( 0 )
menuitem = dw_menu_append_item( menu, '~Add Repository', 1011, 0, ,
   !REXXDW.!DW_MENU_END, !REXXDW.!DW_MENU_NOT_CHECKABLE, 0 )
Call dw_signal_connect menuitem, !REXXDW.!DW_CLICKED_EVENT, ,
   'AddRepositoryCallback'
</literallayout>
</section>
<section>
<title>Menu/DW_menu_delete_item</title>
<anchor id="robo129"/>
<anchor id="Menu2fDW5fmenu5fdelete5fitem"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_menu_delete_item
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   DW_menu_delete_item( <link linkend="robo125">Menu</link>, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Deletes a menu item from an existing menu or menubar. The menu item can be an
   individual item or another submenu.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo125">Menu</link>       - the menu identifier returned from <link linkend="robo126">DW_menu_new</link>() or <link linkend="robo127">DW_menubar_new</link>()
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the menu item
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo126">DW_menu_new</link>, <link linkend="robo127">DW_menubar_new</link>, <link linkend="robo128">DW_menu_append_item</link>, <link linkend="robo17">MenuConstants</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
menu = dw_menu_new( 0 )
menuitem = dw_menu_delete_item( menu, '~Add Repository', 1011, 0, ,
   !REXXDW.!DW_MENU_END, !REXXDW.!DW_MENU_NOT_CHECKABLE, 0 )
Call dw_signal_connect menuitem, !REXXDW.!DW_CLICKED_EVENT, ,
   'AddRepositoryCallback'
...
Call dw_menu_delete_item, menu, 1011
</literallayout>
</section>
<section>
<title>Menu/DW_menu_destroy</title>
<anchor id="robo130"/>
<anchor id="Menu2fDW5fmenu5fdestroy"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_menu_destroy
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   DW_menu_destroy( <link linkend="robo125">Menu</link> )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Destroys a menu or menubar.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo125">Menu</link>       - the menu identifier returned from <link linkend="robo126">DW_menu_new</link>() or <link linkend="robo127">DW_menubar_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo126">DW_menu_new</link>, <link linkend="robo127">DW_menubar_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
menu = dw_menu_new( 0 )
...
Call dw_menu_destroy menu
...
</literallayout>
</section>
<section>
<title>Menu/DW_menu_item_set_check</title>
<anchor id="robo131"/>
<anchor id="Menu2fDW5fmenu5fitem5fset5fcheck"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_menu_item_set_check
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   DW_menu_item_set_check( <link linkend="robo125">Menu</link>, Id, Check )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the menu item identified by Id to checked or unchecked depending on
   the value of Check.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo125">Menu</link>       - the menu identifier returned from <link linkend="robo126">DW_menu_new</link>() or <link linkend="robo127">DW_menubar_new</link>()
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the menu
</para></listitem><listitem><para>   Check      - indicates if the menu item is checkable or not
                  one of DW_MENU_CHECKABLE or DW_MENU_NOT_CHECKABLE
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo126">DW_menu_new</link>, <link linkend="robo17">MenuConstants</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
menu = dw_menu_new( 0 )
menuitem = dw_menu_append_item( menu, '~Add Repository', 1011, 0, ,
   !REXXDW.!DW_MENU_END, !REXXDW.!DW_MENU_NOT_CHECKABLE, 0 )
...
Call dw_menu_item_set_check menu, 1011, !REXXDW.!DW_MENU_CHECKABLE
</literallayout>
</section>
<section>
<title>Menu/DW_menu_popup</title>
<anchor id="robo132"/>
<anchor id="Menu2fDW5fmenu5fpopup"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_menu_popup
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   DW_menu_popup( <link linkend="robo125">Menu</link>, Win, X, Y )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Displays the popup <link linkend="robo125">Menu</link> in the specified window at the
   location specified by X/Y in pixels relative to ?????.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo125">Menu</link>       - the menu identifier returned from <link linkend="robo126">DW_menu_new</link>()
</para></listitem><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   X          - the X coordinate where the top left corner of the menu
                  will appear
</para></listitem><listitem><para>   Y          - the Y coordinate where the top left corner of the menu
                  will appear
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo126">DW_menu_new</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The popup menu associated with the <link linkend="robo125">Menu</link> identifier is destroyed each
   time DW_menu_popup() is called.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
menu = dw_menu_new( 0 )
menuitem = dw_menu_append_item( menu, '~Add Repository', 1011, 0, ,
   !REXXDW.!DW_MENU_END, !REXXDW.!DW_MENU_NOT_CHECKABLE, 0 )
...
Call dw_menu_popup menu, win, 30, 130
</literallayout>
</section>
</section>
<section>
<title>Widgets/MultiLineEdit</title>
<anchor id="robo133"/>
<anchor id="Widgets2fMultiLineEdit"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   A multi-line edit widget is similar to an Entryfield, except that
   more than one line of text can be manipulated.
</para>
<section>
<title>MultiLineEdit/DW_mle_new</title>
<anchor id="robo134"/>
<anchor id="MultiLineEdit2fDW5fmle5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mle_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_mle_new( Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new Multi-Line edit widget.
   An MLE is used to display and edit multiple lines of text.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   An MLE identifier.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
mle = dw_mle_new( 0 )
</literallayout>
</section>
<section>
<title>MultiLineEdit/DW_mle_delete</title>
<anchor id="robo135"/>
<anchor id="MultiLineEdit2fDW5fmle5fdelete"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mle_delete
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_mle_delete( Win[, StartPoint, Length] )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Deletes the text from a Multi-Line Entry widget starting at StartPoint
   for Length characters
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo134">DW_mle_new</link>()
</para></listitem><listitem><para>   StartPoint - 0 based offset into the MLE counted in characters
</para></listitem><listitem><para>   Length     - the number of characters to delete
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   If no Startpoint is specified, it defaults to 0 (the start of the MLE)
   If no Length is specified, it defaults to the total number of characters in
   the MLE.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
mle = dw_mle_new( 0 )
...
Call dw_mle_delete( mle, 0, 100 )
</literallayout>
</section>
<section>
<title>MultiLineEdit/DW_mle_import</title>
<anchor id="robo136"/>
<anchor id="MultiLineEdit2fDW5fmle5fimport"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mle_import
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   Location = dw_mle_import( Win, Text, StartPoint )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Inserts the Text into a Multi-Line Entry widget starting at StartPoint.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo134">DW_mle_new</link>()
</para></listitem><listitem><para>   Text       - the text to insert into the MLE
</para></listitem><listitem><para>   StartPoint - 0 based offset into the MLE counted in characters
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The point into the MLE after the last character in Text was inserted counted
   in characters.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo137">DW_mle_export</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   You need to append a CRLF ('0d0a'x) to the end of text to insert lines.
   The first call to dw_mle_import() must specify -1 as StartPoint.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
mle = dw_mle_new( 0 )
...
eol = '0d0a'x
loc = -1
Do i = 1 To 10
   loc = dw_mle_import( mle, 'Inserting line' i 'here'||eol, loc )
End
...
</literallayout>
</section>
<section>
<title>MultiLineEdit/DW_mle_export</title>
<anchor id="robo137"/>
<anchor id="MultiLineEdit2fDW5fmle5fexport"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mle_export
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   text = dw_mle_export( Win[, StartPoint, Length] )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the text from a Multi-Line Entry widget starting at StartPoint
   for Length characters.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo134">DW_mle_new</link>()
</para></listitem><listitem><para>   StartPoint - 0 based offset into the MLE counted in characters
</para></listitem><listitem><para>   Length     - the number of characters to export
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The text exported.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo136">DW_mle_import</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   If no Startpoint is specified, it defaults to 0 (the start of the MLE)
   If no Length is specified, it defaults to the total number of characters in
   the MLE.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
mle = dw_mle_new( 0 )
...
contents = dw_mle_export( mle, 0, 100 )
</literallayout>
</section>
<section>
<title>MultiLineEdit/DW_mle_get_size</title>
<anchor id="robo138"/>
<anchor id="MultiLineEdit2fDW5fmle5fget5fsize"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mle_get_size
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   Bytes Lines = dw_mle_get_size( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the number of Bytes and Lines currently in the Multi-Line Entry widget.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo134">DW_mle_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   Bytes and Lines are returned as two words. PARSE VALUE is the easiest
   way to obtain both values.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo134">DW_mle_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
mle = dw_mle_new( 0 )
...
Parse Value dw_mle_get_size( mle ) With bytes lines
</literallayout>
</section>
<section>
<title>MultiLineEdit/DW_mle_search</title>
<anchor id="robo139"/>
<anchor id="MultiLineEdit2fDW5fmle5fsearch"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mle_search
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   Location = dw_mle_search( Win, Text, StartPoint, SearchFlags )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Searches the MLE for Text starting at StartPoint.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo134">DW_mle_new</link>()
</para></listitem><listitem><para>   Text       - the text to search for in the MLE
</para></listitem><listitem><para>   StartPoint - 0 based offset into the MLE counted in characters
</para></listitem><listitem><para>   SearchFlags- optional flag to search respecting case if set to
                  DW_MLE_CASESENSITIVE. default is to search irrespective
                  of case
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The point into the MLE where the matching Text starts counted
   in characters.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo9">MLESearchFlags</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
mle = dw_mle_new( 0 )
...
loc = dw_mle_import( mle, 'More text here', 100 )
...
pos = dw_mle_search( mle, 'text', 0, 0 )
</literallayout>
</section>
<section>
<title>MultiLineEdit/DW_mle_set_cursor</title>
<anchor id="robo140"/>
<anchor id="MultiLineEdit2fDW5fmle5fset5fcursor"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mle_set_curesor
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_mle_set_cursor( Win, Point )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the cursor at Point in the Multi-Line Entry widget.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo134">DW_mle_new</link>()
</para></listitem><listitem><para>   Point      - the character at which to display the cursor in the MLE
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
mle = dw_mle_new( 0 )
...
Call dw_mle_set_cursor( mle, 10 )
</literallayout>
</section>
<section>
<title>MultiLineEdit/DW_mle_set_editable</title>
<anchor id="robo141"/>
<anchor id="MultiLineEdit2fDW5fmle5fset5feditable"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mle_set_editable
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_mle_set_editable( Win, EditableFlags )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the state of the Multi-Line Entry widget to be editable or readonly.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win           - the window identifier returned from <link linkend="robo134">DW_mle_new</link>()
</para></listitem><listitem><para>   EditableFlags - one of DW_EDITABLE or DW_READONLY
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo10">MLEEditableFlags</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   By default MLEs are editable
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
mle = dw_mle_new( 0 )
...
Call dw_mle_set_editable( mle, !REXXDW.!DW_READONLY )
</literallayout>
</section>
<section>
<title>MultiLineEdit/DW_mle_set_visible</title>
<anchor id="robo142"/>
<anchor id="MultiLineEdit2fDW5fmle5fset5fvisible"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mle_set_visible
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_mle_set_visible( Win, Line )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the Line in the Multi-Line Entry widget to be visible.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo134">DW_mle_new</link>()
</para></listitem><listitem><para>   Line       - the Line in the MLE to be visible
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
mle = dw_mle_new( 0 )
...
Call dw_mle_set_visible( mle, 10 )
</literallayout>
</section>
<section>
<title>MultiLineEdit/DW_mle_set_word_wrap</title>
<anchor id="robo143"/>
<anchor id="MultiLineEdit2fDW5fmle5fset5fword5fwrap"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mle_set_word_wrap
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_mle_set_editable( Win, WordWrapFlags )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the state of the Multi-Line Entry widget to allow lines to wrap on
   word boundaries or be truncated at the edge of the viewport.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win           - the window identifier returned from <link linkend="robo134">DW_mle_new</link>()
</para></listitem><listitem><para>   WordWrapFlags - one of DW_WORD_WRAP or DW_DONT_WORD_WRAP
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo11">MLEWordWrapFlags</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
mle = dw_mle_new( 0 )
...
Call dw_mle_set_word_wrap( mle, !REXXDW.!DW_WORD_WRAP )
</literallayout>
</section>
<section>
<title>MultiLineEdit/DW_mle_freeze</title>
<anchor id="robo144"/>
<anchor id="MultiLineEdit2fDW5fmle5ffreeze"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mle_freeze
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_mle_freeze( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Stops the screen output to a Multi-Line Entry widget.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo134">DW_mle_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo145">DW_mle_thaw</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   On some platforms, there can be excessive scrolling and redraws when text is
   imported into an MLE. This function reduces these effects.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
mle = dw_mle_new( 0 )
...
Call dw_mle_freeze( mle )
loc = -1
Do i = 1 To text.0
   loc = dw_mle_import( mle, text.i, loc )
End
Call dw_mle_thaw( mle )
</literallayout>
</section>
<section>
<title>MultiLineEdit/DW_mle_thaw</title>
<anchor id="robo145"/>
<anchor id="MultiLineEdit2fDW5fmle5fthaw"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mle_thaw
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_mle_thaw( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Restarts the screen output to a Multi-Line Entry widget.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo134">DW_mle_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo144">DW_mle_freeze</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   On some platforms, there can be excessive scrolling and redraws when text is
   imported into an MLE. This function reduces these effects.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
mle = dw_mle_new( 0 )
...
Call dw_mle_freeze( mle )
loc = -1
Do i = 1 To text.0
   loc = dw_mle_import( mle, text.i, loc )
End
Call dw_mle_thaw( mle )
</literallayout>
</section>
</section>
<section>
<title>Widgets/Notebook</title>
<anchor id="robo146"/>
<anchor id="Widgets2fNotebook"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   Strictly speaking these widgets are "tabbed notebooks". This widget
   provides another sort of frame in which other widgets are packed.
   Notebook pages are frames that overlap the same screen space, but can
   be brought to the front by the user clicking on the tab.
</para>
<section>
<title>Notebook/DW_notebook_new</title>
<anchor id="robo147"/>
<anchor id="Notebook2fDW5fnotebook5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_notebook_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_notebook_new( Id, TabLocation )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new tabbed notebook widget.
   A notebook is a frame in which pages containing other widgets can
   be packed. Each page can be selected by clicking that page's tab.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem><listitem><para>   TabLocation- indicates if the tabs appear across the top or bottom
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A notebook identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo15">NotebookTabLocation</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
notebook = dw_notebook_new( 0, !REXXDW.!DW_TAB_TO_TOP )
</literallayout>
</section>
<section>
<title>Notebook/DW_notebook_page_new</title>
<anchor id="robo148"/>
<anchor id="Notebook2fDW5fnotebook5fpage5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_notebook_page_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   page = dw_notebook_page_new( Win, Flags, PageLocation )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new page within a tabbed notebook widget.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win          - the window identifier returned from <link linkend="robo147">DW_notebook_new</link>()
</para></listitem><listitem><para>   Flags        - ignored
</para></listitem><listitem><para>   PageLocation - indicates if the tabs appear across the top or bottom
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A notebook page identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo147">DW_notebook_new</link>, <link linkend="robo16">NotebookPageLocation</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   A maximum of 256 pages can be created in a notebook.
   On Windows, the PageLocation does nothing, so it is best to
   specify which page is in front once all pages have been created by calling
   <link linkend="robo151">DW_notebook_page_set</link>().
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
notebook = dw_notebook_new( 0, !REXXDW.!DW_TAB_TO_TOP )
notebookbox = dw_box_new( !REXXDW.!DW_VERT, 0 )
notebookpage = dw_notebook_page_new( notebook, 0, !REXXDW.!DW_PAGE_TO_BACK )
Call dw_notebook_pack notebook, notebookpage, notebookpagebox
</literallayout>
</section>
<section>
<title>Notebook/DW_notebook_pack</title>
<anchor id="robo149"/>
<anchor id="Notebook2fDW5fnotebook5fpack"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_notebook_pack
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_notebook_pack( Win, Page, <link linkend="robo53">Box</link> )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Packs a generic box into a page in the notebook.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo147">DW_notebook_new</link>()
</para></listitem><listitem><para>   Page       - the page identifier returned from <link linkend="robo148">DW_notebook_page_new</link>()
</para></listitem><listitem><para>   <link linkend="robo53">Box</link>        - the box identifier returned from a <link linkend="robo54">DW_box_new</link>() or <link linkend="robo55">DW_groupbox_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo147">DW_notebook_new</link>, <link linkend="robo148">DW_notebook_page_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
notebook = dw_notebook_new( 0, !REXXDW.!DW_TAB_TO_TOP )
notebookbox = dw_box_new( !REXXDW.!DW_VERT, 0 )
notebookpage = dw_notebook_page_new( notebook, 0, !REXXDW.!DW_PAGE_TO_BACK )
Call dw_notebook_pack notebook, notebookpage, notebookpagebox
</literallayout>
</section>
<section>
<title>Notebook/DW_notebook_destroy</title>
<anchor id="robo150"/>
<anchor id="Notebook2fDW5fnotebook5fdestroy"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_notebook_destroy
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_notebook_destroy( Win, Page )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Destroys the specified Page of a notebook. All widgets inside the Page
   are also destroyed.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo147">DW_notebook_new</link>()
</para></listitem><listitem><para>   Page       - the page identifier returned from <link linkend="robo148">DW_notebook_page_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo147">DW_notebook_new</link>, <link linkend="robo148">DW_notebook_page_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
notebook = dw_notebook_new( 0, !REXXDW.!DW_TAB_TO_TOP )
notebookbox = dw_box_new( !REXXDW.!DW_VERT, 0 )
notebookpage = dw_notebook_page_new( notebook, 0, !REXXDW.!DW_PAGE_TO_BACK )
Call dw_notebook_pack notebook, notebookpage, notebookpagebox
...
Call dw_notebook_destoy notebook, notebookpage
</literallayout>
</section>
<section>
<title>Notebook/DW_notebook_page_set</title>
<anchor id="robo151"/>
<anchor id="Notebook2fDW5fnotebook5fpage5fset"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_notebook_page_set
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_notebook_page_set( Win, Page )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets Page to be the notebook page displayed at the front.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo147">DW_notebook_new</link>()
</para></listitem><listitem><para>   Page       - the page identifier returned from <link linkend="robo148">DW_notebook_page_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo147">DW_notebook_new</link>, <link linkend="robo154">DW_notebook_page_get</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
notebook = dw_notebook_new( 0, !REXXDW.!DW_TAB_TO_TOP )
notebookbox = dw_box_new( !REXXDW.!DW_VERT, 0 )
notebookpage = dw_notebook_page_new( notebook, 0, !REXXDW.!DW_PAGE_TO_BACK )
Call dw_notebook_pack notebook, notebookpage, notebookpagebox
...
Call dw_notebook_page_set notebook, notebookpage
</literallayout>
</section>
<section>
<title>Notebook/DW_notebook_page_set_text</title>
<anchor id="robo152"/>
<anchor id="Notebook2fDW5fnotebook5fpage5fset5ftext"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_notebook_page_set_text
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_notebook_page_set_text( Win, Page, Text )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the text on the notebook tab on the Page to Text.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo147">DW_notebook_new</link>()
</para></listitem><listitem><para>   Page       - the page identifier returned from <link linkend="robo148">DW_notebook_page_new</link>()
</para></listitem><listitem><para>   Text       - the text to display on the tab
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
notebook = dw_notebook_new( 0, !REXXDW.!DW_TAB_TO_TOP )
notebookbox = dw_box_new( !REXXDW.!DW_VERT, 0 )
notebookpage = dw_notebook_page_new( notebook, 0, !REXXDW.!DW_PAGE_TO_BACK )
Call dw_notebook_pack notebook, notebookpage, notebookpagebox
...
Call dw_notebook_page_set_text notebook, notebookpage, 'Tab Text'
</literallayout>
</section>
<section>
<title>Notebook/DW_notebook_page_set_status_text</title>
<anchor id="robo153"/>
<anchor id="Notebook2fDW5fnotebook5fpage5fset5fstatus5ftext"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_notebook_page_set_status_text
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_notebook_page_set_status_text( Win, Page, Text )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the status text area on the Page to Text.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo147">DW_notebook_new</link>()
</para></listitem><listitem><para>   Page       - the page identifier returned from <link linkend="robo148">DW_notebook_page_new</link>()
</para></listitem><listitem><para>   Text       - the text to display in the status text area
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Only OS/2 has a status text area. Other platforms ignore this function.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
notebook = dw_notebook_new( 0, !REXXDW.!DW_TAB_TO_TOP )
notebookbox = dw_box_new( !REXXDW.!DW_VERT, 0 )
notebookpage = dw_notebook_page_new( notebook, 0, !REXXDW.!DW_PAGE_TO_BACK )
Call dw_notebook_pack notebook, notebookpage, notebookpagebox
...
Call dw_notebook_page_set_status_text notebook, notebookpage, 'Subtitle Text'
</literallayout>
</section>
<section>
<title>Notebook/DW_notebook_page_get</title>
<anchor id="robo154"/>
<anchor id="Notebook2fDW5fnotebook5fpage5fget"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_notebook_page_get
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   page = dw_notebook_page_get( Win, Flags, PageLocation )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Return the page identifier of the notebook page currently at the front.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win          - the window identifier returned from <link linkend="robo147">DW_notebook_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A notebook page identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo147">DW_notebook_new</link>, <link linkend="robo151">DW_notebook_page_set</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
notebook = dw_notebook_new( 0, !REXXDW.!DW_TAB_TO_TOP )
notebookbox = dw_box_new( !REXXDW.!DW_VERT, 0 )
notebookpage = dw_notebook_page_new( notebook, 0, !REXXDW.!DW_PAGE_TO_BACK )
Call dw_notebook_pack notebook, notebookpage, notebookpagebox
...
Say 'The pageid of the notebook is:' dw_notebook_page_get( notebook )
</literallayout>
</section>
</section>
<section>
<title>Widgets/Percent</title>
<anchor id="robo155"/>
<anchor id="Widgets2fPercent"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   A Percent widget is simply a progress bar.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Under OS/2 only 1 instance of a percent or slider widget can exist
   within the same box. So for complete portability, all percent and
   slider widgets should be enclosed in their own box.
</para>
<section>
<title>Percent/DW_percent_new</title>
<anchor id="robo156"/>
<anchor id="Percent2fDW5fpercent5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_percent_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_percent_new( Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new percent progress status bar widget.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A percent progress status bar identifier.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
percent = dw_percent_new( 0 )
</literallayout>
</section>
<section>
<title>Percent/DW_percent_set_pos</title>
<anchor id="robo157"/>
<anchor id="Percent2fDW5fpercent5fset5fpos"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_percent_set_pos
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_percent_set_pos( Win, Position )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the current position of the percent bar to Position.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo156">DW_percent_new</link>()
</para></listitem><listitem><para>   Position   - the position of the bar as a whole number percentage
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
percent = dw_percent_new( 0 )
...
now = (bytes_sent*100) % total_bytes
Call dw_percent_set_pos percent, now
</literallayout>
</section>
</section>
<section>
<title>Widgets/Scrollbar</title>
<anchor id="robo158"/>
<anchor id="Widgets2fScrollbar"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   A Scrollbar widget is used in conjunction with other widgets that are not
   by default scrollable, to allow details that are not completely visible in
   a window to be viewable by scrolling.
   Both horizontal and vertical scrollbars are supported.
</para>
<section>
<title>Scrollbar/DW_scrollbar_new</title>
<anchor id="robo159"/>
<anchor id="Scrollbar2fDW5fscrollbar5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_scrollbar_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_scrollbar_new( Orientation, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new scrollbar.
   A scrollbar is used to scroll various other widgets like Multi-Line edit
   windows or listboxes.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Orientation- !REXXDW.!DW_VERT to indicate a vertical scrollbar
                  !REXXDW.!DW_HORZ to indicate a horizontal scrollbar
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A scrollbar identifier.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
vscrollbar = dw_scrollbar_new( !REXXDW.!DW_VERT, 0 )
</literallayout>
</section>
<section>
<title>Scrollbar/DW_scrollbar_set_range</title>
<anchor id="robo160"/>
<anchor id="Scrollbar2fDW5fscrollbar5fset5frange"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_scrollbar_set_range
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_scrollbar_set_range( Win, Range, Thumbwidth )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the maximum value and width of the scrollbar thumb of the scrollbar.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo159">DW_scrollbar_new</link>()
</para></listitem><listitem><para>   Range      - the maximum range of the scrollbar
</para></listitem><listitem><para>   Thumbwidth - the width of the scrollbar's thumb
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
vscrollbar = dw_scrollbar_new( !REXXDW.!DW_VERT, 0 )
Call dw_scrollbar_set_range vscrollbar, 200, 40
...
Call dw_scrollbar_set_pos vscrollbar, 150
...
Say 'The scrollbar is at' dw_scrollbar_get_pos( vscrollbar )
</literallayout>
</section>
<section>
<title>Scrollbar/DW_scrollbar_set_pos</title>
<anchor id="robo161"/>
<anchor id="Scrollbar2fDW5fscrollbar5fset5fpos"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_scrollbar_set_pos
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_scrollbar_set_pos( Win, Position )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the position of the scrollbar.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo159">DW_scrollbar_new</link>()
</para></listitem><listitem><para>   Position   - the position within the scrollbar's range
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo162">DW_scrollbar_get_pos</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
vscrollbar = dw_scrollbar_new( !REXXDW.!DW_VERT, 0 )
Call dw_scrollbar_set_range vscrollbar, 200, 40
...
Call dw_scrollbar_set_pos vscrollbar, 150
...
Say 'The scrollbar is at' dw_scrollbar_get_pos( vscrollbar )
</literallayout>
</section>
<section>
<title>Scrollbar/DW_scrollbar_get_pos</title>
<anchor id="robo162"/>
<anchor id="Scrollbar2fDW5fscrollbar5fget5fpos"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_scrollbar_get_pos
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   pos = dw_scrollbar_get_pos( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the current position of the scrollbar.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo159">DW_scrollbar_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The position of the scrollbar.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo161">DW_scrollbar_set_pos</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
vscrollbar = dw_scrollbar_new( !REXXDW.!DW_VERT, 0 )
Call dw_scrollbar_set_range vscrollbar, 200, 40
Say 'The scrollbar is at' dw_scrollbar_get_pos( vscrollbar )
</literallayout>
</section>
</section>
<section>
<title>Widgets/Slider</title>
<anchor id="robo163"/>
<anchor id="Widgets2fSlider"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   A Slider widget is similar to a <link linkend="robo158">Scrollbar</link>, but it allows the user to select
   a numeric value by dragging a thumb until the desired numeric value is reached.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Under OS/2 only 1 instance of a percent or slider widget can exist
   within the same box. So for complete portability, all percent and
   slider widgets should be enclosed in their own box.
</para>
<section>
<title>Slider/DW_slider_new</title>
<anchor id="robo164"/>
<anchor id="Slider2fDW5fslider5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_slider_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_slider_new( Orientation, Range, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new slider.
   A slider provides a widget for selecting a numeric values from a range.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Orientation- !REXXDW.!DW_VERT to indicate a vertical scrollbar
                  !REXXDW.!DW_HORZ to indicate a horizontal scrollbar
</para></listitem><listitem><para>   Range      - the maximum number of the numeric range
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A slider identifier.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
slider = dw_slider_new( !REXXDW.!DW_VERT, 100, 0 )
</literallayout>
</section>
<section>
<title>Slider/DW_slider_set_pos</title>
<anchor id="robo165"/>
<anchor id="Slider2fDW5fslider5fset5fpos"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_slider_set_pos
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_slider_set_pos( Win, Position )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the position of the slider.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo164">DW_slider_new</link>()
</para></listitem><listitem><para>   Position   - the position within the slider's range
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo166">DW_slider_get_pos</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
vslider = dw_slider_new( !REXXDW.!DW_VERT, 100, 0 )
...
Call dw_slider_set_pos vslider, 50
...
Say 'The slider is at' dw_slider_get_pos( vslider )
</literallayout>
</section>
<section>
<title>Slider/DW_slider_get_pos</title>
<anchor id="robo166"/>
<anchor id="Slider2fDW5fslider5fget5fpos"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_slider_get_pos
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   pos = dw_slider_get_pos( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the current position of the slider.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo164">DW_slider_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The position of the slider.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo165">DW_slider_set_pos</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
vslider = dw_slider_new( !REXXDW.!DW_VERT, 100, 0 )
Say 'The slider is at' dw_slider_get_pos( vslider )
</literallayout>
</section>
</section>
<section>
<title>Widgets/Spinbutton</title>
<anchor id="robo167"/>
<anchor id="Widgets2fSpinbutton"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   A Spinbutton widget is similar to a <link linkend="robo163">Slider</link>, but the user selects a numeric
   value by clicking an up or down arrow, or by manually entering the value
   into an entry field.
   A Spinbutton will wrap around at each end of its value limits.
</para>
<section>
<title>Spinbutton/DW_spinbutton_new</title>
<anchor id="robo168"/>
<anchor id="Spinbutton2fDW5fspinbutton5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_spinbutton_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_spinbutton_new( Text, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new spinbutton.
   A spinbutton provides a widget for selecting a numeric values from a range
   or by manually entering a value.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Text       - the text describing the spinbutton
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A spinbutton identifier.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
spinbutton = dw_spinbutton_new( 'Select Number', 0 )
</literallayout>
</section>
<section>
<title>Spinbutton/DW_spinbutton_set_limits</title>
<anchor id="robo169"/>
<anchor id="Spinbutton2fDW5fspinbutton5fset5flimits"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_spinbutton_set_limits
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_spinbutton_set_limits( Win, Upper, Lower )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the maximum and minimum values the spinbutton can support.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo168">DW_spinbutton_new</link>()
</para></listitem><listitem><para>   Upper      - the maximum number of the spinbutton
</para></listitem><listitem><para>   Lower      - the minimum number of the spinbutton
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo170">DW_spinbutton_set_pos</link>, <link linkend="robo171">DW_spinbutton_get_pos</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
spinbutton = dw_spinbutton_new( 'Select Number', 0 )
Call dw_spinbutton_set_limits spinbutton, 200, 40
...
Call dw_spinbutton_set_pos spinbutton, 150
...
Say 'The spinbutton is at' dw_spinbutton_get_pos( spinbutton )
</literallayout>
</section>
<section>
<title>Spinbutton/DW_spinbutton_set_pos</title>
<anchor id="robo170"/>
<anchor id="Spinbutton2fDW5fspinbutton5fset5fpos"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_spinbutton_set_pos
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_spinbutton_set_pos( Win, Position )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the position of the spinbutton.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo168">DW_spinbutton_new</link>()
</para></listitem><listitem><para>   Position   - the position within the spinbutton's range
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo171">DW_spinbutton_get_pos</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
spinbutton = dw_spinbutton_new( 'Select Number', 0 )
Call dw_spinbutton_set_limits spinbutton, 200, 40
...
Call dw_spinbutton_set_pos spinbutton, 50
...
Say 'The spinbutton is at' dw_spinbutton_get_pos( spinbutton )
</literallayout>
</section>
<section>
<title>Spinbutton/DW_spinbutton_get_pos</title>
<anchor id="robo171"/>
<anchor id="Spinbutton2fDW5fspinbutton5fget5fpos"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_spinbutton_get_pos
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   pos = dw_spinbutton_get_pos( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the current position of the spinbutton.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo168">DW_spinbutton_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The position of the spinbutton.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo170">DW_spinbutton_set_pos</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
spinbutton = dw_spinbutton_new( 'Select Number', 0 )
Call dw_spinbutton_set_limits spinbutton, 200, 40
...
Call dw_spinbutton_set_pos spinbutton, 150
...
Say 'The spinbutton is at' dw_spinbutton_get_pos( spinbutton )
</literallayout>
</section>
</section>
<section>
<title>Widgets/Splitbar</title>
<anchor id="robo172"/>
<anchor id="Widgets2fSplitbar"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   A Splitbar is another frame in which other widgets are packed. The Splitbar
   consists of two halves and a divider, which can be dragged by the user to
   resize each side of the splitbar. The widgets within each side of the
   Splitbar are automatically resized.
</para>
<section>
<title>Splitbar/DW_splitbar_new</title>
<anchor id="robo173"/>
<anchor id="Splitbar2fDW5fsplitbar5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_splitbar_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_splitbar_new( Orientation, FirstBox, SecondBox, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new splitbar.
   A splitbar provides a widget for packing two boxes which can be dynamically
   resized by the user. This function also packs the boxes.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Orientation- !REXXDW.!DW_VERT to indicate a vertical box
                  !REXXDW.!DW_HORZ to indicate a horizontal box
</para></listitem><listitem><para>   FirstBox   - the box to pack into the left or top half of the splitbar
</para></listitem><listitem><para>   SecondBox  - the box to pack into the right or bottom half of the splitbar
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A splitbar identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo14">WidgetOrientation</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
splitbar = dw_splitbar_new( !REXXDW.!DW_HORZ, box1, box2, 0 )
Call dw_splitbar_set splitbar, 40.0
</literallayout>
</section>
<section>
<title>Splitbar/DW_splitbar_set</title>
<anchor id="robo174"/>
<anchor id="Splitbar2fDW5fsplitbar5fset"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_splitbar_set
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_splitbar_set( Win, <link linkend="robo155">Percent</link> )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the relative sizes of the halves of the splitbar, by setting the
   percentage of the left or top half.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo173">DW_splitbar_new</link>()
</para></listitem><listitem><para>   <link linkend="robo155">Percent</link>    - the relative size of the left or top half of the splitbar
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
splitbar = dw_splitbar_new( !REXXDW.!DW_HORZ, box1, box2, 0 )
Call dw_splitbar_set splitbar, 40.0
</literallayout>
</section>
<section>
<title>Splitbar/DW_splitbar_get</title>
<anchor id="robo175"/>
<anchor id="Splitbar2fDW5fsplitbar5fget"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_splitbat_get
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   perc = dw_splitbar_get( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the current percentage that the first half of the splitbar occupies.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo173">DW_splitbar_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The percentage of the first half of the splitbar.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo173">DW_splitbar_new</link>, <link linkend="robo174">DW_splitbar_set</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
splitbar = dw_splitbar_new( !REXXDW.!DW_HORZ, box1, box2, 0 )
Call dw_splitbar_set splitbar, 40.0
...
Say 'The splitbar percentage is' dw_splitbar_get( splitbar )
</literallayout>
</section>
</section>
<section>
<title>Widgets/StaticText</title>
<anchor id="robo176"/>
<anchor id="Widgets2fStaticText"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   StaticText widgets simply display static text.
</para>
<section>
<title>StaticText/DW_text_new</title>
<anchor id="robo177"/>
<anchor id="StaticText2fDW5ftext5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_text_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_text_new( Text, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new text window.
   A text window is a readonly window containing text.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Text       - the text to appear in the window
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A text window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo178">DW_status_text_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
text = dw_text_new( 'This is Rexx/DW', 0 )
</literallayout>
</section>
<section>
<title>StaticText/DW_status_text_new</title>
<anchor id="robo178"/>
<anchor id="StaticText2fDW5fstatus5ftext5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_status_text_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_status_text_new( Text, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new status text window.
   A status text window is a readonly window containing text with a sunken appearence.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Text       - the text to appear in the window
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A status text window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo177">DW_text_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
stext = dw_status_text_new( 'The current status is' status, 0 )
</literallayout>
</section>
</section>
<section>
<title>Widgets/Tree</title>
<anchor id="robo179"/>
<anchor id="Widgets2fTree"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   A Tree widget provides a hierachical display of items. Paricularly
   suited to a filesystem display.
</para>
<section>
<title>Tree/DW_tree_new</title>
<anchor id="robo180"/>
<anchor id="Tree2fDW5ftree5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_tree_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_tree_new( Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new tree widget.
   A tree widget allows the user to display a hierarchy in a tree format.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A tree identifier.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
tree = dw_tree_new( 0 )
Do i = 1 To text.0
   item.i = dw_tree_insert_after( tree, topitem, Word( text.i ), ,
      fileicon, parent, 'item'i )
End
</literallayout>
</section>
<section>
<title>Tree/DW_tree_insert</title>
<anchor id="robo181"/>
<anchor id="Tree2fDW5ftree5finsert"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_tree_insert
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   data = dw_tree_insert( Win, Title[, Icon[, ParentItem[, ItemData]]] )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Inserts the tree item into the <link linkend="robo179">Tree</link> at the end of any other items
   in the <link linkend="robo179">Tree</link> with the same ParentItem. Intended to be used when populating
   and empty <link linkend="robo179">Tree</link>
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo180">DW_tree_new</link>()
</para></listitem><listitem><para>   Title      - the text to appear next to the item
</para></listitem><listitem><para>   Icon       - the icon identifier returned from <link linkend="robo228">DW_icon_load_from_file</link>()
                  to appear with the item
</para></listitem><listitem><para>   ParentItem - the item identifier returned from DW_tree_insert()
                  under which this item is to appear
</para></listitem><listitem><para>   ItemData   - The user data that is passed to the callback as ItemData
                  argument
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A tree item identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo180">DW_tree_new</link>, <link linkend="robo182">DW_tree_insert_after</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
tree = dw_tree_new( 0 )
Do i = 1 To text.0
   item.i = dw_tree_insert( tree, Word( text.i ), fileicon, parent, ,
      'item'i )
End
</literallayout>
</section>
<section>
<title>Tree/DW_tree_insert_after</title>
<anchor id="robo182"/>
<anchor id="Tree2fDW5ftree5finsert5fafter"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_tree_insert_after
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   data = dw_tree_insert_after( Win, Item, Title[, Icon[, ParentItem[, ItemData]]] )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Inserts the tree item into an existing <link linkend="robo179">Tree</link> physically after the item specified
   in Item and at the level identified by ParentItem
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo180">DW_tree_new</link>()
</para></listitem><listitem><para>   Item       - the item in the tree where this item is to follow
</para></listitem><listitem><para>   Title      - the text to appear next to the item
</para></listitem><listitem><para>   Icon       - the icon identifier returned from <link linkend="robo228">DW_icon_load_from_file</link>()
                  to appear with the item
</para></listitem><listitem><para>   ParentItem - the item identifier returned from a previous call to
                  DW_tree_insert_after() or <link linkend="robo181">DW_tree_insert</link>()
                  If not specified, the item will be added at the top level.
</para></listitem><listitem><para>   ItemData   - The user data that is passed to the callback as ItemData
                argument
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A tree item identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo180">DW_tree_new</link>, <link linkend="robo181">DW_tree_insert</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
tree = dw_tree_new( 0 )
topitem = dw_tree_insert( tree, 'Parent' )
Do i = 1 To text.0
   item.i = dw_tree_insert( tree, topitem, Word( text.i ), fileicon, ,
      parent, 'item'i )
End
...
Call dw_tree_insert_after( tree, item.5, "New Item", fileicon, item.3 )
</literallayout>
</section>
<section>
<title>Tree/DW_tree_clear</title>
<anchor id="robo183"/>
<anchor id="Tree2fDW5ftree5fclear"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_tree_clear
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_tree_clear( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Removes all items from a tree widget.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo180">DW_tree_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo180">DW_tree_new</link>, <link linkend="robo184">DW_tree_item_delete</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
tree = dw_tree_new( 0 )
...
Call dw_tree_clear tree
</literallayout>
</section>
<section>
<title>Tree/DW_tree_item_delete</title>
<anchor id="robo184"/>
<anchor id="Tree2fDW5ftree5fitem5fdelete"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_tree_item_delete
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_tree_item_delete( Win, Item )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Deletes the specified Item in the tree. If the item is a parent item
   then all child items under it are also deleted. (Is this true???)
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo180">DW_tree_new</link>()
</para></listitem><listitem><para>   Item       - the item identifier returned from <link linkend="robo181">DW_tree_insert</link>()
                  or <link linkend="robo182">DW_tree_insert_after</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo180">DW_tree_new</link>, <link linkend="robo181">DW_tree_insert</link>, <link linkend="robo182">DW_tree_insert_after</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
tree = dw_tree_new( 0 )
Do i = 1 To text.0
   item.i = dw_tree_insert( tree, Word( text.i ), fileicon )
End
...
Call dw_tree_item_delete tree, item.5
</literallayout>
</section>
<section>
<title>Tree/DW_tree_item_collapse</title>
<anchor id="robo185"/>
<anchor id="Tree2fDW5ftree5fitem5fcollapse"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_tree_item_collapse
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_tree_item_collapse( Win, Item )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Collapses the specified Item in the tree.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo180">DW_tree_new</link>()
</para></listitem><listitem><para>   Item       - the item identifier returned from <link linkend="robo181">DW_tree_insert</link>()
                  or <link linkend="robo182">DW_tree_insert_after</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo180">DW_tree_new</link>, <link linkend="robo181">DW_tree_insert</link>, <link linkend="robo182">DW_tree_insert_after</link>, <link linkend="robo186">DW_tree_item_expand</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
tree = dw_tree_new( 0 )
Do i = 1 To text.0
   item.i = dw_tree_insert( tree, Word( text.i ), fileicon )
End
...
Call dw_tree_item_collapse tree, item.5
</literallayout>
</section>
<section>
<title>Tree/DW_tree_item_expand</title>
<anchor id="robo186"/>
<anchor id="Tree2fDW5ftree5fitem5fexpand"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_tree_item_expand
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_tree_item_expand( Win, Item )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Expands the specified Item in the tree.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo180">DW_tree_new</link>()
</para></listitem><listitem><para>   Item       - the item identifier returned from <link linkend="robo181">DW_tree_insert</link>()
                  or <link linkend="robo182">DW_tree_insert_after</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo180">DW_tree_new</link>, <link linkend="robo181">DW_tree_insert</link>, <link linkend="robo182">DW_tree_insert_after</link>, <link linkend="robo185">DW_tree_item_collapse</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
tree = dw_tree_new( 0 )
Do i = 1 To text.0
   item.i = dw_tree_insert( tree, Word( text.i ), fileicon )
End
...
Call dw_tree_item_expand tree, item.5
</literallayout>
</section>
<section>
<title>Tree/DW_tree_item_set_data</title>
<anchor id="robo187"/>
<anchor id="Tree2fDW5ftree5fitem5fset5fdata"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_tree_item_set_data
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_tree_item_set_data( Win, Item, UserData )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the userdata for the specified tree Item.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo180">DW_tree_new</link>()
</para></listitem><listitem><para>   Item       - the item in the tree to which the data is to be attached
</para></listitem><listitem><para>   UserData   - the string to associate with the tree item's user data
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo180">DW_tree_new</link>, <link linkend="robo188">DW_tree_item_get_data</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
tree = dw_tree_new( 0 )
Do i = 1 To text.0
   item.i = dw_tree_insert( tree, Word( text.i ), fileicon )
   Call dw_tree_item_set_data tree, item.i, 'item'i
End
...
Say 'The data from this item is' dw_tree_item_get_data( tree, item.5 ) ,
   'and should be "item5"'
</literallayout>
</section>
<section>
<title>Tree/DW_tree_item_get_data</title>
<anchor id="robo188"/>
<anchor id="Tree2fDW5ftree5fitem5fget5fdata"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_tree_item_get_data
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   data = dw_tree_item_get_data( Win, Item )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the data the user set for this Item when calling <link linkend="robo187">DW_tree_item_set_data</link>().
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo180">DW_tree_new</link>()
</para></listitem><listitem><para>   Item       - the item identifier returned from <link linkend="robo181">DW_tree_insert</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The user supplied data.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo180">DW_tree_new</link>, <link linkend="robo187">DW_tree_item_set_data</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
tree = dw_tree_new( 0 )
Do i = 1 To text.0
   item.i = dw_tree_insert( tree, Word( text.i ), fileicon )
   Call dw_tree_item_set_data tree, item.i, 'item'i
End
...
Say 'The data from this item is' dw_tree_item_get_data( tree, item.5 ) ,
   'and should be "item5"'
</literallayout>
</section>
<section>
<title>Tree/DW_tree_item_select</title>
<anchor id="robo189"/>
<anchor id="Tree2fDW5ftree5fitem5fselect"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_tree_item_select
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_tree_item_select( Win, Item )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Makes the specified tree Item the currently selected item.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo180">DW_tree_new</link>()
</para></listitem><listitem><para>   Item       - the item identifier returned from <link linkend="robo181">DW_tree_insert</link>()
                  or <link linkend="robo182">DW_tree_insert_after</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo180">DW_tree_new</link>, <link linkend="robo187">DW_tree_item_set_data</link>, <link linkend="robo181">DW_tree_insert</link>, <link linkend="robo182">DW_tree_insert_after</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
tree = dw_tree_new( 0 )
Do i = 1 To text.0
   item.i = dw_tree_insert( tree, Word( text.i ), fileicon )
   Call dw_tree_item_set_data tree, item.i, 'item'i
End
...
Call dw_tree_item_select( tree, item.5 )
</literallayout>
</section>
<section>
<title>Tree/DW_tree_item_change</title>
<anchor id="robo190"/>
<anchor id="Tree2fDW5ftree5fitem5fchange"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_tree_item_change
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_tree_item_change( Win, Item, Title, Icon )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Changes the Title and Icon for the specified tree Item.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo180">DW_tree_new</link>()
</para></listitem><listitem><para>   Item       - the item in the tree where this item is to follow
</para></listitem><listitem><para>   Title      - the text to appear next to the item
</para></listitem><listitem><para>   Icon       - the icon identifier returned from <link linkend="robo228">DW_icon_load_from_file</link>()
                  to appear with the item
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo180">DW_tree_new</link>, <link linkend="robo181">DW_tree_insert</link>, <link linkend="robo182">DW_tree_insert_after</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
tree = dw_tree_new( 0 )
Do i = 1 To text.0
   item.i = dw_tree_insert( tree, Word( text.i ), fileicon )
   Call dw_tree_item_set_data tree, item.i, 'item'i
End
...
Call dw_tree_item_change tree, item.5, 'New Title', diricon
</literallayout>
</section>
</section>
<section>
<title>Widgets/Window</title>
<anchor id="robo191"/>
<anchor id="Widgets2fWindow"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   A Window is frame in which other widgets are contained. It is also a generic
   term for a number of other widgets that can be manipulated by a number of
   functions in this section.
</para>
<section>
<title>Window/DW_window_new</title>
<anchor id="robo192"/>
<anchor id="Window2fDW5fwindow5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_window_new( Win, Title, Flags )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new window.
   A window is a visible frame containing a border and titlebar. It can also
   contain minimise/maximise/close buttons etc depending on the value of
   Flags.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier or DW_DESKTOP. This is this window's
                  parent window
</para></listitem><listitem><para>   Title      - the text to appear in the titlebar of the window (if it has one)
</para></listitem><listitem><para>   Flags      - the flags defining the style and initial behaviour of the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo6">WindowStyleFlags</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, 'Edit User Preferences', ,
   windowstyle )
</literallayout>
</section>
<section>
<title>Window/DW_mdi_new</title>
<anchor id="robo193"/>
<anchor id="Window2fDW5fmdi5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_mdi_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_mdi_new( Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new Multi-Document Interface (MDI) frame.
   An MDI frame is used as a container for multiple windows.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Id        - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   An MDI frame identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo192">DW_window_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
mdi = dw_mdi_new( 100 )
...
mdiwin1 = dw_window_new( mdi, 'First MDI window', style )
mdiwin2 = dw_window_new( mdi, 'Second MDI window', style )
...
</literallayout>
</section>
<section>
<title>Window/DW_window_destroy</title>
<anchor id="robo194"/>
<anchor id="Window2fDW5fwindow5fdestroy"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_destroy
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_destroy( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Destroys a window and all other items created within it.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   0 if successful, any other value is an error
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo192">DW_window_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, '<link linkend="robo191">Window</link> on desktop', style )
...
Call dw_window_destroy( win )
</literallayout>
</section>
<section>
<title>Window/DW_window_capture</title>
<anchor id="robo195"/>
<anchor id="Window2fDW5fwindow5fcapture"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_capture
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_capture( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Captures the mouse pointer to the specified window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo207">DW_window_release</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Only 1 window can capture the mouse pointer at any point in time.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Call dw_window_capture( win )
</literallayout>
</section>
<section>
<title>Window/DW_window_click_default</title>
<anchor id="robo196"/>
<anchor id="Window2fDW5fwindow5fclick5fdefault"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_click_default
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_click_default( Win, NextWin )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Defines the next window; NextWin to receive focus when the ENTER
   key is pressed in Win.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier used as the source of the ENTER key
</para></listitem><listitem><para>   NextWin    - the window identifier returned from various functions that
                  return a window identifier which receives focus
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Call dw_window_click_default( win, nextwin )
</literallayout>
</section>
<section>
<title>Window/DW_window_default</title>
<anchor id="robo197"/>
<anchor id="Window2fDW5fwindow5fdefault"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_default
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_default( Win, DefaultWin )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the default focus item; DefaultWin for the specified window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier containing DefaultWin
</para></listitem><listitem><para>   DefaultWin - the window identifier returned from various functions that
                  return a window identifier which receives default focus
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Call dw_window_default( win, mywin )
</literallayout>
</section>
<section>
<title>Window/DW_window_enable</title>
<anchor id="robo198"/>
<anchor id="Window2fDW5fwindow5fenable"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_enable
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_enable( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Disables a window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo199">DW_window_disable</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, '<link linkend="robo191">Window</link> on desktop', style )
...
Call dw_window_disable( win )
...
Call dw_window_enable( win )
</literallayout>
</section>
<section>
<title>Window/DW_window_disable</title>
<anchor id="robo199"/>
<anchor id="Window2fDW5fwindow5fdisable"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_disable
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_disable( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Disables a window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo198">DW_window_enable</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, '<link linkend="robo191">Window</link> on desktop', style )
...
Call dw_window_disable( win )
</literallayout>
</section>
<section>
<title>Window/DW_window_from_id</title>
<anchor id="robo200"/>
<anchor id="Window2fDW5fwindow5ffrom5fid"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_from_id
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_window_from_id( Win, Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the window identifier from a widget within Win with the given Id.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   Id         - the window id provided by the user in various function calls
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The window identifier.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   For this function to work, all Ids for widgets packed into the one window
   must be unique.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
box = dw_box_new( !REXXDW.!DW_VERT, 0 )
bitmap = dw_bitmap_new( 100 )
Call dw_box_pack_start box, bitmap, 10, 10, !REXXDW.!DW_DONT_EXPAND_HORZ, ,
   !REXXDW.!DW_DONT_EXPAND_VERT, 0
button = dw_button_new( "Quit", 10 )
Call dw_box_pack_start box, button, 10, 10, !REXXDW.!DW_DONT_EXPAND_HORZ, ,
   !REXXDW.!DW_DONT_EXPAND_VERT, 0
...
Say 'Id' dw_window_from_id( box, 100 ) 'should be the same as' bitmap
</literallayout>
</section>
<section>
<title>Window/DW_window_show</title>
<anchor id="robo201"/>
<anchor id="Window2fDW5fwindow5fshow"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_show
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   rc = dw_window_show( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Makes the specified window visible.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   0 if function succeeds, error for any other value
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo202">DW_window_hide</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, 'Edit User Preferences', ,
   windowstyle )
...
Call dw_window_show( win )
</literallayout>
</section>
<section>
<title>Window/DW_window_hide</title>
<anchor id="robo202"/>
<anchor id="Window2fDW5fwindow5fhide"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_hide
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_hide( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Makes the specified window invisible.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo201">DW_window_show</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, 'Edit User Preferences', ,
   windowstyle )
...
Call dw_window_hide( win )
</literallayout>
</section>
<section>
<title>Window/DW_window_lower</title>
<anchor id="robo203"/>
<anchor id="Window2fDW5fwindow5flower"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_lower
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_lower( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Makes the specified window appear behind all others.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo205">DW_window_raise</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, 'Edit User Preferences', ,
   windowstyle )
...
Call dw_window_lower( win )
</literallayout>
</section>
<section>
<title>Window/DW_window_minimize</title>
<anchor id="robo204"/>
<anchor id="Window2fDW5fwindow5fminimize"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_minimize
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_minimize( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Minimises the specified window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   DW_window_maximize; but there isn't one!!
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, 'Edit User Preferences', ,
   windowstyle )
...
Call dw_window_minimize( win )
</literallayout>
</section>
<section>
<title>Window/DW_window_raise</title>
<anchor id="robo205"/>
<anchor id="Window2fDW5fwindow5fraise"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_raise
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_raise( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Makes the specified window appear in front of all others.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo203">DW_window_lower</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, 'Edit User Preferences', ,
   windowstyle )
...
Call dw_window_raise( win )
</literallayout>
</section>
<section>
<title>Window/DW_window_redraw</title>
<anchor id="robo206"/>
<anchor id="Window2fDW5fwindow5fredraw"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_redraw
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_redraw( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Redraws the specified window and all of widgets contained within it.
   This should be called after re-packing any widgets within the window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo201">DW_window_show</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, 'Edit User Preferences', ,
   windowstyle )
...
Call dw_window_redraw( win )
</literallayout>
</section>
<section>
<title>Window/DW_window_release</title>
<anchor id="robo207"/>
<anchor id="Window2fDW5fwindow5frelease"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_release
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_release( )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Releases the captured mouse pointer from a previous call to DW_window_captture().
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo195">DW_window_capture</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Only 1 window can capture the mouse pointer at any point in time.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Call dw_window_capture( win )
...
Call dw_window_release( )
</literallayout>
</section>
<section>
<title>Window/DW_window_reparent</title>
<anchor id="robo208"/>
<anchor id="Window2fDW5fwindow5freparent"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_reparent
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_reparent( Win, ParentWin )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Changes the parent window; ParentWin of the specified Win.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier to be reparented
</para></listitem><listitem><para>   ParentWin  - the window identifier returned from various functions that
                  return a window to becoem the new parent. May also be DW_DESKTOP
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
mdi = dw_mdi_new( 100 )
win = dw_window_new( mdi, 'Edit User Preferences', windowstyle )
...
Call dw_window_reparent( win, !REXXDW.!DW_DESKTOP )
...
box1 = dw_box_new( !REXXDW.!DW_VERT, 0 )
Call dw_box_pack_start win, box1, 10, 10, !REXXDW.!DW_DONT_EXPAND_HORZ, ,
   !REXXDW.!DW_DONT_EXPAND_VERT, 0
button = dw_button_new( "Quit", 10 )
Call dw_box_pack_start box1, button, 10, 10, !REXXDW.!DW_DONT_EXPAND_HORZ, ,
   !REXXDW.!DW_DONT_EXPAND_VERT, 0
...
box2 = dw_box_new( !REXXDW.!DW_VERT, 0 )
Call dw_window_reparent box2, button
</literallayout>
</section>
<section>
<title>Window/DW_window_set_bitmap</title>
<anchor id="robo209"/>
<anchor id="Window2fDW5fwindow5fset5fbitmap"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_set_bitmap
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_set_bitmap( Win, Id, Filename )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Associates the bitmap in Filename with the specified window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem><listitem><para>   Filename   - the name of a file containing a valid bitmap image (.BMP, or .XPM)
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo227">DW_bitmap_new_from_file</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
bitmap = dw_bitmap_new( 100 )
Call dw_box_pack_start win, bitmap, 10, 10, !REXXDW.!DW_DONT_EXPAND_HORZ, ,
   !REXXDW.!DW_DONT_EXPAND_VERT, 0
Call dw_window_set_bitmap bitmap, 0, 'mypicture'
</literallayout>
</section>
<section>
<title>Window/DW_window_set_border</title>
<anchor id="robo210"/>
<anchor id="Window2fDW5fwindow5fset5fborder"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_set_border
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_set_border( Win, Width )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the width of the border for the specified window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   Width      - the width in pixels of the window's border
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   0 if successful, any other value is an error
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   This function only works on OS/2.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( mdi, 'Edit User Preferences', windowstyle )
Call dw_window_set_border win, 20
</literallayout>
</section>
<section>
<title>Window/DW_window_set_pointer</title>
<anchor id="robo211"/>
<anchor id="Window2fDW5fwindow5fset5fpointer"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_set_pointer
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_set_pointer( Win, Pointer )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Changes the mouse pointer to Pointer.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   Pointer    - the new pointer; one of <link linkend="robo12">PointerTypes</link>
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo12">PointerTypes</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   To ensure that the pointer is changed immediately, call <link linkend="robo233">DW_main_sleep</link>()
   afterwards for a short period, like 10 milliseconds
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, 'Edit User Preferences', ,
   windowstyle )
...
Call dw_window_set_pointer( win, !REXXDW.!DW_POINTER_CLOCK )
Call dw_main_sleep 10
</literallayout>
</section>
<section>
<title>Window/DW_window_set_color</title>
<anchor id="robo212"/>
<anchor id="Window2fDW5fwindow5fset5fcolor"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_set_color
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_set_color( Win, Fore, Back )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the foreground and background colour of the window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   Fore       - the internal RexxDW colour for the foreground
</para></listitem><listitem><para>   Back       - the internal RexxDW colour for the background
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   0 if successful, any other value is an error
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo13">Colours</link>, <link linkend="robo249">DW_rgb</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
text = dw_text_new( 'File to browse', 0 )
Call dw_window_set_color text, !REXXDW.!DW_CLR_BLACK, !REXXDW.!DW_CLR_YELLOW
</literallayout>
</section>
<section>
<title>Window/DW_window_set_font</title>
<anchor id="robo213"/>
<anchor id="Window2fDW5fwindow5fset5ffont"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_set_font
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_set_font( Win, Fontname )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the text font of the window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   Fontname   - the font name of the desired font
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   0 if successful, any other value is an error
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo31">Fontnames</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Font names in RexxDW are platform dependent. See <link linkend="robo31">Fontnames</link> for details on
   how to specify fonts on each platform.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Parse Source os . prog
Select
   When os = 'OS2' | os = 'OS/2' Then  FIXEDFONT = "5.System VIO"
   When os = 'WIN32' Then FIXEDFONT = "10.Terminal"
   When !REXXDW.!GTK_MAJOR_VERSION &gt; 1 Then FIXEDFONT = "monospace 10"
   Otherwise FIXEDFONT = "fixed"
End
text = dw_text_new( 'File to browse', 0 )
Call dw_window_set_font text, FIXEDFONT
</literallayout>
</section>
<section>
<title>Window/DW_window_set_icon</title>
<anchor id="robo214"/>
<anchor id="Window2fDW5fwindow5fset5ficon"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_set_icon
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_set_icon( Win, Icon )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the text font of the window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   Icon       - the icon identifier returned from <link linkend="robo228">DW_icon_load_from_file</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo228">DW_icon_load_from_file</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
rexxdwicon = dw_icon_load_from_file( '/home/mark/rexxdw' )
win = dw_window_new( mdi, 'Edit User Preferences', windowstyle )
Call dw_window_set_icon win, rexxdwicon
</literallayout>
</section>
<section>
<title>Window/DW_window_set_pos</title>
<anchor id="robo215"/>
<anchor id="Window2fDW5fwindow5fset5fpos"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_set_pos
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_set_pos( Win, X, Y )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the position of the top left corner of the window relative to the
   window's parent.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   X          - the x coordinate in pixels of the top left corner
</para></listitem><listitem><para>   Y          - the y coordinate in pixels of the top left corner
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo217">DW_window_set_pos_size</link>, <link linkend="robo216">DW_window_set_size</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Some window managers (at least under X11) will not respect a request for
   the position of a window.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, 'Edit User Preferences', ,
   windowstyle )
Call dw_window_set_pos win, 50, 90
</literallayout>
</section>
<section>
<title>Window/DW_window_set_size</title>
<anchor id="robo216"/>
<anchor id="Window2fDW5fwindow5fset5fsize"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_set_size
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_set_size( Win, Width, Height )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the size of the window in pixels.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   Width      - the requested width of <link linkend="robo191">Window</link> in pixels
</para></listitem><listitem><para>   Height     - the requested height of <link linkend="robo191">Window</link> in pixels
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo215">DW_window_set_pos</link>, <link linkend="robo217">DW_window_set_pos_size</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Some window managers (at least under X11) will not respect a request for
   the size of a window.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, 'Edit User Preferences', ,
   windowstyle )
Call dw_window_set_size win, 640, 480
</literallayout>
</section>
<section>
<title>Window/DW_window_set_pos_size</title>
<anchor id="robo217"/>
<anchor id="Window2fDW5fwindow5fset5fpos5fsize"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_set_pos_size
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_set_pos_size( Win, X, Y, Width, Height )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the position of the top left corner of the window relative to the
   window's parent and the size of the window in pixels.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   X          - the x coordinate in pixels of the top left corner
</para></listitem><listitem><para>   Y          - the y coordinate in pixels of the top left corner
</para></listitem><listitem><para>   Width      - the requested width of <link linkend="robo191">Window</link> in pixels
</para></listitem><listitem><para>   Height     - the requested height of <link linkend="robo191">Window</link> in pixels
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo215">DW_window_set_pos</link>, <link linkend="robo216">DW_window_set_size</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Some window managers (at least under X11) will not respect a request for
   the position of a window.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_window_new( !REXXDW.!DW_DESKTOP, 'Edit User Preferences', ,
   windowstyle )
Call dw_window_set_pos_size win, 50, 90, 640, 480
</literallayout>
</section>
<section>
<title>Window/DW_window_get_pos_size</title>
<anchor id="robo218"/>
<anchor id="Window2fDW5fwindow5fget5fpos5fsize"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_get_pos_size
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<itemizedlist><listitem><para>   X Y Width Height = dw_window_get_pos_size( Win )
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the X and Y coordinates of the specified window, and the Width
   and Height of the window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   X, Y, Width and Height are returned as four words. PARSE VALUE is the easiest
   way to obtain all values.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
win = dw_window_new( !REXXDW.!DW_DESKTOP, 'Edit User Preferences', ,
   windowstyle )
...
Parse Value dw_window_get_pos_size( win ) With x y width height
</literallayout>
</section>
<section>
<title>Window/DW_window_set_style</title>
<anchor id="robo219"/>
<anchor id="Window2fDW5fwindow5fset5fstyle"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_set_style
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_set_style( Win, Style, Mask )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Changes the attributes of text within the specified window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   Style      - Any value specified in <link linkend="robo5">TextAttributeFlags</link> ORed together
</para></listitem><listitem><para>   Mask       - Any value specified in <link linkend="robo5">TextAttributeFlags</link> ORed together
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo5">TextAttributeFlags</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_text_new( 'Edit User Preferences' )
style = dw_or( !REXXDW.!DW_DT_RIGHT, !REXXDW.!DW_DT_VCENTER )
mask =  dw_or( !REXXDW.!DW_DT_RIGHT, !REXXDW.!DW_DT_VCENTER )
Call dw_window_set_style win, style, mask
</literallayout>
</section>
<section>
<title>Window/DW_window_set_text</title>
<anchor id="robo220"/>
<anchor id="Window2fDW5fwindow5fset5ftext"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_set_text
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_set_text( Win, Text )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the text for the specified window. If the window is a top level
   window and it has a title bar, the title bar text is changed.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   Text       - the value of the text attribute the window is to have
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo221">DW_window_get_text</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Not all window types have a meaningful text attribute. Those that do are:
</para>
<literallayout class="monospaced">
      Text                 <link linkend="robo177">DW_text_new</link>
      StatusText           DW_statustext_new
      Combobox             <link linkend="robo112">DW_combobox_new</link>()
      <link linkend="robo106">EntryField</link>           <link linkend="robo107">DW_entryfield_new</link>()
      EntryFieldPassword   <link linkend="robo108">DW_entryfield_password_new</link>()
</literallayout>
<para>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
entryfield = dw_entryfield_new( "Initial value", 0 )
...
Call dw_window_set_text entryfield, 'Rexx is king'
</literallayout>
</section>
<section>
<title>Window/DW_window_get_text</title>
<anchor id="robo221"/>
<anchor id="Window2fDW5fwindow5fget5ftext"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_get_text
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   text = dw_window_get_text( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the text attribute from the specified window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The value of the text attribute of the window.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo220">DW_window_set_text</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Not all windows have a meaningful text attribute. Those that do are:
</para>
<literallayout class="monospaced">
      Text                 <link linkend="robo177">DW_text_new</link>
      StatusText           DW_statustext_new
      Combobox             <link linkend="robo112">DW_combobox_new</link>()
      <link linkend="robo106">EntryField</link>           <link linkend="robo107">DW_entryfield_new</link>()
      EntryFieldPassword   <link linkend="robo108">DW_entryfield_password_new</link>()
</literallayout>
<para>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
entryfield = dw_entryfield_new( "Initial value", 0 )
...
Say 'The text is now' dw_window_get_text( entryfield )
</literallayout>
</section>
<section>
<title>Window/DW_window_set_data</title>
<anchor id="robo222"/>
<anchor id="Window2fDW5fwindow5fset5fdata"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_set_data
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_window_set_data( Win, Name, Value )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the user variable; Name to the specified Value for the specified
   window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   Name       - the user variable name
</para></listitem><listitem><para>   Value      - the value that Name is to be set to
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo223">DW_window_get_data</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Don't use variable names that start with "_dw"; they are used internally
   by Dynamic Windows.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
entryfield = dw_entryfield_new( 'Initial value', 0 )
Call dw_window_set_data entryfield, 'MyVar', 'my useful data'
...
Say 'The value of "MyVar" is:' dw_window_get_data( entryfield, 'MyVar' )
</literallayout>
</section>
<section>
<title>Window/DW_window_get_data</title>
<anchor id="robo223"/>
<anchor id="Window2fDW5fwindow5fget5fdata"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_window_get_data
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   data = dw_window_get_data( Win, Name )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the user variable data for the window with the given Name
   created by a call to <link linkend="robo222">DW_window_set_data</link>();
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from various functions that
                  return a window identifier
</para></listitem><listitem><para>   Name       - the user variable name
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The value of the user variable Name for the window
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo222">DW_window_set_data</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Don't use variable names that start with "_dw"; they are used internally
   by Dynamic Windows.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
entryfield = dw_entryfield_new( 'Initial value', 0 )
Call dw_window_set_data entryfield, 'MyVar', 'my useful data'
...
Say 'The value of "MyVar" is:' dw_window_get_data( entryfield, 'MyVar' )
</literallayout>
</section>
</section>
<section>
<title>Widgets/Miscellaneous</title>
<anchor id="robo224"/>
<anchor id="Widgets2fMiscellaneous"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   There always has to be things that can't be logically grouped together.
   These are those.
</para>
<section>
<title>Miscellaneous/DW_messagebox</title>
<anchor id="robo225"/>
<anchor id="Miscellaneous2fDW5fmessagebox"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_messagebox
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   action = dw_messagebox( Title, Flags, Text )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Displays a modal messagebox in the middle of the desktop.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Title      - the window title for the messagebox
</para></listitem><listitem><para>   Flags      - indicates the buttons to be incorporated into the messagebox
                  and the icon to be displayed
</para></listitem><listitem><para>   Text       - the text inside the messagebox
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   Depending on the button clicked, one of the values defined in <link linkend="robo27">MessageboxResults</link>
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo26">MessageboxFlags</link>, <link linkend="robo27">MessageboxResults</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
action = dw_messagebox( 'Are you sure?', dw_or( !REXXDW.!DW_MB_YESNO, ,
   !REXXDW.!DW_MB_QUESTION ), 'Delete selected files' )
If action = !REXXDW.!DW_MB_RESULT_YES Then Call DeleteFiles
</literallayout>
</section>
<section>
<title>Miscellaneous/DW_bitmap_new</title>
<anchor id="robo226"/>
<anchor id="Miscellaneous2fDW5fbitmap5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_bitmap_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_bitmap_new( Id )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new bitmap window used as the container for a bitmap image.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Id        - a numeric identifier used to identify the window
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo209">DW_window_set_bitmap</link>, <link linkend="robo227">DW_bitmap_new_from_file</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
bitmap = dw_bitmap_new( 100 )
Call dw_box_pack_start win, bitmap, 10, 10, !REXXDW.!DW_DONT_EXPAND_HORZ, ,
   !REXXDW.!DW_DONT_EXPAND_VERT, 0
Call dw_window_set_bitmap bitmap, 0, 'mypicture'
</literallayout>
</section>
<section>
<title>Miscellaneous/DW_bitmap_new_from_file</title>
<anchor id="robo227"/>
<anchor id="Miscellaneous2fDW5fbitmap5fnew5ffrom5ffile"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_bitmap_new_from_file
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_bitmap_new( Id, Filename )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new bitmap window including a bitmap image.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Id         - a numeric identifier used to identify the window
</para></listitem><listitem><para>   Filename   - the filename of the bitmap image
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A window identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo209">DW_window_set_bitmap</link>, <link linkend="robo226">DW_bitmap_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
bitmap = dw_bitmap_new_from_file( 100, 'mypicture' )
Call dw_box_pack_start win, bitmap, 10, 10, !REXXDW.!DW_DONT_EXPAND_HORZ, ,
   !REXXDW.!DW_DONT_EXPAND_VERT, 0
</literallayout>
</section>
<section>
<title>Miscellaneous/DW_icon_load_from_file</title>
<anchor id="robo228"/>
<anchor id="Miscellaneous2fDW5ficon5fload5ffrom5ffile"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_icon_load_from_file
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   win = dw_icon_load_from_file( Filename )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new icon identifier for use in other functions from the file
   specified in Filename.
   Supported icon types are Windows icons (.ico), OS/2 icons(.ico) and
   pixmaps(.xpm) on GTK.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Filename   - the filename of the icon file
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   An icon identifier.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The Filename can contain a path component. For portability, do not
   specify the file's extension; let dwindows work this out.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
normalfileicon = dw_icon_load_from_file( '/home/mark/normalfile' )
</literallayout>
</section>
</section>
</section>
<section>
<title>Functions/ProcessControl</title>
<anchor id="robo229"/>
<anchor id="Functions2fProcessControl"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   These functions control the execution of the current process or instigate
   other processes.
</para>
<section>
<title>ProcessControl/DW_init</title>
<anchor id="robo230"/>
<anchor id="ProcessControl2fDW5finit"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_init
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   rc = dw_init( )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Initialises the Rexx/DW interface. This MUST be called before
   any other Rexx/DW function.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   0 if all OK, non-zero if an error occurred
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Call dw_init
</literallayout>
</section>
<section>
<title>ProcessControl/DW_main</title>
<anchor id="robo231"/>
<anchor id="ProcessControl2fDW5fmain"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_main
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_main( )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   This is the main event dispatcher function for Rexx interpreters which
   support callbacks.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   This function can only be called if your Rexx interpreter supports the
   RexxCallback() API. This can be determined by the value of the variable
   !REXXDW.!HAVE_REXXCALLBACK being 1.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo232">DW_main_iteration</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
If !REXXDW.!HAVE_REXXCALLBACK Then Call dw_main()
Else
   Do Forever
      cmd = dw_main_iteration()
      If cmd \= '' Then Interpret 'Call' cmd
   End
Return 0
</literallayout>
</section>
<section>
<title>ProcessControl/DW_main_iteration</title>
<anchor id="robo232"/>
<anchor id="ProcessControl2fDW5fmain5fiteration"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_main_iteration
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   cmd = dw_main_iteration( )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   This is the main event dispatcher function for Rexx interpreters which
   DO NOT support callbacks.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The Rexx function called back, follwoed by parameters
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   This function is supplied for interpreters that do not support the
   RexxCallback() API. This can be determined by the value of the variable
   !REXXDW.!HAVE_REXXCALLBACK being 1.
   You have to be very careful with any optional data you pass to a callback
   function as the data could be "interpreted" with syntax errors.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo231">DW_main</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
If !REXXDW.!HAVE_REXXCALLBACK Then Call dw_main()
Else
   Do Forever
      cmd = dw_main_iteration()
      If cmd \= '' Then Interpret 'Call' cmd
   End
Return 0
</literallayout>
</section>
<section>
<title>ProcessControl/DW_main_sleep</title>
<anchor id="robo233"/>
<anchor id="ProcessControl2fDW5fmain5fsleep"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_main_sleep
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_main_sleep( Period )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   This function dispatches any events in the event queue for the number of
   milliseconds specified by Period.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Period     - the number of milliseconds the event dispatcher runs for
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   This function is useful to ensure that any outstanding event is executed
   before continuing execution within the code and not having to wait until
   control passes back to DW_Main() or <link linkend="robo232">DW_main_iteration</link>().
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo231">DW_main</link>, <link linkend="robo232">DW_main_iteration</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_window_set_pointer mainwindow, !REXXDW.!DW_POINTER_CLOCK
Call dw_main_sleep 10
</literallayout>
</section>
</section>
<section>
<title>Functions/Dialog</title>
<anchor id="robo234"/>
<anchor id="Functions2fDialog"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   A Dialog allows the programmer to create an interface with the user that
   is controlled outside of the normal main message dispatcher.
   other processes.
</para>
<section>
<title>Dialog/DW_dialog_new</title>
<anchor id="robo235"/>
<anchor id="Dialog2fDW5fdialog5fnew"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_dialog_new
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dialog = dw_dialog_new( )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new dialog.
   A dialog is a control widget (as opposed to a display widget) that
   allows the programmer to create a new toplevel window and have the user
   interact with the contents of the window, independently of any other
   toplevel window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   Returns a dialog identifier
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo236">DW_dialog_dismiss</link>, <link linkend="robo237">DW_dialog_wait</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
dialog_wait = dw_dialog_new( )
Call dw_signal_connect win, !REXXDW.!DW_DELETE_EVENT, ,
   'GenericCloseCallback', win, dialog_wait
...
result = dw_dialog_wait( dialog_wait )
If result = 'cancel' Then Return 1
...
GenericCloseCallback: Procedure Expose !REXXDW.
Parse Arg ., window, dialog
Call dw_window_destroy window
If dialog \= '' Then Call dw_dialog_dismiss dialog, 'close'
Return 0
</literallayout>
</section>
<section>
<title>Dialog/DW_dialog_dismiss</title>
<anchor id="robo236"/>
<anchor id="Dialog2fDW5fdialog5fdismiss"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_dialog_dismiss
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_dialog_dismiss( <link linkend="robo234">Dialog</link>, ReturnString )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Prepares a dialog window for exiting and returns ReturnString
   to the waiting <link linkend="robo237">DW_dialog_wait</link>().
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo234">Dialog</link>       - an identifier returned from a call to <link linkend="robo235">DW_dialog_new</link>()
</para></listitem><listitem><para>   ReturnString - the string to return to <link linkend="robo237">DW_dialog_wait</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   Always returns 0
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo235">DW_dialog_new</link>, <link linkend="robo237">DW_dialog_wait</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
dialog_wait = dw_dialog_new( )
Call dw_signal_connect win, !REXXDW.!DW_DELETE_EVENT, ,
   'GenericCloseCallback', win, dialog_wait
...
result = dw_dialog_wait( dialog_wait )
If result = 'cancel' Then Return 1
...
GenericCloseCallback: Procedure Expose !REXXDW.
Parse Arg ., window, dialog
Call dw_window_destroy window
If dialog \= '' Then Call dw_dialog_dismiss dialog, 'close'
Return 0
</literallayout>
</section>
<section>
<title>Dialog/DW_dialog_wait</title>
<anchor id="robo237"/>
<anchor id="Dialog2fDW5fdialog5fwait"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_dialog_wait
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   returnstring = dw_dialog_wait( <link linkend="robo234">Dialog</link> )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new dialog for handling modal dialogs.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   <link linkend="robo234">Dialog</link>       - an identifier returned from a call to <link linkend="robo235">DW_dialog_new</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   Returns the string set by the call to <link linkend="robo236">DW_dialog_dismiss</link>()
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo236">DW_dialog_dismiss</link>, <link linkend="robo235">DW_dialog_new</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
dialog_wait = dw_dialog_new( )
Call dw_signal_connect win, !REXXDW.!DW_DELETE_EVENT, ,
   'GenericCloseCallback', win, dialog_wait
...
result = dw_dialog_wait( dialog_wait )
If result = 'cancel' Then Return 1
...
GenericCloseCallback: Procedure Expose !REXXDW.
Parse Arg ., window, dialog
Call dw_window_destroy window
If dialog \= '' Then Call dw_dialog_dismiss dialog, 'close'
Return 0
</literallayout>
</section>
</section>
<section>
<title>Functions/CallbackManagement</title>
<anchor id="robo238"/>
<anchor id="Functions2fCallbackManagement"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   These functions manage callbacks in RexxDW.
</para>
<section>
<title>CallbackManagement/DW_signal_connect</title>
<anchor id="robo239"/>
<anchor id="CallbackManagement2fDW5fsignal5fconnect"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_signal_connect
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_signal_connect( Win, Signal, Function[, UserData1[, UserData2[, ...]]] )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Connects an event to a callback function.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier to which the callback is assigned
</para></listitem><listitem><para>   Signal     - the event to be connected
</para></listitem><listitem><para>   Function   - the Rexx procedure that is called when the event fires
</para></listitem><listitem><para>   UserData*  - optional user supplied data to pass to the Function
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo240">DW_signal_disconnect</link>, <link linkend="robo241">DW_signal_disconnect_by_window</link>, <link linkend="robo33">Callbacks</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Call dw_signal_connect window, !REXXDW.!DW_CONFIGURE_EVENT, ,
   'configure_cb', 'fred', 'mary'
</literallayout>
</section>
<section>
<title>CallbackManagement/DW_signal_disconnect</title>
<anchor id="robo240"/>
<anchor id="CallbackManagement2fDW5fsignal5fdisconnect"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_signal_disconnect
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_signal_disconnect( Win, Signal )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Disconnects a specific event callback.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier that has the callback assigned
</para></listitem><listitem><para>   Signal     - the event to be disconnected
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo239">DW_signal_connect</link>, <link linkend="robo241">DW_signal_disconnect_by_window</link>, <link linkend="robo33">Callbacks</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Call dw_signal_connect window, !REXXDW.!DW_CONFIGURE_EVENT, ,
   'configure_cb', 'fred', 'mary'
...
Call dw_signal_disconnect window, !REXXDW.!DW_CONFIGURE_EVENT
</literallayout>
</section>
<section>
<title>CallbackManagement/DW_signal_disconnect_by_window</title>
<anchor id="robo241"/>
<anchor id="CallbackManagement2fDW5fsignal5fdisconnect5fby5fwindow"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_signal_disconnect_by_window
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_signal_disconnect_by_window( Win )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Disconnects all signals for a window.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier that has the callbacks assigned
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo239">DW_signal_connect</link>, <link linkend="robo240">DW_signal_disconnect</link>, <link linkend="robo33">Callbacks</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Call dw_signal_connect window, !REXXDW.!DW_CONFIGURE_EVENT, ,
   'configure_cb', 'fred', 'mary'
...
Call dw_signal_disconnect_by_window window
</literallayout>
</section>
<section>
<title>CallbackManagement/DW_timer_connect</title>
<anchor id="robo242"/>
<anchor id="CallbackManagement2fDW5ftimer5fconnect"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_timer_connect
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   timer = dw_timer_connect( Interval, Function[, UserData1[, UserData2[, ...]]] )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a new timer callback.
   A timer callback will fire after the specified Interval and call the
   Rexx procedure Function with the optional arguments.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Interval   - the interval in milliseconds that the timer will fire
</para></listitem><listitem><para>   Function   - the Rexx procedure that is called when the timer fires
</para></listitem><listitem><para>   UserData*  - optional user supplied data to pass to the Function
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   A timer identifier.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo243">DW_timer_disconnect</link>, <link linkend="robo33">Callbacks</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   There are two ways to stop a timer from firing. One is explicitly by
   calling <link linkend="robo243">DW_timer_disconnect</link>() using the timer identifier returned from
   this function. The other way is to return 0 from the callback connected
   to the timer. Returning 1 from the callback will re-arm the timer.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
timer = dw_timer_connect( 5000, 'timer_cb', 'fred', 'mary' )
</literallayout>
</section>
<section>
<title>CallbackManagement/DW_timer_disconnect</title>
<anchor id="robo243"/>
<anchor id="CallbackManagement2fDW5ftimer5fdisconnect"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_timer_disconnect
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_timer_disconnect( Timer )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Terminates the timer so the timer no longer files.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Timer      - the timer identifier returned from a call to <link linkend="robo242">DW_timer_connect</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo242">DW_timer_connect</link>, <link linkend="robo33">Callbacks</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
timer = dw_timer_connect( 5000, 'timer_cb', 'fred', 'mary' )
...
Call dw_timer_disconnect timer
</literallayout>
</section>
</section>
<section>
<title>Functions/Browsing</title>
<anchor id="robo244"/>
<anchor id="Functions2fBrowsing"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   These functions provide browsing capabilties.
</para>
<section>
<title>Browsing/DW_browse</title>
<anchor id="robo245"/>
<anchor id="Browsing2fDW5fbrowse"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_browse
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   rc = dw_browse( URL )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Starts up the default Web browser as a new process with the specified URL.
   When using GTK, the browser started is "netscape". To use another browser
   set the environment variable DW_BROWSER to the executable to run.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   URL        - the Uniform Resource Locatr to open
</para></listitem><listitem><para>   Padding    - The number of pixels of padding to add around all sides of BoxToPack
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The return code from the attempt to execute the browser. Usually 0 indicates
   success and any other value an error.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
rc = dw_browse( "http://rexxdw.sf.net" )
</literallayout>
</section>
<section>
<title>Browsing/DW_file_browse</title>
<anchor id="robo246"/>
<anchor id="Browsing2fDW5ffile5fbrowse"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_file_browse
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   filename = dw_file_browse( Title, DefaultDir, Extension, Flag )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Creates a file open/save or directory browser dialog.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Title      - the title of the dialog
</para></listitem><listitem><para>   DefaultDir - the directory in which the dialog starts
</para></listitem><listitem><para>   Ext        - a file extension to filter the files displayed, or the
                  file extension to save. Ignored for directory browser.
</para></listitem><listitem><para>   Flag       - indicates if the browse dialog is for a file open, file save
                  or directory browse. One of !REXXDW.!DW_DIRECTORY_OPEN,
                  !REXXDW.!DW_FILE_OPEN or !REXXDW.!DW_FILE_SAVE
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The fully qualified selected file/directory or blank if the dialog is cancelled.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo3">FileDialogFlags</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   On some platforms the current directory is changed when this function is called.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
here = Directory()
dir = dw_file_browse( "Select Directory", "/home/mark", , ,
   !REXXDW.!DW_DIRECTORY_OPEN )
Say "Directory selected was:" dir
Call Directory( here )
</literallayout>
</section>
</section>
<section>
<title>Functions/ColourSupport</title>
<anchor id="robo247"/>
<anchor id="Functions2fColourSupport"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   These functions allow colours to be manipulated.
</para>
<section>
<title>ColourSupport/DW_color_depth_get</title>
<anchor id="robo248"/>
<anchor id="ColourSupport2fDW5fcolor5fdepth5fget"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_color_depth_get
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   depth = dw_color_depth_get()
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the colour depth of the current screen.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The colour depth.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Say 'Colour depth is:' dw_color_depth_get()
</literallayout>
</section>
<section>
<title>ColourSupport/DW_rgb</title>
<anchor id="robo249"/>
<anchor id="ColourSupport2fDW5frgb"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_rgb
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   colour = dw_rgb( Red, Green, Blue )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Mixes shades of red, green and blue to make an internal RexxDW colour.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Red      - the amount of Red to use (0 to 255 )
</para></listitem><listitem><para>   Green    - the amount of Green to use (0 to 255 )
</para></listitem><listitem><para>   Blue     - the amount of Blue to use (0 to 255 )
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   An internal RexxDW colour.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo250">DW_red_value</link>, <link linkend="robo251">DW_green_value</link>, <link linkend="robo250">DW_red_value</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
colour = dw_rgb( 45, 134, 200 )
</literallayout>
</section>
<section>
<title>ColourSupport/DW_red_value</title>
<anchor id="robo250"/>
<anchor id="ColourSupport2fDW5fred5fvalue"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_red_value
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   red = dw_red_value( Colour )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Obtains the red component from a RexxDW colour.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Colour   - the internal RexxDW colour containing a red component
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The red component of the colour.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo251">DW_green_value</link>, <link linkend="robo252">DW_blue_value</link>, <link linkend="robo249">DW_rgb</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Say 'The red component of DARKCYAN is:' ,
   dw_red_value( !REXXDW.!DW_CLR_DARKCYAN )
</literallayout>
</section>
<section>
<title>ColourSupport/DW_green_value</title>
<anchor id="robo251"/>
<anchor id="ColourSupport2fDW5fgreen5fvalue"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_green_value
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   green = dw_green_value( Colour )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Obtains the green component from a RexxDW colour.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Colour   - the internal RexxDW colour containing a green component
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The green component of the colour.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo250">DW_red_value</link>, <link linkend="robo252">DW_blue_value</link>, <link linkend="robo249">DW_rgb</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Say 'The green component of DARKCYAN is:' ,
   dw_green_value( !REXXDW.!DW_CLR_DARKCYAN )
</literallayout>
</section>
<section>
<title>ColourSupport/DW_blue_value</title>
<anchor id="robo252"/>
<anchor id="ColourSupport2fDW5fblue5fvalue"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_blue_value
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   blue = dw_blue_value( Colour )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Obtains the blue component from a RexxDW colour.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Colour   - the internal RexxDW colour containing a blue component
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The blue component of the colour.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo250">DW_red_value</link>, <link linkend="robo251">DW_green_value</link>, <link linkend="robo249">DW_rgb</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Say 'The blue component of DARKCYAN is:' ,
   dw_blue_value( !REXXDW.!DW_CLR_DARKCYAN )
</literallayout>
</section>
<section>
<title>ColourSupport/DW_color_background_set</title>
<anchor id="robo253"/>
<anchor id="ColourSupport2fDW5fcolor5fbackground5fset"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_color_background_set
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_color_background_set( Colour )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the background colour of the specified window. Only applicable
   to render??? windows.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Colour     - either one of the pre-defined colour constatnts, or
                  a colour returned from a call to <link linkend="robo249">DW_rgb</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo13">Colours</link>, <link linkend="robo254">DW_color_foreground_set</link>, <link linkend="robo249">DW_rgb</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_color_background_set( renderbox, dw_rgb( 10, 45, 123 ) )
</literallayout>
</section>
<section>
<title>ColourSupport/DW_color_foreground_set</title>
<anchor id="robo254"/>
<anchor id="ColourSupport2fDW5fcolor5fforeground5fset"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_color_foreground_set
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_color_foreground_set( Colour )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Sets the foreground colour of the specified window. Only applicable
   to render??? windows.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Colour     - either one of the pre-defined colour constatnts, or
                  a colour returned from a call to <link linkend="robo249">DW_rgb</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo13">Colours</link>, <link linkend="robo253">DW_color_background_set</link>, <link linkend="robo249">DW_rgb</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_color_foreground_set( renderbox, dw_rgb( 10, 45, 123 ) )
</literallayout>
</section>
<section>
<title>ColourSupport/DW_color_choose</title>
<anchor id="robo255"/>
<anchor id="ColourSupport2fDW5fcolor5fchoose"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_color_choose
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   color = dw_color_choose( InitialColour )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Displays a system dialog for selecting a color.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   InitialColour     - either one of the pre-defined colour constatnts, or
                         a colour returned from a call to <link linkend="robo249">DW_rgb</link>()
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The selected color, or the same value as InitialColor if the user cancels.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo13">Colours</link>, <link linkend="robo253">DW_color_background_set</link>, <link linkend="robo249">DW_rgb</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
newcolor = dw_color_choose( dw_rgb( 10, 45, 123 )
</literallayout>
</section>
</section>
<section>
<title>Functions/ModuleSupport</title>
<anchor id="robo256"/>
<anchor id="Functions2fModuleSupport"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   These functions support the loading and unloading of modules in DLLs.
   Not applicable to RexxDW.
</para>
</section>
<section>
<title>Functions/MutexSupport</title>
<anchor id="robo257"/>
<anchor id="Functions2fMutexSupport"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   These functions support the processing of semaphores.
   Not applicable to RexxDW.
</para>
</section>
<section>
<title>Functions/EventSupport</title>
<anchor id="robo258"/>
<anchor id="Functions2fEventSupport"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   These functions support events.
   Not applicable to RexxDW.
</para>
</section>
<section>
<title>Functions/ThreadSupport</title>
<anchor id="robo259"/>
<anchor id="Functions2fThreadSupport"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   These functions support threads.
   Not applicable to RexxDW.
</para>
</section>
<section>
<title>Functions/PointerPosition</title>
<anchor id="robo260"/>
<anchor id="Functions2fPointerPosition"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   These functions allow positioning of the mouse pointer.
</para>
<section>
<title>PointerPosition/DW_pointer_set_pos</title>
<anchor id="robo261"/>
<anchor id="PointerPosition2fDW5fpointer5fset5fpos"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_pointer_set_pos
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_pointer_set_pos( X, Y )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Moves the mouse pointer to the specified X and Y coordinates.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   X          - the X coordinate of the mouse pointer
</para></listitem><listitem><para>   Y          - the Y coordinate of the mouse pointer
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo262">DW_pointer_get_pos</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The coordinates are absolute screen positions, with 0/0 being the
   the top left corner of the screen. (Windows!!)
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_pointer_set_pos 100, 130
</literallayout>
</section>
<section>
<title>PointerPosition/DW_pointer_get_pos</title>
<anchor id="robo262"/>
<anchor id="PointerPosition2fDW5fpointer5fget5fpos"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_pointer_get_pos
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<itemizedlist><listitem><para>   X Y = dw_pointer_get_pos( )
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the X and Y coordinates of the mouse pointer.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<itemizedlist><listitem><para>   X and Y are returned as two words. PARSE VALUE is the easiest
</para></listitem></itemizedlist><para>
   way to obtain both values.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo261">DW_pointer_set_pos</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The coordinates are absolute screen positions, with 0/0 being the
   the top left corner of the screen. (Windows!!)
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Parse Value dw_pointer_get_pos( ) With x y
Say 'The mouse pointer is at' x'/'y
</literallayout>
</section>
</section>
<section>
<title>Functions/Utility</title>
<anchor id="robo263"/>
<anchor id="Functions2fUtility"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   These functions are grouped together becasue they don't fit into any other group.
</para>
<section>
<title>Utility/DW_beep</title>
<anchor id="robo264"/>
<anchor id="Utility2fDW5fbeep"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_beep
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_beep( Frequency, Duration )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Makes a sound of the given Frequency for the given Duration.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Frequency - the frequency of the sound
</para></listitem><listitem><para>   Duration  - the duration of the sound in milliseconds
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_beep(5000, 1000)
</literallayout>
</section>
<section>
<title>Utility/DW_environment_query</title>
<anchor id="robo265"/>
<anchor id="Utility2fDW5fenvironment5fquery"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_environment_query
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_environment_query( Stem )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns lots of information about the platform and Dynamic Windows in an array.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Stem      - stem (with trailing period) to place the results
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
   Value of array items:
</para>
<literallayout class="monospaced">
    - Stem.0  - 10 (number of items in array)
    - Stem.1  - Operating System Name
    - Stem.2  - Operating System Build Date
    - Stem.3  - Operating System Build Time
    - Stem.4  - Operating System Major Version
    - Stem.5  - Operating System Minor Version
    - Stem.6  - Operating System Major Build Number
    - Stem.7  - Operating System Minor Build Number
    - Stem.8  - Dynamic Windows Major Version
    - Stem.9  - Dynamic Windows Minor Version
    - Stem.10 - Dynamic Windows Sub Version
</literallayout>
<para>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Call dw_environment_query( 'stem.' )
Say 'OS name is:' stem.1
</literallayout>
</section>
<section>
<title>Utility/DW_user_dir</title>
<anchor id="robo266"/>
<anchor id="Utility2fDW5fuser5fdir"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_user_dir
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dir = dw_user_dir( )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the user's "home" directory. If the environment variable HOME
   is set, this is returned, otherwise "C:\" is returned.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The user's home directory.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Say 'home is' dw_user_dir()
</literallayout>
</section>
<section>
<title>Utility/DW_screen_height</title>
<anchor id="robo267"/>
<anchor id="Utility2fDW5fscreen5fheight"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_screen_height
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   height = dw_screen_height( )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the height of the physical screen in pixels.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The screen height
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo268">DW_screen_width</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Say 'The height of the screen is' dw_screen_height()
</literallayout>
</section>
<section>
<title>Utility/DW_screen_width</title>
<anchor id="robo268"/>
<anchor id="Utility2fDW5fscreen5fwidth"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_screen_width
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   width = dw_screen_width( )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the width of the physical screen in pixels.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The screen width
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo267">DW_screen_height</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
Say 'The width of the screen is' dw_screen_width()
</literallayout>
</section>
<section>
<title>Utility/DW_font_text_extents_get</title>
<anchor id="robo269"/>
<anchor id="Utility2fDW5ffont5ftext5fextents5fget"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_font_text_extents_get
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   Width Height = dw_font_text_extents_get( Win, Pixmap, Text )
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Returns the width and height of the Text in the current font.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Win        - the window identifier returned from <link linkend="robo73">DW_container_new</link>()
</para></listitem><listitem><para>   Pixmap     - the pixmap identifier returned from <link linkend="robo96">DW_pixmap_new</link>()
</para></listitem><listitem><para>   Text       - the string to measure the font width and height
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   Width and Height are returned as two words. PARSE VALUE is the easiest
   way to obtain both values.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   When calculating the size of the maximum width and height of a font, use a
   value like 'g(' for Text to ensure the maximum height of the Text
   can be calculated.
   Only one of Win or Pixmap is required. The other argument should be set to 0.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
win = dw_render_new( 0 )
Call dw_window_set_font win, myfont
Parse Value dw_font_text_extents_get( win, 0, 'g(' ) With width height
</literallayout>
</section>
<section>
<title>Utility/DW_or</title>
<anchor id="robo270"/>
<anchor id="Utility2fDW5for"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_or
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   val = dw_or( Val1, Val2[,Val3...]])
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Logically "or" multiple values together.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Val1     - value of first numeric value to logically "or"
</para></listitem><listitem><para>   Val2     - value of second numeric value to logically "or"
</para></listitem><listitem><para>   ...      - optional other numeric values to logically "or"
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The combined value of all arguments logically "or"ed together.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo271">DW_and</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
style = dw_or( !REXXDW.!DW_FCF_SYSMENU, !REXXDW.!DW_FCF_TITLEBAR, ,
   !REXXDW.!DW_FCF_SHELLPOSITION, !REXXDW.!DW_FCF_TASKLIST, ,
   !REXXDW.!DW_FCF_DLGBORDER, !REXXDW.!DW_FCF_SIZEBORDER, ,
   !REXXDW.!DW_FCF_MINMAX )
win = dw_window_new( !REXXDW.!DW_DESKTOP, '<link linkend="robo191">Window</link> on desktop', style )
</literallayout>
</section>
<section>
<title>Utility/DW_and</title>
<anchor id="robo271"/>
<anchor id="Utility2fDW5fand"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_and
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   val = dw_and( Val1, Val2[,Val3...]])
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Logically "and" multiple values together.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Val1     - value of first numeric value to logically "and"
</para></listitem><listitem><para>   Val2     - value of second numeric value to logically "and"
</para></listitem><listitem><para>   ...      - optional other numeric values to logically "and"
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   The combined value of all arguments logically "and"ed together.
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo270">DW_or</link>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
val = dw_and(10, 512345)
</literallayout>
</section>
<section>
<title>Utility/DW_flush</title>
<anchor id="robo272"/>
<anchor id="Utility2fDW5fflush"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_flush
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   dw_flush()
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Ensures that any changes drawn to the screen are immediately visible.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   No return result.
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Call dw_pixmap_bitblt win, , 0, 0, width, height, , pixmap, x, 0
Call dw_flush()
</literallayout>
</section>
</section>
<section>
<title>Functions/PackageManagement</title>
<anchor id="robo273"/>
<anchor id="Functions2fPackageManagement"/>
<formalpara><title>DESCRIPTION</title><para></para></formalpara>
<para>
   These functions are common to most Rexx external function packages.
</para>
<section>
<title>PackageManagement/DW_loadfuncs</title>
<anchor id="robo274"/>
<anchor id="PackageManagement2fDW5floadfuncs"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_loadfuncs
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   rcode = dw_loadfuncs()
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Loads all other RexxDW external functions
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<para>
   None
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   0 in all cases
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo275">DW_dropfuncs</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Under OS/2, DW_loadfuncs() will set the current process to a PM
   application to allow interaction with the OS/2 message queue.
   <link linkend="robo275">DW_dropfuncs</link>() sets the process back to the type of application
   it was started as. If you run a Rexx/DW program as a .CMD file
   from a CMD.EXE window, and DO NOT call <link linkend="robo275">DW_dropfuncs</link>(), your
   CMD.EXE window will be unusable!
</para>
</section>
<section>
<title>PackageManagement/DW_dropfuncs</title>
<anchor id="robo275"/>
<anchor id="PackageManagement2fDW5fdropfuncs"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_dropfuncs
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   rcode = dw_dropfuncs(["UNLOAD"])
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Cleans up RexxDW environment and optionally will drop the
   external functions.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   UNLOAD - causes the external functions to be dropped.
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   0 in all cases
</para>
<formalpara><title>SEE ALSO</title><para></para></formalpara>
<para>
   <link linkend="robo274">DW_loadfuncs</link>
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   Under OS/2, <link linkend="robo274">DW_loadfuncs</link>() will set the current process to a PM
   application to allow interaction with the OS/2 message queue.
   DW_dropfuncs() sets the process back to the type of application
   it was started as. If you run a Rexx/DW program as a .CMD file
   from a CMD.EXE window, and DO NOT call DW_dropfuncs(), your
   CMD.EXE window will be unusable!
</para>
</section>
<section>
<title>PackageManagement/DW_variable</title>
<anchor id="robo276"/>
<anchor id="PackageManagement2fDW5fvariable"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_variable
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   rcode = dw_variable(Variable [,NewValue])
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Get or set an internal RexxDW variable.
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   Variable - name of the variable to get or set. See NOTES for
</para></listitem><listitem><para>   NewValue - the new value of "Variable", if the variable is settable
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   When setting a variable, then 0 if success, any other value is an error
   When getting a variable, then the value of the variable is returned.
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   The "Variable" argument can be one of:
</para>
<literallayout class="monospaced">
      DEBUG (settable)
         0 - no debugging
         1 - all Rexx variables set by RexxDW are displayed as they are set
         2 - all RexxDW functions are traced on entry with argument values and
             on exit with the return value
         4 - all internal RexxDW functions are traced with their arguments
             (really only useful for developers)
         The values can be added together for a combination of the above details.
      DEBUGFILE (settable)
         Where any debugging output is written. By default this goes to
         the system's error stream; usually 'stderr'.
      CONSTANTPREFIX (settable)
         The variable name prefix for all RexxDW constants. By default this is
         '!REXXDW.!'. If you change this, it is useful to make the prefix result
         in stemmed variables; this makes it far easier to EXPOSE these constants.
      VERSION (readonly)
         The full version details of RexxDW in the format:
         package version version_date
         Where:
            package      - the string 'rexxdw'
            version      - package version in n.n format; eg 1.0
            version_date - date package was released in DATE('N') format
</literallayout>
<para>
</para>
<formalpara><title>SOURCE</title><para></para></formalpara>
<literallayout class="monospaced">
...
Say 'We are running at debug level:' dw_variable( 'DEBUG' )
</literallayout>
</section>
<section>
<title>PackageManagement/DW_QueryFunction</title>
<anchor id="robo277"/>
<anchor id="PackageManagement2fDW5fQueryFunction"/>
<formalpara><title>NAME</title><para></para></formalpara>
<para>
   DW_QueryFunction
</para>
<formalpara><title>SYNOPSIS</title><para></para></formalpara>
<para>
   rcode = dw_QueryFunction(FunctionName|ResultArray[, Option])
</para>
<formalpara><title>FUNCTION</title><para></para></formalpara>
<para>
   Populates an array of all functions supplied by this package depending
   on Option
</para>
<formalpara><title>ARGUMENTS</title><para></para></formalpara>
<itemizedlist><listitem><para>   FunctionName - the name of a function to query (no trailing period)
</para></listitem><listitem><para>   ResultArray - the stem (trailing period) in which the list of functions is returned
</para></listitem><listitem><para>   Option - one of 'R' (the default) for "registered" functions or 'A' for
     "available" functions
</para></listitem></itemizedlist><para>
</para>
<formalpara><title>RESULT</title><para></para></formalpara>
<para>
   0 if successful or 1 if the FunctionName is not found
</para>
<formalpara><title>NOTES</title><para></para></formalpara>
<para>
   To determine if a FunctionName can be executed in your code, pass
   the function name as the first argument, and 'R' as the second. If the
   function can be called the function returns 0, otherwise it returns 1
</para>
</section>
</section>
</section>
</article>
