如果您打算从 运行您的应用程序Mwm
,您可以通过设置(例如通过XtVaAppInitialize()
)以下 X11 资源来实现所需的行为:
! Title bar buttons
Mwm*YourApplicationClassHere.clientDecoration: -minimize -maximize
! Window menu functions
Mwm*YourApplicationClassHere.clientFunctions: -minimize -maximize
这些资源在这里和这里有更详细的解释。
说到窗口菜单,这取决于使用的特定窗口管理器。Mwm
,例如,允许客户端使用Mwm*YourApplicationClassHere.windowMenu
资源设置菜单名称,菜单本身必须定义在${HOME}/.mwmrc
or globalmwmrc
或XmNmwmMenu
resource 中VendorShell
。生成的自定义窗口菜单显示为_MOTIF_WM_MENU
原子,现代窗口管理器似乎忽略了这一点。
示例mwmrc
菜单定义可能如下所示
Menu CustomMenu0
{
Restore _R Alt<Key>F5 f.restore
Move _M Alt<Key>F7 f.move
Size _S Alt<Key>F8 f.resize
Minimize _n Alt<Key>F9 f.minimize
Maximize _x Alt<Key>F10 f.maximize
Lower _L Alt<Key>F3 f.lower
no-label f.separator
Pass\ Keys _K f.pass_keys
no-label f.separator
Close _C Alt<Key>F4 f.kill
}
Menu CustomMenu1
{
Your\ Application\ Name\ Here f.title
no-label f.separator
Close _C Alt<Key>F4 f.kill
}
(见功能说明)。可以使用(此处和此处f.send_msg
的示例)添加自定义菜单项。
我很确定以上所有内容也适用于Dtwm
(CDE)。