[Libreoffice-commits] core.git: compilerplugins/clang cui/source cui/uiconfig include/sfx2 include/svx sc/source sfx2/source sfx2/uiconfig starmath/inc starmath/source svtools/source svtools/uiconfig svx/source svx/uiconfig sw/inc sw/source sw/uiconfig vcl/source vcl/unx

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Fri Sep 7 12:42:58 UTC 2018


 compilerplugins/clang/vclwidgets.cxx       |    3 
 cui/source/dialogs/colorpicker.cxx         |    6 
 cui/source/dialogs/cuicharmap.cxx          |    2 
 cui/source/factory/dlgfact.cxx             |    8 -
 cui/source/factory/dlgfact.hxx             |    2 
 cui/source/inc/bbdlg.hxx                   |    9 -
 cui/source/inc/cuitabarea.hxx              |    4 
 cui/source/tabpages/bbdlg.cxx              |   27 +--
 cui/source/tabpages/tparea.cxx             |   14 +-
 cui/source/tabpages/tpbitmap.cxx           |   14 +-
 cui/source/tabpages/tpcolor.cxx            |    6 
 cui/source/tabpages/tpgradnt.cxx           |   14 +-
 cui/source/tabpages/tphatch.cxx            |   14 +-
 cui/source/tabpages/tppattern.cxx          |   47 +++---
 cui/uiconfig/ui/areatabpage.ui             |    5 
 cui/uiconfig/ui/bitmaptabpage.ui           |  100 +++++++++-----
 cui/uiconfig/ui/colorpage.ui               |    9 -
 cui/uiconfig/ui/gradientpage.ui            |  180 ++++++++++---------------
 cui/uiconfig/ui/hatchpage.ui               |   27 +--
 cui/uiconfig/ui/pageformatpage.ui          |    4 
 cui/uiconfig/ui/patterntabpage.ui          |   41 ++---
 cui/uiconfig/ui/transparencytabpage.ui     |   45 +-----
 include/sfx2/tabdlg.hxx                    |   28 +++-
 include/sfx2/viewsh.hxx                    |    2 
 include/svx/hdft.hxx                       |    2 
 include/svx/svxdlg.hxx                     |    2 
 sc/source/ui/dbgui/tpsort.cxx              |    2 
 sc/source/ui/inc/prevwsh.hxx               |    2 
 sc/source/ui/inc/tabvwsh.hxx               |    2 
 sc/source/ui/view/prevwsh.cxx              |    4 
 sc/source/ui/view/tabvwsh4.cxx             |    4 
 sfx2/source/control/charwin.cxx            |    2 
 sfx2/source/dialog/mgetempl.cxx            |    2 
 sfx2/source/dialog/tabdlg.cxx              |   43 +++++-
 sfx2/source/view/printer.cxx               |    2 
 sfx2/source/view/viewprn.cxx               |    2 
 sfx2/uiconfig/ui/managestylepage.ui        |    2 
 starmath/inc/dialog.hxx                    |    6 
 starmath/inc/view.hxx                      |    2 
 starmath/source/smmod.cxx                  |    4 
 starmath/source/view.cxx                   |    4 
 svtools/source/control/valueset.cxx        |    2 
 svtools/uiconfig/ui/linewindow.ui          |    1 
 svx/source/dialog/charmap.cxx              |    2 
 svx/source/dialog/dialcontrol.cxx          |    2 
 svx/source/dialog/dlgctrl.cxx              |    4 
 svx/source/dialog/fntctrl.cxx              |    3 
 svx/source/dialog/frmsel.cxx               |    2 
 svx/source/dialog/hdft.cxx                 |    6 
 svx/source/dialog/pagectrl.cxx             |    3 
 svx/source/dialog/paraprev.cxx             |    2 
 svx/source/dialog/swframeexample.cxx       |    2 
 svx/uiconfig/ui/colorwindow.ui             |    1 
 sw/inc/view.hxx                            |    8 -
 sw/source/ui/chrdlg/drpcps.cxx             |    2 
 sw/source/ui/dialog/swdlgfact.cxx          |   21 +++
 sw/source/ui/dialog/swdlgfact.hxx          |   16 ++
 sw/source/ui/envelp/envlop1.cxx            |    2 
 sw/source/ui/envelp/envprt.cxx             |    2 
 sw/source/ui/envelp/labfmt.cxx             |    4 
 sw/source/ui/fmtui/tmpdlg.cxx              |  203 ++++++++++++++++++++++++++++-
 sw/source/ui/frmdlg/column.cxx             |    2 
 sw/source/ui/misc/pggrid.cxx               |    4 
 sw/source/uibase/docvw/HeaderFooterWin.cxx |    2 
 sw/source/uibase/frmdlg/colex.cxx          |    2 
 sw/source/uibase/inc/pview.hxx             |    2 
 sw/source/uibase/inc/tmpdlg.hxx            |   24 +++
 sw/source/uibase/uiview/pview.cxx          |    6 
 sw/source/uibase/uiview/viewprt.cxx        |   12 -
 sw/uiconfig/swriter/ui/columnpage.ui       |    2 
 sw/uiconfig/swriter/ui/templatedialog1.ui  |   39 ++---
 sw/uiconfig/swriter/ui/templatedialog16.ui |   33 +++-
 sw/uiconfig/swriter/ui/templatedialog2.ui  |   39 ++---
 sw/uiconfig/swriter/ui/templatedialog4.ui  |   39 ++---
 sw/uiconfig/swriter/ui/templatedialog8.ui  |   34 +++-
 sw/uiconfig/swriter/ui/textgridpage.ui     |    2 
 vcl/source/app/salvtables.cxx              |    4 
 vcl/unx/gtk3/gtk3gtkinst.cxx               |    8 -
 78 files changed, 764 insertions(+), 476 deletions(-)

