A text label only serves the purpose of explanation. It cannot accept any input. A text input field can be used to edit a single-line string. FvwmForm accepts Emacs-style cursor movement keys. No copying and pasting functions exist.
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 clicked on, will send a set of commands to Fvwm. FvwmForm will do variable substitutions in the command text to reflect the user's input.
Be sure to set ModulePath in your .fvwmrc file to include FvwmForm's path.
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.
The order of the options DOES matter. In general, colors and fonts should be specified first. Lines, text labels, and input items should appear in their logical order.
If this option is omitted, FvwmForm will start at the center of the screen.
Justification of items in the line is specified by justification, which can be one of the following:
The choice will assume the specified initial state ("on" means selected) when FvwmForm starts or resets. Note that if the selections are mutually exclusive, FvwmForm will 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 will assure only one is selected.
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, RETURN, LINEFEED, which can activate a button when the cursor is in the last text input field.
The behavior of the button is determined by type:
Before sending each command to Fvwm, FvwmForm recognizes variables of the following forms, and supply values to them.
If name corresponds to a choice, the result is the value of the choice (as specified in *FvwmFormChoice) 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.
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.
*QuitVerifyGrabServer
*QuitVerifyWarpPointer
*QuitVerifyFont *helvetica*m*r*n*14*
*QuitVerifyButtonFont *helvetica*m*o*n*14*
*QuitVerifyFore Black
*QuitVerifyBack Light Gray
*QuitVerifyItemFore Wheat
*QuitVerifyItemBack Gray50
# begin items
*QuitVerifyCommand Beep
*QuitVerifyLine center
*QuitVerifyText "Do you really want to logout?"
*QuitVerifyLine expand
*QuitVerifyButton quit "Logout" ^M
*QuitVerifyCommand Quit
*QuitVerifyButton quit "Cancel" ^[
*QuitVerifyCommand Nop
# Fvwm window style
Style "QuitVerify" NoTitle, NoHandles, BorderWidth 3
*RloginWarpPointer
*RloginFont *helvetica*m*r*n*14*
*RloginButtonFont *helvetica*m*o*n*14*
*RloginInputFont *cour*m*r*n*14*
*RloginFore Black
*RloginBack Light Gray
*RloginItemFore Wheat
*RloginItemBack Gray50
# begin items
*RloginLine center
*RloginText "Login to Remote Host"
*RloginLine center
*RloginText "Host:"
*RloginInput HostName 20 ""
*RloginLine center
*RloginSelection UserSel single
*RloginChoice Default Default on "same user"
*RloginChoice Custom Custom off "user:"
*RloginInput UserName 10 ""
*RloginLine expand
*RloginButton quit "Login" ^M
*RloginCommand Exec exec rsh $(Custom?-l $(UserName)) $(HostName) xterm -T xterm@$(HostName) -display $HOSTDISPLAY &
*RloginButton restart "Clear"
*RloginButton quit "Cancel" ^[
*RloginCommand Nop
*CaptureFont *helvetica*m*r*n*14*
*CaptureButtonFont *helvetica*m*o*n*14*
*CaptureInputFont *cour*m*r*n*14*
*CaptureLine center
*CaptureText "Capture Window"
*CaptureLine left
*CaptureText "File: "
*CaptureInput file 25 "/tmp/Capture"
*CaptureLine left
*CaptureText "Printer: "
*CaptureInput printer 20 "ps1"
*CaptureLine expand
*CaptureSelection PtrType single
*CaptureChoice PS ps on "PostScript"
*CaptureChoice Ljet ljet off "HP LaserJet"
*CaptureLine left
*CaptureText "xwd options:"
*CaptureLine expand
*CaptureSelection Options multiple
*CaptureChoice Brd -nobdrs off "No border"
*CaptureChoice Frm -frame on "With frame"
*CaptureChoice XYZ -xy off "XY format"
*CaptureLine expand
*CaptureButton continue "Capture" ^M
*CaptureCommand Exec exec xwd -out $(file) $(Options) &
*CaptureButton continue "Preview"
*CaptureCommand Exec exec xwud -in $(file) &
*CaptureButton continue "Print"
*CaptureCommand Exec xpr -device $(PtrType) $(file) | lpr -P $(printer) &
*CaptureButton