1 .\" Same macro as used in fvwm.1
2 .\" @(#)@PACKAGE@-@VERSION@ @RELDATELONG@
16 .TH FvwmForm 1 "@RELDATELONG@ (@VERSION@)" Fvwm "Fvwm Modules"
18 FvwmForm - input form module for Fvwm
20 \fBModule FvwmForm\fP [ \fIAlias\fP ]
22 FvwmForm must be spawned by Fvwm.
23 If invoked from the command line,
24 FvwmForm prints its version number and exits.
26 FvwmForm provides a mechanism to get user input and act accordingly.
27 This is achieved by means of a form that the user can fill out,
28 and from which the user can select actions he wants Fvwm to take.
29 A form consists of five types of items:
31 single-line text inputs,
32 mutually-exclusive selections,
33 multiple-choice selections,
35 These items are arranged into several lines,
36 with a very flexible layout.
38 A text label only serves the purpose of explanation.
39 It cannot accept any input.
41 A timeout entry provides a mechanism for timing out the form
42 and performing a certain action when the timeout occurs. The countdown
43 is displayed similar to a text label except that it updates with the
46 A text input field can be used to edit a single-line string.
47 FvwmForm accepts Emacs-style cursor movement keys.
48 See FvwmFormInput for details.
49 Mouse copy is not supported, but you can paste.
51 A selection consists of several choices.
53 The selection itself is a logical entity that doesn't have any display
56 Each choice is displayed as a push-button followed by a explanatory
58 When selected, an exclusive choice shows a circle in the middle,
59 while a multiple choice shows a check.
61 An action button, when activated sends one or more commands to
62 Fvwm or executes shell commands.
63 The shell commands can contain the content of the input fields
64 on the form and reflect the setting of choices on the form.
66 The action buttons can be activated thru keyboard or mouse.
69 FvwmForm invoked without an alias uses configuration
70 commands starting with "*FvwmForm".
72 Normally you would invoke FvwmForm with
73 an alias representing the name of a form, its configuration commands and
75 For example, the command "Module FvwmForm Rlogin" uses configuration
76 commands starting with "*Rlogin", and reads the optional configuration file
79 All forms, regardless of alias, scan first for configuration commands
80 that start with "*FvwmFormDefault". These commands normally come
81 from the builtin form "FvwmForm-Form" which saves commands to the file
84 The physical reading of the optional input file, ".FvwmForm",
85 is done only the first time FvwmForm is invoked, or after
86 "FvwmForm-Form" updates the file.
88 When the file ".FvwmForm" is read, it is done by sending the command
89 "Read .FvwmForm Quiet" to fvwm. Because of the way the "read"
90 command works, the file can reside in your personal fvwm user directory,
91 or be in the fvwm data directory. See the description of the read
92 command in the fvwm man page for more information about the environment
93 variable $FVWM_USERDIR.
95 Then FvwmForm reads the rest of the configuration fvwm has stored
96 up. Fvwm stores configuration on an ongoing basis. The initial
97 configuration comes from the .fvwm2rc file. Other sources,
98 including "Read" commands can define a form.
100 When letting FvwmForm and fvwm read files, remember that these files
101 contain commands that can execute shell commands, so you should be
102 careful about setting permissions on these files.
104 When FvwmForm is invoked with a window context, e.g. from a window menu,
105 all commands it sends to Fvwm will have that window context.
106 This would allow FvwmForm to control the window it is invoked from.
108 After all the configuration commands have been read, FvwmForm displays
109 the form defined by the commands.
112 FvwmForm creates a built-in form named "FvwmForm-Form" that creates
113 a file called ".FvwmForm". This file contains saved default form colors and
114 fonts. Other forms use these defaults unless they are overridden within the
117 The default creating form would normally be invoked from a "module menu".
118 For example, if you call your module menu "Module-Popup", you would
121 AddToMenu "Module-Popup" "FvwmForm Defaults" FvwmForm FvwmForm-Form
123 When you select "FvwmForm Defaults" from your module menu,
124 a form is displayed that shows the current defaults and allows you
125 to change them. If you activate the "Save Restart Me" button,
126 the ".FvwmForm" file is written and "FvwmForm-Form" exits and restarts
127 to show the new defaults.
129 An example of what this file might contain after a save is:
131 # This file last created by FvwmForm-Form on Sun Nov 28 11:18:26 EST 1999.
132 *FvwmFormDefault: Font 10x20
133 *FvwmFormDefault: InputFont 8x13bold
134 *FvwmFormDefault: ButtonFont 10x20
135 *FvwmFormDefault: TimeoutFont 10x20
136 *FvwmFormDefault: Fore white
137 *FvwmFormDefault: Back cornflowerblue
138 *FvwmFormDefault: Colorset -1
139 *FvwmFormDefault: ItemFore green
140 *FvwmFormDefault: ItemBack gray40
141 *FvwmFormDefault: ItemColorset -1
142 *FvwmFormDefault: ButtonPointer hand2
143 *FvwmFormDefault: ButtonInPointer star
144 *FvwmFormDefault: InputPointer gumby
145 *FvwmFormDefault: ButtonPointerFore blue
146 *FvwmFormDefault: ButtonPointerBack gray
147 *FvwmFormDefault: ButtonInPointerFore gray
148 *FvwmFormDefault: ButtonInPointerBack blue
149 *FvwmFormDefault: InputPointerFore
150 *FvwmFormDefault: InputPointerBack
152 The commands in this file are just like any other FvwmForm
153 command except that they start with "*FvwmFormDefault".
155 FvwmForm only reads the file ".FvwmForm" the first time it is started
156 or after the file is changed by "FvwmForm-Form". It does so
157 by sending the command "*FvwmFormDefault: Read x". With "x" set to "y" or
158 "n". "n" makes FvwmForm send a "read .FvwmForm quiet" command to fvwm.
160 .SH VARIABLE SUBSTITUTION
162 If you supply variables and values on the command line used to start
163 FvwmForm (like this):
166 Module FvwmForm MyForm ACTION=Browse "TITLE=Browse Form"
169 Then all FvwmForm input commands undergo variable substitution.
170 The variables from the command line are exported.
171 Then every command gets expanded using the variables from the
172 environment. For example, assuming the above invocation
173 of "MyForm", commands would be changed like this:
176 Before *MyForm: Text "$TITLE, Home $HOME, Going to $ACTION"
177 After *MyForm: TEXT "Browse Form, Home /home/me, Going to Browse"
180 Using this facility should make it possible for one form to be used for
181 different sets of input data.
184 The following commands can be set in the .fvwm2rc file or thru
185 any of the other ways that fvwm can accept commands.
186 The simplest technique is to create a file in the read-only
187 architecture-independent data directory,
188 [PREFIX/share/fvwm] or your personal fvwm directory [$HOME/.fvwm],
189 that matches the form alias.
191 In the following paragraphs the string "FvwmForm"
192 would normally be the form alias.
194 FvwmForm reads commands before the form is ever displayed,
195 and while the form is being displayed.
197 The following commands are accepted before the form is displayed:
235 The following commands are accepted while the form is displayed:
242 The "Map", "UnMap" and "Stop" facility is under development
243 and is currently not explained in this document, since it is likely
246 The order of the options DOES matter.
247 The first background text color, "*FvwmFormBack",
251 background color for the entire form.
253 Other than that, colors, fonts, text, choices and buttons
254 can be intermixed in any order.
255 The are no builtin limits on form size, number of items on
256 a form, or number of fonts or colors used.
259 .B *FvwmForm: GrabServer
260 This option makes FvwmForm grab the mouse pointer on startup.
261 This feature is useful for things like logout verification.
263 .B *FvwmForm: WarpPointer
264 This option makes FvwmForm warp the mouse pointer into its window on startup.
265 It saves the user some mouse-travelling.
267 .B *FvwmForm: Geometry \fIgeometry\fP
268 Specifies the FvwmForm window location. This is similar to what
269 the Position option does but is more flexible.
271 .B *FvwmForm: Position \fIx\fP \fIy\fP
272 Puts the FvwmForm window at location (\fIx\fP, \fIy\fP) on the screen.
273 By convention, a negative \fIx\fP (\fIy\fP) value measures
274 distance from the right (bottom) of the screen.
276 If this option is omitted, FvwmForm starts at the center of the screen.
278 .B *FvwmForm: Colorset \fIn\fP
279 Tells the module to use colorset \fIn\fP. See FvwmTheme.
281 .B *FvwmForm: Back \fIcolor\fP
282 Specifies the background color of the FvwmForm window
283 and any text in the window.
284 The first background color FvwmForm reads determines the overall
285 screen background color. Switches off the Colorset option.
288 .B *FvwmForm: Fore \fIcolor\fP
289 Specifies the foreground color for displaying text labels.
290 Switches off the Colorset option.
293 .B *FvwmForm: ItemColorset \fIn\fP
294 Tells the module to use colorset \fIn\fP for items. See FvwmTheme.
296 .B *FvwmForm: ItemBack \fIcolor\fP
297 Specifies the background color for the text input windows, and
299 Buttons are displayed as 3D depressable buttons.
300 Inputs are displayed as 3D indented fields.
301 Medium shade background colors work best.
302 Switches off the ItemColorset option.
305 .B *FvwmForm: ItemFore \fIcolor\fP
306 Specifies the foreground color for the text input strings and button
307 text. Switches off the ItemColorset option.
310 .B *FvwmForm: Font \fIfont\fP
311 Specifies the font for displaying plain text.
314 .B *FvwmForm: ButtonFont \fIfont\fP
315 Specifies the font for text in the action buttons.
318 .B *FvwmForm: InputFont \fIfont\fP
319 Specifies the font for text input.
322 .B *FvwmForm: TimeoutFont \fIfont\fP
323 Specifies the font for display the timeout counter and related text.
326 .B *FvwmForm: Line \fIjustification\fP
328 A line can contain any number of text, input, buttons and choice items.
329 A FvwmForm window can have any number of lines.
330 The width of the window is that of the longest line.
332 Justification of items in the line is specified by \fIjustification\fP,
333 which can be one of the following:
336 Items are justified to the left of the window.
339 Items are justified to the right of the window.
342 Items are placed in the center of the window.
345 If there is only one item in the line, the item is centered in the window.
346 If two or more items are present, they are spread to fill the whole
349 .B *FvwmForm: Message
350 Defines a text area on the form that contains the last error message
351 from fvwm. For purposes of determining form size, the message area
352 is considered to be 80 bytes long. Its actual length is the same as
353 the message received. If the message exceeds 80 bytes, you can see the
354 rest of the message by resizing the form.
356 You should not attempt to put any text, buttons or input fields on the
357 same line after a message field. Messages greater than 80 bytes will overlay
358 the remainder of the line.
360 .B *FvwmForm: PadVText "\fIPixels\fP"
361 The number of pixels used as vertical padding between text items, line
362 to line. The default is 6 which looks good on lines containing text
363 intermixed with input boxes, choices or buttons.
365 For straight text, such as might appear on a help form, padding of
368 (There are lots of other padding values used in form layout
369 which can't currently be changed with commands.)
371 .B *FvwmForm: Text "\fIstring\fP"
372 Displays \fIstring\fP as plain text.
373 Line breaks must be achieved by multiple *FvwmForm: Line and *FvwmForm: Text
375 Blanks may be used to provide extra padding between items.
377 .B *FvwmForm: Title "\fIstring\fP"
378 Displays \fIstring\fP as the window's title. The string
379 must be enclosed in double quotes. Using this command with anything
380 other than a string enclosed in quotes creates a blank title.
381 If this command is not used, the window title is the form alias.
383 .B *FvwmForm: Input \fIname\fP \fIsize\fP "\fIinit_string\fP"
384 Specifies a text input item with name \fIname\fP.
385 A sub window of \fIsize\fP characters in width is used for editing.
386 If \fIinit_string\fP is present, it is the initial string when
387 FvwmForm starts or resets itself.
388 The default initial string is "".
390 You can mouse paste into an input field using button 2.
391 Buttons 1 and 3 move the cursor in an input field.
393 Input fields are always in insert mode, overtyping is not supported.
395 Emacs type keystrokes are supported.
397 Control-a, Home and Begin move to the front of an input field.
398 Control-e and End move to the end of an input field.
399 Control-b and Left move left in an input field.
400 Control-f and Right move right in an input field.
401 Control-p, Up, and Shift-Tab move to a previous input field if any,
402 if the form has one input field, recall previous value.
403 Control-n, Down, Return, Line-feed and Tab move to the next input field if any,
404 if the form has one input field, for control-n and Down, restore previous
406 Control-h moves backward in an input field erasing a character.
407 Control-d and Delete delete the next character in an input field.
408 Control-k erases for the cursor to the end of an input field.
409 Control-u erases the entire input field.
411 When a form executes a command, all the input values are saved in
412 a ring of input history 50 items deep.
414 Meta(mod2)-"<" retrieves the previous value of an input field.
415 Meta(mod2)-">" retrieves the next value of an input field.
417 (For forms with one input field, use the much easier arrow keys.)
420 .B *FvwmForm: Selection \fIname\fP \fItype\fP
421 This option starts a selection item with name \fIname\fP.
422 Its choices are specified in following configuration commands.
423 The option \fItype\fP is one of the following:
426 The selections are mutually exclusive.
429 This is a multiple-choice selection.
431 .B *FvwmForm: Choice \fIname\fP \fIvalue\fP "on | off" "\fIstring\fP"
432 Specifies a choice for a proceeding selection.
433 The choice item has a \fIname\fP and a \fIvalue\fP these are used in
434 commands. See *FvwmForm: Command.
435 The \fIstring\fP is displayed to the right of the choice button
438 The choice assumes the specified initial state ("on" means selected)
439 when FvwmForm starts or resets.
440 If the selections are mutually exclusive,
441 FvwmForm does NOT detect inconsistencies in the initial states of the choices,
442 i.e. two or none of the choices can be selected.
443 However, once the user selects a choice,
444 FvwmForm assures only one is selected.
446 .B *FvwmForm: Button \fItype\fP "\fIstring\fP" [\fIkey\fP]
447 This option specifies an action button.
448 The button has \fIstring\fP as a label,
449 and executes a set of Fvwm \fIcommand\fP when it is activated.
450 The commands are the following *FvwmForm: Commands.
452 The optional \fIkey\fP specifies a keyboard shortcut that activates
454 It is in either a control character, specified as ^@, ^A, ..., ^_,
455 or a function key, specified as F1, F2, ..., F35.
456 Control keys that are used for cursor movement in text input fields
457 cannot activate any buttons, with the exception of
458 TAB (^I), RETURN (^M), LINEFEED (^J),
459 which can activate a button when the cursor is in the last text input field.
461 The behavior of the button is determined by \fItype\fP:
464 FvwmForm continues execution after sending the commands.
467 After sending the commands,
468 FvwmForm resets all the values to the initial ones,
469 and then continues execution.
472 FvwmForm quits after sending the commands.
474 .B *FvwmForm: Command \fIcommand\fP
475 This option specifies an Fvwm command associated with the current button.
476 There can be more than one command attached to a button.
477 Commands that appear before any *FvwmForm: Button option are executed
478 at start-up time. This is usually a beep that gets the user's attention.
480 Commands starting with an exclamation mark (!) are executed by FvwmForm,
481 all other commands are sent to Fvwm for execution.
482 Before sending each command to Fvwm, FvwmForm recognizes variables of the
483 following forms, and supply values to them.
486 If \fIname\fP corresponds to a text input field,
487 the result is the user's input string.
488 The special chars single-quote, double-quote and backslash
489 are preceded by a backslash.
491 If \fIname\fP corresponds to a choice,
492 the result is the value of the choice (as specified in *FvwmForm: Choice)
493 if the choice is selected.
494 If the choice is not selected, the result is a blank string.
496 If \fIname\fP corresponds to a selection,
497 the result will be a list of the selected values of all its choices
500 .B $(\fIname\fP?\fIstring\fP)
501 If \fIname\fP is a text input field and its value is not an empty string,
502 the result is \fIstring\fP,
503 with recursive variable substitution applied.
504 If the input value is empty, the result is empty.
506 If \fIname\fP is a choice and it is selected,
507 the result is \fIstring\fP,
508 with recursive variable substitution applied.
509 If the choice is not selected, the result is empty.
511 .B $(\fIname\fP!\fIstring\fP)
512 The same as the above, except that the converse conditions are taken.
514 When using the "?" and "!" forms to pass a string, the string is delimited
515 by a right parenthesis. If you need to put a right parenthesis in a string,
516 precede the right parenthesis with a backslash.
519 .B *FvwmForm: UseData \fIdatafile\fP \fIleading\fP
520 Tells FvwmForm to read a data file and extract data from module
521 commands that match the "leading" argument and an input,
522 choice, or selection variable in a form.
524 This lets a form display current fvwm module configuration data.
525 For an example of how this works, examine the file "FvwmForm-Rlogin"
526 which is installed in read-only architecture-independent data directory,
527 [PREFIX/share/fvwm] and shown below.
529 For choices, the setting of the button is represented as the
530 word "on", all other values for a setting are treated as off.
532 For selections, the setting of each choice button is determined
533 by matching the current value of the selection against each
534 choice. Currently, this only works correctly for selections
535 that allow a single choice.
537 .B *FvwmForm: ButtonPointer \fIpointername\fP
538 Change the default mouse pointer (hand2) used when hovering over a button.
539 The pointername must be one of the names defined in
540 the include file X11/cursorfont.h (without the XC_ prefix).
544 .B *FvwmForm: ButtonInPointer \fIpointername\fP
545 Change the default mouse pointer (hand1) used
546 while a button is pressed in.
547 The pointername must be one of the names defined in
548 the include file X11/cursorfont.h (without the XC_ prefix).
552 .B *FvwmForm: InputPointer \fIpointername\fP
553 Change the default mouse pointer (xterm) used
554 while the pointer is over a text field.
555 The pointername must be one of the names defined in
556 the include file X11/cursorfont.h (without the XC_ prefix).
560 .B *FvwmForm: ButtonPointerFore|Back \fIcolor\fP
561 Change the default mouse pointer foreground and background colors
562 used when hovering over a button.
566 .B *FvwmForm: ButtonInPointerFore|Back \fIcolor\fP
567 Change the default mouse pointer foreground and background colors
568 used while a button is pressed in.
572 .B *FvwmForm: InputPointerFore|Back \fIcolor\fP
573 Change the default mouse pointer foreground and background colors
574 used while the pointer is over a text field.
578 .B *FvwmForm: Timeout \fIseconds\fP \fIcommand\fP \fI"text"\fP
579 Set up FvwmForm to time out after the amount of \fIseconds\fP
580 specified. When the timer hits zero, \fIcommand\fP executes. The
581 \fItext\fP field is displayed much like a \fIText\fP
582 field, except that a '%%' in the line is replaced automatically by
583 the amount of time left on the timer. The value gets updated every
584 second as the timer counts down.
585 There can only be one timeout field per form.
588 All of the following "examples" are installed in the
589 read-only architecture-independent data directory,
590 [PREFIX/share/fvwm], during fvwm installation.
592 The following commands create a menu to invoke the examples:
596 AddToMenu Forms "&Q. QuitVerify" Module FvwmForm FvwmForm-QuitVerify
597 AddToMenu Forms "&C. Capture" Module FvwmForm FvwmForm-Capture
598 AddToMenu Forms "&R. Rlogin" Module FvwmForm FvwmForm-Rlogin
599 AddToMenu Forms "&T. Talk" Module FvwmForm FvwmForm-Talk
601 .SH EXAMPLE 1 - Quit Verify
602 This example simulates the mwm way of confirming logout.
603 Return does the logout, Escape cancels logout. It times out after 20
604 seconds and performs the equivalent of the 'Logout' button.
606 DestroyModuleConfig FvwmForm-QuitVerify: *
607 *FvwmForm-QuitVerify: GrabServer
608 *FvwmForm-QuitVerify: WarpPointer
609 *FvwmForm-QuitVerify: Command Beep
610 *FvwmForm-QuitVerify: Line center
611 *FvwmForm-QuitVerify: Text "Do you really want to logout?"
612 *FvwmForm-QuitVerify: Line expand
613 *FvwmForm-QuitVerify: Button quit "Logout" ^M
614 *FvwmForm-QuitVerify: Command Quit
615 *FvwmForm-QuitVerify: Button restart "Restart" ^R
616 *FvwmForm-QuitVerify: Command Restart
617 *FvwmForm-QuitVerify: Button quit "Cancel" ^[
618 *FvwmForm-QuitVerify: Command Nop
619 *FvwmForm-QuitVerify: Timeout 20 Quit "Automatic logout will occur in %% seconds."
622 .SH EXAMPLE 2 - Remote Login
623 This example lets the user type in a host name,
624 an optional user name,
625 and opens an xterm window from the remote host.
627 DestroyModuleConfig FvwmForm-Rlogin: *
628 *FvwmForm-Rlogin: WarpPointer
629 *FvwmForm-Rlogin: Line center
630 *FvwmForm-Rlogin: Text "Login to Remote Host"
631 *FvwmForm-Rlogin: Line center
632 *FvwmForm-Rlogin: Text "Host:"
633 *FvwmForm-Rlogin: Input HostName 20 ""
634 *FvwmForm-Rlogin: Line center
635 *FvwmForm-Rlogin: Selection UserSel single
636 *FvwmForm-Rlogin: Choice Default Default on "same user"
637 *FvwmForm-Rlogin: Choice Custom Custom off "user:"
638 *FvwmForm-Rlogin: Input UserName 10 ""
639 *FvwmForm-Rlogin: Line expand
640 *FvwmForm-Rlogin: Button quit "Login" ^M
641 *FvwmForm-Rlogin: Command Exec exec ssh $(Custom?-l $(UserName)) $(HostName) xterm -T xterm@$(HostName) -display $HOSTDISPLAY &
642 # Before saving the data, remove any previously saved data:
643 *FvwmForm-Rlogin: Command DestroyModuleConfig FvwmForm-RloginDefault: *
644 # The "Login" button causes a login and a saving of the current data:
645 *FvwmForm-Rlogin: Command !( /bin/echo \\
646 "# Created by FvwmForm-Rlogin on: `/bin/date`."; /bin/echo \\
647 '*FvwmForm-RloginDefault: HostName $(HostName)'; /bin/echo \\
648 '*FvwmForm-RloginDefault: UserName $(UserName)'; /bin/echo \\
649 '*FvwmForm-RloginDefault: Default $(Default?on)'; /bin/echo \\
650 '*FvwmForm-RloginDefault: Custom $(Custom?on)' \\
651 ) > ${FVWM_USERDIR}/.FvwmForm-Rlogin
652 *FvwmForm-Rlogin: Button restart "Reset"
653 *FvwmForm-Rlogin: Button quit "Cancel" ^[
654 *FvwmForm-Rlogin: Command Nop
655 # Tell FvwmForm to read vars from the .FvwmForm-RloginDefault file:
656 *FvwmForm-Rlogin: UseData .FvwmForm-Rlogin *FvwmForm-RloginDefault
659 .SH EXAMPLE 3 - Capture Window
660 This example provides a front-end to xwd, xwud, and xpr.
662 DestroyModuleConfig FvwmForm-Capture: *
663 *FvwmForm-Capture: Line center
664 *FvwmForm-Capture: Text "Capture Window"
665 *FvwmForm-Capture: Line left
666 *FvwmForm-Capture: Text "File: "
667 *FvwmForm-Capture: Input file 25 "/tmp/Capture"
668 *FvwmForm-Capture: Line left
669 *FvwmForm-Capture: Text "Printer: "
670 *FvwmForm-Capture: Input printer 20 "$PRINTER"
671 *FvwmForm-Capture: Line expand
672 *FvwmForm-Capture: Selection PtrType single
673 *FvwmForm-Capture: Choice PS ps on "PostScript"
674 *FvwmForm-Capture: Choice Ljet ljet off "HP LaserJet"
675 *FvwmForm-Capture: Line left
676 *FvwmForm-Capture: Text "xwd options:"
677 *FvwmForm-Capture: Line expand
678 *FvwmForm-Capture: Selection Options multiple
679 *FvwmForm-Capture: Choice Brd -nobdrs off "No border"
680 *FvwmForm-Capture: Choice Frm -frame on "With frame"
681 *FvwmForm-Capture: Choice XYZ -xy off "XY format"
682 *FvwmForm-Capture: Line expand
683 *FvwmForm-Capture: Button continue "Capture" ^M
684 *FvwmForm-Capture: Command Exec exec xwd -out $(file) $(Options) &
685 *FvwmForm-Capture: Button continue "Preview"
686 *FvwmForm-Capture: Command Exec exec xwud -in $(file) &
687 *FvwmForm-Capture: Button continue "Print"
688 *FvwmForm-Capture: Command Exec exec xpr -device $(PtrType) $(file) | lpr -P $(printer) &
689 *FvwmForm-Capture: Button quit "Quit"
692 .SH EXAMPLE 4 - Talk Form
693 This example provides a replacement for the module FvwmTalk.
694 There are 2 forms, "FvwmForm-Talk." which executes commands,
695 or sends commands to fvwm for execution, and "FvwmForm-TalkHelp."
696 which is a help form.
698 In the help form, notice how vertical line
699 spacing is changed. Normal FvwmForm line spacing assumes text is
700 intermixed with buttons, help forms require different spacing.
703 # FvwmForm-Talk - Basic replacement for FvwmTalk
704 DestroyModuleConfig FvwmForm-Talk: *
705 *FvwmForm-Talk: WarpPointer
707 *FvwmForm-Talk: Line center
708 *FvwmForm-Talk: Text "Talk to Fvwm"
709 *FvwmForm-Talk: Line left
710 *FvwmForm-Talk: Text "Command:"
711 *FvwmForm-Talk: Input Command 80 ""
712 *FvwmForm-Talk: Line left
713 *FvwmForm-Talk: Text "Msg:"
714 *FvwmForm-Talk: Message
715 *FvwmForm-Talk: Line center
717 *FvwmForm-Talk: Button restart "Return - Execute" ^M
718 *FvwmForm-Talk: Command $(Command)
719 *FvwmForm-Talk: Button continue "F1 - Help" F1
720 *FvwmForm-Talk: Command Module FvwmForm FvwmForm-TalkHelp
721 *FvwmForm-Talk: Button restart "F3 - Reset input" F3
722 *FvwmForm-Talk: Command Nop
723 *FvwmForm-Talk: Button quit "F4 - Dismiss" F4
724 *FvwmForm-Talk: Command Nop
728 # FvwmForm-TalkHelp - Help Text for FvwmForm-Talk
729 DestroyModuleConfig FvwmForm-TalkHelp: *
730 *FvwmForm-TalkHelp: WarpPointer
732 *FvwmForm-TalkHelp: Line center
733 *FvwmForm-TalkHelp: Text "Talk to Fvwm - Help"
734 *FvwmForm-TalkHelp: Line left
735 *FvwmForm-TalkHelp: Text " "
736 *FvwmForm-TalkHelp: Line left
737 *FvwmForm-TalkHelp: PadVText 0
738 *FvwmForm-TalkHelp: Text "Enter commands in the \"Command:\" input field."
739 *FvwmForm-TalkHelp: Line left
740 *FvwmForm-TalkHelp: Text "Commands beginning with \"!\" are executed by the"
741 *FvwmForm-TalkHelp: Line left
742 *FvwmForm-TalkHelp: Text "shell as a sub-process of the form."
743 *FvwmForm-TalkHelp: Line left
744 *FvwmForm-TalkHelp: Text "All other commands are sent to fvwm for execution."
745 *FvwmForm-TalkHelp: Line left
746 *FvwmForm-TalkHelp: Text ""
747 *FvwmForm-TalkHelp: Line left
748 *FvwmForm-TalkHelp: Text "Fvwm error messages are shown on the \"Msg:\" line."
749 *FvwmForm-TalkHelp: Line left
750 *FvwmForm-TalkHelp: Text ""
752 *FvwmForm-TalkHelp: Line center
753 *FvwmForm-TalkHelp: Button quit "Return - Dismiss" ^M
754 *FvwmForm-TalkHelp: Command Nop
757 .SH BUGS AND LIMITATIONS
758 FvwmForm is a fairly simple method of providing input.
759 There is no input validation facility.
760 FvwmForm has no way of dealing with lists.
762 Report bugs to the fvwm-workers list.
765 FvwmForm is original work of Thomas Zuwei Feng
766 (ztfeng@math.princeton.edu).
768 Copyright Feb 1995, Thomas Zuwei Feng. No guarantees or warranties are
769 provided or implied in any way whatsoever. Use this program at your own
770 risk. Permission to use, modify, and redistribute this program is hereby
771 given, provided that this copyright is kept intact.
774 During the fall of 1998, Dan Espen removed all form size limits,
775 added unlimited font and color changing, form spacing control,
776 configuration file reading, global control of appearance,
777 synchronous command execution, Error message display,
778 variable substitution,
779 configurable pointers,
780 and lots of other damage.
781 No additional copyright is imposed.