菜单
如上节所述,OpenOffice.org 支持两个菜单位置(加载项可以在这两个位置上集成):顶层菜单或工具 - 加载项子菜单。配置分支 org.openoffice.Office.Addons 为这两个位置提供了两个不同的节点:
用于定义加载项菜单的支持的 org.openoffice.Office.Addons 集 | |
---|---|
OfficeMenuBar
|
在此集合中定义的菜单将成为 OpenOffice.org 菜单栏中的顶层菜单。 |
AddonMenu
|
此集合中定义的菜单将成为弹出式菜单,是位于工具菜单底部的加载项菜单项
的一部分。 |
工具 - 加载项中的子菜单
要将“加载项”菜单项集成到工具 – 加载项菜单中,请使用 AddonMenu
集。AddonMenu
集由类型 MenuItem
的节点组成。MenuItem
节点类型还可用于顶层加载项菜单的子菜单。
模板 MenuItem 的属性 | |
---|---|
oor:name
|
字符串型。配置节点的名称。名称必须以 ASCII 字母字符开始。 该名称在 OfficeMenuBar 集中必须是唯一的。因此,必须使用诸如 org.openoffice.<developer>.<product>.<addon name> 或 com.<company>.<product>.<addon name> 之类的模式以避免产生名称冲突。请记住,您的配置文件将合并到 OpenOffice.org 配置分支中。您不知道当前安装了哪些 加载项或者安装了多少加载项。因此子菜单的菜单项的节点名称在其子菜单中必须是唯一的。配置集不能保证其条目的顺序,因此您应该使用字符串 + 编号(如 “m1”)这样的模式作为排序条目时使用的名称。
|
URL
|
字符串型。指定用户激活菜单条目时应该分发的命令 URL。如果 MenuItem 是子菜单的标题,则该属性将被忽略。
要定义分隔符,您可以使用特殊的命令 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 用于指定图像。
vnd.sun.star.expand:$UNO_USER_PACKAGES_CACHE/uno_packages/component.zip.1051610942/image .
|
Target
|
字符串型。为命令 URL 指定目标框架。通常,加载项会使用以下某个预设的目标名称:
_top
_parent
_self
_blank
|
Context
|
字符串型。服务名称的列表,以逗号分隔,指定加载项菜单功能应在哪个上下文中出现。空的 Context 表示功能应该在所有上下文中出现。OpenOffice.org 应用程序模块使用以下服务名称:
加载项的上下文服务名称由绑定到框架的模型的服务名称确定,它与 UI 元素(工具栏、菜单栏等)相关。因此,Writer 模型的服务名称是 |
Submenu
|
一组 MenuItem 条目。可选,用于定义菜单条目的子菜单。 |
以下示例显示了指定一个标题为加载项 Function 1 的菜单项的配置文件。加载项的唯一代码名称是 org.openoffice.example.addon.example.function1。
<?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="AddonMenu">
<node oor:name="org.openoffice.Office.addon.example.function1" oor:op="replace">
<prop oor:name="URL" oor:type="xs:string">
<value>org.openoffice.Office.addon.example:Function1</value>
</prop>
<prop oor:name="ImageIdentifier" oor:type="xs:string"
<value/>
</prop>
<prop oor:name="Title" oor:type="xs:string">
<value/>
<value xml:lang="en-US">Add-On Function 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>
顶层菜单
如果要将加载项集成到 OpenOffice.org 菜单栏,必须使用 OfficeMenuBar
集。OfficeMenuBar
集由类型 PopupMenu
的节点组成。
模板 PopupMenu 的属性 | |
---|---|
oor:name
|
字符串型。配置节点的名称。名称必须以 ASCII 字母字符开始。 该名称在 OfficeMenuBar 集中必须是唯一的。因此,必须使用诸如 org.openoffice.<developer>.<product>.<addon name> 或 com.<company>.<product>.<addon name> 之类的模式以避免产生名称冲突。请记住,您的配置文件将合并到 OpenOffice.org 配置分支中。您不知道当前安装了哪些 加载项或安装了多少加载项。
|
Title
|
字符串型。包含顶层菜单项的标题。此属性支持本地化:默认字符串(在 OpenOffice.org 无法找到其当前语言的字符串定义时使用)使用不带属性的 value 元素。您可以使用 xml:lang 属性为特定语言定义字符串。为属性指定语言/语言环境,例如 <value xml:lang="en-US">string</value> 。
|
Context
|
字符串型。服务名称的列表,以逗号分隔,指定加载项菜单应在哪个上下文中出现。空的 Context 表示功能应该在所有上下文中出现。OpenOffice.org 应用程序模块使用以下服务名称:
加载项的上下文服务名称由绑定到框架的模型的服务名称确定,它与 UI 元素(工具栏、菜单栏等)相关。因此,Writer 模型的服务名称是 |
Submenu
|
一组 MenuItem 条目。定义顶层菜单的子菜单。它必须在顶层菜单上定义,否则整个菜单都会被忽略。如果需要如何定义子菜单的更多信息,请参阅 指导原则,其中介绍了 MenuItem 模板。 |
以下示例定义了一个标题为加载项示例的顶层菜单,其中包含一个标题为加载项 Function 1 的菜单项。菜单项具备一个自定义的图像,显示在菜单标题旁边。在此示例中,节点称为 oor:name="org.openoffice.example.addon"
和 oor:name="m1"
。
不要忘记在自定义节点中指定 oor:op="replace"
属性。要向集或可扩展节点加入新节点,必须使用替换操作。因此,此操作的真正意义是“添加或替换”。动态属性只能添加一次,并被认为是强制性的,因此层合并期间,替换操作对它们始终意味着“添加”。如果需要配置及其文件格式的更多信息,请参阅 配置管理。
<?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="OfficeMenuBar">
<node oor:name="org.openoffice.example.addon" oor:op="replace">
<prop oor:name="Title" oor:type="xs:string">
<value/>
<value xml:lang="en-US">Add-On example</value>
<value xml:lang=”de”>Add-On Beispiel</value>
</prop>
<prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument</value>
</prop>
<node oor:name="Submenu">
<node oor:name="m1" oor:op="replace">
<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”>Add-On Function 1</value>
<value xml:lang="de">Add-On Funktion 1</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
</prop>
</node>
</node>
</node>
</node>
</node>
</oor:component-data>
Content on this page is licensed under the Public Documentation License (PDL). |