3

基于 Motif 的窗口管理器 ( Mwm, Dtwm, 4Dwm, 5Dwm) 允许将自定义菜单项(带有相应的回调)添加到应用程序的窗口菜单中(参见屏幕截图,此处提供要点)。应用程序本身也需要链接-lXm(至少对于XmAddProtocols()并且XmAddProtocolCallback()可用)。

mwm 自定义窗口菜单

X Window的角度来看,这是通过客户端设置的几个额外Atom的 s 来实现的:

_MOTIF_WM_MESSAGES(ATOM) = _MOTIF_WM_OFFSET, CUSTOM_MENU_ACTION_A, CUSTOM_MENU_ACTION_B
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, _MOTIF_WM_MESSAGES
_MOTIF_WM_MENU(STRING) = "no-label                                 f.separator\n
    Custom\ Menu\ Title                      f.title\n
    XTerm                                    f.exec \"xterm &\"\n
    Custom\ Menu\ Action\ A Shift Alt<Key>F1 f.send_msg 393\n
    Custom\ Menu\ Action\ B Shift Alt<Key>F2 f.send_msg 394\n"

显然,任何现代EWMH兼容的窗口管理器都不支持此行为。此外,EWMH 规范似乎没有提供任何替代方案。

是否有任何非 Motif 跨 WM 方式来操作窗口菜单(GTKQtXlib)?

4

0 回答 0