[Libreoffice-commits] core.git: cui/source extensions/source include/vcl sc/source sfx2/source svtools/source svx/source sw/source vcl/source

Caolán McNamara caolanm at redhat.com
Wed Aug 2 10:43:10 UTC 2017


 cui/source/customize/acccfg.cxx            |    2 
 cui/source/tabpages/autocdlg.cxx           |    2 
 extensions/source/bibliography/general.cxx |    2 
 include/vcl/builder.hxx                    |   39 ++--
 include/vcl/builderfactory.hxx             |    2 
 include/vcl/edit.hxx                       |    2 
 include/vcl/window.hxx                     |    3 
 sc/source/ui/cctrl/editfield.cxx           |    2 
 sc/source/ui/miscdlgs/tabbgcolordlg.cxx    |    2 
 sfx2/source/appl/newhelp.cxx               |    8 
 svtools/source/contnr/fileview.cxx         |    2 
 svtools/source/control/ctrlbox.cxx         |    8 
 svx/source/dialog/dlgctrl.cxx              |   14 -
 svx/source/dialog/langbox.cxx              |    4 
 svx/source/dialog/relfld.cxx               |    4 
 svx/source/dialog/txencbox.cxx             |    4 
 sw/source/ui/config/optload.cxx            |    2 
 sw/source/ui/fldui/fldvar.cxx              |    4 
 sw/source/uibase/cctrl/actctrl.cxx         |    2 
 sw/source/uibase/utlui/condedit.cxx        |    2 
 sw/source/uibase/utlui/numfmtlb.cxx        |    2 
 vcl/source/window/builder.cxx              |  242 ++++++++++++++---------------
 vcl/source/window/layout.cxx               |    2 
 vcl/source/window/window2.cxx              |    2 
 24 files changed, 180 insertions(+), 178 deletions(-)

New commits:
commit 3b35bcf25fce566f91d084574650181ea791dff8
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Aug 2 10:12:55 2017 +0100

    split out VclBuilder static methods
    
    Change-Id: Ic94b39351c9a6131fb61883a98ae9e3ee60ad119

