代码之家  ›  专栏  ›  技术社区  ›  Raven

为windows和mac操作系统显示rcp swt菜单

  •  2
  • Raven  · 技术社区  · 14 年前

    如何配置EclipseRCP命令样式菜单以匹配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命令。这些命令通常位于“文件”菜单中的“窗口”下,“帮助”菜单中有“关于”命令。有没有一个“标准”的方式来做RCP计划?这应该是有可能的,因为eclipse自己做到了。但我不知道怎么做。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Community datashaman    7 年前

    虽然我自己还没有完成,但是应该可以使用操作系统相关的插件片段来完成这个任务。我在EclipseDelta包中见过那些用于依赖操作系统的SWT代码。

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

    2)manifest.mf文件可以包含平台的筛选器,如所述 in an answer 另一个问题。通过将以下行之一添加到片段的manifest.mf中来设置eclipse platformfilter:

    • eclipse平台过滤器:(osgi.os=win32)
    • eclipse平台过滤器:(osgi.os=macosx)

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

    3)每个片段在fragment.xml中包含该操作系统的菜单结构。原始插件的plugin.xml只包含公共配置,如命令和处理程序。

    如果您知道菜单ID,可以将自己的菜单贡献添加到预定义菜单中。 Menu Contributions 以及eclipse帮助 org.eclipse.ui.menus .