适用于Windows和Mac OS的Eclipse RCP SWT菜单

时间:2010-03-19 21:42:35

标签: java windows eclipse macos eclipse-rcp

如何配置Eclipse RCP命令样式菜单以匹配Windows和Mac OS上的不同菜单结构?

Mac OS X菜单示例 http://images.apple.com/macosx/refinements/images/services_menu_20090902.jpg

Windows菜单示例 http://www.flamingpear.com/images/psp8menu.gif

在您看到的示例中,菜单结构的差异。例如,Mac在其应用程序菜单中有preference命令,about命令和exit命令。这些在Windows下通常位于文件菜单中,about命令可以在帮助菜单中找到。使用RCP程序是否有“标准”方式?它应该是可能的,因为Eclipse本身就是这样做的。但我无法弄清楚如何。

1 个答案:

答案 0 :(得分:1)

虽然我自己还没有这样做,但应该可以使用OS依赖的插件片段来完成该任务。我已经在Eclipse Delta Pack中看到了那些用于OS依赖的SWT代码。

1)对于您要支持的每个操作系统,请定义一个以该操作系统命名的插件片段。

2)MANIFEST.MF文件可以包含平台的过滤器,如另一个问题的in an answer所述。通过将以下行之一添加到片段的MANIFEST.MF来设置Eclipse-PlatformFilter:

  • Eclipse-PlatformFilter:(osgi.os = win32)
  • Eclipse-PlatformFilter:(osgi.os = macosx)

或者对org.osgi.framework.os.name使用OSGi过滤器(在上面提到的答案中推荐),但我在288页的规范中找不到该过滤器的声明方式。

3)每个片段在其fragment.xml中包含该OS的菜单结构。原始插件的plugin.xml仅包含常用配置,如命令和处理程序。

如果您知道菜单ID,则可以将自己的菜单贡献添加到预定义菜单。请参阅Menu Contributions上的Eclipse Wiki和org.eclipse.ui.menus的Eclipse帮助。

相关问题