我的应用程序只使用纯X11 API编写,即不使用GTK、qt或任何其他中间件。所有的一切都是通过低级别的Xlib API完成的,例如XCreateWindow()等等。是否可以从纯X11应用程序中将项添加到联合的全局菜单栏,或者这会迫使我使用像GTK这样的工具包来处理所有窗口和事件循环吗?我真的很想坚持我目前的纯基于X11的实现,但是如果可以为我的应用程序添加几个菜单项到联合的全局菜单栏,那就太好了。
发布于 2014-06-19 12:01:15
若要每次显示菜单,需要调用com.canonical.AppMenu.Registrar.RegisterWindow方法/com/canonical/AppMenu/Registrar传递窗口id和菜单路径( string id,这也是服务名称--通常使用某些路径和win id构建)。然后,您需要在该服务名称上实现com.canonical.dbusmenu接口--即GetLayout、GetGroupProperties、Event、AboutToShow和LayoutUpdated方法。
我做了简单的库来实现所有这些在JavaScript中使用节点-dbus和节点-x11库。参见示例,它为它创建了toplevel窗口和统一菜单(这里没有glib / libdbus / libx11依赖项,纯网络)
https://stackoverflow.com/questions/24293123
复制相似问题