[Libreoffice-commits] core.git: #i121577# Allow setting toolbar name in Addons.xcu
Stephan Bergmann
sbergman at redhat.com
Tue Jul 23 10:09:36 PDT 2013
Do we really want the below commits introduce an incompatible change in
LO 4.2? They modify
officecfg/registry/schema/org/openoffice/Office/Addons.xcs in an
incompatible way so that any extension containing toolbars (as
/org.openoffice.org.Office.Addons/AddonUI/OfficeToolBar configuration
set elements) needs to be changed to keep its toolbars working. For
example, in an --enable-ext-numbertext build, Calc "View -> Toolbars ->
CT2N" is missing now.
(Also, the commits contain a mis-merge in Addons.xcs and would need the
additional attached
0001-API-CHANGE-Fix-broken-merge-of-Addons.xcs.patch, but that would not
make a difference to the above observation that old extensions no longer
work; it would only fix updated extensions not working either, witness
Writer "View -> Toolbars -> Logo" missing.)
Stephan
On 06/24/2013 12:58 PM, Ariel Constenla-Haile wrote:
> framework/source/fwe/classes/addonsoptions.cxx | 75 ++
> framework/source/layoutmanager/toolbarlayoutmanager.cxx | 19
> include/framework/addonsoptions.hxx | 7
> odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/Addons.xcu | 75 +-
> odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_java/Addons.xcu | 75 +-
> odk/examples/DevelopersGuide/Extensions/DialogWithHelp/Addons.xcu | 107 +--
> odk/examples/cpp/complextoolbarcontrols/Addons.xcu | 295 +++++-----
> odk/examples/cpp/complextoolbarcontrols/CalcWindowState.xcu | 38 -
> odk/examples/cpp/complextoolbarcontrols/Makefile | 8
> odk/examples/cpp/complextoolbarcontrols/WriterWindowState.xcu | 38 -
> odk/examples/java/Inspector/Addons.xcu | 31 -
> officecfg/registry/schema/org/openoffice/Office/Addons.xcs | 16
> 12 files changed, 409 insertions(+), 375 deletions(-)
>
> New commits:
> commit af572d9fbb744c9691abe465815d7927a9d11510
> Author: Ariel Constenla-Haile <arielch at apache.org>
> Date: Fri Jan 4 18:57:41 2013 +0000
>
> Related: #i121577# Allow setting toolbar name in Addons.xcu
>
> (cherry picked from commit 96cd87ec89e5ebe9d174c90b0f2cab96b3772732)
>
> Conflicts:
> odk/examples/cpp/complextoolbarcontrols/CalcWindowState.xcu
> odk/examples/cpp/complextoolbarcontrols/WriterWindowState.xcu
> odk/examples/java/Inspector/Inspector.java
>
> Change-Id: I6a0c1a657c6084df4efd8e150dc252155b32ba0b
>
> diff --git a/odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/Addons.xcu b/odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/Addons.xcu
> index a6a1985..f8cf12b 100644
> --- a/odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/Addons.xcu
> +++ b/odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/Addons.xcu
> @@ -136,41 +136,46 @@
> </node>
> <node oor:name="OfficeToolBar">
> <node oor:name="org.openoffice.Office.addon.example" oor:op="replace">
> - <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="ImageIdentifier" oor:type="xs:string">
> - <value/>
> - </prop>
> - <prop oor:name="Title" oor:type="xs:string">
> - <value/>
> - <value xml:lang="en-US">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 oor:name="m2" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>org.openoffice.Office.addon.example:Function2</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">Function 2</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>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">Cpp Addon Example</value>
> + </prop>
> + <node oor:name="ToolBarItems">
> + <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="ImageIdentifier" oor:type="xs:string">
> + <value/>
> + </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value/>
> + <value xml:lang="en-US">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 oor:name="m2" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>org.openoffice.Office.addon.example:Function2</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">Function 2</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>
> diff --git a/odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_java/Addons.xcu b/odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_java/Addons.xcu
> index 5eefadb..32ec0f0 100644
> --- a/odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_java/Addons.xcu
> +++ b/odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_java/Addons.xcu
> @@ -136,41 +136,46 @@
> </node>
> <node oor:name="OfficeToolBar">
> <node oor:name="org.openoffice.Office.addon.example" oor:op="replace">
> - <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="ImageIdentifier" oor:type="xs:string">
> - <value/>
> - </prop>
> - <prop oor:name="Title" oor:type="xs:string">
> - <value/>
> - <value xml:lang="en-US">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 oor:name="m2" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>org.openoffice.Office.addon.example:Function2</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">Function 2</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>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">Java Addon Example</value>
> + </prop>
> + <node oor:name="ToolBarItems">
> + <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="ImageIdentifier" oor:type="xs:string">
> + <value/>
> + </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value/>
> + <value xml:lang="en-US">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 oor:name="m2" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>org.openoffice.Office.addon.example:Function2</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">Function 2</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>
> diff --git a/odk/examples/DevelopersGuide/Extensions/DialogWithHelp/Addons.xcu b/odk/examples/DevelopersGuide/Extensions/DialogWithHelp/Addons.xcu
> index 89136e9..a31753d 100644
> --- a/odk/examples/DevelopersGuide/Extensions/DialogWithHelp/Addons.xcu
> +++ b/odk/examples/DevelopersGuide/Extensions/DialogWithHelp/Addons.xcu
> @@ -17,58 +17,63 @@
> * the License at http://www.apache.org/licenses/LICENSE-2.0 .
> -->
> <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="com.foocorp.foo-ext:Menu" oor:op="replace">
> - <prop oor:name="Title" oor:type="xs:string">
> - <value/>
> - <value xml:lang="en">Foo E~xtension</value>
> - </prop>
> - <prop oor:name="Target" oor:type="xs:string">
> - <value>_self</value>
> - </prop>
> - <prop oor:name="ImageIdentifier" oor:type="xs:string">
> - <value/>
> - </prop>
> - <node oor:name="Submenu">
> - <node oor:name="m1" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>vnd.sun.star.script:DialogWithHelp.Module1.main?language=Basic&location=application</value>
> - </prop>
> - <prop oor:name="ImageIdentifier" oor:type="xs:string">
> - <value/>
> - </prop>
> - <prop oor:name="Target" oor:type="xs:string">
> - <value>_self</value>
> - </prop>
> - <prop oor:name="Title" oor:type="xs:string">
> - <value/>
> - <value xml:lang="en">Start Foo Dialog...</value>
> - </prop>
> - </node>
> - <node oor:name="m3" oor:op="replace">
> - </node>
> + <node oor:name="AddonUI">
> + <node oor:name="OfficeMenuBar">
> + <node oor:name="com.foocorp.foo-ext:Menu" oor:op="replace">
> + <prop oor:name="Title" oor:type="xs:string">
> + <value/>
> + <value xml:lang="en">Foo E~xtension</value>
> + </prop>
> + <prop oor:name="Target" oor:type="xs:string">
> + <value>_self</value>
> + </prop>
> + <prop oor:name="ImageIdentifier" oor:type="xs:string">
> + <value/>
> + </prop>
> + <node oor:name="Submenu">
> + <node oor:name="m1" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>vnd.sun.star.script:DialogWithHelp.Module1.main?language=Basic&location=application</value>
> + </prop>
> + <prop oor:name="ImageIdentifier" oor:type="xs:string">
> + <value/>
> + </prop>
> + <prop oor:name="Target" oor:type="xs:string">
> + <value>_self</value>
> + </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value/>
> + <value xml:lang="en">Start Foo Dialog...</value>
> + </prop>
> + </node>
> + <node oor:name="m3" oor:op="replace">
> + </node>
> + </node>
> + </node>
> </node>
> - </node>
> - </node>
> - <node oor:name="OfficeToolBar">
> - <node oor:name="com.foocorp.foo-ext:ToolbarItem1" oor:op="replace">
> - <node oor:name="m1" oor:op="replace">
> - <prop oor:name="URL">
> - <value>vnd.sun.star.script:DialogWithHelp.Module1.main?language=Basic&location=application</value>
> - </prop>
> - <prop oor:name="Title">
> - <value xml:lang="en-US">Foo Toolbar Item</value>
> - <value xml:lang="de">Foo Toolbar Eintrag</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 oor:name="OfficeToolBar">
> + <node oor:name="com.foocorp.foo-ext:ToolbarItem1" oor:op="replace">
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">Foo Toolbar</value>
> + </prop>
> + <node oor:name="ToolBarItems">
> + <node oor:name="m1" oor:op="replace">
> + <prop oor:name="URL">
> + <value>vnd.sun.star.script:DialogWithHelp.Module1.main?language=Basic&location=application</value>
> + </prop>
> + <prop oor:name="Title">
> + <value xml:lang="en-US">Foo Toolbar Item</value>
> + <value xml:lang="de">Foo Toolbar Eintrag</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>
> - </node>
> </node>
> - </node>
> </oor:component-data>
> diff --git a/odk/examples/cpp/complextoolbarcontrols/Addons.xcu b/odk/examples/cpp/complextoolbarcontrols/Addons.xcu
> index ce9aa26..e4edf15 100644
> --- a/odk/examples/cpp/complextoolbarcontrols/Addons.xcu
> +++ b/odk/examples/cpp/complextoolbarcontrols/Addons.xcu
> @@ -20,151 +20,156 @@
> <node oor:name="AddonUI">
> <node oor:name="OfficeToolBar">
> <node oor:name="com.sun.star.comp.framework.addon.complextoolbarcontrols" oor:op="replace">
> - <node oor:name="m1" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>vnd.demo.complextoolbarcontrols.demoaddon:ImageButtonCmd</value>
> - </prop>
> - <prop oor:name="Title" oor:type="xs:string">
> - <value xml:lang="en-US">Image Button</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,com.sun.star.sheet.SpreadsheetDocument</value>
> - </prop>
> - <prop oor:name="ControlType" oor:type="xs:string">
> - <value>ImageButton</value>
> - </prop>
> - </node>
> - <node oor:name="m2" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>vnd.demo.complextoolbarcontrols.demoaddon:ComboboxCmd</value>
> - </prop>
> - <prop oor:name="Title" oor:type="xs:string">
> - <value xml:lang="en-US">ComboBox</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,com.sun.star.sheet.SpreadsheetDocument</value>
> - </prop>
> - <prop oor:name="ControlType" oor:type="xs:string">
> - <value>Combobox</value>
> - </prop>
> - <prop oor:name="Width" oor:type="xs:long">
> - <value>200</value>
> - </prop>
> - </node>
> - <node oor:name="m3" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>private:separator</value>
> - </prop>
> - </node>
> - <node oor:name="m4" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>vnd.demo.complextoolbarcontrols.demoaddon:SpinfieldCmd</value>
> - </prop>
> - <prop oor:name="Title" oor:type="xs:string">
> - <value xml:lang="en-US">Spinfield</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,com.sun.star.sheet.SpreadsheetDocument</value>
> - </prop>
> - <prop oor:name="ControlType" oor:type="xs:string">
> - <value>Spinfield</value>
> - </prop>
> - <prop oor:name="Width" oor:type="xs:long">
> - <value>70</value>
> - </prop>
> - </node>
> - <node oor:name="m5" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>private:separator</value>
> - </prop>
> - </node>
> - <node oor:name="m6" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>vnd.demo.complextoolbarcontrols.demoaddon:EditfieldCmd</value>
> - </prop>
> - <prop oor:name="Title" oor:type="xs:string">
> - <value xml:lang="en-US">Editfield</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,com.sun.star.sheet.SpreadsheetDocument</value>
> - </prop>
> - <prop oor:name="ControlType" oor:type="xs:string">
> - <value>Editfield</value>
> - </prop>
> - <prop oor:name="Width" oor:type="xs:long">
> - <value>130</value>
> - </prop>
> - </node>
> - <node oor:name="m7" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>private:separator</value>
> - </prop>
> - </node>
> - <node oor:name="m8" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>vnd.demo.complextoolbarcontrols.demoaddon:DropdownboxCmd</value>
> - </prop>
> - <prop oor:name="Title" oor:type="xs:string">
> - <value xml:lang="en-US">Dropdownbox</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,com.sun.star.sheet.SpreadsheetDocument</value>
> - </prop>
> - <prop oor:name="ControlType" oor:type="xs:string">
> - <value>Dropdownbox</value>
> - </prop>
> - <prop oor:name="Width" oor:type="xs:long">
> - <value>80</value>
> - </prop>
> - </node>
> - <node oor:name="m9" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>vnd.demo.complextoolbarcontrols.demoaddon:ToggleDropdownButtonCmd</value>
> - </prop>
> - <prop oor:name="Title" oor:type="xs:string">
> - <value xml:lang="en-US">Toggle Dropdown Button</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,com.sun.star.sheet.SpreadsheetDocument</value>
> - </prop>
> - <prop oor:name="ControlType" oor:type="xs:string">
> - <value>ToggleDropdownButton</value>
> - </prop>
> - </node>
> - <node oor:name="m10" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>vnd.demo.complextoolbarcontrols.demoaddon:DropdownButtonCmd</value>
> - </prop>
> - <prop oor:name="Title" oor:type="xs:string">
> - <value xml:lang="en-US">Dropdown Button</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,com.sun.star.sheet.SpreadsheetDocument</value>
> - </prop>
> - <prop oor:name="ControlType" oor:type="xs:string">
> - <value>DropdownButton</value>
> - </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">Complex Toolbar Controls</value>
> + </prop>
> + <node oor:name="ToolBarItems">
> + <node oor:name="m1" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>vnd.demo.complextoolbarcontrols.demoaddon:ImageButtonCmd</value>
> + </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">Image Button</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,com.sun.star.sheet.SpreadsheetDocument</value>
> + </prop>
> + <prop oor:name="ControlType" oor:type="xs:string">
> + <value>ImageButton</value>
> + </prop>
> + </node>
> + <node oor:name="m2" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>vnd.demo.complextoolbarcontrols.demoaddon:ComboboxCmd</value>
> + </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">ComboBox</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,com.sun.star.sheet.SpreadsheetDocument</value>
> + </prop>
> + <prop oor:name="ControlType" oor:type="xs:string">
> + <value>Combobox</value>
> + </prop>
> + <prop oor:name="Width" oor:type="xs:long">
> + <value>200</value>
> + </prop>
> + </node>
> + <node oor:name="m3" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>private:separator</value>
> + </prop>
> + </node>
> + <node oor:name="m4" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>vnd.demo.complextoolbarcontrols.demoaddon:SpinfieldCmd</value>
> + </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">Spinfield</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,com.sun.star.sheet.SpreadsheetDocument</value>
> + </prop>
> + <prop oor:name="ControlType" oor:type="xs:string">
> + <value>Spinfield</value>
> + </prop>
> + <prop oor:name="Width" oor:type="xs:long">
> + <value>70</value>
> + </prop>
> + </node>
> + <node oor:name="m5" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>private:separator</value>
> + </prop>
> + </node>
> + <node oor:name="m6" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>vnd.demo.complextoolbarcontrols.demoaddon:EditfieldCmd</value>
> + </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">Editfield</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,com.sun.star.sheet.SpreadsheetDocument</value>
> + </prop>
> + <prop oor:name="ControlType" oor:type="xs:string">
> + <value>Editfield</value>
> + </prop>
> + <prop oor:name="Width" oor:type="xs:long">
> + <value>130</value>
> + </prop>
> + </node>
> + <node oor:name="m7" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>private:separator</value>
> + </prop>
> + </node>
> + <node oor:name="m8" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>vnd.demo.complextoolbarcontrols.demoaddon:DropdownboxCmd</value>
> + </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">Dropdownbox</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,com.sun.star.sheet.SpreadsheetDocument</value>
> + </prop>
> + <prop oor:name="ControlType" oor:type="xs:string">
> + <value>Dropdownbox</value>
> + </prop>
> + <prop oor:name="Width" oor:type="xs:long">
> + <value>80</value>
> + </prop>
> + </node>
> + <node oor:name="m9" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>vnd.demo.complextoolbarcontrols.demoaddon:ToggleDropdownButtonCmd</value>
> + </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">Toggle Dropdown Button</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,com.sun.star.sheet.SpreadsheetDocument</value>
> + </prop>
> + <prop oor:name="ControlType" oor:type="xs:string">
> + <value>ToggleDropdownButton</value>
> + </prop>
> + </node>
> + <node oor:name="m10" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>vnd.demo.complextoolbarcontrols.demoaddon:DropdownButtonCmd</value>
> + </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">Dropdown Button</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,com.sun.star.sheet.SpreadsheetDocument</value>
> + </prop>
> + <prop oor:name="ControlType" oor:type="xs:string">
> + <value>DropdownButton</value>
> + </prop>
> + </node>
> </node>
> </node>
> </node>
> diff --git a/odk/examples/cpp/complextoolbarcontrols/CalcWindowState.xcu b/odk/examples/cpp/complextoolbarcontrols/CalcWindowState.xcu
> deleted file mode 100644
> index 4d9f71c..0000000
> --- a/odk/examples/cpp/complextoolbarcontrols/CalcWindowState.xcu
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<!--
> - * This file is part of the LibreOffice project.
> - *
> - * This Source Code Form is subject to the terms of the Mozilla Public
> - * License, v. 2.0. If a copy of the MPL was not distributed with this
> - * file, You can obtain one at http://mozilla.org/MPL/2.0/.
> - *
> - * This file incorporates work covered by the following license notice:
> - *
> - * Licensed to the Apache Software Foundation (ASF) under one or more
> - * contributor license agreements. See the NOTICE file distributed
> - * with this work for additional information regarding copyright
> - * ownership. The ASF licenses this file to you under the Apache
> - * License, Version 2.0 (the "License"); you may not use this file
> - * except in compliance with the License. You may obtain a copy of
> - * the License at http://www.apache.org/licenses/LICENSE-2.0 .
> --->
> -<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="CalcWindowState" oor:package="org.openoffice.Office.UI">
> - <node oor:name="UIElements">
> - <node oor:name="States">
> - <node oor:name="private:resource/toolbar/addon_com.sun.star.comp.framework.addon.complextoolbarcontrols" oor:op="replace">
> - <prop oor:name="ContextSensitive" oor:type="xs:boolean">
> - <value>false</value>
> - </prop>
> - <prop oor:name="UIName" oor:type="xs:string">
> - <value xml:lang="en-US">Complex Toolbar Controls</value>
> - </prop>
> - <prop oor:name="Visible" oor:type="xs:boolean">
> - <value>true</value>
> - </prop>
> - <prop oor:name="Docked" oor:type="xs:boolean">
> - <value>false</value>
> - </prop>
> - </node>
> - </node>
> - </node>
> -</oor:component-data>
> \ No newline at end of file
> diff --git a/odk/examples/cpp/complextoolbarcontrols/Makefile b/odk/examples/cpp/complextoolbarcontrols/Makefile
> index a8f1a18..0cc9f51 100644
> --- a/odk/examples/cpp/complextoolbarcontrols/Makefile
> +++ b/odk/examples/cpp/complextoolbarcontrols/Makefile
> @@ -104,10 +104,6 @@ $(OUT_COMP_GEN)/%/manifest.xml :
> @echo $(SQM) $(SQM)$(OSEP)manifest:file-entry manifest:media-type="$(QM)application/vnd.sun.star.configuration-data$(QM)" >> $@
> @echo $(SQM) $(SQM)manifest:full-path="$(QM)Addons.xcu$(QM)"/$(CSEP) >> $@
> @echo $(SQM) $(SQM)$(OSEP)manifest:file-entry manifest:media-type="$(QM)application/vnd.sun.star.configuration-data$(QM)" >> $@
> - @echo $(SQM) $(SQM)manifest:full-path="$(QM)WriterWindowState.xcu$(QM)"/$(CSEP) >> $@
> - @echo $(SQM) $(SQM)$(OSEP)manifest:file-entry manifest:meda-type="$(QM)application/vnd.sun.star.configuration-data$(QM)" >> $@
> - @echo $(SQM) $(SQM)manifest:full-path="$(QM)CalcWindowState.xcu$(QM)"/$(CSEP) >> $@
> - @echo $(SQM) $(SQM)$(OSEP)manifest:file-entry manifest:media-type="$(QM)application/vnd.sun.star.configuration-data$(QM)" >> $@
> @echo $(SQM) $(SQM)manifest:full-path="$(QM)ProtocolHandler.xcu$(QM)"/$(CSEP) >> $@
> @echo $(SQM) $(SQM)$(OSEP)manifest:file-entry manifest:media-type="$(QM)application/vnd.sun.star.uno-components;platform=$(UNOPKG_PLATFORM)$(QM)">> $@
> @echo $(SQM) $(SQM)manifest:full-path="$(QM)$(COMP_NAME).components$(QM)"/$(CSEP)>> $@
> @@ -131,13 +127,13 @@ $(COMP_COMPONENTS) :
> @echo $(OSEP)/components$(CSEP) >> $@
>
> # rule for component package file
> -$(COMP_PACKAGE) : $(SHAREDLIB_OUT)/$(COMP_IMPL_NAME) Addons.xcu ProtocolHandler.xcu WriterWindowState.xcu CalcWindowState.xcu $(COMP_UNOPKG_MANIFEST) $(COMP_COMPONENTS)
> +$(COMP_PACKAGE) : $(SHAREDLIB_OUT)/$(COMP_IMPL_NAME) Addons.xcu ProtocolHandler.xcu $(COMP_UNOPKG_MANIFEST) $(COMP_COMPONENTS)
> -$(MKDIR) $(subst /,$(PS),$(@D)) && $(DEL) $(subst \\,\,$(subst /,$(PS),$@))
> -$(MKDIR) $(subst /,$(PS),$(OUT_COMP_GEN)/$(UNOPKG_PLATFORM))
> $(COPY) $(subst /,$(PS),$<) $(subst /,$(PS),$(OUT_COMP_GEN)/$(UNOPKG_PLATFORM))
> cd $(subst /,$(PS),$(OUT_COMP_GEN)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP_NAME).components
> cd $(subst /,$(PS),$(OUT_COMP_GEN)) && $(SDK_ZIP) -u ../../bin/$(@F) $(UNOPKG_PLATFORM)/$(<F)
> - $(SDK_ZIP) -u $@ Addons.xcu ProtocolHandler.xcu WriterWindowState.xcu CalcWindowState.xcu logo_small.png logo_big.png
> + $(SDK_ZIP) -u $@ Addons.xcu ProtocolHandler.xcu logo_small.png logo_big.png
> cd $(subst /,$(PS),$(OUT_COMP_GEN)/$(subst .$(UNOOXT_EXT),,$(@F))) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml
>
> $(COMP_REGISTERFLAG) : $(COMP_PACKAGE)
> diff --git a/odk/examples/cpp/complextoolbarcontrols/WriterWindowState.xcu b/odk/examples/cpp/complextoolbarcontrols/WriterWindowState.xcu
> deleted file mode 100644
> index e590f65..0000000
> --- a/odk/examples/cpp/complextoolbarcontrols/WriterWindowState.xcu
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<!--
> - * This file is part of the LibreOffice project.
> - *
> - * This Source Code Form is subject to the terms of the Mozilla Public
> - * License, v. 2.0. If a copy of the MPL was not distributed with this
> - * file, You can obtain one at http://mozilla.org/MPL/2.0/.
> - *
> - * This file incorporates work covered by the following license notice:
> - *
> - * Licensed to the Apache Software Foundation (ASF) under one or more
> - * contributor license agreements. See the NOTICE file distributed
> - * with this work for additional information regarding copyright
> - * ownership. The ASF licenses this file to you under the Apache
> - * License, Version 2.0 (the "License"); you may not use this file
> - * except in compliance with the License. You may obtain a copy of
> - * the License at http://www.apache.org/licenses/LICENSE-2.0 .
> --->
> -<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="WriterWindowState" oor:package="org.openoffice.Office.UI">
> - <node oor:name="UIElements">
> - <node oor:name="States">
> - <node oor:name="private:resource/toolbar/addon_com.sun.star.comp.framework.addon.complextoolbarcontrols" oor:op="replace">
> - <prop oor:name="ContextSensitive" oor:type="xs:boolean">
> - <value>false</value>
> - </prop>
> - <prop oor:name="UIName" oor:type="xs:string">
> - <value xml:lang="en-US">Complex Toolbar Controls</value>
> - </prop>
> - <prop oor:name="Visible" oor:type="xs:boolean">
> - <value>true</value>
> - </prop>
> - <prop oor:name="Docked" oor:type="xs:boolean">
> - <value>false</value>
> - </prop>
> - </node>
> - </node>
> - </node>
> -</oor:component-data>
> \ No newline at end of file
> diff --git a/odk/examples/java/Inspector/Addons.xcu b/odk/examples/java/Inspector/Addons.xcu
> index 2ea6abd..d35cc0e 100644
> --- a/odk/examples/java/Inspector/Addons.xcu
> +++ b/odk/examples/java/Inspector/Addons.xcu
> @@ -20,19 +20,24 @@
> <node oor:name="AddonUI">
> <node oor:name="OfficeToolBar">
> <node oor:name="org.openoffice.Office.addon.Inspector" oor:op="replace">
> - <node oor:name="toolBar_Inspector" oor:op="replace">
> - <prop oor:name="URL" oor:type="xs:string">
> - <value>org.openoffice.Office.addon.Inspector:inspect</value>
> - </prop>
> - <prop oor:name="Title" oor:type="xs:string">
> - <value xml:lang="en-US">Object Inspector</value>
> - </prop>
> - <prop oor:name="Target" oor:type="xs:string">
> - <value>_self</value>
> - </prop>
> - <prop oor:name="Context" oor:type="xs:string">
> - <value></value>
> - </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">Object Inspector</value>
> + </prop>
> + <node oor:name="ToolBarItems">
> + <node oor:name="toolBar_Inspector" oor:op="replace">
> + <prop oor:name="URL" oor:type="xs:string">
> + <value>org.openoffice.Office.addon.Inspector:inspect</value>
> + </prop>
> + <prop oor:name="Title" oor:type="xs:string">
> + <value xml:lang="en-US">Object Inspector</value>
> + </prop>
> + <prop oor:name="Target" oor:type="xs:string">
> + <value>_self</value>
> + </prop>
> + <prop oor:name="Context" oor:type="xs:string">
> + <value></value>
> + </prop>
> + </node>
> </node>
> </node>
> </node>
> commit 85f072ef33ef47b5e3e0bcd51acb5c4179cde2c2
> Author: Ariel Constenla-Haile <arielch at apache.org>
> Date: Fri Jan 4 18:57:29 2013 +0000
>
> Resolves: #i121577# Allow setting toolbar name in Addons.xcu
>
> (cherry picked from commit 37894067213a63c51c7a73083d7b0ace5f5c40da)
>
> Conflicts:
> framework/inc/framework/addonsoptions.hxx
> framework/source/fwe/classes/addonsoptions.cxx
> framework/source/layoutmanager/toolbarlayoutmanager.cxx
> officecfg/registry/schema/org/openoffice/Office/Addons.xcs
>
> Change-Id: Icc8ed1bb5ac2cfecd6c03c53c137c503dc78bc66
>
> diff --git a/framework/source/fwe/classes/addonsoptions.cxx b/framework/source/fwe/classes/addonsoptions.cxx
> index a94fe1c..3f9f656 100644
> --- a/framework/source/fwe/classes/addonsoptions.cxx
> +++ b/framework/source/fwe/classes/addonsoptions.cxx
> @@ -49,8 +49,10 @@ using namespace ::com::sun::star::beans ;
> using namespace ::com::sun::star::lang ;
> using namespace ::com::sun::star;
>
> +#define STR_TOOLBARITEMS "ToolBarItems"
> #define ROOTNODE_ADDONMENU OUString("Office.Addons" )
> #define PATHDELIMITER OUString("/" )
> +#define TOOLBARITEMS OUString(STR_TOOLBARITEMS)
> #define SEPARATOR_URL_STR "private:separator"
> #define SEPARATOR_URL OUString( SEPARATOR_URL_STR )
>
> @@ -62,6 +64,7 @@ using namespace ::com::sun::star;
> #define PROPERTYNAME_SUBMENU ADDONSMENUITEM_PROPERTYNAME_SUBMENU
> #define PROPERTYNAME_CONTROLTYPE ADDONSMENUITEM_PROPERTYNAME_CONTROLTYPE
> #define PROPERTYNAME_WIDTH ADDONSMENUITEM_PROPERTYNAME_WIDTH
> +#define PROPERTYNAME_TOOLBARITEMS TOOLBARITEMS
>
> #define PROPERTYNAME_ALIGN STATUSBARITEM_PROPERTYNAME_ALIGN
> #define PROPERTYNAME_AUTOSIZE STATUSBARITEM_PROPERTYNAME_AUTOSIZE
> @@ -92,7 +95,7 @@ using namespace ::com::sun::star;
> #define PROPERTYNAME_MERGETOOLBAR_MERGECOMMANDPARAMETER OUString("MergeCommandParameter" )
> #define PROPERTYNAME_MERGETOOLBAR_MERGEFALLBACK OUString("MergeFallback" )
> #define PROPERTYNAME_MERGETOOLBAR_MERGECONTEXT OUString("MergeContext" )
> -#define PROPERTYNAME_MERGETOOLBAR_TOOLBARITEMS OUString("ToolBarItems" )
> +#define PROPERTYNAME_MERGETOOLBAR_TOOLBARITEMS OUString(STR_TOOLBARITEMS)
>
> #define PROPERTYNAME_MERGESTATUSBAR_MERGEPOINT ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MergePoint" ))
> #define PROPERTYNAME_MERGESTATUSBAR_MERGECOMMAND ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MergeCommand" ))
> @@ -113,7 +116,8 @@ using namespace ::com::sun::star;
> #define INDEX_ALIGN 8
> #define INDEX_AUTOSIZE 9
> #define INDEX_OWNERDRAW 10
> -#define PROPERTYCOUNT_INDEX 11
> +#define INDEX_TOOLBARITEMS 11
> +#define PROPERTYCOUNT_INDEX 12
>
> // The following order is mandatory. Please add properties at the end!
> #define PROPERTYCOUNT_MENUITEM 6
> @@ -132,6 +136,11 @@ using namespace ::com::sun::star;
> #define OFFSET_POPUPMENU_URL 3 // Used for property set
>
> // The following order is mandatory. Please add properties at the end!
> +#define PROPERTYCOUNT_TOOLBAR 2
> +#define OFFSET_TOOLBAR_TITLE 0
> +#define OFFSET_TOOLBAR_TOOLBARITEMS 1
> +
> +// The following order is mandatory. Please add properties at the end!
> #define PROPERTYCOUNT_TOOLBARITEM 7
> #define OFFSET_TOOLBARITEM_URL 0
> #define OFFSET_TOOLBARITEM_TITLE 1
> @@ -277,6 +286,7 @@ class AddonsOptions_Impl : public ConfigItem
> const Sequence< Sequence< PropertyValue > >& GetAddonsMenuBarPart () const ;
> const Sequence< Sequence< PropertyValue > >& GetAddonsToolBarPart ( sal_uInt32 nIndex ) const ;
> const OUString GetAddonsToolbarResourceName( sal_uInt32 nIndex ) const;
> + const OUString GetAddonsToolbarUIName( sal_uInt32 nIndex ) const;
> const Sequence< Sequence< PropertyValue > >& GetAddonsHelpMenu () const ;
> Image GetImageFromURL( const OUString& aURL, sal_Bool bBig, sal_Bool bNoScale ) const;
> const MergeMenuInstructionContainer& GetMergeMenuInstructions() const;
> @@ -325,7 +335,9 @@ class AddonsOptions_Impl : public ConfigItem
>
> sal_Bool ReadAddonMenuSet( Sequence< Sequence< PropertyValue > >& aAddonMenuSeq );
> sal_Bool ReadOfficeMenuBarSet( Sequence< Sequence< PropertyValue > >& aAddonOfficeMenuBarSeq );
> - sal_Bool ReadOfficeToolBarSet( AddonToolBars& rAddonOfficeToolBars, std::vector< OUString >& rAddonOfficeToolBarResNames );
> + sal_Bool ReadOfficeToolBarSet( AddonToolBars& rAddonOfficeToolBars,
> + std::vector< OUString >& rAddonOfficeToolBarResNames,
> + std::vector< OUString >& rAddonOfficeToolBarUINames );
> sal_Bool ReadToolBarItemSet( const OUString rToolBarItemSetNodeName, Sequence< Sequence< PropertyValue > >& aAddonOfficeToolBarSeq );
> sal_Bool ReadOfficeHelpSet( Sequence< Sequence< PropertyValue > >& aAddonOfficeHelpMenuSeq );
> sal_Bool ReadImages( ImageManager& aImageManager );
> @@ -354,6 +366,7 @@ class AddonsOptions_Impl : public ConfigItem
>
> Sequence< OUString > GetPropertyNamesMenuItem( const OUString& aPropertyRootNode ) const;
> Sequence< OUString > GetPropertyNamesPopupMenu( const OUString& aPropertyRootNode ) const;
> + Sequence< OUString > GetPropertyNamesToolBar( const OUString& aPropertyRootNode ) const;
> Sequence< OUString > GetPropertyNamesToolBarItem( const OUString& aPropertyRootNode ) const;
> Sequence< OUString > GetPropertyNamesStatusbarItem( const ::rtl::OUString& aPropertyRootNode ) const;
> Sequence< OUString > GetPropertyNamesImages( const OUString& aPropertyRootNode ) const;
> @@ -381,6 +394,7 @@ class AddonsOptions_Impl : public ConfigItem
> Sequence< Sequence< PropertyValue > > m_aCachedMenuBarPartProperties;
> AddonToolBars m_aCachedToolBarPartProperties;
> std::vector< OUString > m_aCachedToolBarPartResourceNames;
> + std::vector< OUString > m_aCachedToolBarPartUINames;
> Sequence< Sequence< PropertyValue > > m_aCachedHelpMenuProperties;
> Reference< util::XMacroExpander > m_xMacroExpander;
> ImageManager m_aImageManager;
> @@ -414,6 +428,7 @@ AddonsOptions_Impl::AddonsOptions_Impl()
> m_aPropNames[ INDEX_ALIGN ] = PROPERTYNAME_ALIGN;
> m_aPropNames[ INDEX_AUTOSIZE ] = PROPERTYNAME_AUTOSIZE;
> m_aPropNames[ INDEX_OWNERDRAW ] = PROPERTYNAME_OWNERDRAW;
> + m_aPropNames[ INDEX_TOOLBARITEMS ] = PROPERTYNAME_TOOLBARITEMS;
>
> // initialize array with fixed images property names
> m_aPropImagesNames[ OFFSET_IMAGES_SMALL ] = PROPERTYNAME_IMAGESMALL;
> @@ -481,11 +496,14 @@ void AddonsOptions_Impl::ReadConfigurationData()
> m_aCachedToolBarPartProperties = AddonToolBars();
> m_aCachedHelpMenuProperties = Sequence< Sequence< PropertyValue > >();
> m_aCachedToolBarPartResourceNames.clear();
> + m_aCachedToolBarPartUINames.clear();
> m_aImageManager = ImageManager();
>
> ReadAddonMenuSet( m_aCachedMenuProperties );
> ReadOfficeMenuBarSet( m_aCachedMenuBarPartProperties );
> - ReadOfficeToolBarSet( m_aCachedToolBarPartProperties, m_aCachedToolBarPartResourceNames );
> + ReadOfficeToolBarSet( m_aCachedToolBarPartProperties,
> + m_aCachedToolBarPartResourceNames,
> + m_aCachedToolBarPartUINames );
>
> ReadOfficeHelpSet( m_aCachedHelpMenuProperties );
> ReadImages( m_aImageManager );
> @@ -569,6 +587,15 @@ const OUString AddonsOptions_Impl::GetAddonsToolbarResourceName( sal_uInt32 nInd
> return OUString();
> }
>
> +
> +const ::rtl::OUString AddonsOptions_Impl::GetAddonsToolbarUIName( sal_uInt32 nIndex ) const
> +{
> + if ( nIndex < m_aCachedToolBarPartUINames.size() )
> + return m_aCachedToolBarPartUINames[nIndex];
> + else
> + return rtl::OUString();
> +}
> +
> //*****************************************************************************************************************
> // public method
> //*****************************************************************************************************************
> @@ -763,7 +790,10 @@ sal_Bool AddonsOptions_Impl::ReadOfficeMenuBarSet( Sequence< Sequence< PropertyV
> //*****************************************************************************************************************
> // private method
> //*****************************************************************************************************************
> -sal_Bool AddonsOptions_Impl::ReadOfficeToolBarSet( AddonToolBars& rAddonOfficeToolBars, std::vector< OUString >& rAddonOfficeToolBarResNames )
> +sal_Bool AddonsOptions_Impl::ReadOfficeToolBarSet(
> + AddonToolBars& rAddonOfficeToolBars,
> + std::vector< OUString >& rAddonOfficeToolBarResNames,
> + std::vector< OUString >& rAddonOfficeToolBarUINames )
> {
> // Read the OfficeToolBar set and fill property sequences
> OUString aAddonToolBarNodeName( "AddonUI/OfficeToolBar" );
> @@ -774,10 +804,24 @@ sal_Bool AddonsOptions_Impl::ReadOfficeToolBarSet( AddonToolBars& rAddonOfficeTo
>
> for ( sal_uInt32 n = 0; n < nCount; n++ )
> {
> - OUString aToolBarItemNode( aAddonToolBarNode + aAddonToolBarNodeSeq[n] );
> + OUString aToolBarNode( aAddonToolBarNode + aAddonToolBarNodeSeq[n] + m_aPathDelimiter );
> rAddonOfficeToolBarResNames.push_back( aAddonToolBarNodeSeq[n] );
> rAddonOfficeToolBars.push_back( m_aEmptyAddonToolBar );
> - ReadToolBarItemSet( aToolBarItemNode, rAddonOfficeToolBars[n] );
> +
> + Sequence< Any > aToolBarNodeValues = GetProperties( GetPropertyNamesToolBar( aToolBarNode ) );
> +
> + rtl::OUString aUIName;
> + aToolBarNodeValues[OFFSET_TOOLBAR_TITLE] >>= aUIName;
> + rAddonOfficeToolBarUINames.push_back( aUIName );
> +
> + Reference < XInterface > xToolbarItems;
> + if ( ( aToolBarNodeValues[OFFSET_TOOLBAR_TOOLBARITEMS] >>= xToolbarItems ) && xToolbarItems.is() )
> + {
> + ::rtl::OUStringBuffer aBuffer;
> + aBuffer.append( aToolBarNode );
> + aBuffer.appendAscii( RTL_CONSTASCII_STRINGPARAM( STR_TOOLBARITEMS ) );
> + ReadToolBarItemSet( aBuffer.makeStringAndClear(), rAddonOfficeToolBars[n] );
> + }
> }
>
> return ( !rAddonOfficeToolBars.empty() );
> @@ -1715,6 +1759,17 @@ Sequence< OUString > AddonsOptions_Impl::GetPropertyNamesPopupMenu( const OUStri
> //*****************************************************************************************************************
> // private method
> //*****************************************************************************************************************
> +Sequence< OUString > AddonsOptions_Impl::GetPropertyNamesToolBar( const OUString& aPropertyRootNode ) const
> +{
> + Sequence< ::rtl::OUString > lResult( PROPERTYCOUNT_TOOLBAR );
> +
> + // Create property names dependent from the root node name
> + lResult[OFFSET_TOOLBAR_TITLE] = ::rtl::OUString( aPropertyRootNode + m_aPropNames[ INDEX_TITLE ] );
> + lResult[OFFSET_TOOLBAR_TOOLBARITEMS] = ::rtl::OUString( aPropertyRootNode + m_aPropNames[ INDEX_TOOLBARITEMS ] );
> +
> + return lResult;
> +}
> +
> Sequence< OUString > AddonsOptions_Impl::GetPropertyNamesToolBarItem( const OUString& aPropertyRootNode ) const
> {
> Sequence< OUString > lResult( PROPERTYCOUNT_TOOLBARITEM );
> @@ -1864,6 +1919,12 @@ const OUString AddonsOptions::GetAddonsToolbarResourceName( sal_uInt32 nIndex )
> return m_pDataContainer->GetAddonsToolbarResourceName( nIndex );
> }
>
> +const ::rtl::OUString AddonsOptions::GetAddonsToolbarUIName( sal_uInt32 nIndex ) const
> +{
> + MutexGuard aGuard( GetOwnStaticMutex() );
> + return m_pDataContainer->GetAddonsToolbarUIName( nIndex );
> +}
> +
> //*****************************************************************************************************************
> // public method
> //*****************************************************************************************************************
> diff --git a/framework/source/layoutmanager/toolbarlayoutmanager.cxx b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
> index b590ddd..ebc5459 100644
> --- a/framework/source/layoutmanager/toolbarlayoutmanager.cxx
> +++ b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
> @@ -1031,7 +1031,8 @@ void ToolbarLayoutManager::implts_createAddonsToolBars()
> }
>
> OUString aAddonUIName = m_pAddonOptions->GetAddonsToolbarUIName( i );
> - OUString aAddonTitle = aAddonUIName.getLength() ?
> + const bool bAddonUIName = aAddonUIName.getLength();
> + OUString aAddonTitle = bAddonUIName ?
> aAddonUIName : implts_generateGenericAddonToolbarTitle( i+1 );
>
> if ( !aElement.m_aName.isEmpty() )
> @@ -1040,7 +1041,7 @@ void ToolbarLayoutManager::implts_createAddonsToolBars()
> // UI changes for this document.
> implts_setElementData( aElement, xDockWindow );
> aElement.m_xUIElement = xUIElement;
> - if ( aElement.m_aUIName.isEmpty() )
> + if ( aElement.m_aUIName.isEmpty() && !bAddonUIName)
> {
> aElement.m_aUIName = aAddonTitle;
> implts_writeWindowStateData( aElement );
> @@ -1053,7 +1054,7 @@ void ToolbarLayoutManager::implts_createAddonsToolBars()
> aNewToolbar.m_bFloating = true;
> implts_readWindowStateData( aAddonToolBarName, aNewToolbar );
> implts_setElementData( aNewToolbar, xDockWindow );
> - if ( aNewToolbar.m_aUIName.isEmpty() )
> + if ( aNewToolbar.m_aUIName.isEmpty() && !bAddonUIName)
> {
> aNewToolbar.m_aUIName = aAddonTitle;
> implts_writeWindowStateData( aNewToolbar );
> diff --git a/include/framework/addonsoptions.hxx b/include/framework/addonsoptions.hxx
> index 0a926b8..b441aea 100644
> --- a/include/framework/addonsoptions.hxx
> +++ b/include/framework/addonsoptions.hxx
> @@ -282,6 +282,13 @@ class FWE_DLLPUBLIC AddonsOptions
> *//*-*****************************************************************************************************/
> bool GetMergeToolbarInstructions( const OUString& rToolbarName, MergeToolbarInstructionContainer& rToolbar ) const;
>
> + /**
> + * @short Gets the UI name of a single addon toolbar
> + * @return The UI name of the toolbar as specified in the Addons.xcu configuration
> + * @onerror Returns an empty string
> + */
> + const ::rtl::OUString GetAddonsToolbarUIName( sal_uInt32 nIndex ) const;
> +
> /*-****************************************************************************************************//**
> @short Gets the Add-On help menu part of all addon components registered
> @descr -
> diff --git a/officecfg/registry/schema/org/openoffice/Office/Addons.xcs b/officecfg/registry/schema/org/openoffice/Office/Addons.xcs
> index ee78884..90d33d4 100644
> --- a/officecfg/registry/schema/org/openoffice/Office/Addons.xcs
> +++ b/officecfg/registry/schema/org/openoffice/Office/Addons.xcs
> @@ -152,6 +152,22 @@
> </info>
> </set>
> </group>
> + <group oor:name="ToolBar">
> + <info>
> + <desc>Contains the structure of a toolbar.</desc>
> + </info>
> + <prop oor:name="Title" oor:type="xs:string" oor:localized="true">
> + <info>
> + <desc>A localized string used as the toolbar title.</desc>
> + </info>
> + <value></value>
> + </prop>
> + <set oor:name="ToolBarItems" oor:node-type="ToolBarItem">
> + <info>
> + <desc>Contains a list of sets of toolbar items that are part of add-on toolbars.</desc>
> + </info>
> + </set>
> + </group>
> <group oor:name="ToolBarItem">
> <info>
> <desc>Describes a toolbar item representing a function of of an external component. The name must be unique and should be written using a package-scheme like org.openoffice.external.applicationexecuter to minimize name clashes.</desc>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-API-CHANGE-Fix-broken-merge-of-Addons.xcs.patch
Type: text/x-patch
Size: 15631 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20130723/23ded4a0/attachment.bin>
More information about the LibreOffice
mailing list