通过停靠菜单和GTK退出

时间:2011-05-12 08:09:13

标签: cocoa macos gtk

Mac OS X中的每个应用程序都有停靠菜单中的退出菜单项和菜单栏的应用程序菜单。 但是这个项目在GTK应用程序中不起作用。即使像这样的简单应用程序http://www.levien.com/gimp/hello.html

也是如此

我尝试使用NSApplicationDelegate applicationShouldTerminate:手动处理Quit,但在这种情况下不会调用它。

有没有办法通过Dock菜单支持退出?

2 个答案:

答案 0 :(得分:0)

ige-mac-integration为OSX中的gtk应用程序提供Dock,Menu和bundle集成

您可以使用GtkOSXApplication将GtkMenu集成到OSX全局菜单中。

看看这些功能:

  • gtk_osxapplication_set_use_quartz_accelerators()
  • gtk_osxapplication_set_menu_bar()

答案 1 :(得分:0)

上面的答案几乎是正确的,你确实想使用GtkOSXApplication,但是因为你在询问Dock的退出条目,你想要连接到“NSApplicationBlockTermination”信号。 以下是我在python中使用它来捕获退出操作的方法:

macapp = gtk_osxapplication.OSXApplication()
macapp.set_dock_icon_pixbuf(some_pixbuf)
macapp.set_menu_bar(my_menubar)
macapp.connect("NSApplicationBlockTermination", your_exit_callback)

然后在完成后从your_exit_callback调用gtk.main_quit()。 注意:主菜单中的退出菜单项需要更多技巧 - 此处未涉及。