• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

Fvwm--命令AddToMenu

发布: 2007-7-04 12:06 | 作者: admin | 来源:  网友评论 | 查看: 9次 | 进入软件测试论坛讨论

领测软件测试网 定义一个菜单。典型的定义像这样:

AddToMenu Utilities Utilities Title

#########

AddToMenu menu-name [menu-label action]


定义一个菜单。典型的定义像这样:

        AddToMenu Utilities Utilities Title
        + Xterm Exec exec xterm -e tcsh
        + Rxvt Exec exec rxvt
        + "Remote Logins" Popup Remote-Logins
        + Top Exec exec rxvt -T Top -n Top -e top
        + Calculator Exec exec xcalc
        + Xman Exec exec xman
        + Xmag Exec exec xmag
        + emacs Exec exec xemacs
        + Mail MailFunction xmh "-font fixed"
        + "" Nop
        + Modules Popup Module-Popup
        + "" Nop
        + Exit Fvwm Popup Quit-Verify

菜单可以这样触发:

        Mouse 1 R A Menu Utilities Nop
或
        Mouse 1 R A Popup Utilities


并没有一个符号表示菜单定义的结束,也不需要在配置文件中连续的定义。上面实例中,被引号引用的部分(或者第一个词)是菜单的标签,出现在菜单中。剩下的部分是fvwm命令,菜单选中时被执行。一个空的菜单标签("")和一个Nop函数用来在菜单中插入一个分隔条。

关键字DynamicPopUpAction和DynamicPopDownAction被用作菜单标签时有特殊的意义,菜单弹出和关闭时,它后面的命令会被执行。通过这种方法可以实现动态菜单。甚至使用DestroyMenu把它自己销毁,然后在重新建立都是可以的。菜单销毁后(除非销毁菜单时你使用了recreate选项)不要忘了新建菜单时也要含有相应的DynamicPopUpAction或DynamicPopDownAction项。

注意:不要执行需要和用户交互的动作。它可能会失败,搞乱菜单。见Silent命令.
警告:不要在动态菜单的命令中使用MenuStyle命令,fvwm很有可能因此而崩溃。

随fvwm一起安装的有几个自动配置菜单的脚本。它们有自己的manpage。其中fvwm-menu-directory和fvwm-menu-desktop可以和DynamicPopupAction配合使用,创建目录列表或者GNOME/KDE的应用程序列表。

        例(文件浏览器):
        #You can find the shell script fvwm_make_browse_menu.sh
        #in the utils/ directory of the distribution.
        AddToMenu BrowseMenu
        + DynamicPopupAction Piperead 'fvwm_make_browse_menu.sh BrowseMenu'

        Example (Picture menu):

        # Build a menu of all .jpg files in
        # $HOME/Pictures
        AddToMenu JpgMenu foo title
        + DynamicPopupAction Function MakeJpgMenu

        AddToFunc MakeJpgMenu
        + I DestroyMenu recreate JpgMenu
        + I AddToMenu JpgMenu Pictures Title
        + I PipeRead 'for i in $HOME/Pictures/*.jpg; \
        do echo AddToMenu JpgMenu "`basename $i`" Exec xv $i; done'

关键字MissingSubmenuFunction有类似的用途。当你弹出一个不存在的子菜单时,就执行它指定的命令。利用这个函数可以随时定义和销毁菜单。MissingSubmenuFunctionhou后可以使用任何命令,but the name of an item (that isa submenu) defined with AddToFunc follows it,并按下面方式执行指定的命令:

        Function   <function-name> <submenu-name>

那个不存在的菜单名作为第一个参数传给函数,可以用引用。


上面曾提到的fvwm-menu-directory脚本可以和MissingSubmenuFunction搭配,产生即时的递归目录列表。如:

        # There is another shell script fvwm_make_directory_menu.sh
        # in the utils/ directory of the distribution. To use it,
        # define this function in your configuration file:

        AddToFunc MakeMissingDirectoryMenu
        + I Exec fvwm_make_directory_menu.sh

        AddToMenu SomeMenu
        + MissingSubmenuFunction MakeMissingDirectoryMenu
        + "Root directory" Popup /

这是另一个文件浏览器,用子菜单显示子目录。


Titles命令可以定义菜单的标题,如果后面跟top选项,标题将被放在菜单的顶部,并覆盖原有的标题。

        AddToMenu Utilities Tools Title top


在菜单标签中第一个Tab左侧的字符与菜单左侧对齐,第一个Tab右侧的字符与第二个标签栏左侧对齐,标签中的其它字符与第三标签栏右侧对齐。所有其它的Tab替换为空格。这种格式不是固定的,你可以使用MenuStyle的ItemFormat选项改变它。

如果菜单的标签包含'&',它的下一个字符就被作为热键,并且字符下面加一个下划线来标识。要想在标签中使用'&',需插入'&&'。

菜单的标签中用'*'标识的字符串,被解释为一个图片文件名,并插入到菜单里。要在标签里使用'*',需插入'**'。例如:

        + Calculator*xcalc.xpm* Exec exec xcalc

菜单中插入一项,以"Calculator"为标签,上面有一个图片。 下面的:

        + *xcalc.xpm* Exec exec xcalc

只留下一个图片,没有标签。


菜单的标签中用'%'标识的字符串,被解释为一个图片文件名(称为mini icon),并插入到标签左侧。以同样的方式给出第二个mini icon被放在标签的右侧。要在标签里使用'%',需插入'%%'。例如:

        + Calculator%xcalc.xpm% Exec exec xcalc

菜单中插入一项,以"Calculator"为标签,标签左侧有一个图片。 下面的:

        + %xcalc.xpm% Exec exec xcalc

只留下一个图片,没有标签。
使用这种方式指定的图片应该小一些(如16x16)。


菜单名(不是标签)中用'@'标识的字符串,被解释为一个xpm或bitmap的图片文件名,并出现在整个菜单的左侧(side pixmap)。使用MenuStyle的SidePic选项也可以实现同样的效果。要在标签里使用'@',需插入'@@'。例如:

        AddToMenu StartMenu@linux-menu.xpm@

创建一个左下角带图片的菜单。


菜单名中用'^'标识的字符串被解释为X11的一个颜色名,菜单中包含side picture的部分用该颜色填充。这个颜色也可以用MenuStyle的SideColor选项指定。要在标签里使用'^',需插入'^^'。例如:

        AddToMenu [email protected]@^blue^

创建一个左下角带图片的菜单,包含图片的部分用蓝色填充。

在上面的各种情况下,最终的菜单名是去掉以上特殊部分后的结果。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网