Rush Logo Rush Render Queue - Input
(C) Copyright 1995,2000 Greg Ercolano. All rights reserved.
V 102.42b 10/20/05
Strikeout text indicates features not yet implemented


  Input  

    This document describes the 'input' program that comes with the Rush Render Queue. 'input' is used to allow scripts (Perl, Csh, etc) to present a simple GUI interface for user data entry.

    Fig 1. Example program can be found in rush/examples/input-example.pl.

    Simply put, you give 'input' a gui description file (using the commands documented below) to layout the data entry screen. eg:

    	input -d description_file.in
        
    Input will present the screen to the user, let them enter data, the when the user hits the 'Submit' button, 'input' will write out a small text file with the user's data entries; a file of key/value pairs, one for each field in the user's form.

    There are many examples that come with rush. The simplest is 'input-example.pl', which you can easily try out and read. It comes in the $RUSH_DIR/examples directory in rush versions 102.31n and up.

    What follows is an index of the individual GUI description file commands.







  AppHelp  
    apphelp
    {
       ..html text..
    }
    
    Defines html help documentation for the application. This text can be made available to the user in two ways;

    • If 'apphelp on' is defined for Submit, it enables a "Help" button to be created next to 'Cancel' in the Submit command, which the user can hit to jump to the top of the AppHelp document.

    • If any input fields has 'apphelp on' defined, and no "help" defined. This will create a "?" button which the user can hit to jump into the document. The input field's "dbname" will be used as the link to jump to. So if the dbname for the field is XXX, the HTML document should contain <A NAME="XXX"> for the help button to link to the HTML text properly.

  Box  
    box
    {
        name      "Submit Maya"
        labelsize 36
        align     0
        type      0
        labeltype 4
        labelfont 0
        xysize    600 30
        color     52
        boxaround 0 0
    }
    
    Let you create boxes of color, and/or place short text strings or images into your GUI, such as title headings, comments, logos.

      name "text"

        Sets the text displayed in the box.

      align {value}

        Sets the alignment of the text or image. The value can be logically ORed values from the Alignment Types.

      type {value}

        Sets the type of box. See the Box Types for more info. Default is a transparent box, type 0 (FL_NOBOX).

      color {val}

        Sets the background color of the box, according to this Color Map Chart. The default color is 49. Note: if the box is transparent (default), it will have no color.

      boxaround {x} {y}

        Causes the box to adjust itself to the text string set by 'name "text"'.

        If {x} and {y} are zero, the box fits exactly the size of the text, otherwise these values are added to the width and height of the box, eg. width += x; height += y;

      image "filename.{jpg|gif|png}"

        (New in 102.40g+)
        Loads the image, showing it inside the box. Only jpg, gif and png images.

      labelfont {val|"fontname"}

        Sets the font used by name. See the Font Types for available fonts. The default font is 0, Helvetica.

      labeltype {val}

      labelsize {val}

        Sets the size of the font used by name in pixels. Or maybe it's points. Whatever. Be happy you can see text at all.

      labelcolor {val}

        Sets the background color of the 'name "text"' string, according to this Color Map Chart. The default color is 0 (black).

      help { multiline text }

        Defines help text for this input field. When help is defined, a "?" button appears to the left of the input field. If the user hits it, the 'multiline text' is displayed to the user.

        Opening and closing braces must appear on new lines, eg:

        	help
        	{
        	    This is a test.
        	    So is this
        	}

      helpfontface {val|"fontname"}

        Sets the font used in help popups defined by help. See the font table for available fonts.

      helpfontsize {val}

        Sets the size of the font used in help popups.

      xy {x} {y}

        Sets absolute x/y positions for the lower left corner of the box. Does not affect xysize (eg. doesn't affect width or height).

      xysize {w} {h}

        Sets the initial size (width and height) of the box. If unspecified, the box default size is based on the global xysize value. Does not affect the current 'default' position of the box.

      xywh {x} {y} {w} {h}

        Sets absolute position and size of box.

  Button  
    button
    {
        name        "Stop"
        xysize      100 30
        system      "rsh how 'echo STOP > /dev/console'"
        color       9
    }
    
    Input prompts allow the user to enter single or multiline text.

      name "text"

        Sets the name that shows up on the button. Use labelfont and/or labelsize to change the font. Text must be quoted.

      labelcolor {val}

        Sets the color for the name text. See this color value chart for available colors. The default color is black.

      labelfont {val|"fontname"}

        Sets the font used by name. See the Font Types for available fonts. The default font is 0, Helvetica.

      labelsize {val}

        Sets the size of the font used by name in pixels. Or points. Whatever.

      boxdown "<box_name>"

        Sets the type of box to use for the button in its 'down' position. Must be one of the 'box names' defined under boxtypes, eg. boxdown "FL_PLASTIC_DOWN_BOX"

      boxup "<box_name>"

        Sets the type of box to use for the button in its 'up' position. Must be one of the 'box names' defined under boxtypes, eg. boxup "FL_PLASTIC_UP_BOX"

      color {val}

      pushcolor {val}

      command "the_command"

        Sets the command that's executed when the button is hit.

        When the button is hit, these things happen:

        1. The current form is saved to a file

        2. The command is executed. It can use the INPUT_DBASE environment variable to determine the filename of the saved form, which the program can load (but not modify) and act on.

        The program's output will be displayed in a pop up window if showfail 1 is configured for the button, and the command returns a non-zero exit code.

        Similar to system "text", which does not absorb the program's output, and simply invokes the system(2) C library call.

        Command must be quoted.

      updatecommand "the_command"

        Useful for having a button cause a procedural modification to the data in the current form.

        When the button is hit, these things happen:

        1. The current form is saved to a file

        2. The 'command' program is executed.
          The program should use the INPUT_DBASE environment variable to determine the filename of the saved form file, which it can load, modify, and rewrite.

        3. The (modified) form is then reloaded as the current form, updating the screen with any mods applied by the program.

        4. (New in 102.42)
          The tmp file is removed.

        The program's output will be displayed in a pop up window if showfail 1 is configured for the button, and the command returns a non-zero exit code.

        Command must be quoted.

      system "the_command"

        Sets the command that's executed when the button is hit. Differs from command in that the command's output is simply sent to stdout/stderr. Command must be quoted. Under Microsoft Windows, a console window is opened for "the_command" to run in.

        When the button is hit, these things happen:

        1. The current form is saved to a file

        2. The command is executed. It can use the INPUT_DBASE environment variable to determine the filename of the saved form, which the program can load (but not modify) and act on.

      systemflags "flags"

        Controls how the system command is executed. 'flags' must be quoted. 'flags' is a combination of one or more letter flags shown below. If unspecified, the default behavior is:

        • No console window is opened.
        • The program blocks until the command finishes executing.
        • Commands are run in a CMD shell

        'flags' is a combination of one or more of these single letter flags:

            System Flags
            c Windows: Create a console window
            Unix: ignored
            m Windows: creates console window minimized
            Unix: ignored
            b Windows: background the process (don't wait)
            Unix: forks off execution of child process
            s Windows: stdio inheritance (default off)
            Unix: ignored
            e Windows: exec; don't run commands in a 'cmd' shell
            Unix: exec; don't run commands in a 'cmd' shell.
            unless 'b' is specified, app process closes

        Here are some examples:

            System Flag Examples
            systemflags "" No console window is opened.
            The main program blocks until the program finishes executing.
            Command is run in a CMD shell.
            systemflags "c" A console window is opened.
            The main program blocks until the program finishes executing.
            Command is run in a CMD shell.
            systemflags "cm" A console window is opened minimized.
            The main program blocks until the program finishes executing.
            Command is run in a CMD shell.
            systemflags "b" No console is opened.
            The command is run in the background; the main program does not wait.
            Command is run in a CMD shell.
            systemflags "e" Command is executed, main program closes
            The command is run directly (not in a shell)
            systemflags "eb" Command is executed, main program continues
            The command is run directly (not in a shell)

      winhide {window_index}

        Sets the window index for the window to be closed when you hit this button. So if you define two windows, 'winhide 0' will hide the first one, 'winhide 1' will close the second one. This is useful to have a button close the one of the defined windows, usually the current one.

      winshow {window_index}

        Sets the window index for the window to be opened when you hit this button. So if you define two windows, 'winshow 0' will open the first one, 'winshow 1' will open the second one. This is useful to have a button open another defined window. It usually works best if the window to be opened was defined with its hide flag enabled.

      xy {x} {y}

        Sets absolute x/y positions for the lower left corner of the widget. Does not affect xysize (eg. doesn't affect width or height).

      xysize {w} {h}

        Sets the pixel size of the widget. Does not affect the current 'default' position of the widget.

      xywh {x} {y} {w} {h}

        Sets absolute position and size of widget.

      helpurl "/path/foo.html"

        Shows the specified html document when button pressed. Useful for "?" buttons that are supposed to open a help window when button is pushed. (Overrides any 'system' or 'command's)

  ButtonColor  
(New in 102.40h+)

Changes the default color for all button widgets, including submit buttons, choosers, browser buttons, etc. Default is 'buttoncolor 48' (gray).

  ButtonPushColor  
(New in 102.40h+)

Changes the default color for all button widgets when pushed in, including submit buttons, choosers, browser buttons, etc. Default is 'buttoncolor 3' (yellow).

  Choice  
    choice
    {
        name      "Make Logdir?"
        dbname    "MakeLogdir"
        labelsize 14
        option    "yes"
        option    "no"
        xysize    100 24
        helpfontface 4
        helpfontsize 14
        help
        {
    	Should the logdir be created if one is set,
    	but doesn't already exist?
    
    	    yes   # Create the log directory if not already there
    	    no    # No, don't create the log directory
        }
    }
    
    Creates a 'pulldown' menu chooser that lets the user select from a list of choices. The chosen item is saved into the key/value file; the text of the chooser is used as the 'value'.

      name "text"

        Sets the text displayed next to the chooser, based on the 'align' value.

      align {value}

        Sets the alignment of the text. The value can be logically OR-ed values from the Alignment Types.

      type {value}

        Sets the type of chooser. Um, I'm not sure what these values do in this context. Try it and see.

      color {val}

        Sets the background color of the chooser according to this Color Map Chart. The default color is 49.

      labelfont {val|"fontname"}

        Sets the font used by name. See the Font Types for available fonts. The default font is 0, Helvetica.

      labeltype {val}

      labelsize {val}

        Sets the size of the font used by name in pixels. Or maybe it's points. Whatever. Be happy you can see text at all.

      labelcolor {val}

        Sets the background color of the 'name "text"' string, according to this Color Map Chart. The default color is 0 (black).

      apphelp on

        Creates a help button that links to the global AppHelp defined for the application. The 'dbname' is used as the link to global apphelp. So if the 'dbname' for this field is XXX, then the global apphelp should have a link name defined as <A NAME="XXX"> so when the user clicks the help button, this part of the document will be displayed.

      helpurl "/path/foo.html"

        "?" button will be displayed; when pressed, shows the named html file.

      help { multiline text }

        Defines help text for this input field. When help is defined, a "?" button appears to the left of the input field. If the user hits it, the 'multiline text' is displayed to the user.

        Opening and closing braces must appear on new lines, eg:

        	help
        	{
        	    This is a test.
        	    So is this
        	}

      helpfontface {val|"fontname"}

        Sets the font used in help popups defined by help. See the font table for available fonts.

      helpfontsize {val}

        Sets the size of the font used in help popups.

      helpcolor {val}

        The color of the 'Help' button according to this Color Map Chart. The default color is 48.

      textfont {val|"fontname"}

        Sets the font used by the chooser popup. See the font table for available fonts.

      textsize {val}

        Sets the size of the font used by the chooser popip in pixels. Or maybe it's points. Whatever. Be happy you can see any text at all.

      xy {x} {y}

        Sets absolute x/y positions for the lower left corner of the chooser. Does not affect xysize (eg. doesn't affect width or height).

      xysize {w} {h}

        Sets the initial size (width and height) of the chooser. If unspecified, the chooser default size is based on the global xysize value. Does not affect the current 'default' position of the chooser.

      xywh {x} {y} {w} {h}

        Sets absolute position and size of chooser.

      option "text"

        Adds an option to the chooser. "text" is what is shown in the chooser, and is put into the key/value file if the user chooses it.

      default "text"

        Sets which 'option "text"' is the default. If unset, the first 'option "text"' is the default.

      dbname "name"

        Sets the 'database name' for the chooser. This name will appear in the temporary file created which contains key/value pairs; the 'key' will be the dbname specified here, the value will be the text entered in the input widget.

  ChoiceSelectColor  
(New in 102.40h+)

Changes the default color for the selected item in all choosers. Default is 'choiceselectcolor 51' (light gray).

  HelpButtonColor  
(New in 102.40h+)

Changes the default color for all help buttons. Default is 'buttoncolor 48' (gray).

  HelpButtonPushColor  
(New in 102.40h+)

Changes the default color for all help buttons when pushed in. Default is 'buttoncolor 3' (yellow).

  HelpColor  
    Sets the default color for all help buttons, eg. "?" and "Help" buttons.

  HelpFor  
    Don't use this if you're using the newer HTML oriented AppHelp technique.

    HelpFor is used to pre-define helptext for the InputString and InputFilename commands. This allows one to define the help text in a higher section of the file, away from the definition of the input fields, to prevent clutter. Example:

        helpfor "SceneFilename"
        {
            Enter the scene filename. Must be an absolute path.
    	Use UNC paths when possible to avoid cross platform issues.
        }
        :
        inputfilename "Scene Filename" "SceneFilename" "//foo/bar"
        :
    

  InputChoice  
    inputchoice
    {
        name      "Resolution?"
        dbname    "Resolution"
        labelsize 14
        option    "640x480"
        option    "720x486"
        option    "1280x1024"
        default   "640x480"
        xysize    100 24
        helpfontface 4
        helpfontsize 14
        help
        {
    	Set the resolution of the output image.
        }
    }
    
    Creates a /user editable/ input widget with a 'pulldown' menu chooser that has preset choices the user can select. The input text is saved into the key/value file.

      name "text"

        Sets the text displayed next to the input chooser, based on the 'align' value.

      align {value}

        Sets the alignment of the text. The value can be logically OR-ed values from the Alignment Types.

      type {value}

        Sets the type of input chooser. Um, I'm not sure what these values do in this context. Try it and see.

      color {val}

        Sets the background color of the input chooser according to this Color Map Chart. The default color is 49.

      labelfont {val|"fontname"}

        Sets the font used by name. See the Font Types for available fonts. The default font is 0, Helvetica.

      labeltype {val}

      labelsize {val}

        Sets the size of the font used by name in pixels. Or maybe it's points. Whatever. Be happy you can see text at all.

      labelcolor {val}

        Sets the background color of the 'name "text"' string, according to this Color Map Chart. The default color is 0 (black).

      apphelp on

        Creates a help button that links to the global AppHelp defined for the application. The 'dbname' is used as the link to global apphelp. So if the 'dbname' for this field is XXX, then the global apphelp should have a link name defined as <A NAME="XXX"> so when the user clicks the help button, this part of the document will be displayed.

      help { multiline text }

        Defines help text for this input field. When help is defined, a "?" button appears to the left of the input field. If the user hits it, the 'multiline text' is displayed to the user.

        Opening and closing braces must appear on new lines, eg:

        	help
        	{
        	    This is a test.
        	    So is this
        	}

      helpfontface {val|"fontname"}

        Sets the font used in help popups defined by help. See the font table for available fonts.

      helpfontsize {val}

        Sets the size of the font used in help popups.

      helpcolor {val}

        The color of the 'Help' button according to this Color Map Chart. The default color is 48.

      helpurl "/path/foo.html"

        "?" button will be displayed; when pressed, shows the named html file.

      textfont {val|"fontname"}

        Sets the font used by the chooser popup. See the font table for available fonts.

      textsize {val}

        Sets the size of the font used by the chooser popip in pixels. Or maybe it's points. Whatever. Be happy you can see any text at all.

      xy {x} {y}

        Sets absolute x/y positions for the lower left corner of the chooser. Does not affect xysize (eg. doesn't affect width or height).

      xysize {w} {h}

        Sets the initial size (width and height) of the chooser. If unspecified, the chooser default size is based on the global xysize value. Does not affect the current 'default' position of the chooser.

      xywh {x} {y} {w} {h}

        Sets absolute position and size of chooser.

      option "text"

        Adds an option to the chooser. "text" is what is shown in the chooser, and is put into the key/value file if the user chooses it.

      default "text"

        Sets which 'option "text"' is the default. If unset, the first 'option "text"' is the default.

      dbname "name"

        Sets the 'database name' for the chooser. This name will appear in the temporary file created which contains key/value pairs; the 'key' will be the dbname specified here, the value will be the text entered in the input widget.

  InputString  
    inputstring "Prompt Text" "Dbase-Name" "Default Text"

    InputString is a new (102.31n+) shortcut way to define input fields using a single line, instead of the multiline Input commands.

    This command uses the current XY value for the position, and the current XYSize for the size of the input field.

    Example:

        apphelp
        {
        :
            <A NAME="RenderOpts">
    	<H1>Render Options</H1>
    	HTML Documentation on the Render Options field goes here..
    	:
        }
        :
        xy 100 100
        xysize 320 24
        :
        inputstring "Render Options" "RenderOpts" ""
        :
        

  InputFilename  
    inputfilename "Prompt Text" "Dbase-Name" "Default Text" ["Filter"]

    InputFilename is a new (102.31n+) shortcut way to define filename prompts using a single line, instead of the multiline Input commands with the filebrowser enabled.

      The "Filter" is optional. If unspecified, all files are shown in browser. If specified, only files matching the wildcard filter will be shown in the browser (unless the user hits the 'All Files' button).

      See the 'input' command's filebrowserfilter for the possible wildcard character strings that can be specified for the filter.

    This command uses the current XY value for the position, and the current XYSize for the size of the input field. The filebrowser button is enabled, so the user can select filenames.

    Example:

        apphelp
        {
        :
            <A NAME="SceneFilename">
    	<H1>Scene Filename</H1>
    	HTML Documentation on the Scene Filename field goes here..
    	:
        }
        :
        xy 100 100
        xysize 320 24
        :
        inputfilename "Scene Filename" "SceneFilename" "//foo/bar" "*.scn"
        :
        

  InputMultiline  
    inputmultiline "Prompt Text" "Dbase-Name" "Default Text"

    InputMultiline is a new (102.31n+) shortcut way to define multiline string prompts using a single line definition, instead of the longer Input specification with 'multiline' enabled.

    This command uses the current XY value for the position, and the current XYSize for the size of the input field. The 'multiline' option is enabled, so that several lines of input can be specified by the user.

    If an 'apphelp' document has been defined, then a help button is automatically created, and linked to the global 'apphelp' using the 'dbname' field as the link.

    Example:

        apphelp
        {
        :
            <A NAME="Cpus">
    	<H1>Cpus</H1>
    	HTML Documentation on the Cpus field goes here..
    	:
        }
        :
        xy 100 100
        xysize 320 24
        :
        inputmultiline "Cpus" "Cpus" ""
        :
        

  Input  
    input
    {
        name         "Job Title"
        labelsize    14
        dbname       "JobTitle"
        default      "TEST_${USER}"
        xysize       280 24
        helpfontface 13
        helpfontsize 14
        help
        {
            The title for your job, which shows up
            in the job reports and audit logs.
        }
    }
    
    Input prompts allow the user to enter single or multiline text.

      name "text"

        Sets the name of the input prompt, as shown on the screen to the left of the input window. Text must be quoted. Use labelfont and/or labelsize to change the font.

      dbname "text"

        Sets the 'database name' for this input widget. This name will appear in the temporary file created which contains key/value pairs; the 'key' will be the dbname specified here, the value will be the text entered in the input widget.

      filebrowser {yes|no}

        Enables a file browser button to appear next to the input widget, so the user can bring up a file browser on the filename currently in the input box.

      filebrowserfilter "*.foo"

        Sets the filter applied when files are shown in the browser. Filter string must be quoted. The following syntax can be used in the filter string (quoting the FLTK 1.1.0b11 documentation):

        • * matches any sequence of 0 or more characters.
        • ? matches any single character.
        • [set] matches any character in the set. Set can contain any single characters, or a-z to represent a range. To match ] or - they must be the first characters. To match ^ or ! they must not be the first characters.
        • [^set] or [!set] matches any character not in the set.
        • {X|Y|Z} or {X,Y,Z} matches any one of the subexpressions literally.
        • \x quotes the character x so it has no special meaning.
        • x all other characters must be matched exactly.

        Multiple filters can be specified. Examples:

        • filebrowserfilter "*.shk" # *.shk only
        • filebrowserfilter "*.{ma|mb}" # *.ma and *.mb files
        • filebrowserfilter "*.aif[fc]" # *.aiff and *.aifc

      apphelp on

        Creates a help button that links to the global AppHelp defined for the application. The 'dbname' is used as the link to global apphelp. So if the 'dbname' for this field is XXX, then the global apphelp should have a link name defined as <A NAME="XXX"> so when the user clicks the help button, this part of the document will be displayed.

      help { multiline text }

        Creates a "?" help button. If the user hits it, the 'multiline text' is displayed to the user in a popup window.

        Opening and closing braces must appear on new lines, eg:

        	help
        	{
        	    This is a test.
        	    So is this
        	}

      helpcolor {val}

        The color of the 'Help' button according to this Color Map Chart. The default color is 48.

      helpurl "/path/foo.html"

        "?" button will be displayed; when pressed, shows the named html file.

      default "text"

        Sets the default text for the input field. Note; this will be overridden by any settings in the 'input datafile', specified on the commandline as 'input -f datafile'.

        "text" may contain environment variables (which are expanded before being displayed), eg.

            default "The home variable is set to ${HOME}"
        	    
        To embed literal characters, such as '$', use '\' escape the character, eg. '\${HOME}' will prevent the expansion of the variable, using the literal text '${HOME}'.

      multiline

        Enables multiple lines to be entered by the user, such as paragraphs of text. It's recommended you also use xysize or xywh to make the widget large enough for the user to type multiple lines.

      align {val}

        Sets the alignment of the name text. Values can be added together. See the align value table.

      labelfont {val|"fontname"}

        Sets the font used by name. See the font table for available fonts.

      labelsize {val}

        Sets the size of the font used by name in pixels. Or maybe it's points. Whatever. Be happy you can see any text at all.

      helpfontface {val|"fontname"}

        Sets the font used in help popups defined by help. See the font table for available fonts.

      helpfontsize {val}

        Sets the size of the font used in help popups.

      textfont {val|"fontname"}

        Sets the font used by the input field. See the font table for available fonts.

      textsize {val}

        Sets the size of the font used by the input field pixels. Or maybe it's points. Whatever. Be happy you can see any text at all.

      xy {x} {y}

        Sets absolute x/y positions for the lower left corner of the widget. Does not affect xysize (eg. doesn't affect width or height).

      xysize {w} {h}

        Sets the pixel size of the widget. Does not affect the current 'default' position of the widget.

      xywh {x} {y} {w} {h}

        Sets absolute position and size of widget.

      color {val}

        Sets the background color of the input box, according to this Color Map Chart. The default color is white.

  LabelSize  
        labelsize <font size>
    
(New in 102.40h+)

Changes the default label font used by all field labels. Default is 'labelsize 14'.

  SelectBrowser  
    selectbrowser
    {
        name     "Cpus:"
        dbname   "Cpus"
        type     multi
        option   "hosta"
        option   "hostb"
        option   "hostc"
        option   "hostd"
        option   "hoste"
        default   *
        xysize    100 100
    }
    
          

    Creates a new browser (Fl_Browser) that lets the user select from a list of items. The user can either be allowed to only select a single item ("type single"), or to select multiple items ("type multi").

      name xxx

        TBD.

      color xxx

        TBD.

      labelcolor xxx

        TBD.

      type xxx

        TBD.

      align xxx

        TBD.

      labelfont xxx

        TBD.

      labelsize xxx

        TBD.

      textfont xxx

        TBD.

      textsize xxx

        TBD.

      helpfontface xxx

        TBD.

      helpfontsize xxx

        TBD.

      helpcolor xxx

        TBD.

      helppushcolor xxx

        TBD.

      xy {x} {y}

        Set the position of the selectbrowser.

      xywh {x} {y} {w} {h}

        Sets the x, y, width and height of the selectbrowser.

      xysize xxx

        TBD.

      option xxx

        TBD.

      default xxx

        TBD.

      dbname xxx

        TBD.

      help xxx

        TBD.

      apphelp xxx

        TBD.

      helpurl xxx

        TBD.

  Tabs  
    tab
    {
        name "Main"
        scroll
        xysize 580 190
        resizable
    }
    
    Creates a new 'tab' for a tabbed dialog. This is basically a new group, into which widgets can be added.

      name "text"

        The name for this tab, as it appears in the GUI.

      hide {val}

        Hide this tab from view if '1', show if '0'. Default is 0 (show the tab).

      xy {x} {y}

        Set the position of the tab's position.

      xysize {w} {h}

        Sets the width and height of the tab's group.

      scroll

        Enables scrollbars so widgets can be placed off the bottom of the screen, so that the user can scroll to access them.

      resizable

        Enables this tab to be resizable.

  Submit  
    submit
    {
        submitname   "Submit"
        cancelname   "Cancel"
        submitcolor  51
        cancelcolor  51
        submitcmd    "myprogram -submit" 
        showfail     1
    }
    
    Creates the 'submit' and 'cancel' buttons that are usually common to all submission based forms.

      apphelp on

        Creates a help button that links to the global AppHelp defined for the application. Jumps to the first page of the document.

      cancelname "string"

        The text displayed inside the 'Cancel' button. Normally "Cancel", but it can be anything you want.

      cancelcolor {val}

        The color of the 'Cancel' button according to this Color Map Chart. The default color is 48.

      exitok {0|1}

        If 'exitok' is set to 1, and the command exits successfully (with a return value of 0), the main program will exit.

      helpcolor {val}

        The color of the 'Help' button according to this Color Map Chart. The default color is 48.

      helpname "string"

        Sets the text in the help button. By default, this is "?".

      helpfontface {val|"fontname"}

        Sets the font used in help popups defined by help. See the font table for available fonts.

      helpfontsize {val}

        Sets the size of the font used in help popups.

      labelfont {val|"fontname"}

        Sets the font used by name. See the font table for available fonts.

      labelsize {val}

        Sets the size of the font used by name in pixels. Or maybe it's points. Whatever. Be happy you can see text at all.

      submitcmd "command"

        The 'submitcmd' is the name of the program executed when the user hits the button.

        When the button is hit, these things happen:

        1. The current form is saved to a file

        2. The command is executed, with the first argument being the pathname of the saved form file, to determine the filename of the saved form, which the program can load (but not modify) and act on.

        The program's output will be displayed in a pop up window if showfail 1 is configured for the button, and the command returns a non-zero exit code.

        Command must be quoted.

      submitcolor {val}

        The color of the 'Submit' button according to this Color Map Chart. The default color is 48.

      submitname "string"

        The text displayed inside the 'Submit' button. Normally "Submit", but it can be anything you want.

      showfail {0|1}

        If 'showfail' is 1, and the command returns a non-zero exit code, the program's output will be displayed in a pop up window, indicating the failure and exit code.

      xy {x} {y}

        Sets absolute x/y positions for the lower left corner of the widget. Does not affect xysize (eg. doesn't affect width or height).

      xysize {w} {h}

        Sets the pixel size of the widget. Does not affect the current 'default' position of the widget.

  UsePlastic  
    (New in 102.40g+)
    Enables 'plastic' looking buttons throughout the application, as opposed to the default, square buttons. Has no arguments.

  Window  

  XY  
    Sets the default X and Y positions for the next widget defined. Widgets will use the 'xy' values specified in the global context if the widget doesn't define its own xy position.

    When a widget is defined, it automatically increments the 'Y' value so that the next defined widget will appear directly below it, with 3 pixels of space in between.

  XYSize  
    Sets the global default X/Y size of the next widget defined. Widgets will use the 'xysize' values specified in the global context if the widget doesn't define its own xysize.

    If a widget defines its own xysize, the global value is unchanged.





Tables





  Alignment Types  
    The following alignment value table shows how align controls alignment of text around or inside widgets. Values can be added together to make combos. For instance, to get text to left justify INSIDE a box, use 20 (16+4).

        Alignment Types
        0 Center
        1 Top
        2 Bottom
        4 Left
        8 Right
        16 Inside
        32 Unused
        64 Clip
        128 Wrap

  Box Types  
    The following are 'box types' used to set the kind of box displayed in 'box' commands.

        Box Types
        0 FL_NO_BOX
        1 FL_FLAT_BOX
        2 FL_UP_BOX
        3 FL_DOWN_BOX
        4 FL_UP_FRAME
        5 FL_DOWN_FRAME
        6 FL_THIN_UP_BOX
        7 FL_THIN_DOWN_BOX
        8 FL_THIN_UP_FRAME
        9 FL_THIN_DOWN_FRAME
        10 FL_ENGRAVED_BOX
        11 FL_EMBOSSED_BOX
        12 FL_ENGRAVED_FRAME
        13 FL_EMBOSSED_FRAME
        14 FL_BORDER_BOX
        15 FL_SHADOW_BOX
        16 FL_BORDER_FRAME
        17 FL_SHADOW_FRAME
        18 FL_ROUNDED_BOX
        19 FL_RSHADOW_BOX
        20 FL_ROUNDED_FRAME
        21 FL_RFLAT_BOX
        22 FL_ROUND_UP_BOX
        23 FL_ROUND_DOWN_BOX
        24 FL_DIAMOND_UP_BOX
        25 FL_DIAMOND_DOWN_BOX
        26 FL_OVAL_BOX
        27 FL_OSHADOW_BOX
        28 FL_OVAL_FRAME
        29 FL_OFLAT_BOX
        30 FL_PLASTIC_UP_BOX
        31 FL_PLASTIC_DOWN_BOX
        32 FL_PLASTIC_UP_FRAME
        33 FL_PLASTIC_DOWN_FRAME

  Color Map  
    The following color conversion chart shows what color values are..

  Font Types  
    The following font conversion chart shows what labelfont values are.

      (New in Rush 102.42+) -- Font names (below, in quotes) can be specified instead of font numbers. Older releases (102.41 and back) only supported font numbers.

        Font Types
        Font Number Font Name
        0 "FL_HELVETICA"
        1 "FL_HELVETICA_BOLD"
        2 "FL_HELVETICA_ITALIC"
        3 "FL_HELVETICA_BOLD_ITALIC"  
        4 "FL_COURIER"
        5 "FL_COURIER_BOLD"
        6 "FL_COURIER_ITALIC"
        7 "FL_COURIER_BOLD_ITALIC"  
        8 "FL_TIMES"
        9 "FL_TIMES_BOLD"
        10 "FL_TIMES_ITALIC"
        11 "FL_TIMES_BOLD_ITALIC"  
        12 "FL_SYMBOL"
        13 "FL_SCREEN"
        14 "FL_SCREEN_BOLD"
        15 "FL_ZAPF_DINGBATS"

  Label Types  
    The following value table shows what kinds of text labels are available. The default is usually 'FL_NORMAL_LABEL', which means the plain font. Don't use any of the image oriented label types; they're not supported (yet).

        Label Types
        0 FL_NORMAL_LABEL
        1 FL_NO_LABEL
        2 _FL_SYMBOL_LABEL
        3 _FL_SHADOW_LABEL
        4 _FL_ENGRAVED_LABEL
        5 _FL_EMBOSSED_LABEL
        6 _FL_BITMAP_LABE
        7 _FL_PIXMAP_LABEL
        8 _FL_IMAGE_LABEL
        9 _FL_MULTI_LABEL