New commits:
commit a2304f62e963b413b7575bedfb8d34e5f2d3ea58
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Aug 30 09:43:59 2018 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Sep 7 14:42:31 2018 +0200

    weld writer page style dialog and SvxBorderBackgroundDlg
    
    writer, format page is complete
    
    Change-Id: I09f6e4354461c4374cdb0d0e0754dfee35415b45
    Reviewed-on: https://gerrit.libreoffice.org/60058
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/compilerplugins/clang/vclwidgets.cxx b/compilerplugins/clang/vclwidgets.cxx
index 6b8e8125daa7..8f625f5cdfdf 100644
--- a/compilerplugins/clang/vclwidgets.cxx
+++ b/compilerplugins/clang/vclwidgets.cxx
@@ -242,7 +242,8 @@ bool VCLWidgets::VisitCXXDestructorDecl(const CXXDestructorDecl* pCXXDestructorD
         StringRef filename = getFileNameOfSpellingLoc(spellingLocation);
         if (   !(loplugin::isSamePathname(filename, SRCDIR "/vcl/source/window/window.cxx"))
             && !(loplugin::isSamePathname(filename, SRCDIR "/vcl/source/gdi/virdev.cxx"))
-            && !(loplugin::isSamePathname(filename, SRCDIR "/vcl/qa/cppunit/lifecycle.cxx")) )
+            && !(loplugin::isSamePathname(filename, SRCDIR "/vcl/qa/cppunit/lifecycle.cxx"))
+            && !(loplugin::isSamePathname(filename, SRCDIR "/sfx2/source/dialog/tabdlg.cxx")) )
         {
             report(
                 DiagnosticsEngine::Warning,
diff --git a/cui/source/dialogs/colorpicker.cxx b/cui/source/dialogs/colorpicker.cxx
index 24a498238d2f..e11a70acbbce 100644
--- a/cui/source/dialogs/colorpicker.cxx
+++ b/cui/source/dialogs/colorpicker.cxx
@@ -164,9 +164,9 @@ public:
 
     virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override
     {
+        CustomWidgetController::SetDrawingArea(pDrawingArea);
         pDrawingArea->set_size_request(pDrawingArea->get_approximate_digit_width() * 10,
                                        pDrawingArea->get_text_height() * 2);
-        CustomWidgetController::SetDrawingArea(pDrawingArea);
     }
 
     void SetColor(const Color& rCol)
@@ -202,9 +202,9 @@ public:
 
     virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override
     {
+        CustomWidgetController::SetDrawingArea(pDrawingArea);
         pDrawingArea->set_size_request(pDrawingArea->get_approximate_digit_width() * 40,
                                        pDrawingArea->get_text_height() * 10);
-        CustomWidgetController::SetDrawingArea(pDrawingArea);
     }
 
     virtual ~ColorFieldControl() override
@@ -548,8 +548,8 @@ ColorSliderControl::ColorSliderControl()
 
 void ColorSliderControl::SetDrawingArea(weld::DrawingArea* pDrawingArea)
 {
-    pDrawingArea->set_size_request(pDrawingArea->get_approximate_digit_width() * 3, -1);
     CustomWidgetController::SetDrawingArea(pDrawingArea);
+    pDrawingArea->set_size_request(pDrawingArea->get_approximate_digit_width() * 3, -1);
 }
 
 ColorSliderControl::~ColorSliderControl()
diff --git a/cui/source/dialogs/cuicharmap.cxx b/cui/source/dialogs/cuicharmap.cxx
index e544ff18fce5..06169a053109 100644
--- a/cui/source/dialogs/cuicharmap.cxx
+++ b/cui/source/dialogs/cuicharmap.cxx
@@ -1136,6 +1136,7 @@ SvxShowText::SvxShowText(const VclPtr<VirtualDevice>& rVirDev)
 
 void SvxShowText::SetDrawingArea(weld::DrawingArea* pDrawingArea)
 {
+    CustomWidgetController::SetDrawingArea(pDrawingArea);
     vcl::Font aFont = m_xVirDev->GetFont();
     Size aFontSize(aFont.GetFontSize().Width() * 5, aFont.GetFontSize().Height() * 5);
     aFont.SetFontSize(aFontSize);
@@ -1143,7 +1144,6 @@ void SvxShowText::SetDrawingArea(weld::DrawingArea* pDrawingArea)
     m_xVirDev->SetFont(aFont);
     pDrawingArea->set_size_request(m_xVirDev->approximate_digit_width() + 2 * 12,
                                    m_xVirDev->LogicToPixel(aFontSize).Height() * 2);
-    CustomWidgetController::SetDrawingArea(pDrawingArea);
     m_xVirDev->Pop();
 }
 
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index 8874dedd834e..973a5ed3b26c 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -1150,17 +1150,15 @@ VclPtr<AbstractSvxSearchSimilarityDialog> AbstractDialogFactory_Impl::CreateSvxS
 }
 
 VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSvxBorderBackgroundDlg(
-    vcl::Window* pParent,
+    weld::Window* pParent,
     const SfxItemSet& rCoreSet,
     bool bEnableDrawingLayerFillStyles)
 {
-    VclPtrInstance<SvxBorderBackgroundDlg> pDlg(
+    return VclPtr<CuiAbstractTabController_Impl>::Create(o3tl::make_unique<SvxBorderBackgroundDlg>(
         pParent,
         rCoreSet,
         /*bEnableSelector*/true,
-        bEnableDrawingLayerFillStyles);
-
-    return VclPtr<CuiAbstractTabDialog_Impl>::Create(pDlg);
+        bEnableDrawingLayerFillStyles));
 }
 
 VclPtr<AbstractSvxTransformTabDialog> AbstractDialogFactory_Impl::CreateSvxTransformTabDialog(weld::Window* pParent,
diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx
index 73b8bb9521d9..bfe749ba4142 100644
--- a/cui/source/factory/dlgfact.hxx
+++ b/cui/source/factory/dlgfact.hxx
@@ -668,7 +668,7 @@ public:
     virtual VclPtr<AbstractSvxZoomDialog> CreateSvxZoomDialog(weld::Window* pParent, const SfxItemSet& rCoreSet) override;
    // add for SvxBorderBackgroundDlg
     virtual VclPtr<SfxAbstractTabDialog> CreateSvxBorderBackgroundDlg(
-       vcl::Window* pParent,
+       weld::Window* pParent,
        const SfxItemSet& rCoreSet,
        bool bEnableDrawingLayerFillStyles) override;
 
diff --git a/cui/source/inc/bbdlg.hxx b/cui/source/inc/bbdlg.hxx
index 7176890b1c4f..b25b7cc098da 100644
--- a/cui/source/inc/bbdlg.hxx
+++ b/cui/source/inc/bbdlg.hxx
@@ -25,21 +25,18 @@
     Description:   bunch the border background pages
  --------------------------------------------------------------------*/
 
-class SvxBorderBackgroundDlg: public SfxTabDialog
+class SvxBorderBackgroundDlg: public SfxTabDialogController
 {
 public:
-    SvxBorderBackgroundDlg(vcl::Window *pParent,
+    SvxBorderBackgroundDlg(weld::Window *pParent,
         const SfxItemSet& rCoreSet,
         bool bEnableSelector,
         bool bEnableDrawingLayerFillStyles);
 protected:
-    virtual void    PageCreated( sal_uInt16 nPageId, SfxTabPage& rTabPage ) override;
+    virtual void PageCreated(const OString& rPageId, SfxTabPage& rTabPage) override;
 
 private:
     bool        mbEnableBackgroundSelector : 1;         ///< for Border/Background
-    sal_uInt16  m_nBackgroundPageId;
-    sal_uInt16  m_nAreaPageId;
-    sal_uInt16  m_nTransparencePageId;
 };
 
 #endif
diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx
index de7fd90cc3e7..fc256c66312f 100644
--- a/cui/source/inc/cuitabarea.hxx
+++ b/cui/source/inc/cuitabarea.hxx
@@ -609,14 +609,14 @@ private:
     XFillAttrSetItem    m_aXFillAttr;
     SfxItemSet&         m_rXFSet;
 
-    SvxPixelCtl m_aCtlPixel;
     XRectPreview m_aCtlPreview;
+    std::unique_ptr<SvxPixelCtl> m_xCtlPixel;
     std::unique_ptr<ColorListBox> m_xLbColor;
     std::unique_ptr<ColorListBox> m_xLbBackgroundColor;
     std::unique_ptr<PresetListBox> m_xPatternLB;
     std::unique_ptr<weld::Button> m_xBtnAdd;
     std::unique_ptr<weld::Button> m_xBtnModify;
-    std::unique_ptr<weld::CustomWeld> m_xCtlPixel;
+    std::unique_ptr<weld::CustomWeld> m_xCtlPixelWin;
     std::unique_ptr<weld::CustomWeld> m_xCtlPreview;
     std::unique_ptr<weld::CustomWeld> m_xPatternLBWin;
     std::unique_ptr<SvxBitmapCtl> m_xBitmapCtl;
diff --git a/cui/source/tabpages/bbdlg.cxx b/cui/source/tabpages/bbdlg.cxx
index 034a43132b83..a17122b0f66b 100644
--- a/cui/source/tabpages/bbdlg.cxx
+++ b/cui/source/tabpages/bbdlg.cxx
@@ -23,39 +23,36 @@
 #include <svx/svxids.hrc>
 #include <cuitabarea.hxx>
 
-SvxBorderBackgroundDlg::SvxBorderBackgroundDlg(vcl::Window *pParent,
+SvxBorderBackgroundDlg::SvxBorderBackgroundDlg(weld::Window *pParent,
     const SfxItemSet& rCoreSet,
     bool bEnableSelector,
     bool bEnableDrawingLayerFillStyles)
-    : SfxTabDialog(pParent,
-        bEnableDrawingLayerFillStyles
-            ? OUString("BorderAreaTransparencyDialog")
-            : OUString("BorderBackgroundDialog"),
+    : SfxTabDialogController(pParent,
         bEnableDrawingLayerFillStyles
             ? OUString("cui/ui/borderareatransparencydialog.ui")
             : OUString("cui/ui/borderbackgrounddialog.ui"),
+        bEnableDrawingLayerFillStyles
+            ? OString("BorderAreaTransparencyDialog")
+            : OString("BorderBackgroundDialog"),
         &rCoreSet)
     , mbEnableBackgroundSelector(bEnableSelector)
-    , m_nBackgroundPageId(0)
-    , m_nAreaPageId(0)
-    , m_nTransparencePageId(0)
 {
     AddTabPage("borders", SvxBorderTabPage::Create, nullptr );
     if (bEnableDrawingLayerFillStyles)
     {
         // Here we want full DrawingLayer FillStyle access, so add Area and Transparency TabPages
-        m_nAreaPageId = AddTabPage("area", SvxAreaTabPage::Create, nullptr);
-        m_nTransparencePageId = AddTabPage("transparence", SvxTransparenceTabPage::Create, nullptr);
+        AddTabPage("area", SvxAreaTabPage::Create, nullptr);
+        AddTabPage("transparence", SvxTransparenceTabPage::Create, nullptr);
     }
     else
     {
-        m_nBackgroundPageId = AddTabPage("background", SvxBackgroundTabPage::Create, nullptr );
+        AddTabPage("background", SvxBackgroundTabPage::Create, nullptr );
     }
 }
 
-void SvxBorderBackgroundDlg::PageCreated( sal_uInt16 nPageId, SfxTabPage& rTabPage )
+void SvxBorderBackgroundDlg::PageCreated(const OString& rPageId, SfxTabPage& rTabPage)
 {
-    if (nPageId == m_nBackgroundPageId)
+    if (rPageId == "background")
     {
         // allow switching between Color/graphic
         if(mbEnableBackgroundSelector)
@@ -69,7 +66,7 @@ void SvxBorderBackgroundDlg::PageCreated( sal_uInt16 nPageId, SfxTabPage& rTabPa
     // these pages find the needed attributes for fill style suggestions.
     // These are added in SwDocStyleSheet::GetItemSet() for the SfxStyleFamily::Para on
     // demand, but could also be directly added from the DrawModel.
-    else if (nPageId == m_nAreaPageId)
+    else if (rPageId == "area")
     {
         SfxItemSet aNew(
             *GetInputSetImpl()->GetPool(),
@@ -83,7 +80,7 @@ void SvxBorderBackgroundDlg::PageCreated( sal_uInt16 nPageId, SfxTabPage& rTabPa
 
         rTabPage.PageCreated(aNew);
     }
-    else if (nPageId == m_nTransparencePageId)
+    else if (rPageId == "transparence")
     {
         rTabPage.PageCreated(*GetInputSetImpl());
     }
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index 2386d48f527f..40b3e970f877 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -118,7 +118,10 @@ SvxAreaTabPage::SvxAreaTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs
 
     SetExchangeSupport();
 
-    TabPageParent aFillTab(m_xFillTab.get());
+    TabPageParent aFillTab(m_xFillTab.get(), pParent.pController);
+    // TEMP
+    if (!aFillTab.pController)
+        aFillTab.pParent = GetParentDialog();
 
     // Calculate optimal size of all pages..
     m_pFillTabPage.disposeAndReset(SvxColorTabPage::Create(aFillTab, &m_rXFSet));
@@ -346,9 +349,16 @@ IMPL_LINK(SvxAreaTabPage, SelectFillTypeHdl_Impl, weld::ToggleButton&, rButton,
     {
         maBox.SelectButton(&rButton);
         FillType eFillType = static_cast<FillType>(maBox.GetCurrentButtonPos());
-        m_pFillTabPage.disposeAndReset(lcl_CreateFillStyleTabPage(eFillType, m_xFillTab.get(), m_rXFSet));
+        TabPageParent aFillTab(m_xFillTab.get(), GetDialogController());
+        // TEMP
+        if (!aFillTab.pController)
+            aFillTab.pParent = GetParentDialog();
+        m_pFillTabPage.disposeAndReset(lcl_CreateFillStyleTabPage(eFillType, aFillTab, m_rXFSet));
         if (m_pFillTabPage)
+        {
             m_pFillTabPage->SetTabDialog(GetTabDialog());
+            m_pFillTabPage->SetDialogController(GetDialogController());
+        }
         CreatePage( eFillType , m_pFillTabPage);
     }
 }
diff --git a/cui/source/tabpages/tpbitmap.cxx b/cui/source/tabpages/tpbitmap.cxx
index 089e07342d39..c7e71b665820 100644
--- a/cui/source/tabpages/tpbitmap.cxx
+++ b/cui/source/tabpages/tpbitmap.cxx
@@ -522,7 +522,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickRenameHdl, PresetListBox*, void)
         OUString aName( m_pBitmapList->GetBitmap( nPos )->GetName() );
 
         SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-        ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
+        ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetDialogFrameWeld(), aName, aDesc));
 
         bool bLoop = true;
         while( bLoop && pDlg->Execute() == RET_OK )
@@ -543,7 +543,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickRenameHdl, PresetListBox*, void)
             }
             else
             {
-                std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
+                std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
                 std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
                 xBox->run();
             }
@@ -558,7 +558,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickDeleteHdl, PresetListBox*, void)
 
     if( nPos != VALUESET_ITEM_NOTFOUND )
     {
-        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/querydeletebitmapdialog.ui"));
+        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/querydeletebitmapdialog.ui"));
         std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelBitmapDialog"));
 
         if (xQueryBox->run() == RET_YES)
@@ -708,7 +708,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyTileOffsetHdl, weld::MetricSpinButton&,
 
 IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
 {
-    SvxOpenGraphicDialog aDlg("Import", GetTabDialog()->GetFrameWeld());
+    SvxOpenGraphicDialog aDlg("Import", GetDialogFrameWeld());
     aDlg.EnableLink(false);
     long nCount = m_pBitmapList->Count();
 
@@ -728,7 +728,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
             OUString        aName;
             INetURLObject   aURL( aDlg.GetPath() );
             SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-            ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aURL.GetName().getToken(0, '.'), aDesc));
+            ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetDialogFrameWeld(), aURL.GetName().getToken(0, '.'), aDesc));
             nError = ErrCode(1);
 
             while( pDlg->Execute() == RET_OK )
@@ -746,7 +746,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
                     break;
                 }
 
-                std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
+                std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
                 std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
                 if (xBox->run() != RET_OK)
                     break;
@@ -771,7 +771,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
         else
         {
             // graphic couldn't be loaded
-            std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/querynoloadedfiledialog.ui"));
+            std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/querynoloadedfiledialog.ui"));
             std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("NoLoadedFileDialog"));
             xBox->run();
         }
diff --git a/cui/source/tabpages/tpcolor.cxx b/cui/source/tabpages/tpcolor.cxx
index 857bd6391276..f5449bcbd09b 100644
--- a/cui/source/tabpages/tpcolor.cxx
+++ b/cui/source/tabpages/tpcolor.cxx
@@ -341,7 +341,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickAddHdl_Impl, weld::Button&, void)
     }
 
     SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-    ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
+    ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetDialogFrameWeld(), aName, aDesc));
     sal_uInt16 nError = 1;
 
     while (pDlg->Execute() == RET_OK)
@@ -355,7 +355,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickAddHdl_Impl, weld::Button&, void)
             break;
         }
 
-        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
+        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
         std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
         if (xWarnBox->run() != RET_OK)
             break;
@@ -395,7 +395,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickWorkOnHdl_Impl, weld::Button&, void)
     aColorDlg.SetColor (aCurrentColor);
     aColorDlg.SetMode( svtools::ColorPickerMode::Modify );
 
-    if (aColorDlg.Execute(GetTabDialog()->GetFrameWeld()) == RET_OK)
+    if (aColorDlg.Execute(GetDialogFrameWeld()) == RET_OK)
     {
         Color aPreviewColor = aColorDlg.GetColor();
         aCurrentColor = aPreviewColor;
diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx
index 9e9c4342561f..42d1ab3096a9 100644
--- a/cui/source/tabpages/tpgradnt.cxx
+++ b/cui/source/tabpages/tpgradnt.cxx
@@ -64,9 +64,9 @@ SvxGradientTabPage::SvxGradientTabPage(TabPageParent pParent, const SfxItemSet&
     , m_xMtrAngle(m_xBuilder->weld_metric_spin_button("anglemtr", FUNIT_DEGREE))
     , m_xMtrBorder(m_xBuilder->weld_metric_spin_button("bordermtr", FUNIT_PERCENT))
     , m_xSliderBorder(m_xBuilder->weld_scale("borderslider"))
-    , m_xLbColorFrom(new ColorListBox(m_xBuilder->weld_menu_button("colorfromlb"), GetFrameWeld()))
+    , m_xLbColorFrom(new ColorListBox(m_xBuilder->weld_menu_button("colorfromlb"), pParent.GetFrameWeld()))
     , m_xMtrColorFrom(m_xBuilder->weld_metric_spin_button("colorfrommtr", FUNIT_PERCENT))
-    , m_xLbColorTo(new ColorListBox(m_xBuilder->weld_menu_button("colortolb"), GetFrameWeld()))
+    , m_xLbColorTo(new ColorListBox(m_xBuilder->weld_menu_button("colortolb"), pParent.GetFrameWeld()))
     , m_xMtrColorTo(m_xBuilder->weld_metric_spin_button("colortomtr", FUNIT_PERCENT))
     , m_xGradientLB(new PresetListBox(m_xBuilder->weld_scrolled_window("gradientpresetlistwin")))
     , m_xMtrIncrement(m_xBuilder->weld_spin_button("incrementmtr"))
@@ -351,7 +351,7 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickAddHdl_Impl, weld::Button&, void)
     }
 
     SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-    ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
+    ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetDialogFrameWeld(), aName, aDesc));
     sal_uInt16 nError   = 1;
 
     while (pDlg->Execute() == RET_OK)
@@ -366,7 +366,7 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickAddHdl_Impl, weld::Button&, void)
             break;
         }
 
-        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
+        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
         std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
         if (xWarnBox->run() != RET_OK)
             break;
@@ -443,7 +443,7 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickDeleteHdl_Impl, PresetListBox*, void)
 
     if( nPos != VALUESET_ITEM_NOTFOUND )
     {
-        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/querydeletegradientdialog.ui"));
+        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/querydeletegradientdialog.ui"));
         std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelGradientDialog"));
         if (xQueryBox->run() == RET_YES)
         {
@@ -476,7 +476,7 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickRenameHdl_Impl, PresetListBox*, void)
         OUString aName( m_pGradientList->GetGradient( nPos )->GetName() );
 
         SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-        ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
+        ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetDialogFrameWeld(), aName, aDesc));
 
         bool bLoop = true;
         while( bLoop && pDlg->Execute() == RET_OK )
@@ -497,7 +497,7 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickRenameHdl_Impl, PresetListBox*, void)
             }
             else
             {
-                std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
+                std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
                 std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
                 xBox->run();
             }
diff --git a/cui/source/tabpages/tphatch.cxx b/cui/source/tabpages/tphatch.cxx
index 110df65ceecd..aa7e81177265 100644
--- a/cui/source/tabpages/tphatch.cxx
+++ b/cui/source/tabpages/tphatch.cxx
@@ -60,9 +60,9 @@ SvxHatchTabPage::SvxHatchTabPage(TabPageParent pParent, const SfxItemSet& rInAtt
     , m_xMtrAngle(m_xBuilder->weld_metric_spin_button("anglemtr", FUNIT_DEGREE))
     , m_xSliderAngle(m_xBuilder->weld_scale("angleslider"))
     , m_xLbLineType(m_xBuilder->weld_combo_box_text("linetypelb"))
-    , m_xLbLineColor(new ColorListBox(m_xBuilder->weld_menu_button("linecolorlb"), GetFrameWeld()))
+    , m_xLbLineColor(new ColorListBox(m_xBuilder->weld_menu_button("linecolorlb"), pParent.GetFrameWeld()))
     , m_xCbBackgroundColor(m_xBuilder->weld_check_button("backgroundcolor"))
-    , m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button("backgroundcolorlb"), GetFrameWeld()))
+    , m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button("backgroundcolorlb"), pParent.GetFrameWeld()))
     , m_xHatchLB(new PresetListBox(m_xBuilder->weld_scrolled_window("hatchpresetlistwin")))
     , m_xBtnAdd(m_xBuilder->weld_button("add"))
     , m_xBtnModify(m_xBuilder->weld_button("modify"))
@@ -425,7 +425,7 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickAddHdl_Impl, weld::Button&, void)
     }
 
     SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-    ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
+    ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetDialogFrameWeld(), aName, aDesc));
     sal_uInt16         nError   = 1;
 
     while( pDlg->Execute() == RET_OK )
@@ -439,7 +439,7 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickAddHdl_Impl, weld::Button&, void)
             break;
         }
 
