FvwmScript
名称(NAME):
FvwmScript - 创建 GUI
概要(SYNOPSIS):
FvwmScript 只能被fvwm调用(fork),不能从命令行启动。
描述(DESCRIPTION):
FvwmScript 可以使你创建很多图形应用,比如桌面附件,带弹出菜单的按钮面板,模态对话框……。启动时,FvwmScript 读取命令行指定的文件。这个文件包括了要执行的脚本,这个脚本并不被包含在Fvwm的配置文件里。
通过键盘可以完全控制一个FvwmScript 脚本。(Shift)-Tab循环各个控件(widget),Return模拟鼠标单击操作,箭头可以移动光标或改变控件的值,Escape可以“cancels”菜单和弹出菜单。
调用(INVOCATION):
可以将命令‘Module FvwmScript name_of_script’添加在.fvwm2rc文件里来调用FvwmScript。name_of_script 文件可以斜线(slash)开始,这时,它应该是一个绝对路径。否则,FvwmScript将在几个不同的位置寻找这个文件。如果.fvwm2rc包括了‘*FvwmScript: Path path_of_the_script_directory’语句,FvwmScript将尝试在指定的目录里查找脚本文件,如果没有发现脚本文件,则继续尝试在系统配置目录(system configuration directory)和用户配置目录(user configuration directory)里查找。
配置选项(CONFIGURATION OPTIONS):
下面的命令可以用在配置文件里。仅当调用的脚本里没有使用相应的脚本命令时,它们才有效。
*FvwmScript: DefaultFont font
指定默认字体。如果没有指定,同时脚本文件里也没有使用 Font 命令指定,则使用fixed字体。
*FvwmScript: DefaultFore color
指定默认前景色。如果没有指定,同时脚本文件里也没有使用 ForeColor 命令指定,则使用黑色。
*FvwmScript: DefaultBack color
指定默认背景色。如果没有指定,同时脚本文件里也没有使用 BackColor 命令指定,则使用grey85。
*FvwmScript: DefaultHilight color
指定默认的高亮色。如果没有指定,同时脚本文件里也没有使用 HilightColor 命令指定,则使用grey100。
*FvwmScript: DefaultShadow color
指定默认的阴影色。如果没有指定,同时脚本文件里也没有使用 ShadowColor 命令指定,则使用grey55。
*FvwmScript: DefaultColorset colorset
指定默认的colorset。
脚本剖析(ANATOMY OF A SCRIPT):
FvwmScript 使用一种独特的编程语言。一个 FvwmScript 脚本由五个部分组成。Heading 包括窗口的一般特征和所有控件的默认属性。第二部分包括脚本启动时执行的命令。第三部分包括每秒周期执行的任务。第四部分包括退出时执行的命令。最后一部分包括控件的描述。一个控件可以包含11种不同类型的项(item):文本标签(text labels),单行文本输入域(single-line text inputs),单选按钮(radio buttons),多选框(checkbox),按钮(push buttons),水平和垂直滚动栏(horizontal and vertical scrollbars),矩形(rectangles),弹出菜单(pop up menus),swallowexecs 和 mini scrollbars。
Heading:
WindowTitle string
设置窗口标题。
WindowSize width height
设置窗口尺寸。
WindowPosition x y
设置窗口位置。
ForeColor {color}
设置所有控件默认的前景色。
BackColor {color}
设置所有控件默认的背景色。
HilightColor {color}
设置所有控件默认的高亮色。
ShadowColor {color}
设置所有控件默认的阴影色。
Colorset {n}
设置所有控件默认的colorset。
Font {font}
设置所有控件的默认字体。
UseGettext [locale_path]
打开用于 WindowLocaleTitle, LocaleTitle, ChangeLocaleTitle 命令和Gettext 函数的gettext 机制。如果参数为空,则使用默认的 FvwmScript locale 目录。这个目录在fvwm的安装目录下面,text domain是FvwmScript(install_prefix/share/locale/*/LC_MESSAGES/FvwmScript.mo)。你能够使用 LocalePath 命令修改或增加locale目录。这个命令必须放在WindowLocaleTitle的前面。
WindowLocaleTitle string
设置窗口标题,但使用的是UseGettext定义的locale。
初始化(INITIALISATION):
这个部分包括启动时执行的命令,例如:
Init
Begin
Do "Exec cat tada.voc > /dev/dsp"
WarpPointer 1
Set $ToDo=Restart
End
这些命令用来播放声音,移动鼠标指针到控件 1,并初始化$ToDo为“Restart”。
定时任务(PERIODIC TASKS):
这个部分包括每秒都周期执行的命令,例如:
PeriodicTasks
Begin
If (RemainderOfDiv (GetTime) 10)==0 Then
Do {Exec xcalc}
End
这个例子显示了如何每隔10秒执行xcalc。
退出函数(THE QUIT FUNCTION):
这个部分包括脚本退出时执行的命令(Quit命令之后,或者如果你使用Close,Delete或Destroy命令关闭窗口时)。例如:
QuitFunc
Begin
Do {Echo bye, bye}
End
如果使用 KillModule 命令关闭脚本,一些依赖于脚本和fvwm之间联系的命令或函数不将被执行。
脚本主体(MAIN OF A SCRIPT):
这个部分包括每个控件的描述。每个控件描述有两部分。第一个部分描述初始化属性,第二个部分包括控件收到消息时执行的命令。所有控件能够发送和接受消息。所有的消息通过数字来识别。当用户操作一个控件时,消息“UserAction”被发送到这个控件。
第一个部分的语法是:
Widget id # A number between 1 and 999 inclusive
Property
Type string
Size width height
Position x y
Title { string }
Value int
MaxValue int
MinValue int
Font string
ForeColor { color }
BackColor { color }
HilightColor { color }
ShadowColor { color }
Colorset int
Flags flagsOpt
上面最后一行Flags命令的flagsOpt选项是一个空格隔开的关键字列表,可以是Hidden, NoReliefString, NoFocus, Left / Center / Right。Hidden指定控件是否启动时隐藏。NoReliefString指定字符串是否带relief显示。NoFocus指定控件能否获得键盘焦点。默认所有的控件都可以获得焦点,除了Rectangle,HDipstick和VDipstick。当使用(Shift-)Tab切换控件时,NoFocus 控件被忽略。Left / Center / Right指定文本位置,它们仅应用于ItemDraw,List, Menu,PopupMenu and PushButton,对于ItemDraw和PushButton默认为Center,其它默认为Left。
如果使用UseGettext定义的locale目录,LocaleTitle 可以用来取代Title。
每个控件的位置必须指定。
第二个部分的语法是:
Main
Case message of
SingleClic:
Begin
# list of instructions which will be
# executed when widget receives
# message "SingleClic". This message is
# generated by the user.
End
1 :
Begin
# list of instructions which will be
# executed when widget receives
# message 1
End
End