diff --git a/cui/source/customize/acccfg.cxx b/cui/source/customize/acccfg.cxx
index 22ef10a47904..1d0af8c3d45d 100644
--- a/cui/source/customize/acccfg.cxx
+++ b/cui/source/customize/acccfg.cxx
@@ -660,7 +660,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeSfxAccCfgTabListBox(VclPtr<vcl
 {
     WinBits nWinBits = WB_TABSTOP;
 
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
        nWinBits |= WB_BORDER;
 
diff --git a/cui/source/tabpages/autocdlg.cxx b/cui/source/tabpages/autocdlg.cxx
index 477a6e278af1..976725c6e78b 100644
--- a/cui/source/tabpages/autocdlg.cxx
+++ b/cui/source/tabpages/autocdlg.cxx
@@ -2450,7 +2450,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeAutoCompleteMultiListBox(VclPt
 {
     WinBits nWinBits = WB_TABSTOP;
 
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
        nWinBits |= WB_BORDER;
 
diff --git a/extensions/source/bibliography/general.cxx b/extensions/source/bibliography/general.cxx
index d20e53d61a6f..3bfb47608803 100644
--- a/extensions/source/bibliography/general.cxx
+++ b/extensions/source/bibliography/general.cxx
@@ -321,7 +321,7 @@ BibGeneralPage::BibGeneralPage(vcl::Window* pParent, BibDataManager* pMan):
     AddControlWithError(lcl_GetColumnName(pMapping, CUSTOM5_POS), *pCustom5FT,
         sTableErrorString, HID_BIB_CUSTOM5_POS, 30, aChildren);
 
-    VclBuilder::reorderWithinParent(aChildren, false);
+    BuilderUtils::reorderWithinParent(aChildren, false);
 
     xPosListener = new BibPosListener(this);
     uno::Reference< sdbc::XRowSet >  xRowSet(pDatMan->getForm(), UNO_QUERY);
diff --git a/include/vcl/builder.hxx b/include/vcl/builder.hxx
index b2f6c94ca5e4..6d1fe7eed0a2 100644
--- a/include/vcl/builder.hxx
+++ b/include/vcl/builder.hxx
@@ -82,30 +82,12 @@ public:
     //release ownership of pWindow, i.e. don't delete it
     void            drop_ownership(const vcl::Window *pWindow);
 
-    //apply the properties of rProps to pWindow
-    static void     set_properties(vcl::Window *pWindow, const stringmap &rProps);
-
-    //Convert _ gtk markup to ~ vcl markup
-    static          OUString convertMnemonicMarkup(const OUString &rIn);
-
-    static OUString extractCustomProperty(stringmap &rMap);
-    static FieldUnit detectUnit(OUString const&);
-
-    static bool     extractDropdown(stringmap &rMap);
-
-    //add a default value of 25 width-chars to a map if width-chars not set
-    static void     ensureDefaultWidthChars(VclBuilder::stringmap &rMap);
-
     //see m_aDeferredProperties, you need this for toplevel dialogs
     //which build themselves from their ctor. The properties on
     //the top level are stored in m_aDeferredProperties and need
     //to be applied post ctor
     void            setDeferredProperties();
 
-    //Helpers to retrofit all the existing code to the builder
-    static void     reorderWithinParent(std::vector< vcl::Window*>& rChilds, bool bIsButtonBox);
-    static void     reorderWithinParent(vcl::Window &rWindow, sal_uInt16 nNewPosition);
-
     /// return UI-File name (without '.ui')
     const OString& getUIFile() const
     {
@@ -399,6 +381,27 @@ private:
     void            delete_by_window(vcl::Window *pWindow);
 };
 
+namespace BuilderUtils
+{
+    //apply the properties of rProps to pWindow
+    VCL_DLLPUBLIC void set_properties(vcl::Window *pWindow, const VclBuilder::stringmap &rProps);
+
+    //Convert _ gtk markup to ~ vcl markup
+    VCL_DLLPUBLIC OUString convertMnemonicMarkup(const OUString &rIn);
+
+    VCL_DLLPUBLIC OUString extractCustomProperty(VclBuilder::stringmap &rMap);
+    VCL_DLLPUBLIC FieldUnit detectUnit(OUString const&);
+
+    VCL_DLLPUBLIC bool extractDropdown(VclBuilder::stringmap &rMap);
+
+    //add a default value of 25 width-chars to a map if width-chars not set
+    VCL_DLLPUBLIC void ensureDefaultWidthChars(VclBuilder::stringmap &rMap);
+
+    //Helpers to retrofit all the existing code to the builder
+    VCL_DLLPUBLIC void reorderWithinParent(std::vector< vcl::Window*>& rChilds, bool bIsButtonBox);
+    VCL_DLLPUBLIC void reorderWithinParent(vcl::Window &rWindow, sal_uInt16 nNewPosition);
+}
+
 template <typename T>
 inline T* VclBuilder::get(VclPtr<T>& ret, const OString& sID)
 {
diff --git a/include/vcl/builderfactory.hxx b/include/vcl/builderfactory.hxx
index c2bada89ffe2..8014832b3ac2 100644
--- a/include/vcl/builderfactory.hxx
+++ b/include/vcl/builderfactory.hxx
@@ -30,7 +30,7 @@
 #define VCL_BUILDER_FACTORY_CONSTRUCTOR(typeName,arg2) \
     extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL make##typeName(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap) \
     { \
-        OUString sBorder = VclBuilder::extractCustomProperty(rMap); \
+        OUString sBorder = BuilderUtils::extractCustomProperty(rMap); \
         WinBits wb = arg2; \
         if (!sBorder.isEmpty()) \
             wb |= WB_BORDER; \
diff --git a/include/vcl/edit.hxx b/include/vcl/edit.hxx
index 632e9b751ee7..75b571ff87ca 100644
--- a/include/vcl/edit.hxx
+++ b/include/vcl/edit.hxx
@@ -40,10 +40,10 @@ namespace i18n {
     class XExtendedInputSequenceChecker;
 }}}}
 
+class VclBuilder;
 struct DDInfo;
 struct Impl_IMEInfos;
 
-
 #define EDIT_NOLIMIT                SAL_MAX_INT32
 #define EDIT_UPDATEDATA_TIMEOUT     350
 
diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 71ca0d2f282b..7c2aa534fa69 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -433,7 +433,6 @@ namespace vcl { class Cursor; }
 class Dialog;
 class WindowImpl;
 class PaintHelper;
-class VclBuilder;
 class VclSizeGroup;
 class OutputDevice;
 class Application;
@@ -448,7 +447,6 @@ class PushButton;
 class RadioButton;
 class SystemChildWindow;
 class ImplBorderWindow;
-class VclBuilder;
 class ImplDockingWindowWrapper;
 class ImplPopupFloatWin;
 class MenuFloatingWindow;
@@ -495,7 +493,6 @@ class VCL_DLLPUBLIC Window : public ::OutputDevice
     friend class ::RadioButton;
     friend class ::SystemChildWindow;
     friend class ::ImplBorderWindow;
-    friend class ::VclBuilder;
     friend class ::PaintHelper;
     friend class ::LifecycleTest;
 
diff --git a/sc/source/ui/cctrl/editfield.cxx b/sc/source/ui/cctrl/editfield.cxx
index 1bbb5d649294..74e75e8d45be 100644
--- a/sc/source/ui/cctrl/editfield.cxx
+++ b/sc/source/ui/cctrl/editfield.cxx
@@ -48,7 +48,7 @@ ScDoubleField::ScDoubleField( vcl::Window* pParent, WinBits nStyle ) :
 
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeScDoubleField(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
-    VclBuilder::ensureDefaultWidthChars(rMap);
+    BuilderUtils::ensureDefaultWidthChars(rMap);
     rRet = VclPtr<ScDoubleField>::Create(pParent, WB_LEFT|WB_VCENTER|WB_BORDER|WB_3DLOOK);
 }
 
diff --git a/sc/source/ui/miscdlgs/tabbgcolordlg.cxx b/sc/source/ui/miscdlgs/tabbgcolordlg.cxx
index bc63af0afc9e..1fa759ad5dbd 100644
--- a/sc/source/ui/miscdlgs/tabbgcolordlg.cxx
+++ b/sc/source/ui/miscdlgs/tabbgcolordlg.cxx
@@ -150,7 +150,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeScTabBgColorValueSet(VclPtr<vc
 {
     WinBits nWinBits = WB_TABSTOP;
 
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
        nWinBits |= WB_BORDER;
 
diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx
index 21d82ea94699..b9d1ff0d312d 100644
--- a/sfx2/source/appl/newhelp.cxx
+++ b/sfx2/source/appl/newhelp.cxx
@@ -286,7 +286,7 @@ ContentListBox_Impl::ContentListBox_Impl(vcl::Window* pParent, WinBits nStyle)
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeContentListBox(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
     WinBits nWinStyle = WB_TABSTOP;
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
         nWinStyle |= WB_BORDER;
     rRet = VclPtr<ContentListBox_Impl>::Create(pParent, nWinStyle);
@@ -473,7 +473,7 @@ IndexBox_Impl::IndexBox_Impl(vcl::Window* pParent, WinBits nStyle)
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeIndexBox(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
     WinBits nWinBits = WB_CLIPCHILDREN|WB_LEFT|WB_VCENTER|WB_3DLOOK;
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
        nWinBits |= WB_BORDER;
     VclPtrInstance<IndexBox_Impl> pListBox(pParent, nWinBits);
@@ -879,7 +879,7 @@ void SearchBox_Impl::Select()
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeSearchResultsBox(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
     WinBits nWinBits = WB_CLIPCHILDREN|WB_LEFT|WB_VCENTER|WB_3DLOOK;
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
        nWinBits |= WB_BORDER;
     VclPtrInstance<SearchResultsBox_Impl> pListBox(pParent, nWinBits);
@@ -1140,7 +1140,7 @@ BookmarksBox_Impl::BookmarksBox_Impl(vcl::Window* pParent, WinBits nStyle)
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeBookmarksBox(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
     WinBits nWinBits = WB_CLIPCHILDREN|WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_SIMPLEMODE;
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
        nWinBits |= WB_BORDER;
     VclPtrInstance<BookmarksBox_Impl> pListBox(pParent, nWinBits);
diff --git a/svtools/source/contnr/fileview.cxx b/svtools/source/contnr/fileview.cxx
index c940a789b1ca..36427600ea51 100644
--- a/svtools/source/contnr/fileview.cxx
+++ b/svtools/source/contnr/fileview.cxx
@@ -989,7 +989,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeSvtFileView(VclPtr<vcl::Window
 {
     WinBits nBits = WB_CLIPCHILDREN|WB_LEFT|WB_VCENTER|WB_3DLOOK;
 
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
 
     if (bDropdown)
         nBits |= WB_DROPDOWN;
diff --git a/svtools/source/control/ctrlbox.cxx b/svtools/source/control/ctrlbox.cxx
index 0ef866caeb2a..8e18a12a5a78 100644
--- a/svtools/source/control/ctrlbox.cxx
+++ b/svtools/source/control/ctrlbox.cxx
@@ -505,7 +505,7 @@ LineListBox::LineListBox( vcl::Window* pParent, WinBits nWinStyle ) :
 
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeLineListBox(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
     WinBits nWinBits = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_TABSTOP;
     if (bDropdown)
         nWinBits |= WB_DROPDOWN;
@@ -705,7 +705,7 @@ FontNameBox::FontNameBox( vcl::Window* pParent, WinBits nWinStyle ) :
 
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeFontNameBox(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
     WinBits nWinBits = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_TABSTOP;
     if (bDropdown)
         nWinBits |= WB_DROPDOWN;
@@ -1095,7 +1095,7 @@ Size FontStyleBox::GetOptimalSize() const
 
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeFontStyleBox(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
     WinBits nWinBits = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_TABSTOP;
     if (bDropdown)
         nWinBits |= WB_DROPDOWN;
@@ -1291,7 +1291,7 @@ FontSizeBox::FontSizeBox( vcl::Window* pParent, WinBits nWinSize ) :
 
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeFontSizeBox(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
     WinBits nWinBits = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_TABSTOP;
     if (bDropdown)
         nWinBits |= WB_DROPDOWN;
diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx
index 8786336dfb01..2edd2699da38 100644
--- a/svx/source/dialog/dlgctrl.cxx
+++ b/svx/source/dialog/dlgctrl.cxx
@@ -1034,7 +1034,7 @@ HatchingLB::HatchingLB( vcl::Window* pParent, WinBits nWinStyle)
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeHatchingLB(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
     WinBits nWinStyle = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_SIMPLEMODE;
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
         nWinStyle |= WB_BORDER;
     VclPtrInstance<HatchingLB> pListBox(pParent, nWinStyle);
@@ -1074,7 +1074,7 @@ GradientLB::GradientLB( vcl::Window* pParent, WinBits aWB)
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeGradientLB(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
     WinBits nWinStyle = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_SIMPLEMODE;
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
         nWinStyle |= WB_BORDER;
     VclPtrInstance<GradientLB> pListBox(pParent, nWinStyle);
@@ -1114,7 +1114,7 @@ BitmapLB::BitmapLB( vcl::Window* pParent, WinBits aWB)
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeBitmapLB(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
     WinBits nWinStyle = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_SIMPLEMODE;
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
         nWinStyle |= WB_BORDER;
     VclPtrInstance<BitmapLB> pListBox(pParent, nWinStyle);
@@ -1247,11 +1247,11 @@ LineLB::LineLB(vcl::Window* pParent, WinBits aWB)
 
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeLineLB(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
     WinBits nWinBits = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_SIMPLEMODE|WB_TABSTOP;
     if (bDropdown)
         nWinBits |= WB_DROPDOWN;
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
         nWinBits |= WB_BORDER;
     VclPtrInstance<LineLB> pListBox(pParent, nWinBits);
@@ -1345,11 +1345,11 @@ LineEndLB::LineEndLB( vcl::Window* pParent, WinBits aWB )
 
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeLineEndLB(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
     WinBits nWinBits = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_SIMPLEMODE|WB_TABSTOP;
     if (bDropdown)
         nWinBits |= WB_DROPDOWN;
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
         nWinBits |= WB_BORDER;
     VclPtrInstance<LineEndLB> pListBox(pParent, nWinBits);
diff --git a/svx/source/dialog/langbox.cxx b/svx/source/dialog/langbox.cxx
index aaa28edeccca..d36c93db7d7c 100644
--- a/svx/source/dialog/langbox.cxx
+++ b/svx/source/dialog/langbox.cxx
@@ -113,7 +113,7 @@ static bool lcl_SeqHasLang( const Sequence< sal_Int16 > & rLangSeq, sal_Int16 nL
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeSvxLanguageBox(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
     WinBits nBits = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_TABSTOP;
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
     if (bDropdown)
         nBits |= WB_DROPDOWN;
     else
@@ -126,7 +126,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeSvxLanguageBox(VclPtr<vcl::Win
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeSvxLanguageComboBox(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
     WinBits nBits = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_TABSTOP;
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
     if (bDropdown)
         nBits |= WB_DROPDOWN;
     else
diff --git a/svx/source/dialog/relfld.cxx b/svx/source/dialog/relfld.cxx
index b99bc88aad80..4bb9ba59caf4 100644
--- a/svx/source/dialog/relfld.cxx
+++ b/svx/source/dialog/relfld.cxx
@@ -38,8 +38,8 @@ SvxRelativeField::SvxRelativeField(
 
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeSvxRelativeField(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
-    OUString const custom(VclBuilder::extractCustomProperty(rMap));
-    FieldUnit const eUnit(VclBuilder::detectUnit(custom));
+    OUString const custom(BuilderUtils::extractCustomProperty(rMap));
+    FieldUnit const eUnit(BuilderUtils::detectUnit(custom));
     rRet = VclPtr<SvxRelativeField>::Create(pParent,
                                             WB_BORDER | WB_SPIN | WB_REPEAT |
                                             WB_LEFT | WB_GROUP,
diff --git a/svx/source/dialog/txencbox.cxx b/svx/source/dialog/txencbox.cxx
index f476ae3bd52a..f02645980dc5 100644
--- a/svx/source/dialog/txencbox.cxx
+++ b/svx/source/dialog/txencbox.cxx
@@ -43,10 +43,10 @@ SvxTextEncodingBox::SvxTextEncodingBox( vcl::Window* pParent, WinBits nBits )
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeSvxTextEncodingBox(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
     WinBits nWinBits = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_SIMPLEMODE;
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
     if (bDropdown)
         nWinBits |= WB_DROPDOWN;
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
         nWinBits |= WB_BORDER;
     VclPtrInstance<SvxTextEncodingBox> pListBox(pParent, nWinBits);
diff --git a/sw/source/ui/config/optload.cxx b/sw/source/ui/config/optload.cxx
index 4a283717c990..597ae2c401aa 100644
--- a/sw/source/ui/config/optload.cxx
+++ b/sw/source/ui/config/optload.cxx
@@ -1003,7 +1003,7 @@ void CaptionComboBox::KeyInput(const KeyEvent& rEvt)
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeCaptionComboBox(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
     WinBits nBits = WB_CLIPCHILDREN|WB_LEFT|WB_VCENTER|WB_3DLOOK;
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
     if (bDropdown)
         nBits |= WB_DROPDOWN;
     VclPtrInstance<CaptionComboBox> pComboBox(pParent, nBits);
diff --git a/sw/source/ui/fldui/fldvar.cxx b/sw/source/ui/fldui/fldvar.cxx
index dc5088625b35..446688d660c3 100644
--- a/sw/source/ui/fldui/fldvar.cxx
+++ b/sw/source/ui/fldui/fldvar.cxx
@@ -1260,12 +1260,12 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeSelectionListBox(VclPtr<vcl::W
 {
     WinBits nBits = WB_LEFT|WB_VCENTER|WB_3DLOOK;
 
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
 
     if (bDropdown)
         nBits |= WB_DROPDOWN;
 
-    OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+    OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
     if (!sBorder.isEmpty())
        nBits |= WB_BORDER;
 
diff --git a/sw/source/uibase/cctrl/actctrl.cxx b/sw/source/uibase/cctrl/actctrl.cxx
index 1a8c5ece9efb..b607041bbdfc 100644
--- a/sw/source/uibase/cctrl/actctrl.cxx
+++ b/sw/source/uibase/cctrl/actctrl.cxx
@@ -58,7 +58,7 @@ void ReturnActionEdit::KeyInput( const KeyEvent& rEvt)
 
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeReturnActionEdit(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
-    VclBuilder::ensureDefaultWidthChars(rMap);
+    BuilderUtils::ensureDefaultWidthChars(rMap);
     rRet = VclPtr<ReturnActionEdit>::Create(pParent, WB_LEFT|WB_VCENTER|WB_BORDER|WB_3DLOOK);
 }
 
diff --git a/sw/source/uibase/utlui/condedit.cxx b/sw/source/uibase/utlui/condedit.cxx
index a44d2af15ecb..20fd938bb89a 100644
--- a/sw/source/uibase/utlui/condedit.cxx
+++ b/sw/source/uibase/utlui/condedit.cxx
@@ -36,7 +36,7 @@ ConditionEdit::ConditionEdit(vcl::Window* pParent, WinBits nStyle)
 
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeConditionEdit(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap & rMap)
 {
-    VclBuilder::ensureDefaultWidthChars(rMap);
+    BuilderUtils::ensureDefaultWidthChars(rMap);
     rRet = VclPtr<ConditionEdit>::Create(pParent, WB_LEFT|WB_VCENTER|WB_BORDER|WB_3DLOOK);
 }
 
diff --git a/sw/source/uibase/utlui/numfmtlb.cxx b/sw/source/uibase/utlui/numfmtlb.cxx
index e93f9ce1525d..c3724d89e0ce 100644
--- a/sw/source/uibase/utlui/numfmtlb.cxx
+++ b/sw/source/uibase/utlui/numfmtlb.cxx
@@ -67,7 +67,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL makeNumFormatListBox(VclPtr<vcl::W
 {
     WinBits nBits = WB_LEFT|WB_VCENTER|WB_3DLOOK;
 
-    bool bDropdown = VclBuilder::extractDropdown(rMap);
+    bool bDropdown = BuilderUtils::extractDropdown(rMap);
 
     if (bDropdown)
         nBits |= WB_DROPDOWN;
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index ac84840c29cf..14a4c3ce12b2 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -477,18 +477,6 @@ void VclBuilder::disposeBuilder()
     m_pParent.clear();
 }
 
-OUString VclBuilder::extractCustomProperty(VclBuilder::stringmap &rMap)
-{
-    OUString sCustomProperty;
-    VclBuilder::stringmap::iterator aFind = rMap.find(OString("customproperty"));
-    if (aFind != rMap.end())
-    {
-        sCustomProperty = aFind->second;
-        rMap.erase(aFind);
-    }
-    return sCustomProperty;
-}
-
 namespace
 {
     bool extractDrawValue(VclBuilder::stringmap& rMap)
@@ -934,7 +922,7 @@ namespace
             nBits |= WB_SIZEABLE;
         if (extractCloseable(rMap))
             nBits |= WB_CLOSEABLE;
-        OUString sBorder = VclBuilder::extractCustomProperty(rMap);
+        OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
         if (!sBorder.isEmpty())
             nBits |= WB_BORDER;
         if (!extractDecorated(rMap))
@@ -952,20 +940,6 @@ namespace
     }
 }
 
-FieldUnit VclBuilder::detectUnit(OUString const& rString)
-{
-    OUString const unit(extractUnit(rString));
-    return detectMetricUnit(unit);
-}
-
-void VclBuilder::ensureDefaultWidthChars(VclBuilder::stringmap &rMap)
-{
-    OString sWidthChars("width-chars");
-    VclBuilder::stringmap::iterator aFind = rMap.find(sWidthChars);
-    if (aFind == rMap.end())
-        rMap[sWidthChars] = "25";
-}
-
 bool VclBuilder::extractGroup(const OString &id, stringmap &rMap)
 {
     VclBuilder::stringmap::iterator aFind = rMap.find(OString("group"));
@@ -1065,18 +1039,6 @@ bool VclBuilder::extractModel(const OString &id, stringmap &rMap)
     return false;
 }
 
-bool VclBuilder::extractDropdown(VclBuilder::stringmap &rMap)
-{
-    bool bDropdown = true;
-    VclBuilder::stringmap::iterator aFind = rMap.find(OString("dropdown"));
-    if (aFind != rMap.end())
-    {
-        bDropdown = toBool(aFind->second);
-        rMap.erase(aFind);
-    }
-    return bDropdown;
-}
-
 bool VclBuilder::extractBuffer(const OString &id, stringmap &rMap)
 {
     VclBuilder::stringmap::iterator aFind = rMap.find(OString("buffer"));
@@ -1272,7 +1234,7 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
     else if (name == "GtkButton")
     {
         VclPtr<Button> xButton;
-        OUString sMenu = extractCustomProperty(rMap);
+        OUString sMenu = BuilderUtils::extractCustomProperty(rMap);
         if (sMenu.isEmpty())
             xButton = extractStockAndBuildPushButton(pParent, rMap);
         else
@@ -1287,7 +1249,7 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
     else if (name == "GtkToggleButton")
     {
         VclPtr<Button> xButton;
-        OUString sMenu = extractCustomProperty(rMap);
+        OUString sMenu = BuilderUtils::extractCustomProperty(rMap);
         assert(sMenu.getLength() && "not implemented yet");
         xButton = extractStockAndBuildMenuToggleButton(pParent, rMap);
         m_pParserState->m_aButtonMenuMaps.push_back(ButtonMenuMap(id, sMenu));
@@ -1299,7 +1261,7 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
     {
         extractGroup(id, rMap);
         WinBits nBits = WB_CLIPCHILDREN|WB_CENTER|WB_VCENTER|WB_3DLOOK;
-        OUString sWrap = extractCustomProperty(rMap);
+        OUString sWrap = BuilderUtils::extractCustomProperty(rMap);
         if (!sWrap.isEmpty())
             nBits |= WB_WORDBREAK;
         VclPtr<RadioButton> xButton = VclPtr<RadioButton>::Create(pParent, nBits);
@@ -1309,7 +1271,7 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
     else if (name == "GtkCheckButton")
     {
         WinBits nBits = WB_CLIPCHILDREN|WB_CENTER|WB_VCENTER|WB_3DLOOK;
-        OUString sWrap = extractCustomProperty(rMap);
+        OUString sWrap = BuilderUtils::extractCustomProperty(rMap);
         if (!sWrap.isEmpty())
             nBits |= WB_WORDBREAK;
         //maybe always import as TriStateBox and enable/disable tristate
@@ -1327,7 +1289,7 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
     else if (name == "GtkSpinButton")
     {
         OUString sAdjustment = extractAdjustment(rMap);
-        OUString sPattern = extractCustomProperty(rMap);
+        OUString sPattern = BuilderUtils::extractCustomProperty(rMap);
         OUString sUnit = extractUnit(sPattern);
 
         WinBits nBits = WB_CLIPCHILDREN|WB_LEFT|WB_BORDER|WB_3DLOOK;
@@ -1371,12 +1333,12 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
         xWindow = VclPtr<FixedHyperlink>::Create(pParent, WB_CENTER|WB_VCENTER|WB_3DLOOK|WB_NOLABEL);
     else if ((name == "GtkComboBox") || (name == "GtkComboBoxText") || (name == "VclComboBoxText"))
     {
-        OUString sPattern = extractCustomProperty(rMap);
+        OUString sPattern = BuilderUtils::extractCustomProperty(rMap);
         extractModel(id, rMap);
 
         WinBits nBits = WB_CLIPCHILDREN|WB_LEFT|WB_VCENTER|WB_3DLOOK;
 
-        bool bDropdown = VclBuilder::extractDropdown(rMap);
+        bool bDropdown = BuilderUtils::extractDropdown(rMap);
 
         if (bDropdown)
             nBits |= WB_DROPDOWN;
@@ -1414,13 +1376,13 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
     }
     else if (name == "VclComboBoxNumeric")
     {
-        OUString sPattern = extractCustomProperty(rMap);
+        OUString sPattern = BuilderUtils::extractCustomProperty(rMap);
         OUString sAdjustment = extractAdjustment(rMap);
         extractModel(id, rMap);
 
         WinBits nBits = WB_CLIPCHILDREN|WB_LEFT|WB_VCENTER|WB_3DLOOK;
 
-        bool bDropdown = VclBuilder::extractDropdown(rMap);
+        bool bDropdown = BuilderUtils::extractDropdown(rMap);
 
         if (bDropdown)
             nBits |= WB_DROPDOWN;
@@ -1459,7 +1421,7 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
         //d) remove the users of makeSvTreeViewBox
         extractModel(id, rMap);
         WinBits nWinStyle = WB_CLIPCHILDREN|WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_SIMPLEMODE;
-        OUString sBorder = extractCustomProperty(rMap);
+        OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
         if (!sBorder.isEmpty())
             nWinStyle |= WB_BORDER;
         //ListBox manages its own scrolling,
@@ -1471,7 +1433,7 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
     else if (name == "GtkLabel")
     {
         WinBits nWinStyle = WB_CENTER|WB_VCENTER|WB_3DLOOK;
-        OUString sBorder = extractCustomProperty(rMap);
+        OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
         if (!sBorder.isEmpty())
             nWinStyle |= WB_BORDER;
         extractMnemonicWidget(id, rMap);
@@ -1524,7 +1486,7 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
     else if (name == "GtkEntry")
     {
         xWindow = VclPtr<Edit>::Create(pParent, WB_LEFT|WB_VCENTER|WB_BORDER|WB_3DLOOK);
-        ensureDefaultWidthChars(rMap);
+        BuilderUtils::ensureDefaultWidthChars(rMap);
     }
     else if (name == "GtkNotebook")
     {
@@ -1532,7 +1494,7 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
     }
     else if (name == "GtkDrawingArea")
     {
-        OUString sBorder = extractCustomProperty(rMap);
+        OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
         xWindow = VclPtr<vcl::Window>::Create(pParent, sBorder.isEmpty() ? 0 : WB_BORDER);
     }
     else if (name == "GtkTextView")
@@ -1540,7 +1502,7 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
         extractBuffer(id, rMap);
 
         WinBits nWinStyle = WB_CLIPCHILDREN|WB_LEFT;
-        OUString sBorder = extractCustomProperty(rMap);
+        OUString sBorder = BuilderUtils::extractCustomProperty(rMap);
         if (!sBorder.isEmpty())
             nWinStyle |= WB_BORDER;
         //VclMultiLineEdit manages its own scrolling,
@@ -1684,7 +1646,7 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
                     setupFromActionName(static_cast<Button*>(xWindow.get()), rMap, m_xFrame);
                 else if (xWindow->GetType() == WindowType::MENUBUTTON)
                 {
-                    OUString sMenu = extractCustomProperty(rMap);
+                    OUString sMenu = BuilderUtils::extractCustomProperty(rMap);
                     if (!sMenu.isEmpty())
                         m_pParserState->m_aButtonMenuMaps.push_back(ButtonMenuMap(id, sMenu));
                     setupFromActionName(static_cast<Button*>(xWindow.get()), rMap, m_xFrame);
@@ -1698,9 +1660,9 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
         xWindow->SetHelpId(m_sHelpRoot + id);
         SAL_INFO("vcl.layout", "for " << name <<
             ", created " << xWindow.get() << " child of " <<
-            pParent << "(" << xWindow->mpWindowImpl->mpParent.get() << "/" <<
-            xWindow->mpWindowImpl->mpRealParent.get() << "/" <<
-            xWindow->mpWindowImpl->mpBorderWindow.get() << ") with helpid " <<
+            pParent << "(" << xWindow->ImplGetWindowImpl()->mpParent.get() << "/" <<
+            xWindow->ImplGetWindowImpl()->mpRealParent.get() << "/" <<
+            xWindow->ImplGetWindowImpl()->mpBorderWindow.get() << ") with helpid " <<
             xWindow->GetHelpId());
         m_aChildren.push_back(WinAndId(id, xWindow, bVertical));
     }
@@ -1726,16 +1688,106 @@ void VclBuilder::setDeferredProperties()
     stringmap aDeferredProperties;
     aDeferredProperties.swap(m_aDeferredProperties);
     m_bToplevelHasDeferredProperties = false;
-    set_properties(m_pParent, aDeferredProperties);
+    BuilderUtils::set_properties(m_pParent, aDeferredProperties);
 }
 
-void VclBuilder::set_properties(vcl::Window *pWindow, const stringmap &rProps)
+namespace BuilderUtils
 {
-    for (stringmap::const_iterator aI = rProps.begin(), aEnd = rProps.end(); aI != aEnd; ++aI)
+    void set_properties(vcl::Window *pWindow, const VclBuilder::stringmap &rProps)
     {
-        const OString &rKey = aI->first;
-        const OUString &rValue = aI->second;
-        pWindow->set_property(rKey, rValue);
+        for (VclBuilder::stringmap::const_iterator aI = rProps.begin(), aEnd = rProps.end(); aI != aEnd; ++aI)
+        {
+            const OString &rKey = aI->first;
+            const OUString &rValue = aI->second;
+            pWindow->set_property(rKey, rValue);
+        }
+    }
+
+    OUString convertMnemonicMarkup(const OUString &rIn)
+    {
+        OUStringBuffer aRet(rIn);
+        for (sal_Int32 nI = 0; nI < aRet.getLength(); ++nI)
+        {
+            if (aRet[nI] == '_' && nI+1 < aRet.getLength())
+            {
+                if (aRet[nI+1] != '_')
+                    aRet[nI] = MNEMONIC_CHAR;
+                else
+                    aRet.remove(nI, 1);
+                ++nI;
+            }
+        }
+        return aRet.makeStringAndClear();
+    }
+
+    OUString extractCustomProperty(VclBuilder::stringmap &rMap)
+    {
+        OUString sCustomProperty;
+        VclBuilder::stringmap::iterator aFind = rMap.find(OString("customproperty"));
+        if (aFind != rMap.end())
+        {
+            sCustomProperty = aFind->second;
+            rMap.erase(aFind);
+        }
+        return sCustomProperty;
+    }
+
+    FieldUnit detectUnit(OUString const& rString)
+    {
+        OUString const unit(extractUnit(rString));
+        return detectMetricUnit(unit);
+    }
+
+    void ensureDefaultWidthChars(VclBuilder::stringmap &rMap)
+    {
+        OString sWidthChars("width-chars");
+        VclBuilder::stringmap::iterator aFind = rMap.find(sWidthChars);
+        if (aFind == rMap.end())
+            rMap[sWidthChars] = "25";
+    }
+
+    bool extractDropdown(VclBuilder::stringmap &rMap)
+    {
+        bool bDropdown = true;
+        VclBuilder::stringmap::iterator aFind = rMap.find(OString("dropdown"));
+        if (aFind != rMap.end())
+        {
+            bDropdown = toBool(aFind->second);
+            rMap.erase(aFind);
+        }
+        return bDropdown;
+    }
+
+    void reorderWithinParent(vcl::Window &rWindow, sal_uInt16 nNewPosition)
+    {
+        WindowImpl *pWindowImpl = rWindow.ImplGetWindowImpl();
+        if (pWindowImpl->mpParent != pWindowImpl->mpRealParent)
+        {
+            assert(pWindowImpl->mpBorderWindow == pWindowImpl->mpParent);
+            assert(pWindowImpl->mpBorderWindow->ImplGetWindowImpl()->mpParent == pWindowImpl->mpRealParent);
+            reorderWithinParent(*pWindowImpl->mpBorderWindow, nNewPosition);
+            return;
+        }
+        rWindow.reorderWithinParent(nNewPosition);
+    }
+
+    void reorderWithinParent(std::vector<vcl::Window*>& rChilds, bool bIsButtonBox)
+    {
+        for (size_t i = 0; i < rChilds.size(); ++i)
+        {
+            reorderWithinParent(*rChilds[i], i);
+
+            if (!bIsButtonBox)
+                continue;
+
+            //The first member of the group for legacy code needs WB_GROUP set and the
+            //others not
+            WinBits nBits = rChilds[i]->GetStyle();
+            nBits &= ~WB_GROUP;
+            if (i == 0)
+                nBits |= WB_GROUP;
+            rChilds[i]->SetStyle(nBits);
+        }
     }
 }
 
@@ -1788,7 +1840,7 @@ VclPtr<vcl::Window> VclBuilder::insertObject(vcl::Window *pParent, const OString
         if (pCurrentChild == m_pParent.get() && m_bToplevelHasDeferredProperties)
             m_aDeferredProperties = rProps;
         else
-            set_properties(pCurrentChild, rProps);
+            BuilderUtils::set_properties(pCurrentChild, rProps);
 
         for (stringmap::iterator aI = rPango.begin(), aEnd = rPango.end(); aI != aEnd; ++aI)
         {
@@ -1809,20 +1861,6 @@ VclPtr<vcl::Window> VclBuilder::insertObject(vcl::Window *pParent, const OString
     return pCurrentChild;
 }
 
-void VclBuilder::reorderWithinParent(vcl::Window &rWindow, sal_uInt16 nNewPosition)
-{
-    if (rWindow.mpWindowImpl->mpParent != rWindow.mpWindowImpl->mpRealParent)
-    {
-        assert(rWindow.mpWindowImpl->mpBorderWindow ==
-            rWindow.mpWindowImpl->mpParent);
-        assert(rWindow.mpWindowImpl->mpBorderWindow->mpWindowImpl->mpParent ==
-            rWindow.mpWindowImpl->mpRealParent);
-        reorderWithinParent(*rWindow.mpWindowImpl->mpBorderWindow, nNewPosition);
-        return;
-    }
-    rWindow.reorderWithinParent(nNewPosition);
-}
-
 void VclBuilder::handleTabChild(vcl::Window *pParent, xmlreader::XmlReader &reader)
 {
     OString sID;
@@ -2062,7 +2100,7 @@ void VclBuilder::handleChild(vcl::Window *pParent, xmlreader::XmlReader &reader)
                         //sort child order within parent so that tabbing
                         //between controls goes in a visually sensible sequence
                         std::stable_sort(aChilds.begin(), aChilds.end(), sortIntoBestTabTraversalOrder(this));
-                        reorderWithinParent(aChilds, bIsButtonBox);
+                        BuilderUtils::reorderWithinParent(aChilds, bIsButtonBox);
                     }
                 }
             }
@@ -2098,25 +2136,6 @@ void VclBuilder::handleChild(vcl::Window *pParent, xmlreader::XmlReader &reader)
     }
 }
 
-void VclBuilder::reorderWithinParent(std::vector<vcl::Window*>& rChilds, bool bIsButtonBox)
-{
-    for (size_t i = 0; i < rChilds.size(); ++i)
-    {
-        reorderWithinParent(*rChilds[i], i);
-
-        if (!bIsButtonBox)
-            continue;
-
-        //The first member of the group for legacy code needs WB_GROUP set and the
-        //others not
-        WinBits nBits = rChilds[i]->GetStyle();
-        nBits &= ~WB_GROUP;
-        if (i == 0)
-            nBits |= WB_GROUP;
-        rChilds[i]->SetStyle(nBits);
-    }
-}
-
 void VclBuilder::collectPangoAttribute(xmlreader::XmlReader &reader, stringmap &rMap)
 {
     xmlreader::Span span;
@@ -2613,23 +2632,6 @@ void VclBuilder::handleSizeGroup(xmlreader::XmlReader &reader)
     }
 }
 
-OUString VclBuilder::convertMnemonicMarkup(const OUString &rIn)
-{
-    OUStringBuffer aRet(rIn);
-    for (sal_Int32 nI = 0; nI < aRet.getLength(); ++nI)
-    {
-        if (aRet[nI] == '_' && nI+1 < aRet.getLength())
-        {
-            if (aRet[nI+1] != '_')
-                aRet[nI] = MNEMONIC_CHAR;
-            else
-                aRet.remove(nI, 1);
-            ++nI;
-        }
-    }
-    return aRet.makeStringAndClear();
-}
-
 namespace
 {
     vcl::KeyCode makeKeyCode(const std::pair<OString,OString> &rKey)
@@ -2666,7 +2668,7 @@ void VclBuilder::insertMenuObject(PopupMenu *pParent, PopupMenu *pSubMenu, const
 
     if (rClass == "GtkMenuItem")
     {
-        OUString sLabel(convertMnemonicMarkup(extractLabel(rProps)));
+        OUString sLabel(BuilderUtils::convertMnemonicMarkup(extractLabel(rProps)));
         OUString aCommand(extractActionName(rProps));
         pParent->InsertItem(nNewId, sLabel, MenuItemBits::TEXT, rID);
         pParent->SetItemCommand(nNewId, aCommand);
@@ -2675,14 +2677,14 @@ void VclBuilder::insertMenuObject(PopupMenu *pParent, PopupMenu *pSubMenu, const
     }
     else if (rClass == "GtkCheckMenuItem")
     {
-        OUString sLabel(convertMnemonicMarkup(extractLabel(rProps)));
+        OUString sLabel(BuilderUtils::convertMnemonicMarkup(extractLabel(rProps)));
         OUString aCommand(extractActionName(rProps));
         pParent->InsertItem(nNewId, sLabel, MenuItemBits::CHECKABLE, rID);
         pParent->SetItemCommand(nNewId, aCommand);
     }
     else if (rClass == "GtkRadioMenuItem")
     {
-        OUString sLabel(convertMnemonicMarkup(extractLabel(rProps)));
+        OUString sLabel(BuilderUtils::convertMnemonicMarkup(extractLabel(rProps)));
         OUString aCommand(extractActionName(rProps));
         pParent->InsertItem(nNewId, sLabel, MenuItemBits::AUTOCHECK | MenuItemBits::RADIOCHECK, rID);
         pParent->SetItemCommand(nNewId, aCommand);
@@ -3324,8 +3326,8 @@ VclBuilder::PackingData VclBuilder::get_window_packing_data(const vcl::Window *p
     //border windows placed around them which are what you get
     //from GetChild, so scoot up a level if necessary to get the
     //window whose position value we have
-    const vcl::Window *pPropHolder = pWindow->mpWindowImpl->mpClientWindow ?
-        pWindow->mpWindowImpl->mpClientWindow : pWindow;
+    const vcl::Window *pPropHolder = pWindow->ImplGetWindowImpl()->mpClientWindow ?
+        pWindow->ImplGetWindowImpl()->mpClientWindow : pWindow;
 
     for (std::vector<WinAndId>::const_iterator aI = m_aChildren.begin(),
          aEnd = m_aChildren.end(); aI != aEnd; ++aI)
diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx
index af95cdcdd827..0d29a2fa0dc1 100644
--- a/vcl/source/window/layout.cxx
+++ b/vcl/source/window/layout.cxx
@@ -923,7 +923,7 @@ void VclButtonBox::sort_native_button_order()
     //sort child order within parent so that we match the platform
     //button order
     std::stable_sort(aChilds.begin(), aChilds.end(), sortButtons(m_bVerticalContainer));
-    VclBuilder::reorderWithinParent(aChilds, true);
+    BuilderUtils::reorderWithinParent(aChilds, true);
 }
 
 struct GridEntry
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index 352967ca10bd..18feeba92bb6 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -1473,7 +1473,7 @@ bool Window::set_property(const OString &rKey, const OUString &rValue)
 {
     if ((rKey == "label") || (rKey == "title") || (rKey == "text") )
     {
-        SetText(VclBuilder::convertMnemonicMarkup(rValue));
+        SetText(BuilderUtils::convertMnemonicMarkup(rValue));
     }
     else if (rKey == "visible")
         Show(toBool(rValue));


More information about the Libreoffice-commits mailing list