[Libreoffice-commits] core.git: 3 commits - framework/source include/framework odk/examples officecfg/registry

Ariel Constenla-Haile arielch at apache.org
Mon Jun 24 03:58:38 PDT 2013


 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>
commit f97ca6f65182efc6542c53ac5e973b3ff398a5d1
Author: Ariel Constenla-Haile <arielch at apache.org>
Date:   Fri Jan 4 18:57:18 2013 +0000

    Resolves: #i116455# Make toolbar style settings persistent
    
    (cherry picked from commit fff79c8807c5b174507888a8e393f2605b28ea29)
    
    Conflicts:
    	framework/source/layoutmanager/toolbarlayoutmanager.cxx
    
    Change-Id: I25bfff7116c04aa6e40a062ce465960e50f68f7c

diff --git a/framework/source/layoutmanager/toolbarlayoutmanager.cxx b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
index 93ca444..b590ddd 100644
--- a/framework/source/layoutmanager/toolbarlayoutmanager.cxx
+++ b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
@@ -1030,7 +1030,9 @@ void ToolbarLayoutManager::implts_createAddonsToolBars()
                     }
                 }
 
-                OUString aGenericAddonTitle = implts_generateGenericAddonToolbarTitle( i+1 );
+                OUString aAddonUIName = m_pAddonOptions->GetAddonsToolbarUIName( i );
+                OUString aAddonTitle = aAddonUIName.getLength() ?
+                    aAddonUIName : implts_generateGenericAddonToolbarTitle( i+1 );
 
                 if ( !aElement.m_aName.isEmpty() )
                 {
@@ -1040,7 +1042,7 @@ void ToolbarLayoutManager::implts_createAddonsToolBars()
                     aElement.m_xUIElement = xUIElement;
                     if ( aElement.m_aUIName.isEmpty() )
                     {
-                        aElement.m_aUIName = aGenericAddonTitle;
+                        aElement.m_aUIName = aAddonTitle;
                         implts_writeWindowStateData( aElement );
                     }
                 }
@@ -1053,7 +1055,7 @@ void ToolbarLayoutManager::implts_createAddonsToolBars()
                     implts_setElementData( aNewToolbar, xDockWindow );
                     if ( aNewToolbar.m_aUIName.isEmpty() )
                     {
-                        aNewToolbar.m_aUIName = aGenericAddonTitle;
+                        aNewToolbar.m_aUIName = aAddonTitle;
                         implts_writeWindowStateData( aNewToolbar );
                     }
                     implts_insertToolbar( aNewToolbar );
@@ -1066,7 +1068,7 @@ void ToolbarLayoutManager::implts_createAddonsToolBars()
                     SolarMutexGuard aGuard;
                     Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
                     if ( pWindow->GetText().isEmpty() )
-                        pWindow->SetText( aGenericAddonTitle );
+                        pWindow->SetText( aAddonTitle );
                     if ( pWindow->GetType() == WINDOW_TOOLBOX )
                     {
                         ToolBox* pToolbar = (ToolBox *)pWindow;
@@ -1608,7 +1610,7 @@ void ToolbarLayoutManager::implts_writeWindowStateData( const UIElement& rElemen
     {
         try
         {
-            uno::Sequence< beans::PropertyValue > aWindowState( 8 );
+            uno::Sequence< beans::PropertyValue > aWindowState( 9 );
 
             aWindowState[0].Name  = OUString::createFromAscii( WINDOWSTATE_PROPERTY_DOCKED );
             aWindowState[0].Value = ::uno::makeAny( sal_Bool( !rElementData.m_bFloating ));
@@ -1631,6 +1633,8 @@ void ToolbarLayoutManager::implts_writeWindowStateData( const UIElement& rElemen
             aWindowState[6].Value = uno::makeAny( rElementData.m_aUIName );
             aWindowState[7].Name  = OUString::createFromAscii( WINDOWSTATE_PROPERTY_LOCKED );
             aWindowState[7].Value = uno::makeAny( rElementData.m_aDockedData.m_bLocked );
+            aWindowState[8].Name  = ::rtl::OUString::createFromAscii( WINDOWSTATE_PROPERTY_STYLE );
+            aWindowState[8].Value = uno::makeAny( rElementData.m_nStyle );
 
             OUString aName = rElementData.m_aName;
             if ( xPersistentWindowState->hasByName( aName ))


More information about the Libreoffice-commits mailing list