工具栏

From Apache OpenOffice Wiki
Jump to: navigation, search


加载项还可以集成到 OpenOffice.org 的“功能栏”。org.openoffice.Office.Addons 配置分支具有一个名为 OfficeToolBar 的集,在其中可以添加加载项的工具栏项。工具栏结构使用名为 ToolbarItems 的嵌套集,OpenOffice.org 用它对来自不同加载项的工具栏项分组。OpenOffice.org 会自动在不同的加载项工具栏项之间插入分隔符。

Documentation caution.png “功能栏”的空间有限,因此只有最常用/最重要的功能才能添加到 OfficeToolBar 集。否则,OpenOffice.org 将在“功能栏”的结尾加入向上/向下滚动按钮,用户必须滚动工具栏才能访问所有工具栏按钮。


模板 ToolBarItems 的属性
oor:name 字符串型。配置节点的名称。名称必须以 ASCII 字母字符开始。该名称在 OfficeMenuBar 集中必须是唯一的。因此,必须使用诸如 org.openoffice.<developer>.<product>.<addon name>com.<company>.<product>.<addon name> 之类的模式以避免产生名称冲突。请记住,您的配置文件将合并到 OpenOffice.org 配置分支中。您不知道当前安装了哪些 加载项或安装了多少加载项。


ToolBarItems 集是 ToolBarItem 节点的容器。

模板 ToolBarItem 的属性
oor:name 字符串型。配置节点的名称。该名称在您自己的 ToolBarItems 集中必须是唯一的。配置集不能保证其条目的顺序,因此您应该使用字符串 + 编号(如 "m1")这样的模式作为排序条目时使用的名称。请记住,名称必须以 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 替换为真正的安装文件夹。由于 OpenOffice.org 支持两个不同的配置文件夹(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 自动缩放。如果未提供高对比度图像,OpenOffice.org 将在高对比度环境中使用普通图像。无效的图像将被忽略。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 项的上下文。


以下示例为名为 org.openoffice.Office.addon.example:Function1 的功能定义了一个工具栏 按钮。该工具栏按钮仅在使用 OpenOffice.org Writer 模块时可见。

  <?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="OfficeToolBar">
              <node oor:name="org.openoffice.Office.addon.example" oor:op="replace">
                  <node oor:name=”m1”>
                      <prop oor:name="URL" oor:type="xs:string">
                          <value>org.openoffice.Office.addon.example:Function1</value>
                      </prop>
                      <prop oor:name="Title" oor:type="xs:string">
                          <value/>
                          <value xml:lang=”en-US”>Function 1</value>
                          <value xml:lang="de">Funktion 1</value>
                      </prop>
                      <prop oor:name="Target" oor:type="xs:string">
                          <value>_self</value>
                      </prop>
                      <prop oor:name="Context" oor:type="xs:string">
                          <value>com.sun.star.text.TextDocument</value>
                      </prop>
                  </node>
              </node>
          </node>
      </node>
  </oor:component-data></nowiki>
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages