
DESCRIPTION
     xtpanel provides a quick and easy way of producing  a  panel
     containing interactive objects such as buttons, sliders, and
     text fields, either from the command line or from an xtpanel
     script file.  Each panel object maintains a string represen-
     tation of its value. When the object is modified it  updates
     its  value  and it can also perform one or more actions such
     as printing its value or calling a system  command.  Objects
     can  make use of the values of other objects in constructing
     their actions and they can set the values of  other  objects
     as  the  result of an action. The result is an interactive X
     windows program, without the need for conventional  program-
     ming.


     Three utilities are provided with xtpanel. The  first  is  a
     script  generator.  This  is a collection of xtpanel scripts
     that can be used  to  generate,  examine  and  test  xtpanel
     script  files.  It  is  invoked  using  the command xtpanel-
     generator.  The second utility is a  collection  of  example
     scripts  and a master script that can be use to view and run
     the examples. It  is  invoked  using  the  command  xtpanel-
     examples.   A  particularly  powerful  demo  is the "lister"
     script example, which is a tool for  maneuvering  through  a
     Unix filesystem and viewing files at any level. The third is
     a set of xtpanel  scripts  that  present  information  about
     xtpanel,  mostly taken from this manual page, in an interac-
     tive, menu-driven form. This is  invoked  by  doing  xtpanel
     -help.


OBJECT TYPES
     xtpanel supports the following objects:


     message   Displays a single line of text. Read only.


     text      Displays multiple lines of text  in  a  scrollable
               area. Can be read/write or read only.


     field     Same as text, but for only a single line of  text.
               Always read-write.


     dialog    Like field, with a label and  an  OK  button  that
               performs some action.


     button    A single button.


     toggle    A button that can be toggled between two states.


     slider    Allows the user to choose a value from a range  of
               integer or floating point values.


     scrollbar Similar to a slider, but simpler in appearance.


     choice    A group of buttons,  only  one  of  which  may  be
               selected at a time.


     menubutton
               A button with a menu attached.


     list      A list of character strings, only one of which may
               be selected at a time.


     var       A variable that has no screen  representation  but
               stores  a  value.  A variable's actions, if it has
               any, are executed whenever the value stored in the
               variable is modified.


     timer     An object that has no  screen  representation  but
               executes  its  action[s] at set intervals, without
               user interaction.


     startup   An object that has no  screen  representation  but
               executes its action[s] at startup time.


     graph     An object containing a number of scrollbars,  each
               of  which  controls  the value for one sample of a
               list of numbers.


     grid      An object containing a two-dimensional  matrix  of
               buttons.  Pressing one of the buttons executes the
               grid's action[s], optionally  making  use  of  the
               coordinates of the selected button.


     togglegrid
               Like grid, except the buttons are replaced by tog-
               gles.   A  bitmap of the states of all the toggles
               can be generated.


     In addition there  are  several  objects  that  group  other
     objects  together  in  boxes.  Grouping  objects in this way
     allows greater control of the panel layout. See the  section
     below on BOXES AND FORMS.


DESCRIPTION OF OBJECTS AND SCRIPT SYNTAX
     Here is a more detailed  description  of  the  objects,  the
     parameters  relevant  to  each,  and the syntax for building
     these objects in a script file.

     The general format for specifying an object in a script file
     is:

     objecttype={ parameter=value ... }

     Note that no spaces are allowed between the objecttype  and
     the "{".

     Each "value" can take one of four forms: A  single  word,  a
     string  enclosed in single quotes, a string enclosed in dou-
     ble quotes or a string enclosed in backquotes. See the  sec-
     tion  "SCRIPT  SYNTAX  DETAILS"  for more information on the
     syntax.


     There are five parameters that many objects have in  common,
     these are: name, label, action, test and value.

     name is the name of the object. The  name  serves  two  pur-
     poses,  it  can  be referred to by other objects who wish to
     obtain the  or  modify  the  string  representation  of  the
     object.

     The name can also be used in modifying the appearance of  an
     object using the X-toolkit resource mechanism.

     When names are referred to by other objects they start  with
     a  dollar  sign  and optionally an opening parenthesis. They
     are assumed to end at the next space or closing parenthesis.
     Therefore a name may not contain spaces, parentheses or dol-
     lar signs.

     label is the label that appears on the object. By default it
     is  the  set to the name. It will appear in an "appropriate"
     place which depends on the object type. Some objects do  not
     have  labels.  The  label  parameter  is  ignored  for these
     objects.

     value is the initial string value associate with the object.
     If  the object is modified this string value will change. It
     defaults to be the same as label.

     action is an action that occurs when the object is  modified
     -  when a button is pressed, a scrollbar is moved, etc. Some
     objects (slider and dialog) have separate buttons to trigger
     the action.  Defaults to "NONE", which means that the object
     simply maintains a string, containing its value, for use  by
     other  objects.   Other  actions  are PRINT (print string to
     standard output), SYSTEM (execute a command), STRING (refor-
     mat the internal representation of the object's value, where
     the string can contain more than just the object's value)  ,
     ASSIGN  (set  another object's value to a given string), SET
     (set an attribute of an object; e.g. color ) and QUIT  (quit
     xtpanel). See the section below on ACTIONS for more details.
     If more than one action is present the actions will be  per-
     formed in the order that they are specified.

     test is a composite object that contains a condition and two
     sets  of  actions.  One set is performed if the condition is
     true the other if it is false.  See  the  section  below  on
     ACTIONS for more details.
