officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu |   11 ++
 sw/inc/PageColumnPopup.hxx                                      |   18 +++-
 sw/source/uibase/app/swmodule.cxx                               |    1 
 sw/source/uibase/sidebar/PageColumnControl.cxx                  |    7 +
 sw/source/uibase/sidebar/PageColumnControl.hxx                  |    8 +-
 sw/source/uibase/sidebar/PageColumnPopup.cxx                    |   38 
+++++++---
 sw/util/sw.component                                            |    4 +
 7 files changed, 65 insertions(+), 22 deletions(-)

New commits:
commit 85307c10d3ca4d7c9ed3fa1ca3700a6330b09da8
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Tue Jan 14 11:30:55 2020 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Tue Jan 14 14:34:46 2020 +0100

    rework PageColumnPopup to be a PopupWindowController
    
    Change-Id: I00d0ce6001f2eb3076c699bca7c64a72b94716c9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86751
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu 
b/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
index f01223dc1d6a..4505585ab748 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
@@ -1173,6 +1173,17 @@
           <value>lo.writer.PageSizeToolBoxControl</value>
         </prop>
       </node>
+      <node oor:name="PageColumnToolBoxControl" oor:op="replace">
+        <prop oor:name="Command">
+          <value>.uno:PageColumnType</value>
+        </prop>
+        <prop oor:name="Module">
+          <value/>
+        </prop>
+        <prop oor:name="Controller">
+          <value>lo.writer.PageColumnToolBoxControl</value>
+        </prop>
+      </node>
       <node oor:name="com.sun.star.svx.FindTextToolboxController" 
oor:op="replace">
         <prop oor:name="Command">
           <value>.uno:FindText</value>
diff --git a/sw/inc/PageColumnPopup.hxx b/sw/inc/PageColumnPopup.hxx
index b0df45df4a96..a16b2893c807 100644
--- a/sw/inc/PageColumnPopup.hxx
+++ b/sw/inc/PageColumnPopup.hxx
@@ -19,18 +19,24 @@
 #ifndef INCLUDED_SW_INC_PAGECOLUMNPOPUP_HXX
 #define INCLUDED_SW_INC_PAGECOLUMNPOPUP_HXX
 
-#include <sfx2/tbxctrl.hxx>
+#include <svtools/popupwindowcontroller.hxx>
 #include "swdllapi.h"
 
-class PageColumnPopup final : public SfxToolBoxControl
+class PageColumnPopup final : public svt::PopupWindowController
 {
 public:
-    SFX_DECL_TOOLBOX_CONTROL();
-
-    PageColumnPopup(sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx);
+    PageColumnPopup(const css::uno::Reference<css::uno::XComponentContext>& 
rContext);
     virtual ~PageColumnPopup() override;
 
-    virtual VclPtr<SfxPopupWindow> CreatePopupWindow() override;
+    using svt::ToolboxController::createPopupWindow;
+    virtual VclPtr<vcl::Window> createPopupWindow( vcl::Window* pParent ) 
override;
+
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() 
override;
+
+    // XInitialization
+    virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any 
>& rArguments ) override;
 };
 
 #endif
diff --git a/sw/source/uibase/app/swmodule.cxx 
b/sw/source/uibase/app/swmodule.cxx
index 613dda8d345f..508dd07fdc8a 100644
--- a/sw/source/uibase/app/swmodule.cxx
+++ b/sw/source/uibase/app/swmodule.cxx
@@ -281,7 +281,6 @@ void SwDLL::RegisterControls()
     
svx::ParaFirstLineSpacingControl::RegisterControl(SID_ATTR_PARA_FIRSTLINESPACE, 
pMod);
     PageMarginPopup::RegisterControl(SID_ATTR_PAGE_MARGIN, pMod);
     PageOrientationPopup::RegisterControl(SID_ATTR_PAGE_ORIENTATION, pMod);
-    PageColumnPopup::RegisterControl(SID_ATTR_PAGE_COLUMN, pMod);
 
     SvxClipBoardControl::RegisterControl(SID_PASTE, pMod );
     SvxUndoRedoControl::RegisterControl(SID_UNDO, pMod );
diff --git a/sw/source/uibase/sidebar/PageColumnControl.cxx 
b/sw/source/uibase/sidebar/PageColumnControl.cxx
index 6532472e5a9e..a7ee125ce33d 100644
--- a/sw/source/uibase/sidebar/PageColumnControl.cxx
+++ b/sw/source/uibase/sidebar/PageColumnControl.cxx
@@ -19,6 +19,7 @@
 
 #include <memory>
 #include "PageColumnControl.hxx"
+#include <PageColumnPopup.hxx>
 
 #include <cmdid.h>
 
