bionic (1) FvwmForm.1.gz

Provided by: fvwm_2.6.7-3_amd64 bug

NAME

       FvwmForm - input form module for Fvwm

SYNOPSIS

       Module FvwmForm [ Alias ]

       FvwmForm  must  be spawned by Fvwm.  If invoked from the command line, FvwmForm prints its version number
       and exits.

DESCRIPTION

       FvwmForm provides a mechanism to get user input and act accordingly.  This is achieved by means of a form
       that  the  user  can  fill out, and from which the user can select actions he wants Fvwm to take.  A form
       consists of five types of items: text labels, single-line  text  inputs,  mutually-exclusive  selections,
       multiple-choice selections, and action buttons.  These items are arranged into several lines, with a very
       flexible layout.

       A text label only serves the purpose of explanation.  It cannot accept any input.

       A timeout entry provides a mechanism for timing out the form and performing a  certain  action  when  the
       timeout  occurs.   The  countdown  is  displayed  similar to a text label except that it updates with the
       amount of time left.

       A text input field can be used to  edit  a  single-line  string.   FvwmForm  accepts  Emacs-style  cursor
       movement keys.  See FvwmFormInput for details.  Mouse copy is not supported, but you can paste.

       A selection consists of several choices.

       The selection itself is a logical entity that doesn't have any display feature.

       Each  choice  is  displayed  as  a  push-button  followed by a explanatory text label.  When selected, an
       exclusive choice shows a circle in the middle, while a multiple choice shows a check.

       An action button, when activated sends one or more commands to Fvwm  or  executes  shell  commands.   The
       shell commands can contain the content of the input fields on the form and reflect the setting of choices
       on the form.

       The action buttons can be activated thru keyboard or mouse.

INITIALIZATION

       FvwmForm invoked without an alias uses configuration commands  starting with "*FvwmForm".

       Normally you would invoke FvwmForm with an alias representing the  name  of  a  form,  its  configuration
       commands  and  configuration  file.  For example, the command "Module FvwmForm Rlogin" uses configuration
       commands starting with "*Rlogin", and reads the optional configuration file "Rlogin".

       All  forms,  regardless  of  alias,   scan   first   for   configuration   commands   that   start   with
       "*FvwmFormDefault".    These   commands   normally come from the builtin form "FvwmForm-Form" which saves
       commands to the file ".FvwmForm".

       The physical reading of the optional input file, ".FvwmForm", is done only the  first  time  FvwmForm  is
       invoked, or after "FvwmForm-Form" updates the file.

       When the file ".FvwmForm" is read,  it is done  by sending the command "Read .FvwmForm  Quiet"   to fvwm.
       Because of  the   way the  "read" command works,  the  file  can   reside  in  your  personal  fvwm  user
       directory,  or  be  in  the fvwm data directory.  See the description of the read command in the fvwm man
       page for more information about the environment variable $FVWM_USERDIR.

       Then FvwmForm reads the rest of the configuration fvwm has stored up.  Fvwm stores  configuration  on  an
       ongoing  basis.  The initial configuration comes from the .fvwm2rc file.  Other sources, including "Read"
       commands can define a form.

       When letting  FvwmForm and fvwm  read files,  remember  that  these  files  contain  commands   that  can
       execute shell commands,  so  you should be careful about setting permissions on these files.

       When  FvwmForm  is  invoked with a window context, e.g. from a window menu, all commands it sends to Fvwm
       will have that window context.  This would allow FvwmForm to control the window it is invoked from.

       After all the configuration commands have been read, FvwmForm displays the form defined by the commands.