-        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
+        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
         std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
         if (xWarnBox->run() != RET_OK)
             break;
@@ -507,7 +507,7 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickDeleteHdl_Impl, PresetListBox*, void)
 
     if( nPos != VALUESET_ITEM_NOTFOUND )
     {
-        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/querydeletehatchdialog.ui"));
+        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/querydeletehatchdialog.ui"));
         std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelHatchDialog"));
         if (xQueryBox->run() == RET_YES)
         {
@@ -537,7 +537,7 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickRenameHdl_Impl, PresetListBox*, void )
         OUString aName( m_pHatchingList->GetHatch( nPos )->GetName() );
 
         SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-        ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
+        ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetDialogFrameWeld(), aName, aDesc));
 
         bool bLoop = true;
         while( bLoop && pDlg->Execute() == RET_OK )
@@ -558,7 +558,7 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickRenameHdl_Impl, PresetListBox*, void )
             }
             else
             {
-                std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
+                std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
                 std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
                 xBox->run();
             }
diff --git a/cui/source/tabpages/tppattern.cxx b/cui/source/tabpages/tppattern.cxx
index b7f72a6cbe01..a8e5e4865bb5 100644
--- a/cui/source/tabpages/tppattern.cxx
+++ b/cui/source/tabpages/tppattern.cxx
@@ -90,13 +90,13 @@ SvxPatternTabPage::SvxPatternTabPage(TabPageParent pParent, const SfxItemSet& rI
     , m_pnColorListState(nullptr)
     , m_aXFillAttr(rInAttrs.GetPool())
     , m_rXFSet(m_aXFillAttr.GetItemSet())
-    , m_aCtlPixel(this)
-    , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_COLOR"), GetFrameWeld()))
-    , m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_BACKGROUND_COLOR"), GetFrameWeld()))
+    , m_xCtlPixel(new SvxPixelCtl(this))
+    , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_COLOR"), pParent.GetFrameWeld()))
+    , m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_BACKGROUND_COLOR"), pParent.GetFrameWeld()))
     , m_xPatternLB(new PresetListBox(m_xBuilder->weld_scrolled_window("patternpresetlistwin")))
     , m_xBtnAdd(m_xBuilder->weld_button("BTN_ADD"))
     , m_xBtnModify(m_xBuilder->weld_button("BTN_MODIFY"))
-    , m_xCtlPixel(new weld::CustomWeld(*m_xBuilder, "CTL_PIXEL", m_aCtlPixel))
+    , m_xCtlPixelWin(new weld::CustomWeld(*m_xBuilder, "CTL_PIXEL", *m_xCtlPixel))
     , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "CTL_PREVIEW", m_aCtlPreview))
     , m_xPatternLBWin(new weld::CustomWeld(*m_xBuilder, "patternpresetlist", *m_xPatternLB))
 {
@@ -133,10 +133,11 @@ void SvxPatternTabPage::dispose()
 {
     m_xPatternLBWin.reset();
     m_xCtlPreview.reset();
-    m_xCtlPixel.reset();
+    m_xCtlPixelWin.reset();
     m_xPatternLB.reset();
     m_xLbBackgroundColor.reset();
     m_xLbColor.reset();
+    m_xCtlPixel.reset();
     SvxTabPage::dispose();
 }
 
@@ -219,7 +220,7 @@ void SvxPatternTabPage::Reset( const SfxItemSet*  )
 {
     m_xBitmapCtl->SetPixelColor( m_xLbColor->GetSelectEntryColor() );
     m_xBitmapCtl->SetBackgroundColor( m_xLbBackgroundColor->GetSelectEntryColor() );
-    m_xBitmapCtl->SetBmpArray( m_aCtlPixel.GetBitmapPixelPtr() );
+    m_xBitmapCtl->SetBmpArray( m_xCtlPixel->GetBitmapPixelPtr() );
 
     // get bitmap and display it
     const XFillBitmapItem aBmpItem(OUString(), Graphic(m_xBitmapCtl->GetBitmapEx()));
@@ -294,13 +295,13 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ChangePatternHdl_Impl, SvtValueSet*, void)
 
         if(bIs8x8)
         {
-            m_aCtlPixel.SetPaintable( true );
+            m_xCtlPixel->SetPaintable( true );
             m_xBtnModify->set_sensitive(true);
             m_xBtnAdd->set_sensitive(true);
 
             // setting the pixel control
 
-            m_aCtlPixel.SetXBitmap(pGraphicObject->GetGraphic().GetBitmapEx());
+            m_xCtlPixel->SetXBitmap(pGraphicObject->GetGraphic().GetBitmapEx());
 
             Color aPixelColor = aFront.GetColor();
             Color aBackColor = aBack.GetColor();
@@ -319,13 +320,13 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ChangePatternHdl_Impl, SvtValueSet*, void)
         }
         else
         {
-            m_aCtlPixel.Reset();
-            m_aCtlPixel.SetPaintable( false );
+            m_xCtlPixel->Reset();
+            m_xCtlPixel->SetPaintable( false );
             m_xBtnModify->set_sensitive(false);
             m_xBtnAdd->set_sensitive(false);
         }
 
-        m_aCtlPixel.Invalidate();
+        m_xCtlPixel->Invalidate();
     }
 }
 
@@ -347,7 +348,7 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickAddHdl_Impl, weld::Button&, void)
     }
 
     SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-    ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
+    ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetDialogFrameWeld(), aName, aDesc));
     sal_uInt16         nError(1);
 
     while( pDlg->Execute() == RET_OK )
@@ -361,7 +362,7 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickAddHdl_Impl, weld::Button&, void)
             break;
         }
 
-        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
+        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
         std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
         if (xWarnBox->run() != RET_OK)
             break;
@@ -372,7 +373,7 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickAddHdl_Impl, weld::Button&, void)
     if( !nError )
     {
         std::unique_ptr<XBitmapEntry> pEntry;
-        if( m_aCtlPixel.IsEnabled() )
+        if( m_xCtlPixel->IsEnabled() )
         {
             const BitmapEx aBitmapEx(m_xBitmapCtl->GetBitmapEx());
 
@@ -447,7 +448,7 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickRenameHdl_Impl, PresetListBox*, void)
         OUString aName(m_pPatternList->GetBitmap(nPos)->GetName());
 
         SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-        ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
+        ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetDialogFrameWeld(), aName, aDesc));
 
         bool bLoop = true;
 
@@ -470,7 +471,7 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickRenameHdl_Impl, PresetListBox*, void)
             }
             else
             {
-                std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
+                std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
                 std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
                 xWarnBox->run();
             }
@@ -485,7 +486,7 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickDeleteHdl_Impl, PresetListBox*, void)
 
     if( nPos != VALUESET_ITEM_NOTFOUND )
     {
-        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/querydeletebitmapdialog.ui"));
+        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/querydeletebitmapdialog.ui"));
         std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelBitmapDialog"));
         if (xQueryBox->run() == RET_YES)
         {
@@ -496,7 +497,7 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickDeleteHdl_Impl, PresetListBox*, void)
             m_xPatternLB->Resize();
 
             m_aCtlPreview.Invalidate();
-            m_aCtlPixel.Invalidate();
+            m_xCtlPixel->Invalidate();
 
             ChangePatternHdl_Impl(m_xPatternLB.get());
 
@@ -518,9 +519,9 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ChangeColorHdl_Impl, ColorListBox&, void)
 
 void SvxPatternTabPage::ChangeColor_Impl()
 {
-    m_aCtlPixel.SetPixelColor( m_xLbColor->GetSelectEntryColor() );
-    m_aCtlPixel.SetBackgroundColor( m_xLbBackgroundColor->GetSelectEntryColor() );
-    m_aCtlPixel.Invalidate();
+    m_xCtlPixel->SetPixelColor( m_xLbColor->GetSelectEntryColor() );
+    m_xCtlPixel->SetBackgroundColor( m_xLbBackgroundColor->GetSelectEntryColor() );
+    m_xCtlPixel->Invalidate();
 
     m_xBitmapCtl->SetPixelColor( m_xLbColor->GetSelectEntryColor() );
     m_xBitmapCtl->SetBackgroundColor( m_xLbBackgroundColor->GetSelectEntryColor() );
@@ -538,9 +539,9 @@ void SvxPatternTabPage::PointChanged( vcl::Window*, RectPoint )
 
 void SvxPatternTabPage::PointChanged(weld::DrawingArea* pDrawingArea, RectPoint)
 {
-    if (pDrawingArea == m_aCtlPixel.GetDrawingArea())
+    if (pDrawingArea == m_xCtlPixel->GetDrawingArea())
     {
-        m_xBitmapCtl->SetBmpArray(m_aCtlPixel.GetBitmapPixelPtr());
+        m_xBitmapCtl->SetBmpArray(m_xCtlPixel->GetBitmapPixelPtr());
 
         // get bitmap and display it
         m_rXFSet.Put(XFillBitmapItem(OUString(), Graphic(m_xBitmapCtl->GetBitmapEx())));
diff --git a/cui/uiconfig/ui/areatabpage.ui b/cui/uiconfig/ui/areatabpage.ui
index 6f21498a0467..493114017f15 100644
--- a/cui/uiconfig/ui/areatabpage.ui
+++ b/cui/uiconfig/ui/areatabpage.ui
@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.20.0 -->
+<!-- Generated with glade 3.22.1 -->
 <interface domain="cui">
   <requires lib="gtk+" version="3.18"/>
-  <!-- interface-requires LibreOffice 1.0 -->
   <object class="GtkBox" id="AreaTabPage">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
+    <property name="hexpand">True</property>
+    <property name="vexpand">True</property>
     <property name="border_width">6</property>
     <property name="spacing">6</property>
     <child>
diff --git a/cui/uiconfig/ui/bitmaptabpage.ui b/cui/uiconfig/ui/bitmaptabpage.ui
index 78792593c776..6be64b47549d 100644
--- a/cui/uiconfig/ui/bitmaptabpage.ui
+++ b/cui/uiconfig/ui/bitmaptabpage.ui
@@ -18,28 +18,24 @@
       <object class="GtkFrame" id="Fill Frame">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="halign">start</property>
         <property name="label_xalign">0</property>
         <property name="shadow_type">none</property>
         <child>
           <object class="GtkAlignment" id="alignment1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="halign">start</property>
             <property name="top_padding">6</property>
             <property name="left_padding">12</property>
             <child>
               <object class="GtkBox" id="box1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="halign">start</property>
                 <property name="orientation">vertical</property>
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkScrolledWindow" id="bitmapwin">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="hexpand">True</property>
                     <property name="vexpand">True</property>
                     <property name="hscrollbar_policy">never</property>
                     <property name="vscrollbar_policy">never</property>
@@ -52,7 +48,7 @@
                           <object class="GtkDrawingArea" id="BITMAP">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="hexpand">True</property>
+                            <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
                             <property name="vexpand">True</property>
                           </object>
                         </child>
@@ -104,6 +100,8 @@
       <object class="GtkFrame" id="frame1">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <property name="label_xalign">0</property>
         <property name="shadow_type">none</property>
         <child>
@@ -111,6 +109,7 @@
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
             <property name="top_padding">6</property>
             <property name="left_padding">12</property>
             <child>
@@ -215,6 +214,34 @@
                             <property name="position">1</property>
                           </packing>
                         </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="scaletsb">
+                        <property name="label" translatable="yes" context="bitmaptabpage|scaletsb">Scale</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="xalign">0</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkBox" id="box5">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="spacing">6</property>
                         <child>
                           <object class="GtkLabel" id="label6">
                             <property name="visible">True</property>
@@ -226,7 +253,7 @@
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">True</property>
-                            <property name="position">2</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
@@ -238,30 +265,14 @@
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">True</property>
-                            <property name="position">3</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">True</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkCheckButton" id="scaletsb">
-                        <property name="label" translatable="yes" context="bitmaptabpage|scaletsb">Scale</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="xalign">0</property>
-                        <property name="draw_indicator">True</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">2</property>
+                        <property name="position">3</property>
                       </packing>
                     </child>
                   </object>
@@ -371,6 +382,19 @@
                             <property name="position">1</property>
                           </packing>
                         </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkBox" id="box7">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="spacing">6</property>
                         <child>
                           <object class="GtkLabel" id="label11">
                             <property name="visible">True</property>
@@ -382,7 +406,7 @@
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">True</property>
-                            <property name="position">2</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
@@ -393,14 +417,14 @@
                           <packing>
                             <property name="expand">True</property>
                             <property name="fill">True</property>
-                            <property name="position">3</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">True</property>
-                        <property name="position">1</property>
+                        <property name="position">2</property>
                       </packing>
                     </child>
                   </object>
@@ -441,6 +465,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="hexpand">True</property>
+                            <property name="active">0</property>
                             <items>
                               <item translatable="yes" context="bitmaptabpage|tileofflb">Row</item>
                               <item translatable="yes" context="bitmaptabpage|tileofflb">Column</item>
@@ -512,22 +537,17 @@
           <object class="GtkAlignment" id="alignment8">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="halign">end</property>
             <property name="top_padding">6</property>
             <property name="left_padding">12</property>
             <child>
               <object class="GtkBox" id="box4">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="halign">end</property>
-                <property name="valign">start</property>
                 <property name="orientation">vertical</property>
                 <child>
                   <object class="GtkScrolledWindow">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="hexpand">True</property>
-                    <property name="vexpand">True</property>
+                    <property name="can_focus">False</property>
                     <property name="hscrollbar_policy">never</property>
                     <property name="vscrollbar_policy">never</property>
                     <property name="shadow_type">in</property>
@@ -539,8 +559,6 @@
                           <object class="GtkDrawingArea" id="CTL_BITMAP_PREVIEW">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="hexpand">True</property>
-                            <property name="vexpand">True</property>
                             <child internal-child="accessible">
                               <object class="AtkObject" id="CTL_BITMAP_PREVIEW-atkobject">
                                 <property name="AtkObject::accessible-name" translatable="yes" context="bitmaptabpage|CTL_BITMAP_PREVIEW-atkobject">Example</property>
@@ -580,4 +598,16 @@
       </packing>
     </child>
   </object>
+  <object class="GtkSizeGroup">
+    <widgets>
+      <widget name="label10"/>
+      <widget name="label11"/>
+    </widgets>
+  </object>
+  <object class="GtkSizeGroup">
+    <widgets>
+      <widget name="label5"/>
+      <widget name="label6"/>
+    </widgets>
+  </object>
 </interface>
diff --git a/cui/uiconfig/ui/colorpage.ui b/cui/uiconfig/ui/colorpage.ui
index 431f0a7511c3..d1941ef2dee3 100644
--- a/cui/uiconfig/ui/colorpage.ui
+++ b/cui/uiconfig/ui/colorpage.ui
@@ -40,7 +40,7 @@
   <object class="GtkImage" id="image3">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
-    <property name="pixbuf">res/sc10350.png</property>
+    <property name="icon_name">res/sc10350.png</property>
   </object>
   <object class="GtkBox" id="ColorPage">
     <property name="visible">True</property>
@@ -134,6 +134,7 @@
                       <object class="GtkDrawingArea" id="recentcolorset">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
+                        <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
                         <property name="hexpand">True</property>
                         <property name="vexpand">True</property>
                       </object>
@@ -254,6 +255,7 @@
                               <object class="GtkDrawingArea" id="colorset">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
+                                <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
                                 <property name="hexpand">True</property>
                                 <property name="vexpand">True</property>
                               </object>
@@ -311,6 +313,7 @@
               <object class="GtkBox" id="box1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="valign">start</property>
                 <property name="orientation">vertical</property>
                 <property name="spacing">12</property>
                 <child>
@@ -321,7 +324,7 @@
                     <child>
                       <object class="GtkScrolledWindow">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
+                        <property name="can_focus">False</property>
                         <property name="hexpand">True</property>
                         <property name="vexpand">True</property>
                         <property name="hscrollbar_policy">never</property>
@@ -640,7 +643,7 @@
                     <child>
                       <object class="GtkScrolledWindow">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
+                        <property name="can_focus">False</property>
                         <property name="hexpand">True</property>
                         <property name="vexpand">True</property>
                         <property name="hscrollbar_policy">never</property>
diff --git a/cui/uiconfig/ui/gradientpage.ui b/cui/uiconfig/ui/gradientpage.ui
index 2021908ed03d..cdaf2f3f8840 100644
--- a/cui/uiconfig/ui/gradientpage.ui
+++ b/cui/uiconfig/ui/gradientpage.ui
@@ -2,6 +2,7 @@
 <!-- Generated with glade 3.22.1 -->
 <interface domain="cui">
   <requires lib="gtk+" version="3.18"/>
+  <object class="GtkSizeGroup"/>
   <object class="GtkAdjustment" id="adjustment1">
     <property name="lower">3</property>
     <property name="upper">256</property>
@@ -47,6 +48,8 @@
   <object class="GtkBox" id="GradientPage">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
+    <property name="hexpand">True</property>
+    <property name="vexpand">True</property>
     <property name="border_width">6</property>
     <property name="spacing">6</property>
     <child>
@@ -71,7 +74,6 @@
                   <object class="GtkScrolledWindow" id="gradientpresetlistwin">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="hexpand">True</property>
                     <property name="vexpand">True</property>
                     <property name="hscrollbar_policy">never</property>
                     <property name="vscrollbar_policy">never</property>
@@ -84,7 +86,7 @@
                           <object class="GtkDrawingArea" id="gradientpresetlist">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="hexpand">True</property>
+                            <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
                             <property name="vexpand">True</property>
                           </object>
                         </child>
@@ -164,12 +166,16 @@
       <object class="GtkFrame" id="frame1">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <property name="label_xalign">0</property>
         <property name="shadow_type">none</property>
         <child>
           <object class="GtkAlignment" id="alignment1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
             <property name="top_padding">6</property>
             <property name="left_padding">12</property>
             <child>
@@ -177,6 +183,7 @@
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="valign">start</property>
+                <property name="hexpand">True</property>
                 <property name="orientation">vertical</property>
                 <property name="spacing">6</property>
                 <child>
@@ -247,6 +254,7 @@
                       <packing>
                         <property name="left_attach">0</property>
                         <property name="top_attach">0</property>
+                        <property name="width">2</property>
                       </packing>
                     </child>
                     <child>
@@ -288,14 +296,9 @@
                       <packing>
                         <property name="left_attach">0</property>
                         <property name="top_attach">1</property>
+                        <property name="width">2</property>
                       </packing>
                     </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -311,32 +314,6 @@
                     <property name="row_spacing">3</property>
                     <property name="column_spacing">6</property>
                     <child>
-                      <object class="GtkLabel" id="angleft">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes" context="gradientpage|angleft">A_ngle:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">anglemtr</property>
-                        <property name="xalign">0</property>
-                        <property name="yalign">0.43999999761581421</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkSpinButton" id="anglemtr">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="adjustment">angleadjustment</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">1</property>
-                      </packing>
-                    </child>
-                    <child>
                       <object class="GtkLabel" id="centerft">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
@@ -396,6 +373,9 @@
                   </packing>
                 </child>
                 <child>
+                  <placeholder/>
+                </child>
+                <child>
                   <object class="GtkGrid" id="grid3">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
@@ -414,7 +394,8 @@
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
-                        <property name="top_attach">0</property>
+                        <property name="top_attach">1</property>
+                        <property name="width">2</property>
                       </packing>
                     </child>
                     <child>
@@ -429,7 +410,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
-                        <property name="top_attach">1</property>
+                        <property name="top_attach">2</property>
                       </packing>
                     </child>
                     <child>
@@ -441,34 +422,30 @@
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="top_attach">1</property>
+                        <property name="top_attach">2</property>
                       </packing>
                     </child>
                     <child>
-                      <placeholder/>
+                      <object class="GtkSpinButton" id="anglemtr">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">angleadjustment</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">0</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkGrid" id="grid2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="valign">start</property>
-                    <property name="row_spacing">3</property>
-                    <property name="column_spacing">6</property>
                     <child>
-                      <object class="GtkLabel" id="colorfromft">
+                      <object class="GtkLabel" id="angleft">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes" context="gradientpage|colorfromft">_From Color:</property>
+                        <property name="hexpand">True</property>
+                        <property name="label" translatable="yes" context="gradientpage|angleft">A_ngle:</property>
                         <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">colorfromlb</property>
-                        <property name="xalign">0</property>
+                        <property name="mnemonic_widget">anglemtr</property>
+                        <property name="xalign">1</property>
+                        <property name="yalign">0.43999999761581421</property>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
@@ -476,9 +453,20 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkMenuButton" id="colorfromlb">
+                      <object class="GtkSpinButton" id="colortomtr">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">percentadjustment2</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">6</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkMenuButton" id="colortolb">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="xalign">0</property>
                         <child>
@@ -487,42 +475,28 @@
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
-                        <property name="top_attach">1</property>
+                        <property name="top_attach">6</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkSpinButton" id="colorfrommtr">
+                      <object class="GtkLabel" id="colortoft">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="margin_left">6</property>
-                        <property name="adjustment">percentadjustment1</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes" context="gradientpage|colortoft">_To Color:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">colortolb</property>
+                        <property name="xalign">0</property>
                       </object>
                       <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">1</property>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">5</property>
+                        <property name="width">2</property>
                       </packing>
                     </child>
                     <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">4</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkGrid" id="grid1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="valign">start</property>
-                    <property name="row_spacing">3</property>
-                    <property name="column_spacing">6</property>
-                    <child>
-                      <object class="GtkMenuButton" id="colortolb">
+                      <object class="GtkMenuButton" id="colorfromlb">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
+                        <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="xalign">0</property>
                         <child>
@@ -531,43 +505,40 @@
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
-                        <property name="top_attach">1</property>
+                        <property name="top_attach">4</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkSpinButton" id="colortomtr">
+                      <object class="GtkSpinButton" id="colorfrommtr">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="margin_left">6</property>
-                        <property name="adjustment">percentadjustment2</property>
+                        <property name="adjustment">percentadjustment1</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="top_attach">1</property>
+                        <property name="top_attach">4</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkLabel" id="colortoft">
+                      <object class="GtkLabel" id="colorfromft">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes" context="gradientpage|colortoft">_To Color:</property>
+                        <property name="label" translatable="yes" context="gradientpage|colorfromft">_From Color:</property>
                         <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">colortolb</property>
+                        <property name="mnemonic_widget">colorfromlb</property>
                         <property name="xalign">0</property>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
-                        <property name="top_attach">0</property>
+                        <property name="top_attach">3</property>
+                        <property name="width">2</property>
                       </packing>
                     </child>
-                    <child>
-                      <placeholder/>
-                    </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">True</property>
-                    <property name="position">5</property>
+                    <property name="position">4</property>
                   </packing>
                 </child>
                 <child>
@@ -633,7 +604,7 @@
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">True</property>
-                    <property name="position">8</property>
+                    <property name="position">9</property>
                   </packing>
                 </child>
               </object>
@@ -661,7 +632,7 @@
       <object class="GtkFrame" id="frame3">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="halign">start</property>
+        <property name="halign">end</property>
         <property name="valign">start</property>
         <property name="label_xalign">0</property>
         <property name="shadow_type">none</property>
@@ -669,23 +640,17 @@
           <object class="GtkAlignment" id="alignment3">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="halign">start</property>
-            <property name="valign">start</property>
             <property name="top_padding">6</property>
             <property name="left_padding">12</property>
             <child>
               <object class="GtkBox" id="box3">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="halign">start</property>
-                <property name="valign">start</property>
                 <property name="orientation">vertical</property>
                 <child>
                   <object class="GtkScrolledWindow">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="hexpand">True</property>
-                    <property name="vexpand">True</property>
+                    <property name="can_focus">False</property>
                     <property name="hscrollbar_policy">never</property>
                     <property name="vscrollbar_policy">never</property>
                     <property name="shadow_type">in</property>
@@ -697,8 +662,6 @@
                           <object class="GtkDrawingArea" id="previewctl">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="hexpand">True</property>
-                            <property name="vexpand">True</property>
                             <child internal-child="accessible">
                               <object class="AtkObject" id="previewctl-atkobject">
                                 <property name="AtkObject::accessible-name" translatable="yes" context="gradientpage|previewctl-atkobject">Example</property>
@@ -733,6 +696,7 @@
       <packing>
         <property name="expand">False</property>
         <property name="fill">False</property>
+        <property name="pack_type">end</property>
         <property name="position">2</property>
       </packing>
     </child>
diff --git a/cui/uiconfig/ui/hatchpage.ui b/cui/uiconfig/ui/hatchpage.ui
index e55dc25ea25e..b683522f5c55 100644
--- a/cui/uiconfig/ui/hatchpage.ui
+++ b/cui/uiconfig/ui/hatchpage.ui
@@ -45,7 +45,6 @@
                   <object class="GtkScrolledWindow" id="hatchpresetlistwin">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="hexpand">True</property>
                     <property name="vexpand">True</property>
                     <property name="hscrollbar_policy">never</property>
                     <property name="vscrollbar_policy">never</property>
@@ -58,7 +57,7 @@
                           <object class="GtkDrawingArea" id="hatchpresetlist">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="hexpand">True</property>
+                            <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
                             <property name="vexpand">True</property>
                           </object>
                         </child>
@@ -154,6 +153,8 @@
               <object class="GtkBox" id="box3">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="valign">start</property>
+                <property name="hexpand">True</property>
                 <property name="orientation">vertical</property>
                 <property name="spacing">6</property>
                 <child>
@@ -285,7 +286,7 @@
                 <child>
                   <object class="GtkMenuButton" id="linecolorlb">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
+                    <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
                     <property name="halign">start</property>
                     <property name="valign">center</property>
@@ -322,7 +323,7 @@
                 <child>
                   <object class="GtkMenuButton" id="backgroundcolorlb">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
+                    <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
                     <property name="halign">start</property>
                     <property name="valign">center</property>
@@ -356,7 +357,7 @@
         </child>
       </object>
       <packing>
-        <property name="expand">False</property>
+        <property name="expand">True</property>
         <property name="fill">True</property>
         <property name="position">1</property>
       </packing>
@@ -365,7 +366,7 @@
       <object class="GtkFrame" id="frame2">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="halign">start</property>
+        <property name="halign">end</property>
         <property name="valign">start</property>
         <property name="label_xalign">0</property>
         <property name="shadow_type">none</property>
@@ -373,23 +374,18 @@
           <object class="GtkAlignment" id="alignment2">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="halign">start</property>
-            <property name="valign">start</property>
+            <property name="halign">end</property>
             <property name="top_padding">6</property>
             <property name="left_padding">12</property>
             <child>
               <object class="GtkBox" id="box4">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="halign">start</property>
-                <property name="valign">start</property>
                 <property name="orientation">vertical</property>
                 <child>
                   <object class="GtkScrolledWindow">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="hexpand">True</property>
-                    <property name="vexpand">True</property>
+                    <property name="can_focus">False</property>
                     <property name="hscrollbar_policy">never</property>
                     <property name="vscrollbar_policy">never</property>
                     <property name="shadow_type">in</property>
@@ -401,8 +397,6 @@
                           <object class="GtkDrawingArea" id="previewctl">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="hexpand">True</property>
-                            <property name="vexpand">True</property>
                             <child internal-child="accessible">
                               <object class="AtkObject" id="previewctl-atkobject">
                                 <property name="AtkObject::accessible-name" translatable="yes" context="hatchpage|previewctl-atkobject">Example</property>
@@ -436,7 +430,8 @@
       </object>
       <packing>
         <property name="expand">False</property>
-        <property name="fill">True</property>
+        <property name="fill">False</property>
+        <property name="pack_type">end</property>
         <property name="position">2</property>
       </packing>
     </child>
diff --git a/cui/uiconfig/ui/pageformatpage.ui b/cui/uiconfig/ui/pageformatpage.ui
index 0097688fa8f4..f864e9f6fdd9 100644
--- a/cui/uiconfig/ui/pageformatpage.ui
+++ b/cui/uiconfig/ui/pageformatpage.ui
@@ -5,6 +5,7 @@
   <object class="GtkGrid" id="PageFormatPage">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
+    <property name="valign">start</property>
     <property name="hexpand">True</property>
     <property name="border_width">6</property>
     <property name="row_spacing">12</property>
@@ -20,7 +21,6 @@
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="hexpand">True</property>
-            <property name="vexpand">True</property>
             <property name="top_padding">6</property>
             <property name="left_padding">12</property>
             <child>
@@ -28,7 +28,6 @@
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="hexpand">True</property>
-                <property name="vexpand">True</property>
                 <property name="row_spacing">6</property>
                 <property name="column_spacing">12</property>
                 <child>
@@ -221,7 +220,6 @@
                             <property name="can_focus">False</property>
                             <property name="halign">center</property>
                             <property name="valign">center</property>
-                            <property name="hexpand">True</property>
                             <property name="vexpand">True</property>
                           </object>
                           <packing>
diff --git a/cui/uiconfig/ui/patterntabpage.ui b/cui/uiconfig/ui/patterntabpage.ui
index 57bf90ca763f..1d882b507029 100644
--- a/cui/uiconfig/ui/patterntabpage.ui
+++ b/cui/uiconfig/ui/patterntabpage.ui
@@ -31,7 +31,6 @@
                   <object class="GtkScrolledWindow" id="patternpresetlistwin">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="hexpand">True</property>
                     <property name="vexpand">True</property>
                     <property name="hscrollbar_policy">never</property>
                     <property name="vscrollbar_policy">never</property>
@@ -39,12 +38,12 @@
                     <child>
                       <object class="GtkViewport">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
+                        <property name="can_focus">True</property>
                         <child>
                           <object class="GtkDrawingArea" id="patternpresetlist">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="hexpand">True</property>
+                            <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
                             <property name="vexpand">True</property>
                           </object>
                         </child>
@@ -68,7 +67,7 @@
                       <object class="GtkButton" id="BTN_ADD">
                         <property name="label">gtk-add</property>
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
+                        <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
                         <property name="use_stock">True</property>
                       </object>
@@ -82,7 +81,7 @@
                       <object class="GtkButton" id="BTN_MODIFY">
                         <property name="label" translatable="yes" context="patterntabpage|BTN_MODIFY">_Modify</property>
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
+                        <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
                         <property name="use_underline">True</property>
                       </object>
@@ -116,7 +115,7 @@
       </object>
       <packing>
         <property name="expand">False</property>
-        <property name="fill">False</property>
+        <property name="fill">True</property>
         <property name="position">0</property>
       </packing>
     </child>
@@ -124,19 +123,24 @@
       <object class="GtkFrame" id="frame1">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="halign">start</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <property name="label_xalign">0</property>
         <property name="shadow_type">none</property>
         <child>
           <object class="GtkAlignment" id="alignment1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
             <property name="top_padding">6</property>
             <property name="left_padding">12</property>
             <child>
               <object class="GtkBox" id="box2">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="valign">start</property>
+                <property name="hexpand">True</property>
                 <property name="orientation">vertical</property>
                 <property name="spacing">6</property>
                 <child>
@@ -224,7 +228,7 @@
                     <child>
                       <object class="GtkMenuButton" id="LB_COLOR">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
+                        <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="xalign">0</property>
                         <child>
@@ -268,7 +272,7 @@
                     <child>
                       <object class="GtkMenuButton" id="LB_BACKGROUND_COLOR">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
+                        <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="xalign">0</property>
                         <child>
@@ -304,8 +308,8 @@
         </child>
       </object>
       <packing>
-        <property name="expand">False</property>
-        <property name="fill">False</property>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
         <property name="position">1</property>
       </packing>
     </child>
@@ -313,30 +317,25 @@
       <object class="GtkFrame" id="frame2">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="halign">start</property>
+        <property name="halign">end</property>
+        <property name="valign">start</property>
         <property name="label_xalign">0</property>
         <property name="shadow_type">none</property>
         <child>
           <object class="GtkAlignment" id="alignment2">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="halign">start</property>
-            <property name="valign">start</property>
             <property name="top_padding">6</property>
             <property name="left_padding">12</property>
             <child>
               <object class="GtkBox" id="box1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="halign">start</property>
-                <property name="valign">start</property>
                 <property name="orientation">vertical</property>
                 <child>
                   <object class="GtkScrolledWindow">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="hexpand">True</property>
-                    <property name="vexpand">True</property>
+                    <property name="can_focus">False</property>
                     <property name="hscrollbar_policy">never</property>
                     <property name="vscrollbar_policy">never</property>
                     <property name="shadow_type">in</property>
@@ -348,11 +347,9 @@
                           <object class="GtkDrawingArea" id="CTL_PREVIEW">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="hexpand">True</property>
-                            <property name="vexpand">True</property>
                             <child internal-child="accessible">
                               <object class="AtkObject" id="CTL_PREVIEW-atkobject">
-                                <property name="AtkObject::accessible-name" translatable="yes" context="patterntabpage|CTL_PREVIEW-atkobject">Example</property>
+                                 <property name="AtkObject::accessible-name" translatable="yes" context="patterntabpage|CTL_PREVIEW-atkobject">Example</property>
                               </object>
                             </child>
                           </object>
diff --git a/cui/uiconfig/ui/transparencytabpage.ui b/cui/uiconfig/ui/transparencytabpage.ui
index efb31b319517..f2c6ff5b77a3 100644
--- a/cui/uiconfig/ui/transparencytabpage.ui
+++ b/cui/uiconfig/ui/transparencytabpage.ui
@@ -37,40 +37,6 @@
     <property name="step_increment">1</property>
     <property name="page_increment">10</property>
   </object>
-  <object class="GtkListStore" id="liststoreTYPE">
-    <columns>
-      <!-- column-name gchararray1 -->
-      <column type="gchararray"/>
-      <!-- column-name guint1 -->
-      <column type="guint"/>
-    </columns>
-    <data>
-      <row>
-        <col id="0" translatable="yes" context="transparencytabpage|liststoreTYPE">Linear</col>
-        <col id="1">0</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes" context="transparencytabpage|liststoreTYPE">Axial</col>
-        <col id="1">0</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes" context="transparencytabpage|liststoreTYPE">Radial</col>
-        <col id="1">0</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes" context="transparencytabpage|liststoreTYPE">Ellipsoid</col>
-        <col id="1">0</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes" context="transparencytabpage|liststoreTYPE">Quadratic</col>
-        <col id="1">0</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes" context="transparencytabpage|liststoreTYPE">Square</col>
-        <col id="1">0</col>
-      </row>
-    </data>
-  </object>
   <object class="GtkFrame" id="TransparencyTabPage">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -264,10 +230,17 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkComboBox" id="LB_TRGR_GRADIENT_TYPES">
+                      <object class="GtkComboBoxText" id="LB_TRGR_GRADIENT_TYPES">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="model">liststoreTYPE</property>
+                        <items>
+                          <item translatable="yes" context="transparencytabpage|liststoreTYPE">Linear</item>
+                          <item translatable="yes" context="transparencytabpage|liststoreTYPE">Axial</item>
+                          <item translatable="yes" context="transparencytabpage|liststoreTYPE">Radial</item>
+                          <item translatable="yes" context="transparencytabpage|liststoreTYPE">Ellipsoid</item>
+                          <item translatable="yes" context="transparencytabpage|liststoreTYPE">Quadratic</item>
+                          <item translatable="yes" context="transparencytabpage|liststoreTYPE">Square</item>
+                        </items>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
diff --git a/include/sfx2/tabdlg.hxx b/include/sfx2/tabdlg.hxx
index d0c28f1c30f9..8102ff3ba0b6 100644
--- a/include/sfx2/tabdlg.hxx
+++ b/include/sfx2/tabdlg.hxx
@@ -45,15 +45,24 @@ struct TabPageParent
     TabPageParent(vcl::Window* _pParent)
         : pParent(_pParent)
         , pPage(nullptr)
+        , pController(nullptr)
     {
     }
-    TabPageParent(weld::Container* _pPage)
+    TabPageParent(weld::Container* _pPage, weld::DialogController* _pController)
         : pParent(nullptr)
         , pPage(_pPage)
+        , pController(_pController)
     {
     }
+    weld::Window* GetFrameWeld() const
+    {
+        if (pController)
+            return pController->getDialog();
+        return pParent->GetFrameWeld();
+    }
     VclPtr<vcl::Window> pParent;
     weld::Container* pPage;
+    weld::DialogController* pController;
 };
 
 typedef VclPtr<SfxTabPage> (*CreateTabPage)(TabPageParent pParent, const SfxItemSet *rAttrSet);
@@ -256,7 +265,7 @@ private:
 
 protected:
     virtual short               Ok();
-    void                        RefreshInputSet();
+    virtual void                RefreshInputSet();
     virtual void                PageCreated(const OString &rName, SfxTabPage &rPage);
 
     std::unique_ptr<SfxItemSet> m_xExampleSet;
@@ -308,6 +317,11 @@ public:
                          const std::function<void(sal_Int32)>&);
 
     const SfxItemSet*   GetExampleSet() const { return m_xExampleSet.get(); }
+
+    void                SetApplyHandler(const Link<weld::Button&,void>& _rHdl);
+
+    //calls Ok without closing dialog
+    bool Apply();
 };
 
 namespace sfx { class ItemConnectionBase; }
