帮助集成

From Apache OpenOffice Wiki
Jump to: navigation, search


OpenOffice.org 支持将加载项集成到其帮助菜单。加载项帮助菜单项插在注册菜单项下,用分隔符分开。这可以保证用户可以快速访问加载项的帮助信息。OfficeHelp 集使用与 AddonMenu 集相同的 MenuItem 节点类型,但是对属性还有一些特殊处理。

模板 MenuItem 的属性
oor:name 字符串型。配置节点的名称。该名称在配置分支中必须是唯一的。因此,必须使用诸如 org.openoffice.<developer>.<add-on name>com.<company>.<product>.<add-on name> 之类的模式以避免产生名称冲突。请记住,您的配置文件将合并到 OpenOffice.org 配置分支中。您不知道用户以前安装了多少或安装了哪些加载项。请记住,名称必须以 ASCII 字母字符开始。
URL 字符串型。指定在用户激活菜单条目时应该分发的帮助命令 URL。支持由特殊命令 URL "private:separator" 定义的分隔符,但是这些分隔符不应在帮助菜单中使用,因为每个加载项都应该只使用一个菜单项。
Title 字符串型。包含顶层菜单项的标题。此属性支持本地化:默认字符串(在 OpenOffice.org 无法找到其当前语言的字符串定义时使用)使用不带属性的 value 元素。您可以使用 xml:lang 属性为特定语言定义字符串。为属性指定语言/语言环境,例如 <value xml:lang="en-US">string</value>
ImageIdentifier 字符串型。定义可选的图像 URL,该 URL 可以定位内部的 OpenOffice.org 图像或外部的用户

自定义图像。内部图像 URL 的语法是:private:image/<number>,其中的 number 用于指定图像。

支持外部用户自定义的图像的方法是使用代表文件夹的占位符变量 %origin%,而 pkgchk 工具就将在该文件夹中安装组件。pkgchk 工具会用另一个占位符替换 %origin%,它将在运行时期间由 OpenOffice.org 替换为真正的安装文件夹。由于 StarSuite 支持两个不同的配置文件夹(usershare),因此有必要利用此机制来确定组件的安装文件夹。

例如,URL %origin%/image 将被替换为类似如下所示的路径

vnd.sun.star.expand:$UNO_USER_PACKAGES_CACHE/uno_packages/component.zip.1051610942/image。

占位符 vnd.sun.star.expand:$UNO_USER_PACKAGES_CACHE 将在运行时期间被替换为真正的路径。

由于 ImageIdentifier 属性只能保留一个 URL,而 OpenOffice.org 支持四种不同的图像(小/大图像,以及高对比度的小/大图像),因此需要使用一种命名模式来表示它们。OpenOffice.org 将 _16.bmp_26.bmp 添加到提供的 URL 以表示小图像和大图像。而添加 _16h.bmp_26h.bmp 以表示高对比度的图像。如果高对比度的图像被忽略,则使用普通图像。

OpenOffice.org 支持具有 1、4、8、16 和 24 位颜色深度的位图。洋红(颜色值 red=0xffff、 green=0x0000、blue=0xffff)用作透明色,表示绘制图像时使用显示的背景色,而不使用图像像素颜色。

要获得最佳效果,小图像的大小应为 16x16 像素,大图像为 26x26 像素。其他图像大小由 OpenOffice.org 自动缩放。如果未提供高对比度图像,StarSuite 将在高对比度环境中使用普通图像。无效的图像将被忽略。

OpenOffice.org 搜索图像时,此属性的优先级要高于 Images 集。

Target 字符串型。为命令 URL 指定目标框架。通常,加载项会使用以下某个预设的目标名称:

_top

返回调用的框架的顶层框架,它是在向上遍历分层时 isTop() 返回 true 的第一个框架。

_parent

返回框架分层中位于次高的框架。

_self

返回框架本身,其名称与空白目标框架的名称相同。也就是说,您正在搜索一个已经存在的框架,但此操作是合法的。

_blank

创建新的顶层框架,其父级框架是桌面框架。
Context 字符串型。服务名称的列表,以逗号分隔,指定加载项菜单应在哪个上下文中出现。空的 Context 表示功能应该在所有上下文中出现。

OpenOffice.org 应用程序模块使用以下服务名称:

  • Writer: com.sun.star.text.TextDocument
  • Spreadsheet: com.sun.star.sheet.SpreadsheetDocument
  • Presentation: com.sun.star.presentation.PresentationDocument
  • Draw: com.sun.star.drawing.DrawingDocument
  • Formula: com.sun.star.formula.FormulaProperties
  • Chart: com.sun.star.chart.ChartDocument
  • Bibliography: com.sun.star.frame.Bibliography

加载项的上下文服务名称由绑定到框架的模型的服务名称确定,它与 UI 元素(工具栏、菜单栏等)相关。因此,Writer 模型的服务名称是 com.sun.star.text.TextDocument。这表示,上下文名称被绑定到应用程序模块的模型。如果开发者实现具有模型的新桌面组件,可以将其服务名称作为加载项 UI 项的上下文。

Submenu<code> 一组 MenuItem 条目。如果不用于 OfficeHelp MenuItems,其内部的所有定义都将被忽略。


以下示例显示了加载项示例的一个帮助菜单项。

  <?xml version='1.0' encoding='UTF-8'?>
  <oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Addons" oor:package="org.openoffice.Office">
      <node oor:name="AddonUI">
          <node oor:name="OfficeHelp"> 
              <node oor:name="com.sun.star.comp.framework.addon" oor:op="replace"> 
                  <prop oor:name="URL" oor:type="xs:string"
                      <value>org.openoffice.Office.addon.example:Help</value> 
                  </prop> 
                  <prop oor:name="ImageIdentifier" oor:type="xs:string">
                      <value/>
                  </prop> 
                  <prop oor:name="Title" oor:type="xs:string"> 
                      <value xml:lang="de">Über Add-On Beispiel</value> 
                      <value xml:lang="en-US">About Add-On Example</value> 
                  </prop> 
                  <prop oor:name="Target" oor:type="xs:string"> 
                      <value>_self</value>
                  </prop> 
              </node> 
          </node>
      </node>
  </oor:component-data>
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages