FvwmForm
名称(NAME):
FvwmForm – Fvwm 输入表格(form)模块。
概要(SYNOPSIS):
Module FvwmForm [ Alias ]
FvwmForm 只能被fvwm调用(fork)。如果以命令行的形式调用 FvwmForm,则它将在显示版本号之后退出。
描述:
FvwmForm 提供了一种获取用户输入并执行相应操作的机制,它通过使用户填充一定的表格,和选择希望fvwm执行的操作来实现。一个表格包含了五种类型的项目:文本标签(text labels),单行文本输入框(single-line text inputs),单选框(mutually-exclusive selections), 多选框(multiple-choice selections), 操作按钮(action buttons)。
l 文本标签(text labels)只起解释的作用,并不接受任何输入。
l 超时项(timeout entry)指出超时发生时默认执行的操作。倒计时时钟的显示类似于文本标签,除了它会自动更新剩余的时间。
l 文本输入域(text input field)可以用来编辑单行字符串。FvwmForm 可以接受 Emacs 风格的光标移动快捷键。细节请参看 FvwmFormInput。不支持使用鼠标进行复制,但是可以粘贴。
l 一个选择框控件(selection)包括几个选项。每个选项包括一个按钮(push-button),和一个解释性的文本标签。单选框的按钮显示为圆形,多选框的按钮显示为圆形。
l 操作按钮(action buttons)被激活时将发送一个或多个命令给Fvwm,或者执行shell命令。执行的shell命令可以包含文本输入域的内容并反映选择框控件的设置。操作按钮可以使用键盘或鼠标激活。
初始化(INITIALIZATION):
Alias 参数为空时调用 FvwmForm,将使用以“*FvwmForm”开始的配置。
通常来说,你应该使用一个别名调用FvwmForm。例如,命令“Module FvwmForm Rlogin”使用以“*Rlogin”开始的配置命令,并读取可选的配置文件“Rlogin”。
但是,所有的表格首先都会查找以“*FvwmFormDefault”开始的配置命令。这些命令通常来自于内置的“FvwmForm-Form”表格,它将命令在“.FvwmForm”文件。
“.FvwmForm”文件仅在 FvwmForm 第一次被调用时读取,或者在“FvwmForm-Form”更新了整个“.FvwmForm”文件之后。
可以通过发送命令“Read .FvwmForm Quiet”给 fvwm 来读取“.FvwmForm”文件。考虑到“read”命令的工作方式,这个文件能够保存在你的用户目录里,或者在fvwm 的数据目录里。
然后,FvwmForm 读取剩余的配置。初始的配置来自.fvwm2rc文件。
让 FvwmForm 和fvwm读取文件时,要记得这些文件包含了可能执行shell命令的命令,因此你应该谨慎设置这些文件的权限。
FvwmForm 在一个窗口上下文被调用时,例如窗口菜单,所有发送给Fvwm的命令将有那个窗口上下文。这将允许 FvwmForm 控制那个窗口。
所有的配置命令都已经被读取之后,FvwmForm 将显示这些命令定义的表格。
默认(DEFAULTS):
FvwmForm 创建一个内置的“FvwmForm-Form”表格,它创建了“.FvwmForm”文件。这个文件包含默认的表格颜色和字体。其它表格将使用这些默认值,除非在它们的定义里重新定义这些值。
这个默认创建的表格通常通过“module menu”调用。例如,如果你的模块菜单“Module-Popup”,将增加下面的行:
AddToMenu "Module-Popup" "FvwmForm Defaults" FvwmForm FvwmForm-Form
当从模块菜单里选择“FvwmForm Defaults”时,将显示一个表格,它显示了当前表格设置的默认值,并允许用户去改变。如果激活“Save Restart Me”按钮,“.FvwmForm”文件将被重写,“FvwmForm-Form”退出并重启,并显示新的默认值。
下面是执行保存操作后这个文件的示例:
# 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
这个文件里的命令与其它的 FvwmForm 命令相同,除了它们以“*FvwmFormDefault”开始。
FvwmForm 仅在启动时读取一次这个文件,或者在这个文件被“FvwmForm-Form”更改后读取。通过发送命令“*FvwmFormDefault: Read x”来完成读取操作。“x”可以设置为“y”或“n”,设置为“n”时,FvwmForm 发送一个“read .FvwmForm quiet”命令给fvwm。
变量替换(VARIABLE SUBSTITUTION):
如果使用类似下面的命令调用 FvwmForm:
Module FvwmForm MyForm ACTION=Browse "TITLE=Browse Form"
则所有的 FvwmForm 输入命令将经历变量替换。上面命令的变量被导出,然后,每个命令使用这些变量进行扩展。例如,有关上面“MyForm”的调用命令将会发生变化:
替换前: *MyForm: Text "$TITLE, Home $HOME, Going to $ACTION"
替换后: *MyForm: TEXT "Browse Form, Home /home/me, Going to Browse"
利用这个特点,一个表格能够用于设置不同的输入数据。