@@ -352,15 +366,12 @@ protected:
     }
 
     SfxTabDialog*       GetTabDialog() const;
+    SfxTabDialogController* GetDialogController() const;
 public:
     void                SetTabDialog(SfxTabDialog* pDialog);
-protected:
-
-    SfxTabDialogController* GetDialogController() const;
     void                SetDialogController(SfxTabDialogController* pDialog);
-
+protected:
     void                AddItemConnection( sfx::ItemConnectionBase* pConnection );
-
 public:
     virtual             ~SfxTabPage() override;
     virtual void        dispose() override;
@@ -397,6 +408,9 @@ public:
 
     OString         GetConfigId() const;
 
+    //TODO rename to GetFrameWeld when SfxTabPage doesn't inherit from anything
+    weld::Window*   GetDialogFrameWeld() const;
+
     //TODO rename to get_preferred_size when SfxTabPage doesn't inherit from anything
     Size get_container_size() const
     {
diff --git a/include/sfx2/viewsh.hxx b/include/sfx2/viewsh.hxx
index 37f051a8167b..b1c27bdd4321 100644
--- a/include/sfx2/viewsh.hxx
+++ b/include/sfx2/viewsh.hxx
@@ -245,7 +245,7 @@ public:
     virtual SfxPrinter*         GetPrinter( bool bCreate = false );
     virtual sal_uInt16          SetPrinter( SfxPrinter *pNewPrinter, SfxPrinterChangeFlags nDiffFlags = SFX_PRINTER_ALL );
     virtual bool                HasPrintOptionsPage() const;
-    virtual VclPtr<SfxTabPage>  CreatePrintOptionsPage(weld::Container* pPage, const SfxItemSet &rOptions);
+    virtual VclPtr<SfxTabPage>  CreatePrintOptionsPage(TabPageParent pParent, const SfxItemSet &rOptions);
     Printer*                    GetActivePrinter() const;
 
     // Working set
diff --git a/include/svx/hdft.hxx b/include/svx/hdft.hxx
index c5a92c5e01d3..e7c0e56269e2 100644
--- a/include/svx/hdft.hxx
+++ b/include/svx/hdft.hxx
@@ -34,7 +34,7 @@
 
 namespace svx
 {
-    SVX_DLLPUBLIC bool ShowBorderBackgroundDlg( vcl::Window* pParent, SfxItemSet* pBBSet );
+    SVX_DLLPUBLIC bool ShowBorderBackgroundDlg(weld::Window* pParent, SfxItemSet* pBBSet);
 }
 
 class SVX_DLLPUBLIC SvxHFPage : public SfxTabPage
diff --git a/include/svx/svxdlg.hxx b/include/svx/svxdlg.hxx
index d1bd463d953c..92457870721b 100644
--- a/include/svx/svxdlg.hxx
+++ b/include/svx/svxdlg.hxx
@@ -380,7 +380,7 @@ public:
                                                             sal_uInt16 nLonger ) = 0;
     // add for SvxBorderBackgroundDlg
     virtual VclPtr<SfxAbstractTabDialog> CreateSvxBorderBackgroundDlg(
-        vcl::Window* pParent,
+        weld::Window* pParent,
         const SfxItemSet& rCoreSet,
         bool bEnableDrawingLayerFillStyles) = 0;
 
