include/sfx2/notebookbar/SfxNotebookBar.hxx    |    2 ++
 include/vcl/WeldedTabbedNotebookbar.hxx        |    4 ++++
 sc/uiconfig/scalc/ui/notebookbar_online.ui     |   12 +++++++++++-
 sd/uiconfig/sdraw/ui/notebookbar_online.ui     |   16 ++++++++++++++++
 sd/uiconfig/simpress/ui/notebookbar_online.ui  |   16 ++++++++++++++++
 sfx2/source/notebookbar/SfxNotebookBar.cxx     |   13 ++++++++++---
 sw/uiconfig/swriter/ui/notebookbar_online.ui   |   16 ++++++++++++++++
 vcl/source/control/WeldedTabbedNotebookbar.cxx |    1 +
 8 files changed, 76 insertions(+), 4 deletions(-)

New commits:
commit fb280f3a55279fe7777239e481162730fee99e85
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Tue Jan 9 14:47:35 2024 +0100
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Mon Jan 29 11:57:11 2024 +0100

    lok: notebookbar: enable currency dropdown
    
    Add .uno:NumberFormatCurrency item to .ui
    Use weld:: way of widgets creation so we can inject
    jsdialog code and popup will be correctly registered.
    
    Signed-off-by: Szymon Kłos <szymon.k...@collabora.com>
    Change-Id: Ib57e1cad617ca5c7198d67e107441ba062580f06
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161829
    (cherry picked from commit 91df0cafa87692b5c924c44b9c7adf4a8d6f3e34)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162623

diff --git a/include/sfx2/notebookbar/SfxNotebookBar.hxx 
b/include/sfx2/notebookbar/SfxNotebookBar.hxx
index 7bf34d1cbf7e..cd94ddad7b1e 100644
--- a/include/sfx2/notebookbar/SfxNotebookBar.hxx
+++ b/include/sfx2/notebookbar/SfxNotebookBar.hxx
@@ -33,6 +33,7 @@ class SfxBindings;
 class SfxViewFrame;
 class SfxViewShell;
 class SystemWindow;
+class ToolbarUnoDispatcher;
 class WeldedTabbedNotebookbar;
 
 namespace sfx2
@@ -74,6 +75,7 @@ public:
 private:
     static bool m_bLock;
     static bool m_bHide;
+    static std::unique_ptr<ToolbarUnoDispatcher> m_xCalcToolboxDispatcher;
 
     static std::map<const SfxViewShell*, 
std::shared_ptr<WeldedTabbedNotebookbar>>
         m_pNotebookBarWeldedWrapper;
diff --git a/include/vcl/WeldedTabbedNotebookbar.hxx 
b/include/vcl/WeldedTabbedNotebookbar.hxx
index 073902f2d166..a1fffdd6dd39 100644
--- a/include/vcl/WeldedTabbedNotebookbar.hxx
+++ b/include/vcl/WeldedTabbedNotebookbar.hxx
@@ -23,12 +23,16 @@ class VCL_DLLPUBLIC WeldedTabbedNotebookbar
     std::unique_ptr<weld::Builder> m_xBuilder;
 
     std::unique_ptr<weld::Container> m_xContainer;
+    std::unique_ptr<weld::Toolbar> m_xWeldedToolbar;
 
 public:
     WeldedTabbedNotebookbar(const VclPtr<vcl::Window>& pContainerWindow,
                             const OUString& rUIFilePath,
                             const css::uno::Reference<css::frame::XFrame>& 
rFrame,
                             sal_uInt64 nWindowId);
+
+    weld::Toolbar& getWeldedToolbar() { return *m_xWeldedToolbar; }
+    weld::Builder& getBuilder() { return *m_xBuilder; }
 };
 
 #endif // INCLUDED_SFX2_NOTEBOOKBAR_SFXNOTEBOOKBAR_HXX
diff --git a/sc/uiconfig/scalc/ui/notebookbar_online.ui 
b/sc/uiconfig/scalc/ui/notebookbar_online.ui
index adf29a1ab43c..599bef675503 100644
--- a/sc/uiconfig/scalc/ui/notebookbar_online.ui
+++ b/sc/uiconfig/scalc/ui/notebookbar_online.ui
@@ -58,7 +58,7 @@
           </packing>
         </child>
         <child>
-          <object class="sfxlo-NotebookbarToolBox" id="SectionBottom127">
+          <object class="GtkToolbar" id="WeldedToolbar">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="toolbar_style">icons</property>
@@ -73,6 +73,16 @@
                 <property name="homogeneous">True</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkMenuToolButton" id="NumberFormatCurrency">
+                <property name="visible">True</property>
+                <property 
name="action_name">.uno:NumberFormatCurrency</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
           </object>
           <packing>
             <property name="expand">False</property>
diff --git a/sd/uiconfig/sdraw/ui/notebookbar_online.ui 
b/sd/uiconfig/sdraw/ui/notebookbar_online.ui
index 223eedce4c97..7fe79d180a0f 100644
--- a/sd/uiconfig/sdraw/ui/notebookbar_online.ui
+++ b/sd/uiconfig/sdraw/ui/notebookbar_online.ui
@@ -57,6 +57,22 @@
             <property name="position">1</property>
           </packing>
         </child>