DEFAULTS

       FvwmForm creates a built-in form named "FvwmForm-Form" that creates a file called ".FvwmForm".  This file
       contains  saved default form colors and fonts.  Other forms use these defaults unless they are overridden
       within the form.

       The default creating form would normally be invoked from a "module menu".  For example, if you call  your
       module menu "Module-Popup", you would add the line:
       AddToMenu "Module-Popup" "FvwmForm Defaults" FvwmForm FvwmForm-Form
       When  you  select  "FvwmForm  Defaults" from your module menu, a form is displayed that shows the current
       defaults and allows you to change them.  If you activate the "Save Restart Me"  button,  the  ".FvwmForm"
       file is written and "FvwmForm-Form" exits and restarts to show the new defaults.

       An example of what this file might contain after a save is:
         # This file last created by FvwmForm-Form on Sun Nov 28 11:18:26 EST 1999.
         *FvwmFormDefault: Font 10x20
         *FvwmFormDefault: InputFont 8x13bold
         *FvwmFormDefault: ButtonFont 10x20
         *FvwmFormDefault: TimeoutFont 10x20
         *FvwmFormDefault: Fore white
         *FvwmFormDefault: Back cornflowerblue
         *FvwmFormDefault: Colorset -1
         *FvwmFormDefault: ItemFore green
         *FvwmFormDefault: ItemBack gray40
         *FvwmFormDefault: ItemColorset -1
         *FvwmFormDefault: ButtonPointer hand2
         *FvwmFormDefault: ButtonInPointer star
         *FvwmFormDefault: InputPointer gumby
         *FvwmFormDefault: ButtonPointerFore blue
         *FvwmFormDefault: ButtonPointerBack gray
         *FvwmFormDefault: ButtonInPointerFore gray
         *FvwmFormDefault: ButtonInPointerBack blue
         *FvwmFormDefault: InputPointerFore
         *FvwmFormDefault: InputPointerBack
       The  commands  in  this  file  are  just  like  any  other  FvwmForm  command except that they start with
       "*FvwmFormDefault".

       FvwmForm only reads the file ".FvwmForm" the first time it is started or after the  file  is  changed  by
       "FvwmForm-Form".   It  does  so by sending the command "*FvwmFormDefault: Read x". With "x" set to "y" or
       "n".  "n" makes FvwmForm send a "read .FvwmForm quiet" command to fvwm.

VARIABLE SUBSTITUTION

       If you supply variables and values on the command line used to start FvwmForm (like this):

       Module FvwmForm MyForm ACTION=Browse "TITLE=Browse Form"

       Then all FvwmForm input commands undergo variable substitution.  The variables from the command line  are
       exported.   Then  every  command  gets  expanded  using the variables from the environment.  For example,
       assuming the above invocation of "MyForm", commands would be changed like this:

       Before  *MyForm: Text "$TITLE, Home $HOME, Going to $ACTION"
       After   *MyForm: TEXT "Browse Form, Home /home/me, Going to Browse"

       Using this facility should make it possible for one form to be used for different sets of input data.