diff --git a/sc/source/ui/dbgui/tpsort.cxx b/sc/source/ui/dbgui/tpsort.cxx
index 1f7a71c249be..0663f6eaea12 100644
--- a/sc/source/ui/dbgui/tpsort.cxx
+++ b/sc/source/ui/dbgui/tpsort.cxx
@@ -755,7 +755,7 @@ DeactivateRC ScTabPageSortOptions::DeactivatePage( SfxItemSet* pSetP )
 
         if ( !bPosInputOk )
         {
-            std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(GetDialogController()->getDialog(),
+            std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(GetDialogFrameWeld(),
                                                       VclMessageType::Warning, VclButtonsType::Ok,
                                                       ScResId(STR_INVALID_TABREF)));
             xBox->run();
diff --git a/sc/source/ui/inc/prevwsh.hxx b/sc/source/ui/inc/prevwsh.hxx
index da22608854fd..7f7f6b71b9a4 100644
--- a/sc/source/ui/inc/prevwsh.hxx
+++ b/sc/source/ui/inc/prevwsh.hxx
@@ -104,7 +104,7 @@ public:
     virtual SfxPrinter*     GetPrinter( bool bCreate = false ) override;
     virtual sal_uInt16      SetPrinter( SfxPrinter* pNewPrinter, SfxPrinterChangeFlags nDiffFlags = SFX_PRINTER_ALL ) override;
     virtual bool            HasPrintOptionsPage() const override;
-    virtual VclPtr<SfxTabPage> CreatePrintOptionsPage(weld::Container* pPage, const SfxItemSet &rOptions) override;
+    virtual VclPtr<SfxTabPage> CreatePrintOptionsPage(TabPageParent pParent, const SfxItemSet &rOptions) override;
 
     void            AddAccessibilityObject( SfxListener& rObject );
     void            RemoveAccessibilityObject( SfxListener& rObject );
diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx
index ebdbab699253..cf5b8723df9a 100644
--- a/sc/source/ui/inc/tabvwsh.hxx
+++ b/sc/source/ui/inc/tabvwsh.hxx
@@ -319,7 +319,7 @@ public:
                                           SfxPrinterChangeFlags nDiffFlags = SFX_PRINTER_ALL ) override;
 
     virtual bool            HasPrintOptionsPage() const override;
