Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2928344
  • 博文数量: 471
  • 博客积分: 10012
  • 博客等级: 上将
  • 技术积分: 5255
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-10 23:58
文章分类

全部博文(471)

文章存档

2011年(3)

2010年(61)

2009年(52)

2008年(212)

2007年(69)

2006年(74)

我的朋友

分类: LINUX

2008-04-17 13:43:49

Fvwm中文手册-FVWM(六)

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

AddToMenu命令里没有结束符end-of-menu),在配置文件里多个菜单也不需要在相邻的区域里定义。上面例子里加引号的部分(或一个单词)是菜单的标签,其余部分是菜单项关联的命令。空标签“”Nop函数用来添加一个分隔符(separator)。

关键词DynamicPopUpAction DynamicPopDownAction作为菜单项名称时具有其特殊的含义。它们关联的操作在菜单弹出或消失时执行,可以通过这种方式实现动态菜单。使用 DestroyMenu 自我销毁并从头重建是可能的,菜单销毁后,不要忘记再次添加动态操作(除非当销毁菜单的时候使用了recreate选项)。

注意:不要触发需要用户交互的操作,它们可能失败并弄糟你的菜单。参看Silent命令。

警告:在动态菜单操作时不要使用MenuStyle命令,它将使fvwm崩溃。

有几个随着fvwm一起发布的有关动态菜单的脚本。它们都有自己的手册页,其中一些,特别是fvwm-menu-directory fvwm-menu-desktop,可以和 DynamicPopupAction 一起使用来创建目录列表或GNOME/KDE应用列表。

例如(文件浏览器File browser):

         # 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'

例如图像菜单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 作为菜单项名称也有其特殊含义,它会在你试图弹出一个并不存在的子菜单时被执行。使用这个函数,你能够定义和销毁一个不工作的菜单。它后面可以使用任何命令,但是当跟随一个由 AddToFunc 命令定义的函数的时候,fvwm执行下面的命令:

         Function

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:

 

         DestroyFunc MakeMissingDirectoryMenu

         AddToFunc MakeMissingDirectoryMenu

         + I PipeRead fvwm_make_directory_menu.sh $0

 

         DestroyMenu SomeMenu

         AddToMenu SomeMenu

         + MissingSubmenuFunction MakeMissingDirectoryMenu

         + "Root directory" Popup /

这是文件浏览器的另外一种实现方式。

在关键词 Title 后面添加top选项可以在菜单顶部添加标题这将覆盖先前的标题。

         AddToMenu Utilities Tools Title top

菜单标签里第一个Tab键之前的文本与菜单左边对齐右边的文本与第二列左对齐剩余的文本右对齐第三列。所有其它的Tab被空格替换。可以使用MenuStyle命令的ItermFormat选项改变这个格式。

如果菜单标签里含有标记&,接下来的字母表示该菜单项的热键。标签里的热键会添加下划线。字母&使用&&的方式获得。

如果菜单标签里含有由标记*隔开的字符串,两个*之间的文本表示这个菜单项的图标名称。字母*使用**的方式获得。例如

         + Calculator*xcalc.xpm* Exec exec xcalc

将在菜单项Calculator中插入图标xcalc.xpm下面

         + *xcalc.xpm*           Exec exec xcalc

将删除标签但留下图标。

如果菜单标签里含有由标记%隔开的字符串,两个%之间的文本表示这个菜单项的图标名称(所谓的显示在菜单标签左边的mini icon)。同样方式,第二个mini icon显示这个菜单项的右边。字母%使用%%的方式获得。例如:

         + Calculator%xcalc.xpm% Exec exec xcalc

将在菜单项Calculator左边插入图标"xcalc.xpm",下面

         + %xcalc.xpm%           Exec exec xcalc

将删除标签,但留下图标。通常这里使用的图片比较小(大概16x16)。

注意:%之间的图标加在菜单项的左边或右边,但*不是。

如果菜单名称里(不是标签)包含由@隔开的字符串,两个@之间的文本表示菜单左边(与菜单底部对齐)显示的xpmbitmap图像名称。你可以使用 MenuStyle 命令的 SidePic 选项达到同样的效果。字母@使用@@的方式获得。例如:

         AddToMenu StartMenu@linux-menu.xpm@

创建一个左边带有side picture的菜单。

如果菜单名称里包含由^隔开的字符串,两个^之间的文本表示side picture使用的X11颜色的名字。当side picture的高度比创建的菜单要低的时候,这个颜色会用来填充剩余的部分。你可以使用MenuStyle 命令的 SideColor 选项达到同样的效果。字母^使用^^的方式获得。例如:

         AddToMenu StartMenu@linux-menu.xpm@^blue^

将在菜单的左下角添加一个图片。

所有上面的例子,菜单的名称都是必须的,其它位于不同分隔符之间的字符串都是可选的。

ChangeMenuStyle menustyle menu ...

改变菜单menu的风格为menustyle。参数中可以指定多个菜单。例如:

         ChangeMenuStyle pixmap1 \

                 ScreenSaverMenu ScreenLockMenu

CopyMenuStyle orig-menustyle dest-menustyle

复制orig-menustyle dest-menustyleorig-menustyle是已经存在的菜单风格。如果dest-menustyle不存在则创建它。

DestroyMenu [recreate] menu

销毁菜单后面对它的使用不再有效。你能够通过这个命令在 fvwm 会话期间改变一个菜单的内容。这个菜单能够使用AddToMenu命令重建。参数recreate通知fvwm丢弃所有的菜单项,包括标题。

         DestroyMenu Utilities

DestroyMenuStyle menustyle

销毁名为menustyle的菜单样式,所有使用这个样式的菜单将使用默认样式。默认的菜单样式不能被销毁。

         DestroyMenuStyle pixmap1

阅读(1132) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~