@@ -30,8 +31,8 @@
 
 namespace sw { namespace sidebar {
 
-PageColumnControl::PageColumnControl( sal_uInt16 nId, vcl::Window* pParent )
-    : SfxPopupWindow( nId, pParent, "PageColumnControl", 
"modules/swriter/ui/pagecolumncontrol.ui" )
+PageColumnControl::PageColumnControl(PageColumnPopup* pControl, vcl::Window* 
pParent)
+    : ToolbarPopup(pControl->getFrameInterface(), pParent, 
"PageColumnControl", "modules/swriter/ui/pagecolumncontrol.ui" )
 {
     get( m_pMoreButton, "moreoptions" );
 
@@ -89,7 +90,7 @@ void PageColumnControl::dispose()
     m_pLeft.disposeAndClear();
     m_pRight.disposeAndClear();
     m_pMoreButton.disposeAndClear();
-    SfxPopupWindow::dispose();
+    ToolbarPopup::dispose();
 }
 
 void PageColumnControl::ExecuteColumnChange( const sal_uInt16 nColumnType )
diff --git a/sw/source/uibase/sidebar/PageColumnControl.hxx 
b/sw/source/uibase/sidebar/PageColumnControl.hxx
index 974d0632ab6f..a5a6ec3ef95b 100644
--- a/sw/source/uibase/sidebar/PageColumnControl.hxx
+++ b/sw/source/uibase/sidebar/PageColumnControl.hxx
@@ -19,15 +19,17 @@
 #ifndef INCLUDED_SW_SOURCE_UIBASE_SIDEBAR_PAGECOLUMNCONTROL_HXX
 #define INCLUDED_SW_SOURCE_UIBASE_SIDEBAR_PAGECOLUMNCONTROL_HXX
 
-#include <sfx2/tbxctrl.hxx>
+#include <svtools/toolbarmenu.hxx>
 #include <vcl/button.hxx>
 
+class PageColumnPopup;
+
 namespace sw { namespace sidebar {
 
-class PageColumnControl : public SfxPopupWindow
+class PageColumnControl final : public svtools::ToolbarPopup
 {
 public:
-    explicit PageColumnControl(sal_uInt16 nId, vcl::Window* pParent);
+    explicit PageColumnControl(PageColumnPopup* pControl, vcl::Window* 
pParent);
 
     virtual ~PageColumnControl() override;
     virtual void dispose() override;
diff --git a/sw/source/uibase/sidebar/PageColumnPopup.cxx 
b/sw/source/uibase/sidebar/PageColumnPopup.cxx
index c05546451c90..0ec50da9439c 100644
--- a/sw/source/uibase/sidebar/PageColumnPopup.cxx
+++ b/sw/source/uibase/sidebar/PageColumnPopup.cxx
@@ -21,26 +21,46 @@
 #include <svl/intitem.hxx>
 #include <vcl/toolbox.hxx>
 
-SFX_IMPL_TOOLBOX_CONTROL(PageColumnPopup, SfxInt16Item);
+PageColumnPopup::PageColumnPopup(const 
css::uno::Reference<css::uno::XComponentContext>& rContext)
+    : PopupWindowController(rContext, nullptr, OUString())
+{
+}
 
-PageColumnPopup::PageColumnPopup(sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& 
rTbx)
-    : SfxToolBoxControl(nSlotId, nId, rTbx)
+void PageColumnPopup::initialize( const css::uno::Sequence< css::uno::Any >& 
rArguments )
 {
-    rTbx.SetItemBits(nId, ToolBoxItemBits::DROPDOWNONLY | 
rTbx.GetItemBits(nId));
+    PopupWindowController::initialize(rArguments);
+
+    ToolBox* pToolBox = nullptr;
+    sal_uInt16 nId = 0;
+    if (getToolboxId(nId, &pToolBox) && pToolBox->GetItemCommand(nId) == 
m_aCommandURL)
+        pToolBox->SetItemBits(nId, ToolBoxItemBits::DROPDOWNONLY | 
pToolBox->GetItemBits(nId));
 }
 
 PageColumnPopup::~PageColumnPopup()
 {
 }
 
-VclPtr<SfxPopupWindow> PageColumnPopup::CreatePopupWindow()
+VclPtr<vcl::Window> PageColumnPopup::createPopupWindow(vcl::Window* pParent)
+{
+    return VclPtr<sw::sidebar::PageColumnControl>::Create(this, pParent);
+}
+
+OUString PageColumnPopup::getImplementationName()
 {
-    VclPtr<sw::sidebar::PageColumnControl> pControl = 
VclPtr<sw::sidebar::PageColumnControl>::Create(GetSlotId(), &GetToolBox());
-    pControl->StartPopupMode(&GetToolBox(), FloatWinPopupFlags::GrabFocus);
-    SetPopupWindow(pControl);
+    return "lo.writer.PageColumnToolBoxControl";
+}
 
-    return pControl;
+css::uno::Sequence<OUString> PageColumnPopup::getSupportedServiceNames()
+{
+    return { "com.sun.star.frame.ToolbarController" };
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface *
+lo_writer_PageColumnToolBoxControl_get_implementation(
+    css::uno::XComponentContext* rContext,
+    css::uno::Sequence<css::uno::Any> const & )
+{
+    return cppu::acquire(new PageColumnPopup(rContext));
+}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/util/sw.component b/sw/util/sw.component
index f05b81a2e71a..a6fac075e4f9 100644
--- a/sw/util/sw.component
+++ b/sw/util/sw.component
@@ -51,6 +51,10 @@
     constructor="lo_writer_PageSizeToolBoxControl_get_implementation">
     <service name="com.sun.star.frame.ToolbarController"/>
   </implementation>
+  <implementation name="lo.writer.PageColumnToolBoxControl"
+    constructor="lo_writer_PageColumnToolBoxControl_get_implementation">
+    <service name="com.sun.star.frame.ToolbarController"/>
+  </implementation>
   <implementation name="SwXModule"
       constructor="SwXModule_get_implementation">
     <service name="com.sun.star.text.GlobalSettings"/>
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to