CONFIGURATION

       The following commands can be set in the .fvwm2rc file or thru any of the other ways that fvwm can accept
       commands.   The  simplest  technique  is  to create a file in the read-only architecture-independent data
       directory, [PREFIX/share/fvwm] or your personal fvwm  directory  [$HOME/.fvwm],  that  matches  the  form
       alias.

       In the following paragraphs the string "FvwmForm" would normally be the form alias.

       FvwmForm reads commands before the form is ever displayed, and while the form is being displayed.

       The following commands are accepted before the form is displayed:
       Back
       Button
       ButtonFont
       ButtonInPointer
       ButtonInPointerFore
       ButtonInPointerBack
       ButtonPointer
       ButtonPointerFore
       ButtonPointerBack
       Choice
       Command
       Colorset
       Font
       Fore
       GrabServer
       Input
       InputFont
       InputPointer
       ItemBack
       ItemColorset
       ItemFore
       InputPointerFore
       InputPointerBack
       Line
       Message
       PadVText
       Position
       Selection
       Separator
       Text
       Timeout
       TimeoutFont
       Title
       UseData
       WarpPointer

       The following commands are accepted while the form is displayed:
       Map
       Stop
       UnMap

       The  "Map",  "UnMap"  and  "Stop"  facility  is  under development and is currently not explained in this
       document, since it is likely to change.

       The order of the options DOES matter.  The first  background  text  color,  "*FvwmFormBack",  encountered
       before a displayable item sets the default background color for the entire form.

       Other  than  that,  colors,  fonts, text, choices and buttons can be intermixed in any order.  The are no
       builtin limits on form size, number of items on a form, or number of fonts or colors used.

       *FvwmForm: GrabServer
           This option makes FvwmForm grab the mouse pointer on startup.  This feature is useful for things like
           logout verification.

       *FvwmForm: WarpPointer
           This option makes FvwmForm warp the mouse pointer into its window on startup.  It saves the user some
           mouse-travelling.

       *FvwmForm: Geometry geometry
           Specifies the FvwmForm window location.  This is similar to what the Position option does but is more
           flexible.

       *FvwmForm: Position x y
           Puts  the  FvwmForm  window  at location (x, y) on the screen.  By convention, a negative x (y) value
           measures distance from the right (bottom) of the screen.

           If this option is omitted, FvwmForm starts at the center of the screen.

       *FvwmForm: Colorset n
           Tells the module to use colorset n.

       *FvwmForm: Back color
           Specifies the background color of the FvwmForm  window  and  any  text  in  the  window.   The  first
           background  color  FvwmForm  reads  determines  the overall screen background color. Switches off the
           Colorset option.  See DEFAULTS.

       *FvwmForm: Fore color
           Specifies the foreground color for displaying text labels.  Switches off the  Colorset  option.   See
           DEFAULTS.

       *FvwmForm: ItemColorset n
           Tells the module to use colorset n for items.

       *FvwmForm: ItemBack color
           Specifies the background color for the text input windows, and the buttons.  Buttons are displayed as
           3D depressable buttons.  Inputs are displayed as 3D indented fields.  Medium shade background  colors
           work best.  Switches off the ItemColorset option.  See DEFAULTS.

       *FvwmForm: ItemFore color
           Specifies  the  foreground  color  for  the  text  input  strings  and  button text. Switches off the
           ItemColorset option.  See DEFAULTS.

       *FvwmForm: Font font
           Specifies the font for displaying plain text.  See DEFAULTS.

       *FvwmForm: ButtonFont font
           Specifies the font for text in the action buttons.  See DEFAULTS.

       *FvwmForm: InputFont font
           Specifies the font for text input.  See DEFAULTS.

       *FvwmForm: TimeoutFont font
           Specifies the font for display the timeout counter and related text.  See DEFAULTS.

       *FvwmForm: Line justification
           Starts a new line.  A line can contain any number of  text,  input,  buttons  and  choice  items.   A
           FvwmForm window can have any number of lines.  The width of the window is that of the longest line.

           Justification of items in the line is specified by justification, which can be one of the following:

       left            Items are justified to the left of the window.

       right           Items are justified to the right of the window.

       center          Items are placed in the center of the window.

       expand          If  there  is  only  one item in the line, the item is centered in the window.  If two or
                       more items are present, they are spread to fill the whole width of the window.

       *FvwmForm: Message
           Defines a text area on the form that contains the last error message  from  fvwm.   For  purposes  of
           determining  form size, the message area is considered to be 80 bytes long.  Its actual length is the
           same as the message received.  If the message exceeds 80 bytes, you can see the rest of  the  message
           by resizing the form.

           You  should  not  attempt  to  put any text, buttons or input fields on the same line after a message
           field.  Messages greater than 80 bytes will overlay the remainder of the line.

       *FvwmForm: PadVText Pixels
           The number of pixels used as vertical padding between text items, line to line.   The  default  is  6
           which looks good on lines containing text intermixed with input boxes, choices or buttons.

           For straight text, such as might appear on a help form, padding of zero looks better.

           (There  are  lots  of  other padding values used in form layout which can't currently be changed with
           commands.)

       *FvwmForm: Text string
           Displays string as plain text.  Line  breaks  must  be  achieved  by  multiple  *FvwmForm:  Line  and
           *FvwmForm: Text options.  Blanks may be used to provide extra padding between items.

       *FvwmForm: Title string
           Displays  string  as  the  window's title.  The string must be enclosed in double quotes.  Using this
           command with anything other than a string enclosed in quotes creates a blank title.  If this  command
           is not used, the window title is the form alias.

       *FvwmForm: Input name size init_string
           Specifies  a  text  input  item with name name.  A sub window of size characters in width is used for
           editing.  If init_string is present, it is the initial string when FvwmForm starts or resets  itself.
           The default initial string is "".

           You  can mouse paste into an input field using button 2.  Buttons 1 and 3 move the cursor in an input
           field.

           Input fields are always in insert mode, overtyping is not supported.

           Emacs type keystrokes are supported.

           Control-a, Home and Begin move to the front of an input field.  Control-e and End move to the end  of
           an  input  field.  Control-b and Left move left in an input field.  Control-f and Right move right in
           an input field.  Control-p, Up, and Shift-Tab move to a previous input field if any, if the form  has
           one  input field, recall previous value.  Control-n, Down, Return, Line-feed and Tab move to the next
           input field if any, if the form has one input field, for control-n and Down, restore  previous  input
           value.   Control-h moves backward in an input field erasing a character.  Control-d and Delete delete
           the next character in an input field.  Control-k erases for the cursor to the end of an input  field.
           Control-u erases the entire input field.

           When  a  form  executes a command, all the input values are saved in a ring of input history 50 items
           deep.

           Meta(mod2)-"<" retrieves the previous value of an input field.   Meta(mod2)-">"  retrieves  the  next
           value of an input field.

           (For forms with one input field, use the much easier arrow keys.)

       *FvwmForm: Selection name type
           This  option  starts  a  selection  item  with  name  name.   Its  choices are specified in following
           configuration commands.  The option type is one of the following:

       single          The selections are mutually exclusive.

       multiple        This is a multiple-choice selection.

       *FvwmForm: Separator
           Draws a 2 pixel shaded line across the form as a visual indication of a separate area.

       *FvwmForm: Choice name value on | off string
           Specifies a choice for a proceeding selection.  The choice item has a name and a value these are used
           in commands.  See *FvwmForm: Command.  The string is displayed to the right of the choice button as a
           label.

           The choice assumes the specified initial state ("on" means selected) when FvwmForm starts or  resets.
           If  the  selections  are  mutually exclusive, FvwmForm does NOT detect inconsistencies in the initial
           states of the choices, i.e. two or none of the choices can  be  selected.   However,  once  the  user
           selects a choice, FvwmForm  assures only one is selected.

       *FvwmForm: Button type string [key]
           This option specifies an action button.  The button has string as a label, and executes a set of Fvwm
           command when it is activated.  The commands are the following *FvwmForm: Commands.

           The optional key specifies a keyboard shortcut that activates the button.  It is in either a  control
           character,  specified  as ^@, ^A, ..., ^_, or a function key, specified as F1, F2, ..., F35.  Control
           keys that are used for cursor movement in text input fields cannot activate  any  buttons,  with  the
           exception  of TAB (^I), RETURN (^M), LINEFEED (^J), which can activate a button when the cursor is in
           the last text input field.

           The behavior of the button is determined by type:

       continue        FvwmForm continues execution after sending the commands.

       restart         After sending the commands, FvwmForm resets all the values to the initial ones, and  then
                       continues execution.

       quit            FvwmForm quits after sending the commands.

       *FvwmForm: Command command
           This option specifies an Fvwm command associated with the current button.  There can be more than one
           command attached to a button.  Commands that appear before any *FvwmForm: Button option are  executed
           at start-up time.  This is usually a beep that gets the user's attention.

           Commands  starting with an exclamation mark (!) are executed by FvwmForm, all other commands are sent
           to Fvwm for execution.  Before sending each command to Fvwm, FvwmForm  recognizes  variables  of  the
           following forms, and supply values to them.

       $(name)         If  name  corresponds  to a text input field, the result is the user's input string.  The
                       special chars single-quote, double-quote and backslash are preceded by a backslash.

                       If name corresponds to a choice, the result is the value of the choice (as  specified  in
                       *FvwmForm:  Choice) if the choice is selected.  If the choice is not selected, the result
                       is a blank string.

                       If name corresponds to a selection, the result will be a list of the selected  values  of
                       all its choices separated by spaces.

       $(name?string)  If name is a text input field and its value is not an empty string, the result is string,
                       with recursive variable substitution applied.  If the input value is empty, the result is
                       empty.

                       If  name  is  a  choice and it is selected, the result is string, with recursive variable
                       substitution applied.  If the choice is not selected, the result is empty.

       $(name!string)  The same as the above, except that the converse conditions are taken.

                       When using the "?" and "!" forms to pass a string, the string is  delimited  by  a  right
                       parenthesis.   If  you  need  to  put  a right parenthesis in a string, precede the right
                       parenthesis with a backslash.

       *FvwmForm: UseData datafile leading
           Tells FvwmForm to read a data file and extract data from module commands  that  match  the  "leading"
           argument and an input, choice, or selection variable in a form.

           This  lets  a form display current fvwm module configuration data.  For an example of how this works,
           examine the file "FvwmForm-Rlogin" which is  installed  in  read-only  architecture-independent  data
           directory, [PREFIX/share/fvwm] and shown below.

           For  choices,  the  setting  of  the  button is represented as the word "on",  all other values for a
           setting are treated as off.

           For selections, the setting of each choice button is determined by matching the current value of  the
           selection  against  each  choice.   Currently,  this only works correctly for selections that allow a
           single choice.

       *FvwmForm: ButtonPointer pointername
           Change the default mouse pointer (hand2) used when hovering over a button.  The pointername  must  be
           one  of  the  names  defined  in  the  include  file  X11/cursorfont.h (without the XC_ prefix).  See
           DEFAULTS.

       *FvwmForm: ButtonInPointer pointername
           Change the default mouse pointer (hand1) used while a button is pressed in.  The pointername must  be
           one  of  the  names  defined  in  the  include  file  X11/cursorfont.h (without the XC_ prefix).  See
           DEFAULTS.

       *FvwmForm: InputPointer pointername
           Change the default mouse pointer  (xterm)  used  while  the  pointer  is  over  a  text  field.   The
           pointername  must  be  one of the names defined in the include file X11/cursorfont.h (without the XC_
           prefix).  See DEFAULTS.

       *FvwmForm: ButtonPointerFore|Back color
           Change the default mouse pointer foreground and background colors used when hovering over  a  button.
           See DEFAULTS.

       *FvwmForm: ButtonInPointerFore|Back color
           Change  the default mouse pointer foreground and background colors used while a button is pressed in.
           See DEFAULTS.

       *FvwmForm: InputPointerFore|Back color
           Change the default mouse pointer foreground and background colors used while the pointer  is  over  a
           text field.  See DEFAULTS.

       *FvwmForm: Timeout seconds command "text"
           Set up FvwmForm to time out after the amount of seconds specified.  When the timer hits zero, command
           executes.  The text field is displayed much like a Text field, except that a  '%%'  in  the  line  is
           replaced  automatically by the amount of time left on the timer.  The value gets updated every second
           as the timer counts down.  There can only be one timeout field per form.

EXAMPLES

       All of the following "examples" are installed in the read-only architecture-independent  data  directory,
       [PREFIX/share/fvwm], during fvwm installation.

       The following commands create a menu to invoke the examples:

       DestroyMenu Forms
       AddToMenu Forms "&Q. QuitVerify" Module FvwmForm FvwmForm-QuitVerify
       AddToMenu Forms "&C. Capture"    Module FvwmForm FvwmForm-Capture
       AddToMenu Forms "&R. Rlogin"     Module FvwmForm FvwmForm-Rlogin
       AddToMenu Forms "&T. Talk"       Module FvwmForm FvwmForm-Talk

EXAMPLE 1 - Quit Verify

       This  example simulates the mwm way of confirming logout.  Return does the logout, Escape cancels logout.
       It times out after 20 seconds and performs the equivalent of the 'Logout' button.
       DestroyModuleConfig  FvwmForm-QuitVerify: *
       *FvwmForm-QuitVerify: GrabServer
       *FvwmForm-QuitVerify: WarpPointer
       *FvwmForm-QuitVerify: Command     Beep
       *FvwmForm-QuitVerify: Line        center
       *FvwmForm-QuitVerify: Text        "Do you really want to logout?"
       *FvwmForm-QuitVerify: Line        expand
       *FvwmForm-QuitVerify: Button      quit "Logout" ^M
       *FvwmForm-QuitVerify: Command     Quit
       *FvwmForm-QuitVerify: Button      restart   "Restart" ^R
       *FvwmForm-QuitVerify: Command     Restart
       *FvwmForm-QuitVerify: Button      quit "Cancel" ^[
       *FvwmForm-QuitVerify: Command     Nop
       *FvwmForm-QuitVerify: Timeout     20 Quit "Automatic logout will occur in %% seconds."

EXAMPLE 2 - Remote Login

       This example lets the user type in a host name, an optional user name, and opens an xterm window from the
       remote host.
       DestroyModuleConfig  FvwmForm-Rlogin: *
       *FvwmForm-Rlogin: WarpPointer
       *FvwmForm-Rlogin: Line         center
       *FvwmForm-Rlogin: Text         "Login to Remote Host"
       *FvwmForm-Rlogin: Line         center
       *FvwmForm-Rlogin: Text         "Host:"
       *FvwmForm-Rlogin: Input        HostName        20      ""
       *FvwmForm-Rlogin: Line         center
       *FvwmForm-Rlogin: Selection    UserSel single
       *FvwmForm-Rlogin: Choice       Default Default on      "same user"
       *FvwmForm-Rlogin: Choice       Custom  Custom  off     "user:"
       *FvwmForm-Rlogin: Input        UserName        10      ""
       *FvwmForm-Rlogin: Line         expand
       *FvwmForm-Rlogin: Button       quit    "Login"         ^M
       *FvwmForm-Rlogin: Command      Exec exec ssh $(Custom?-l $(UserName)) $(HostName) xterm -T xterm@$(HostName) -display $HOSTDISPLAY &
       # Before saving the data, remove any previously saved data:
       *FvwmForm-Rlogin: Command DestroyModuleConfig FvwmForm-RloginDefault: *
       # The "Login" button causes a login and a saving of the current data:
       *FvwmForm-Rlogin: Command !(                        /bin/echo \
         "# Created by FvwmForm-Rlogin on: `/bin/date`.";  /bin/echo \
         '*FvwmForm-RloginDefault: HostName $(HostName)';  /bin/echo \
         '*FvwmForm-RloginDefault: UserName $(UserName)';  /bin/echo \
         '*FvwmForm-RloginDefault: Default $(Default?on)'; /bin/echo \
         '*FvwmForm-RloginDefault: Custom $(Custom?on)' \
       ) > ${FVWM_USERDIR}/.FvwmForm-Rlogin
       *FvwmForm-Rlogin: Button       restart "Reset"
       *FvwmForm-Rlogin: Button       quit    "Cancel"        ^[
       *FvwmForm-Rlogin: Command      Nop
       # Tell FvwmForm to read vars from the .FvwmForm-RloginDefault file:
       *FvwmForm-Rlogin: UseData .FvwmForm-Rlogin *FvwmForm-RloginDefault

EXAMPLE 3 - Capture Window

       This example provides a front-end to xwd, xwud, and xpr.
       DestroyModuleConfig  FvwmForm-Capture: *
       *FvwmForm-Capture: Line       center
       *FvwmForm-Capture: Text       "Capture Window"
       *FvwmForm-Capture: Line       left
       *FvwmForm-Capture: Text       "File: "
       *FvwmForm-Capture: Input      file            25      "/tmp/Capture"
       *FvwmForm-Capture: Line       left
       *FvwmForm-Capture: Text       "Printer: "
       *FvwmForm-Capture: Input      printer         20      "$PRINTER"
       *FvwmForm-Capture: Line       expand
       *FvwmForm-Capture: Selection  PtrType single
       *FvwmForm-Capture: Choice     PS      ps      on      "PostScript"
       *FvwmForm-Capture: Choice     Ljet    ljet    off     "HP LaserJet"
       *FvwmForm-Capture: Line       left
       *FvwmForm-Capture: Text       "xwd options:"
       *FvwmForm-Capture: Line       expand
       *FvwmForm-Capture: Selection  Options multiple
       *FvwmForm-Capture: Choice     Brd     -nobdrs off     "No border"
       *FvwmForm-Capture: Choice     Frm     -frame  on      "With frame"
       *FvwmForm-Capture: Choice     XYZ     -xy     off     "XY format"
       *FvwmForm-Capture: Line       expand
       *FvwmForm-Capture: Button     continue        "Capture"       ^M
       *FvwmForm-Capture: Command    Exec exec xwd -out $(file) $(Options) &
       *FvwmForm-Capture: Button     continue        "Preview"
       *FvwmForm-Capture: Command    Exec exec xwud -in $(file) &
       *FvwmForm-Capture: Button     continue        "Print"
       *FvwmForm-Capture: Command    Exec exec xpr -device $(PtrType) $(file) | lpr -P $(printer) &
       *FvwmForm-Capture: Button     quit            "Quit"

EXAMPLE 4 - Talk Form

       This  example  provides a replacement for the module FvwmTalk.  There are 2 forms, "FvwmForm-Talk." which
       executes commands, or sends commands to fvwm for execution, and "FvwmForm-TalkHelp."   which  is  a  help
       form.

       In the help form, notice how vertical line spacing is changed.  Normal FvwmForm line spacing assumes text
       is intermixed with buttons, help forms require different spacing.

       # FvwmForm-Talk - Basic replacement for FvwmTalk
       DestroyModuleConfig  FvwmForm-Talk: *
       *FvwmForm-Talk: WarpPointer
       # Layout
       *FvwmForm-Talk: Line         center
       *FvwmForm-Talk: Text         "Talk to Fvwm"
       *FvwmForm-Talk: Line         left
       *FvwmForm-Talk: Text         "Command:"
       *FvwmForm-Talk: Input        Command 80 ""
       *FvwmForm-Talk: Line         left
       *FvwmForm-Talk: Text         "Msg:"
       *FvwmForm-Talk: Message
       *FvwmForm-Talk: Line         center
       # Buttons
       *FvwmForm-Talk: Button       restart    "Return - Execute"         ^M
       *FvwmForm-Talk: Command        $(Command)
       *FvwmForm-Talk: Button       continue    "F1 - Help" F1
       *FvwmForm-Talk: Command        Module FvwmForm FvwmForm-TalkHelp
       *FvwmForm-Talk: Button       restart     "F3 - Reset input" F3
       *FvwmForm-Talk: Command        Nop
       *FvwmForm-Talk: Button       quit        "F4 - Dismiss"  F4
       *FvwmForm-Talk: Command        Nop

       # FvwmForm-TalkHelp - Help Text for FvwmForm-Talk
       DestroyModuleConfig  FvwmForm-TalkHelp: *
       *FvwmForm-TalkHelp: WarpPointer
       # Layout
       *FvwmForm-TalkHelp: Line    center
       *FvwmForm-TalkHelp: Text    "Talk to Fvwm - Help"
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    " "
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: PadVText 0
       *FvwmForm-TalkHelp: Text    "Enter commands in the
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    "Commands beginning with
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    "shell as a sub-process of the form."
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    "All other commands are sent to fvwm for execution."
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    ""
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    "Fvwm error messages are shown on the
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    ""
       # Buttons
       *FvwmForm-TalkHelp: Line    center
       *FvwmForm-TalkHelp: Button  quit    "Return - Dismiss"         ^M
       *FvwmForm-TalkHelp: Command   Nop

BUGS AND LIMITATIONS

       FvwmForm is a fairly simple method of providing input.  There is no input validation facility.   FvwmForm
       has no way of dealing with lists.

       Report bugs to the fvwm-workers list.

COPYRIGHTS

       FvwmForm is original work of Thomas Zuwei Feng (ztfeng@math.princeton.edu).

       Copyright  Feb  1995,  Thomas Zuwei Feng.  No guarantees or warranties are provided or implied in any way
       whatsoever.  Use this program at your own risk.  Permission to use, modify, and redistribute this program
       is hereby given, provided that this copyright is kept intact.

CHANGES

       During the fall of 1998, Dan Espen removed all form size limits, added unlimited font and color changing,
       form spacing control, configuration file reading,  global  control  of  appearance,  synchronous  command
       execution, Error message display, variable substitution, configurable pointers, and lots of other damage.
       No additional copyright is imposed.