+        <child>
+          <object class="GtkToolbar" id="WeldedToolbar">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="toolbar_style">icons</property>
+            <property name="show_arrow">False</property>
+            <child>
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
       </object>
       <packing>
         <property name="left_attach">0</property>
diff --git a/sd/uiconfig/simpress/ui/notebookbar_online.ui 
b/sd/uiconfig/simpress/ui/notebookbar_online.ui
index 223eedce4c97..7fe79d180a0f 100644
--- a/sd/uiconfig/simpress/ui/notebookbar_online.ui
+++ b/sd/uiconfig/simpress/ui/notebookbar_online.ui
@@ -57,6 +57,22 @@
             <property name="position">1</property>
           </packing>
         </child>
+        <child>
+          <object class="GtkToolbar" id="WeldedToolbar">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="toolbar_style">icons</property>
+            <property name="show_arrow">False</property>
+            <child>
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
       </object>
       <packing>
         <property name="left_attach">0</property>
diff --git a/sfx2/source/notebookbar/SfxNotebookBar.cxx 
b/sfx2/source/notebookbar/SfxNotebookBar.cxx
index 8e9c2c9ca494..9c33b3ef5fb9 100644
--- a/sfx2/source/notebookbar/SfxNotebookBar.cxx
+++ b/sfx2/source/notebookbar/SfxNotebookBar.cxx
@@ -14,6 +14,7 @@
 #include <vcl/syswin.hxx>
 #include <sfx2/viewfrm.hxx>
 #include <sfx2/sfxsids.hrc>
+#include <sfx2/weldutils.hxx>
 #include <comphelper/processfactory.hxx>
 #include <comphelper/lok.hxx>
 #include <com/sun/star/frame/UnknownModuleException.hpp>
@@ -41,6 +42,7 @@ const char MERGE_NOTEBOOKBAR_URL[] = "URL";
 
 bool SfxNotebookBar::m_bLock = false;
 bool SfxNotebookBar::m_bHide = false;
+std::unique_ptr<ToolbarUnoDispatcher> SfxNotebookBar::m_xCalcToolboxDispatcher;
 std::map<const SfxViewShell*, std::shared_ptr<WeldedTabbedNotebookbar>> 
SfxNotebookBar::m_pNotebookBarWeldedWrapper;
 std::map<const SfxViewShell*, VclPtr<NotebookBar>> 
SfxNotebookBar::m_pNotebookBarInstance;
 
@@ -440,13 +442,18 @@ bool SfxNotebookBar::StateMethod(SystemWindow* pSysWindow,
                 assert(pNotebookBar->IsWelded());
 
                 sal_uInt64 nWindowId = 
reinterpret_cast<sal_uInt64>(pViewShell);
-                m_pNotebookBarWeldedWrapper.emplace(std::make_pair(pViewShell,
-                        new 
WeldedTabbedNotebookbar(pNotebookBar->GetMainContainer(),
+                WeldedTabbedNotebookbar* pWrapper = new 
WeldedTabbedNotebookbar(pNotebookBar->GetMainContainer(),
                                                     
pNotebookBar->GetUIFilePath(),
                                                     xFrame,
-                                                    nWindowId)));
+                                                    nWindowId);
+                m_pNotebookBarWeldedWrapper.emplace(std::make_pair(pViewShell, 
pWrapper));
                 pNotebookBar->SetDisposeCallback(LINK(nullptr, SfxNotebookBar, 
VclDisposeHdl), pViewShell);
 
+                // TODO: this has to be per instance!!! like 
m_pNotebookBarWeldedWrapper
+                // TODO: create LOK Notebookbar Instance manager which will 
encapsulate in single place all of these...
+                SfxNotebookBar::m_xCalcToolboxDispatcher.reset(
+                    new ToolbarUnoDispatcher(pWrapper->getWeldedToolbar(), 
pWrapper->getBuilder(), xFrame));
+
                 return true;
             }
 
diff --git a/sw/uiconfig/swriter/ui/notebookbar_online.ui 
b/sw/uiconfig/swriter/ui/notebookbar_online.ui
index 86930c1e79ba..9a42f38d151c 100644
--- a/sw/uiconfig/swriter/ui/notebookbar_online.ui
+++ b/sw/uiconfig/swriter/ui/notebookbar_online.ui
@@ -82,6 +82,22 @@
             <property name="position">0</property>
           </packing>
         </child>
+        <child>
+          <object class="GtkToolbar" id="WeldedToolbar">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="toolbar_style">icons</property>
+            <property name="show_arrow">False</property>
+            <child>
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
       </object>
       <packing>
         <property name="left_attach">0</property>
diff --git a/vcl/source/control/WeldedTabbedNotebookbar.cxx 
b/vcl/source/control/WeldedTabbedNotebookbar.cxx
index 1a3311de9f5b..1b9eef3756e0 100644
--- a/vcl/source/control/WeldedTabbedNotebookbar.cxx
+++ b/vcl/source/control/WeldedTabbedNotebookbar.cxx
@@ -18,6 +18,7 @@ WeldedTabbedNotebookbar::WeldedTabbedNotebookbar(
           pContainerWindow, AllSettings::GetUIRootDir(), rUIFilePath, rFrame, 
nWindowId))
 {
     m_xContainer = m_xBuilder->weld_container("NotebookBar");
+    m_xWeldedToolbar = m_xBuilder->weld_toolbar("WeldedToolbar");
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Reply via email to