-    virtual VclPtr<SfxTabPage> CreatePrintOptionsPage(weld::Container* pPage, const SfxItemSet &rOptions) override;
+    virtual VclPtr<SfxTabPage> CreatePrintOptionsPage(TabPageParent pParent, const SfxItemSet &rOptions) override;
 
     void            ConnectObject( const SdrOle2Obj* pObj );
     void            ActivateObject( SdrOle2Obj* pObj, long nVerb );
diff --git a/sc/source/ui/view/prevwsh.cxx b/sc/source/ui/view/prevwsh.cxx
index 3417cee7b66d..42d6700d0ab5 100644
--- a/sc/source/ui/view/prevwsh.cxx
+++ b/sc/source/ui/view/prevwsh.cxx
@@ -514,12 +514,12 @@ bool ScPreviewShell::HasPrintOptionsPage() const
     return true;
 }
 
-VclPtr<SfxTabPage> ScPreviewShell::CreatePrintOptionsPage(weld::Container* pPage, const SfxItemSet &rOptions)
+VclPtr<SfxTabPage> ScPreviewShell::CreatePrintOptionsPage(TabPageParent pParent, const SfxItemSet &rOptions)
 {
     ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
     ::CreateTabPage ScTpPrintOptionsCreate = pFact->GetTabPageCreatorFunc(RID_SC_TP_PRINT);
     if ( ScTpPrintOptionsCreate )
-        return ScTpPrintOptionsCreate(pPage, &rOptions);
+        return ScTpPrintOptionsCreate(pParent, &rOptions);
     return VclPtr<SfxTabPage>();
 }
 
diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx
index c128f81c27f1..ad67410443d0 100644
--- a/sc/source/ui/view/tabvwsh4.cxx
+++ b/sc/source/ui/view/tabvwsh4.cxx
@@ -1048,12 +1048,12 @@ bool ScTabViewShell::HasPrintOptionsPage() const
     return true;
 }
 
-VclPtr<SfxTabPage> ScTabViewShell::CreatePrintOptionsPage(weld::Container* pPage, const SfxItemSet &rOptions )
+VclPtr<SfxTabPage> ScTabViewShell::CreatePrintOptionsPage(TabPageParent pParent, const SfxItemSet &rOptions )
 {
     ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
     ::CreateTabPage ScTpPrintOptionsCreate = pFact->GetTabPageCreatorFunc(RID_SC_TP_PRINT);
     if ( ScTpPrintOptionsCreate )
-        return ScTpPrintOptionsCreate(pPage, &rOptions);
+        return ScTpPrintOptionsCreate(pParent, &rOptions);
     return VclPtr<SfxTabPage>();
 }
 
diff --git a/sfx2/source/control/charwin.cxx b/sfx2/source/control/charwin.cxx
index a585361a3296..1a1fac096ac2 100644
--- a/sfx2/source/control/charwin.cxx
+++ b/sfx2/source/control/charwin.cxx
@@ -38,6 +38,7 @@ SvxCharView::SvxCharView(const VclPtr<VirtualDevice>& rVirDev)
 
 void SvxCharView::SetDrawingArea(weld::DrawingArea* pDrawingArea)
 {
+    CustomWidgetController::SetDrawingArea(pDrawingArea);
     const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
     vcl::Font aFont = rStyleSettings.GetLabelFont();
     const Size aFontSize = aFont.GetFontSize();
@@ -47,7 +48,6 @@ void SvxCharView::SetDrawingArea(weld::DrawingArea* pDrawingArea)
     pDrawingArea->set_size_request(mxVirDev->approximate_digit_width() * 2,
                                    mxVirDev->GetTextHeight());
     mxVirDev->Pop();
-    CustomWidgetController::SetDrawingArea(pDrawingArea);
 }
 
 void SvxCharView::GetFocus()
diff --git a/sfx2/source/dialog/mgetempl.cxx b/sfx2/source/dialog/mgetempl.cxx
index 663a26295453..86cbaef7b9f5 100644
--- a/sfx2/source/dialog/mgetempl.cxx
+++ b/sfx2/source/dialog/mgetempl.cxx
@@ -47,7 +47,7 @@
  */
 SfxManageStyleSheetPage::SfxManageStyleSheetPage(TabPageParent pParent, const SfxItemSet& rAttrSet)
     : SfxTabPage(pParent, "sfx/ui/managestylepage.ui", "ManageStylePage", &rAttrSet)
-    , pStyle(&static_cast<SfxStyleDialog*>(GetParentDialog())->GetStyleSheet())
+    , pStyle(pParent.pPage ? &static_cast<SfxStyleDialogController*>(pParent.pController)->GetStyleSheet() : &static_cast<SfxStyleDialog*>(GetParentDialog())->GetStyleSheet())
     , pItem(nullptr)
     , bModified(false)

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list