Menu menu-name [position] [double-click-action]
用sticky的方式调用先前定义的菜单。也就是说,如果用户使用单击(click)而不是拖拉(drag)的方式调用菜单,这个菜单将一直保留(stays up)。打开(bring up)菜单时鼠标双击(或者菜单和键盘按键绑定的时候快速的敲两次键),命令double-click-action会被调用。如果没有指定双击操作,在菜单上双击将什么都不做。然而,如果菜单以一个菜单项(不是标题或分隔符)开始,并且没有指定双击操作,鼠标双击时将调用这个菜单的第一项(仅当指针确实在它上面时)。
如果菜单通过键盘来调用和关闭,当菜单被调用的时候,指针将出现在之前在的位置。
position参数允许指定菜单放置在屏幕的任何地方,例如屏幕的中心或标题栏的上方。它基本的工作方式是:指定一个context-rectangle以及菜单左上角到这个矩形左上角的偏移。position参数包括几个部分:
[context-rectangle] x y [special-options]
context-rectangle可能是:
Root
当前屏幕的根窗口。
XineramaRoot
整个Xinerama屏幕的根窗口。Xinerama不支持时相当于“Root”。
Mouse
鼠标位置上1x1的矩形。
Window
上下文窗口的框架(the frame of the context window)。
Interior
上下文窗口内部(the inside of the context window)。
Title
上下文窗口或图标的标题(the title of the context window or icon)。
Button
上下文窗口的按钮n(button #n of the context window)。
Icon
上下文窗口的图标(the icon of the context window)。
Menu
当前菜单。
Item
当前菜单项。
Context
当前窗口、菜单或图标。
This
指针所在的控件(widget)。(比如窗口的角落或根窗口)
Rectangle <geometry>
用X geometry格式定义的矩形。宽和高默认为1。
如果context-rectangle字段为空或非法,则默认为“Mouse”。注意,上面所列并非在任何环境下都有意义。
偏移x和y表示菜单左上角相比context-rectangle左上角的偏移。这个数字默认以context-rectangle宽/高的百分比表示,加后缀‘m’后以该菜单宽/高的百分比表示,加后缀‘p’表示像素值。
你可以使用列表形式的值来取代单个值,它们以自己的符号(sign,正负符号)为分割,不要使用任何其它的分隔符。
如果x或y以“o”为前缀,菜单和context-rectangle的指定位置将重叠,context-rectangle宽/高的百分比位置刚好在菜单宽/高的百分比位置上。因此“o0”表示菜单和context-rectangle的top/left边重叠(x为o0时top边重叠,y为o0时left边重叠),“o100”表示bottom/right边重叠(x为o100时right边重叠,y为o100时bottom边重叠),“o50”表示它们的中心相重叠。默认为“o0”。前缀“o”是“+-m”的缩写。
‘c’被预定义为“o50”,例如:
# window list in the middle of the screen
WindowList Root c c
# menu to the left of a window
Menu name window -100m c+0
# popup menu 8 pixels above the mouse pointer
Popup name mouse c -100m-8p
# somewhere on the screen
Menu name rectangle 512x384+1+1 +0 +0
# centered vertically around a menu item
AddToMenu foobar-menu
+ "first item" Nop
+ "special item" Popup "another menu" item \
+100 c
+ "last item" Nop
# above the first menu item
AddToMenu foobar-menu
+ "first item" Popup "another menu" item \
+0 -100m
注意,你可以通过上面的方式将子菜单放在远离当前菜单的位置,鼠标不离开当前菜单你将不能够到达它,如果指针沿着子菜单的大体方向离开当前菜单,菜单仍将stays up。
special-options:
可以使用TearOffImmediately选项在不打开普通菜单的情况下创建tear-off菜单,菜单将首先以普通菜单的形式打开,然后瞬间转换为tear-off菜单。tear-off菜单的位置定义和其它窗口一样。
# Forbid fvwm to place the menu window
Style UsePPosition
# Menu at top left corner of screen
Menu Root 0p 0p TearOffImmediately
animated和Mwm或Win菜单风格或许会将菜单移动到屏幕的其它地方,如果不希望如此,可以增加Fixed选项。比如你希望菜单总是出现在屏幕右上角位置的时候,可以这么做。
你希望菜单在你单击它的菜单项的时候出现什么地方那?默认是把标题放在鼠标光标下面,但如果你希望它处于参数指定的位置,可以使用SelectInPlace选项。如果你希望指针出现在菜单的标题上,使用SelectWarp选项。注意,这些选项仅应用在PopupAsRootMenu MenuStyle选项使用的时候。
注意,对于不带位置参数的普通菜单,special-option不将有效。