[Libreoffice-commits] core.git: 2 commits - include/svtools include/svx solenv/clang-format svtools/inc svtools/Library_svt.mk svtools/source svx/inc svx/source svx/uiconfig svx/UIConfig_svx.mk

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Tue Jan 28 09:02:18 UTC 2020


 include/svtools/toolbarmenu.hxx                    |   79 -
 include/svx/strings.hrc                            |    6 
 solenv/clang-format/blacklist                      |    2 
 svtools/Library_svt.mk                             |    1 
 svtools/inc/pch/precompiled_svt.hxx                |    7 
 svtools/source/control/toolbarmenu.cxx             | 1341 ---------------------
 svtools/source/control/toolbarmenuacc.cxx          |  833 -------------
 svtools/source/control/toolbarmenuimp.hxx          |  292 ----
 svx/UIConfig_svx.mk                                |    1 
 svx/inc/bitmaps.hlst                               |    6 
 svx/source/tbxctrls/fontworkgallery.cxx            |  118 +
 svx/uiconfig/ui/fontworkalignmentcontrol.ui        |  134 ++
 svx/uiconfig/ui/fontworkcharacterspacingcontrol.ui |    7 
 13 files changed, 219 insertions(+), 2608 deletions(-)

New commits:
commit e3016262403aaf397286cfc16591612d78c9b3de
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Jan 27 10:48:13 2020 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Jan 28 10:01:53 2020 +0100

    ToolbarMenu is now unused
    
    Change-Id: Id48bb98045886ee79149f27c58e54488a80af41f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87554
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/include/svtools/toolbarmenu.hxx b/include/svtools/toolbarmenu.hxx
index b11b89380774..7dcfd936b3ce 100644
--- a/include/svtools/toolbarmenu.hxx
+++ b/include/svtools/toolbarmenu.hxx
@@ -32,14 +32,8 @@ namespace com :: sun :: star :: frame { class XFrame; }
 namespace com :: sun :: star :: frame { struct FeatureStateEvent; }
 namespace svt { class FrameStatusListener; }
 
-class Control;
-class ValueSet;
-
 namespace svtools {
 
-class ToolbarMenuEntry;
-struct ToolbarMenu_Impl;
-
 class SVT_DLLPUBLIC ToolbarPopupBase
 {
     friend class ToolbarPopupStatusListener;
@@ -78,79 +72,6 @@ private:
     void init();
 };
 
-class SVT_DLLPUBLIC ToolbarMenu : public ToolbarPopup
-{
-    friend struct ToolbarMenu_Impl;
-public:
-    ToolbarMenu(const css::uno::Reference<css::frame::XFrame>& rFrame,
-                vcl::Window* pParentWindow,
-                WinBits nBits );
-
-    virtual ~ToolbarMenu() override;
-    virtual void dispose() override;
-
-    virtual void    MouseMove( const MouseEvent& rMEvt ) override;
-    virtual void    MouseButtonDown( const MouseEvent& rMEvt ) override;
-    virtual void    MouseButtonUp( const MouseEvent& rMEvt ) override;
-    virtual void    KeyInput( const KeyEvent& rKEvent ) override;
-    virtual void    Command( const CommandEvent& rCEvt ) override;
-    virtual void    Paint( vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect ) override;
-    virtual void    GetFocus() override;
-    virtual void    LoseFocus() override;
-
-    void            appendEntry( int nEntryId, const OUString& rStr, MenuItemBits nItemBits = MenuItemBits::NONE );
-    void            appendEntry( int nEntryId, const OUString& rStr, const Image& rImage );
-    void            appendEntry( int nEntryId, Control* pControl );
-    void            appendSeparator();
-
-    /** creates an empty ValueSet that is initialized and can be inserted with appendEntry. */
-    VclPtr<ValueSet> createEmptyValueSetControl();
-
-    void            checkEntry( int nEntryId, bool bCheck );
-
-    void            enableEntry( int nEntryId, bool bEnable );
-
-    void            setEntryText( int nEntryId, const OUString& rStr );
-
-    void            setEntryImage( int nEntryId, const Image& rImage );
-
-    const Size&     getMenuSize() const;
-
-    void            SetSelectHdl( const Link<ToolbarMenu*,void>& rLink );
-
-    int             getSelectedEntryId() const;
-    int             getHighlightedEntryId() const;
-
-protected:
-    virtual css::uno::Reference<css::accessibility::XAccessible> CreateAccessible() override;
-
-    void            StateChanged( StateChangedType nType ) override;
-    void            DataChanged( const DataChangedEvent& rDCEvt ) override;
-
-private:
-    DECL_LINK( HighlightHdl, ValueSet*, void );
-
-    void            initWindow();
-
-    Size            implCalcSize();
-
-    void            appendEntry(std::unique_ptr<ToolbarMenuEntry> pEntry);
-
-    void            implPaint(vcl::RenderContext& rRenderContext, ToolbarMenuEntry const * pThisOnly = nullptr, bool bHighlight = false);
-
-    void            implHighlightEntry(vcl::RenderContext& rRenderContext, int nHighlightEntry);
-    void            implHighlightAtPosition(const MouseEvent& rMEvt);
-
-    void            implChangeHighlightEntry( int nEntry );
-    void            implSelectEntry( int nSelectedEntry );
-
-    ToolbarMenuEntry*   implCursorUpDown( bool bUp, bool bHomeEnd );
-    ToolbarMenuEntry*   implGetEntry( int nEntry ) const;
-    ToolbarMenuEntry*   implSearchEntry( int nEntryId ) const;
-
-    std::unique_ptr<ToolbarMenu_Impl>   mpImpl;
-};
-
 } // namespace svtools
 
 class SVT_DLLPUBLIC WeldToolbarPopup : public svtools::ToolbarPopupBase
diff --git a/solenv/clang-format/blacklist b/solenv/clang-format/blacklist
index 890cdc7f8a3c..050b7ad51a56 100644
--- a/solenv/clang-format/blacklist
+++ b/solenv/clang-format/blacklist
@@ -13658,8 +13658,6 @@ svtools/source/control/scriptedtext.cxx
 svtools/source/control/scrwin.cxx
 svtools/source/control/tabbar.cxx
 svtools/source/control/toolbarmenu.cxx
-svtools/source/control/toolbarmenuacc.cxx
-svtools/source/control/toolbarmenuimp.hxx
 svtools/source/control/valueacc.cxx
 svtools/source/control/valueimp.hxx
 svtools/source/control/valueset.cxx
diff --git a/svtools/Library_svt.mk b/svtools/Library_svt.mk
index f5f155faefef..ab191699615b 100644
--- a/svtools/Library_svt.mk
+++ b/svtools/Library_svt.mk
@@ -105,7 +105,6 @@ $(eval $(call gb_Library_add_exception_objects,svt,\
     svtools/source/control/scrwin \
     svtools/source/control/tabbar \
     svtools/source/control/toolbarmenu \
-    svtools/source/control/toolbarmenuacc \
     svtools/source/control/valueacc \
     svtools/source/control/valueset \
     svtools/source/dialogs/addresstemplate \
diff --git a/svtools/inc/pch/precompiled_svt.hxx b/svtools/inc/pch/precompiled_svt.hxx
index 3638394cadc8..a56169b0b141 100644
--- a/svtools/inc/pch/precompiled_svt.hxx
+++ b/svtools/inc/pch/precompiled_svt.hxx
@@ -13,7 +13,7 @@
  manual changes will be rewritten by the next run of update_pch.sh (which presumably
  also fixes all possible problems, so it's usually better to use it).
 
- Generated on 2019-12-03 09:22:16 using:
+ Generated on 2020-01-27 20:08:05 using:
  ./bin/update_pch svtools svt --cutoff=4 --exclude:system --include:module --exclude:local
 
  If after updating build fails, use the following command to locate conflicting headers:
@@ -106,7 +106,6 @@
 #include <vcl/combobox.hxx>
 #include <vcl/commandevent.hxx>
 #include <vcl/ctrl.hxx>
-#include <vcl/decoview.hxx>
 #include <vcl/dllapi.h>
 #include <vcl/dndhelp.hxx>
 #include <vcl/dockwin.hxx>
@@ -173,7 +172,6 @@
 #include <basegfx/vector/b2enums.hxx>
 #include <basegfx/vector/b2ivector.hxx>
 #include <com/sun/star/accessibility/AccessibleEventId.hpp>
-#include <com/sun/star/accessibility/AccessibleRole.hpp>
 #include <com/sun/star/accessibility/AccessibleStateType.hpp>
 #include <com/sun/star/awt/Key.hpp>
 #include <com/sun/star/awt/KeyGroup.hpp>
@@ -218,7 +216,6 @@
 #include <com/sun/star/i18n/reservedWords.hpp>
 #include <com/sun/star/lang/DisposedException.hpp>
 #include <com/sun/star/lang/EventObject.hpp>
-#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
 #include <com/sun/star/lang/Locale.hpp>
 #include <com/sun/star/lang/XComponent.hpp>
 #include <com/sun/star/lang/XInitialization.hpp>
@@ -250,6 +247,7 @@
 #include <com/sun/star/view/PrintableState.hpp>
 #include <comphelper/broadcasthelper.hxx>
 #include <comphelper/comphelperdllapi.h>
+#include <comphelper/interfacecontainer2.hxx>
 #include <comphelper/processfactory.hxx>
 #include <comphelper/propagg.hxx>
 #include <comphelper/proparrhlp.hxx>
@@ -347,7 +345,6 @@
 #include <svtools/colorcfg.hxx>
 #include <svtools/htmlkywd.hxx>
 #include <svtools/htmltokn.h>
-#include <svtools/svmedit.hxx>
 #include <svtools/svtdllapi.h>
 #include <svtools/svtresid.hxx>
 #include <svtools/table/tabletypes.hxx>
diff --git a/svtools/source/control/toolbarmenu.cxx b/svtools/source/control/toolbarmenu.cxx
index 90bd3f3b53aa..b64c52f3155d 100644
--- a/svtools/source/control/toolbarmenu.cxx
+++ b/svtools/source/control/toolbarmenu.cxx
@@ -18,14 +18,9 @@
  */
 
 #include <memory>
-#include <com/sun/star/accessibility/AccessibleEventId.hpp>
-#include <com/sun/star/accessibility/AccessibleStateType.hpp>
-#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
 #include <comphelper/processfactory.hxx>
+#include <osl/diagnose.h>
 
-#include <vcl/dockwin.hxx>
-#include <vcl/decoview.hxx>
-#include <vcl/image.hxx>
 #include <vcl/taskpanelist.hxx>
 #include <vcl/settings.hxx>
 #include <vcl/commandevent.hxx>
@@ -35,7 +30,6 @@
 #include <svtools/framestatuslistener.hxx>
 #include <svtools/valueset.hxx>
 #include <svtools/toolbarmenu.hxx>
-#include "toolbarmenuimp.hxx"
 
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::lang;
@@ -67,1328 +61,6 @@ static vcl::Window* GetTopMostParentSystemWindow( vcl::Window* pWindow )
     return nullptr;
 }
 
-
-void ToolbarMenuEntry::init( int nEntryId, MenuItemBits nBits )
-{
-    mnEntryId = nEntryId;
-    mnBits = nBits;
-
-    mbHasText = false;
-    mbHasImage = false;
-    mbChecked = false;
-    mbEnabled = true;
-
-    mpControl = nullptr;
-}
-
-
-ToolbarMenuEntry::ToolbarMenuEntry( ToolbarMenu& rMenu, int nEntryId, const OUString& rText, MenuItemBits nBits )
-: mrMenu( rMenu )
-{
-    init( nEntryId, nBits );
-
-    maText = rText;
-    mbHasText = true;
-}
-
-
-ToolbarMenuEntry::ToolbarMenuEntry( ToolbarMenu& rMenu, int nEntryId, const Image& rImage, const OUString& rText, MenuItemBits nBits )
-: mrMenu( rMenu )
-{
-    init( nEntryId, nBits );
-
-    maText = rText;
-    mbHasText = true;
-
-    maImage = rImage;
-    mbHasImage = true;
-}
-
-
-ToolbarMenuEntry::ToolbarMenuEntry( ToolbarMenu& rMenu, int nEntryId, Control* pControl, MenuItemBits nBits )
-: mrMenu( rMenu )
-{
-    init( nEntryId, nBits );
-
-    if( pControl )
-    {
-        mpControl = pControl;
-        mpControl->Show();
-    }
-}
-
-
-ToolbarMenuEntry::~ToolbarMenuEntry()
-{
-    if( mxAccContext.is() )
-    {
-        Reference< XComponent > xComponent( mxAccContext, UNO_QUERY );
-        if( xComponent.is() )
-            xComponent->dispose();
-        mxAccContext.clear();
-    }
-    mpControl.disposeAndClear();
-}
-
-
-const Reference< XAccessibleContext >& ToolbarMenuEntry::GetAccessible()
-{
-    if( !mxAccContext.is() )
-    {
-        if( mpControl )
-        {
-            mxAccContext.set( mpControl->GetAccessible(), UNO_QUERY );
-        }
-        else
-        {
-            mxAccContext.set( new ToolbarMenuEntryAcc( this ) );
-        }
-    }
-
-    return mxAccContext;
-}
-
-
-sal_Int32 ToolbarMenuEntry::getAccessibleChildCount()
-{
-    if( mpControl )
-    {
-        const Reference< XAccessibleContext >& xContext = GetAccessible();
-        if( xContext.is() )
-        {
-            return xContext->getAccessibleChildCount();
-        }
-    }
-    return 1;
-}
-
-
-Reference< XAccessible > ToolbarMenuEntry::getAccessibleChild( sal_Int32 index )
-{
-    const Reference< XAccessibleContext >& xContext = GetAccessible();
-    if( mpControl )
-    {
-        if( xContext.is() )
-        {
-            return xContext->getAccessibleChild(index);
-        }
-    }
-    else if( index == 0 )
-    {
-        Reference< XAccessible > xRet( xContext, UNO_QUERY );
-        if( xRet.is() )
-            return xRet;
-    }
-
-    throw IndexOutOfBoundsException();
-}
-
-
-ToolbarMenu_Impl::ToolbarMenu_Impl( ToolbarMenu& rMenu )
-: mrMenu( rMenu )
-, mnCheckPos(0)
-, mnImagePos(0)
-, mnTextPos(0)
-, mnHighlightedEntry(-1)
-, mnSelectedEntry(-1)
-, mnLastColumn(0)
-{
-}
-
-
-ToolbarMenu_Impl::~ToolbarMenu_Impl()
-{
-    setAccessible( nullptr );
-}
-
-
-void ToolbarMenu_Impl::setAccessible( ToolbarMenuAcc* pAccessible )
-{
-    if( mxAccessible.get() != pAccessible )
-    {
-        if( mxAccessible.is() )
-            mxAccessible->dispose();
-
-        mxAccessible.set( pAccessible );
-    }
-}
-
-
-void ToolbarMenu_Impl::fireAccessibleEvent( short nEventId, const css::uno::Any& rOldValue, const css::uno::Any& rNewValue )
-{
-    if( mxAccessible.is() )
-        mxAccessible->FireAccessibleEvent( nEventId, rOldValue, rNewValue );
-}
-
-
-sal_Int32 ToolbarMenu_Impl::getAccessibleChildCount()
-{
-    sal_Int32 nCount = 0;
-    for( const auto& pEntry : maEntryVector )
-    {
-        if( pEntry )
-        {
-            if( pEntry->mpControl )
-            {
-                nCount += pEntry->getAccessibleChildCount();
-            }
-            else
-            {
-                nCount += 1;
-            }
-        }
-    }
-
-    return nCount;
-}
-
-
-Reference< XAccessible > ToolbarMenu_Impl::getAccessibleChild( sal_Int32 index )
-{
-    for( const auto& pEntry : maEntryVector )
-    {
-        if( pEntry )
-        {
-            const sal_Int32 nCount = pEntry->getAccessibleChildCount();
-            if( index < nCount )
-            {
-                return pEntry->getAccessibleChild( index );
-            }
-            index -= nCount;
-        }
-    }
-
-    throw IndexOutOfBoundsException();
-}
-
-
-Reference< XAccessible > ToolbarMenu_Impl::getAccessibleChild( Control const * pControl, sal_Int32 childIndex )
-{
-    for( const auto& pEntry : maEntryVector )
-    {
-        if( pEntry && (pEntry->mpControl.get() == pControl) )
-        {
-            return pEntry->getAccessibleChild( childIndex );
-        }
-    }
-
-    throw IndexOutOfBoundsException();
-}
-
-
-void ToolbarMenu_Impl::selectAccessibleChild( sal_Int32 nChildIndex )
-{
-    const int nEntryCount = maEntryVector.size();
-    for( int nEntry = 0; nEntry < nEntryCount; nEntry++ )
-    {
-        ToolbarMenuEntry* const pEntry = maEntryVector[nEntry].get();
-        if( pEntry )
-        {
-            const sal_Int32 nCount = pEntry->getAccessibleChildCount();
-            if( nChildIndex < nCount )
-            {
-                if( pEntry->mpControl )
-                {
-                    Reference< XAccessibleSelection > xSel( pEntry->GetAccessible(), UNO_QUERY_THROW );
-                    xSel->selectAccessibleChild(nChildIndex);
-                }
-                else if( pEntry->mnEntryId != TITLE_ID )
-                {
-                    mrMenu.implSelectEntry( nEntry );
-                }
-                return;
-            }
-            nChildIndex -= nCount;
-        }
-    }
-
-    throw IndexOutOfBoundsException();
-}
-
-
-bool ToolbarMenu_Impl::isAccessibleChildSelected( sal_Int32 nChildIndex )
-{
-    const int nEntryCount = maEntryVector.size();
-    for( int nEntry = 0; nEntry < nEntryCount; nEntry++ )
-    {
-        ToolbarMenuEntry* const pEntry = maEntryVector[nEntry].get();
-        if( pEntry )
-        {
-            const sal_Int32 nCount = pEntry->getAccessibleChildCount();
-            if( nChildIndex < nCount )
-            {
-                if( mnHighlightedEntry == nEntry )
-                {
-                    if( pEntry->mpControl )
-                    {
-                        Reference< XAccessibleSelection > xSel( pEntry->GetAccessible(), UNO_QUERY_THROW );
-                        xSel->isAccessibleChildSelected(nChildIndex);
-                    }
-                    return true;
-                }
-                else
-                {
-                    return false;
-                }
-            }
-            nChildIndex -= nCount;
-        }
-    }
-
-    throw IndexOutOfBoundsException();
-}
-
-
-void ToolbarMenu_Impl::clearAccessibleSelection()
-{
-    if( mnHighlightedEntry != -1 )
-    {
-        mrMenu.Invalidate();
-        mnHighlightedEntry = -1;
-    }
-}
-
-
-void ToolbarMenu_Impl::notifyHighlightedEntry()
-{
-    if( !(mxAccessible.is() && mxAccessible->HasAccessibleListeners()) )
-        return;
-
-    ToolbarMenuEntry* pEntry = implGetEntry( mnHighlightedEntry );
-    if( !(pEntry && pEntry->mbEnabled && (pEntry->mnEntryId != TITLE_ID)) )
-        return;
-
-    Any aNew;
-    Any aOld( mxOldSelection );
-    if( pEntry->mpControl )
-    {
-        sal_Int32 nChildIndex = 0;
-        // todo: if other controls than ValueSet are allowed, adapt this code
-        ValueSet* pValueSet = dynamic_cast< ValueSet* >( pEntry->mpControl.get() );
-        if( pValueSet )
-            nChildIndex = static_cast< sal_Int32 >( pValueSet->GetItemPos( pValueSet->GetSelectedItemId() ) );
-
-        if( (nChildIndex >= pEntry->getAccessibleChildCount()) || (nChildIndex < 0) )
-            return;
-
-        aNew <<= getAccessibleChild( pEntry->mpControl, nChildIndex );
-    }
-    else
-    {
-        aNew <<= pEntry->GetAccessible();
-    }
-
-    fireAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOld, aNew );
-    fireAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, aOld, aNew );
-    fireAccessibleEvent( AccessibleEventId::STATE_CHANGED, Any(), Any( AccessibleStateType::FOCUSED ) );
-    aNew >>= mxOldSelection;
-}
-
-
-ToolbarMenuEntry* ToolbarMenu_Impl::implGetEntry( int nEntry ) const
-{
-    if( (nEntry < 0) || (nEntry >= static_cast<int>(maEntryVector.size()) ) )
-        return nullptr;
-
-    return maEntryVector[nEntry].get();
-}
-
-
-IMPL_LINK_NOARG( ToolbarMenu, HighlightHdl, ValueSet*, void )
-{
-    mpImpl->notifyHighlightedEntry();
-}
-
-ToolbarMenu::ToolbarMenu( const css::uno::Reference<css::frame::XFrame>& rFrame, vcl::Window* pParentWindow, WinBits nBits )
-    : ToolbarPopup(rFrame, pParentWindow, nBits)
-{
-    mpImpl.reset( new ToolbarMenu_Impl( *this ) );
-
-    const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
-    SetControlBackground( rStyleSettings.GetMenuColor() );
-
-    initWindow();
-}
-
-
-ToolbarMenu::~ToolbarMenu()
-{
-    disposeOnce();
-}
-
-void ToolbarMenu::dispose()
-{
-    mpImpl->mxAccessible.clear();
-
-    std::unique_ptr<ToolbarMenu_Impl> pImpl = std::move(mpImpl);
-    mpImpl.reset();
-
-    pImpl->maEntryVector.clear();
-
-    ToolbarPopup::dispose();
-}
-
-
-int ToolbarMenu::getSelectedEntryId() const
-{
-    ToolbarMenuEntry* pEntry = implGetEntry( mpImpl->mnSelectedEntry );
-    return pEntry ? pEntry->mnEntryId : -1;
-}
-
-
-int ToolbarMenu::getHighlightedEntryId() const
-{
-    ToolbarMenuEntry* pEntry = implGetEntry( mpImpl->mnHighlightedEntry );
-    return pEntry ? pEntry->mnEntryId : -1;
-}
-
-
-void ToolbarMenu::checkEntry( int nEntryId, bool bChecked )
-{
-    ToolbarMenuEntry* pEntry = implSearchEntry( nEntryId );
-    if( pEntry && pEntry->mbChecked != bChecked )
-    {
-        pEntry->mbChecked = bChecked;
-        Invalidate();
-    }
-}
-
-
-void ToolbarMenu::enableEntry( int nEntryId, bool bEnable )
-{
-    ToolbarMenuEntry* pEntry = implSearchEntry( nEntryId );
-    if( pEntry && pEntry->mbEnabled != bEnable )
-    {
-        pEntry->mbEnabled = bEnable;
-        if( pEntry->mpControl )
-        {
-            pEntry->mpControl->Enable( bEnable );
-
-            // hack for the valueset to make it paint itself anew
-            pEntry->mpControl->Resize();
-        }
-        Invalidate();
-    }
-}
-
-
-void ToolbarMenu::setEntryText( int nEntryId, const OUString& rStr )
-{
-    ToolbarMenuEntry* pEntry = implSearchEntry( nEntryId );
-    if( pEntry && pEntry->maText != rStr )
-    {
-        pEntry->maText = rStr;
-        mpImpl->maSize = implCalcSize();
-        if( IsVisible() )
-            Invalidate();
-    }
-}
-
-
-void ToolbarMenu::setEntryImage( int nEntryId, const Image& rImage )
-{
-    ToolbarMenuEntry* pEntry = implSearchEntry( nEntryId );
-    if( pEntry && pEntry->maImage != rImage )
-    {
-        pEntry->maImage = rImage;
-        mpImpl->maSize = implCalcSize();
-        if( IsVisible() )
-            Invalidate();
-    }
-}
-
-
-void ToolbarMenu::initWindow()
-{
-    const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
-
-    // FIXME RenderContext
-    SetPointFont(*this, rStyleSettings.GetMenuFont());
-    SetBackground(Wallpaper(GetControlBackground()));
-    SetTextColor(rStyleSettings.GetMenuTextColor());
-    SetTextFillColor();
-    SetLineColor();
-
-    mpImpl->maSize = implCalcSize();
-}
-
-
-static long ImplGetNativeCheckAndRadioSize(vcl::RenderContext const & rRenderContext, long& rCheckHeight, long& rRadioHeight, long &rMaxWidth )
-{
-    rMaxWidth = rCheckHeight = rRadioHeight = 0;
-
-    ImplControlValue aVal;
-    tools::Rectangle aNativeBounds;
-    tools::Rectangle aNativeContent;
-    Point tmp( 0, 0 );
-    tools::Rectangle aCtrlRegion( tmp, Size( 100, 15 ) );
-    if (rRenderContext.IsNativeControlSupported(ControlType::MenuPopup, ControlPart::MenuItemCheckMark))
-    {
-        if (rRenderContext.GetNativeControlRegion(ControlType::MenuPopup, ControlPart::MenuItemCheckMark,
-                                                  aCtrlRegion, ControlState::ENABLED, aVal,
-                                                  aNativeBounds, aNativeContent)
-        )
-        {
-            rCheckHeight = aNativeBounds.GetHeight();
-            rMaxWidth = aNativeContent.GetWidth();
-        }
-    }
-    if (rRenderContext.IsNativeControlSupported(ControlType::MenuPopup, ControlPart::MenuItemRadioMark))
-    {
-        if (rRenderContext.GetNativeControlRegion(ControlType::MenuPopup, ControlPart::MenuItemRadioMark,
-                                          aCtrlRegion, ControlState::ENABLED, aVal,
-                                          aNativeBounds, aNativeContent)
-        )
-        {
-            rRadioHeight = aNativeBounds.GetHeight();
-            rMaxWidth = std::max (rMaxWidth, aNativeContent.GetWidth());
-        }
-    }
-    return std::max(rCheckHeight, rRadioHeight);
-}
-
-#define gfxExtra 7
-
-Size ToolbarMenu::implCalcSize()
-{
-    const long nFontHeight = GetTextHeight();
-    long nExtra = nFontHeight/4;
-
-    Size aSz;
-    Size aMaxImgSz;
-    long nMaxTextWidth = 0;
-    long nMinMenuItemHeight = nFontHeight+2;
-
-    const StyleSettings& rSettings = GetSettings().GetStyleSettings();
-    const bool bUseImages = rSettings.GetUseImagesInMenus();
-
-    // get maximum image size
-    if( bUseImages )
-    {
-        for( const auto& pEntry : mpImpl->maEntryVector )
-        {
-            if( pEntry && pEntry->mbHasImage )
-            {
-                Size aImgSz( pEntry->maImage.GetSizePixel() );
-                nMinMenuItemHeight = std::max( nMinMenuItemHeight, aImgSz.Height() + 6 );
-                aMaxImgSz.setWidth( std::max( aMaxImgSz.Width(), aImgSz.Width() ) );
-            }
-        }
-    }
-
-    mpImpl->mnCheckPos = nExtra;
-    mpImpl->mnImagePos = nExtra;
-    mpImpl->mnTextPos = mpImpl->mnImagePos + aMaxImgSz.Width();
-
-    if ( aMaxImgSz.Width() )
-        mpImpl->mnTextPos += std::max( nExtra, 7L );
-
-    // set heights, calc maximum width
-    for( const auto& pEntry : mpImpl->maEntryVector )
-    {
-        if( pEntry )
-        {
-            // Text:
-            if( pEntry->mbHasText || pEntry->mbHasImage )
-            {
-                pEntry->maSize.setHeight( nMinMenuItemHeight );
-
-                if( pEntry->mbHasText )
-                {
-                    long nTextWidth = GetCtrlTextWidth( pEntry->maText ) + mpImpl->mnTextPos + nExtra;
-                    nMaxTextWidth = std::max( nTextWidth, nMaxTextWidth );
-                }
-            }
-            // Control:
-            else if( pEntry->mpControl )
-            {
-                Size aControlSize( pEntry->mpControl->GetOutputSizePixel() );
-
-                nMaxTextWidth = std::max( aControlSize.Width(), nMaxTextWidth );
-                pEntry->maSize.setHeight( aControlSize.Height() + 1 );
-            }
-
-            if( pEntry->HasCheck() && !pEntry->mbHasImage )
-            {
-                if (IsNativeControlSupported(ControlType::MenuPopup, (pEntry->mnBits & MenuItemBits::RADIOCHECK)
-                                                     ? ControlPart::MenuItemCheckMark
-                                                     : ControlPart::MenuItemRadioMark ) )
-                {
-                    long nCheckHeight = 0, nRadioHeight = 0, nMaxCheckWidth = 0;
-                    ImplGetNativeCheckAndRadioSize(*this, nCheckHeight, nRadioHeight, nMaxCheckWidth);
-
-                    long nCtrlHeight = (pEntry->mnBits & MenuItemBits::RADIOCHECK) ? nCheckHeight : nRadioHeight;
-                    nMaxTextWidth += nCtrlHeight + gfxExtra;
-                }
-                else if( pEntry->mbChecked )
-                {
-                    long nSymbolWidth = (nFontHeight*25)/40;
-                    if ( pEntry->mnBits & MenuItemBits::RADIOCHECK )
-                        nSymbolWidth = nFontHeight/2;
-
-                    nMaxTextWidth += nSymbolWidth;
-                }
-            }
-        }
-    }
-
-    aSz.setWidth( nMaxTextWidth + (BORDER_X<<1) );
-
-    // positionate controls
-    int nY = BORDER_Y;
-    for( const auto& pEntry : mpImpl->maEntryVector )
-    {
-        if (pEntry)
-        {
-            pEntry->maSize.setWidth( nMaxTextWidth );
-
-            if( pEntry->mpControl )
-            {
-                Size aControlSize( pEntry->mpControl->GetOutputSizePixel() );
-                Point aControlPos( (aSz.Width() - aControlSize.Width())>>1, nY);
-
-                pEntry->mpControl->SetPosPixel( aControlPos );
-
-                pEntry->maRect = tools::Rectangle( aControlPos, aControlSize );
-            }
-            else
-            {
-                pEntry->maRect = tools::Rectangle( Point( 0, nY ), pEntry->maSize );
-            }
-
-            nY += pEntry->maSize.Height();
-        }
-        else
-        {
-            nY += SEPARATOR_HEIGHT;
-        }
-    }
-
-    aSz.AdjustHeight(nY + BORDER_Y );
-
-    return aSz;
-}
-
-
-void ToolbarMenu::GetFocus()
-{
-    if( mpImpl && mpImpl->mnHighlightedEntry == -1 )
-        implChangeHighlightEntry( 0 );
-
-    ToolbarPopup::GetFocus();
-}
-
-
-void ToolbarMenu::LoseFocus()
-{
-    if( mpImpl && mpImpl->mnHighlightedEntry != -1 )
-        implChangeHighlightEntry( -1 );
-
-    ToolbarPopup::LoseFocus();
-}
-
-
-void ToolbarMenu::appendEntry( int nEntryId, const OUString& rStr, MenuItemBits nItemBits )
-{
-    appendEntry( std::make_unique<ToolbarMenuEntry>( *this, nEntryId, rStr, nItemBits ) );
-}
-
-
-void ToolbarMenu::appendEntry( int nEntryId, const OUString& rStr, const Image& rImage )
-{
-    appendEntry( std::make_unique<ToolbarMenuEntry>( *this, nEntryId, rImage, rStr, MenuItemBits::NONE ) );
-}
-
-
-void ToolbarMenu::appendEntry( int nEntryId, Control* pControl )
-{
-    appendEntry( std::make_unique<ToolbarMenuEntry>( *this, nEntryId, pControl, MenuItemBits::NONE ) );
-}
-
-
-void ToolbarMenu::appendEntry( std::unique_ptr<ToolbarMenuEntry> pEntry )
-{
-    mpImpl->maEntryVector.push_back(std::move(pEntry));
-    mpImpl->maSize = implCalcSize();
-    if (IsVisible())
-        Invalidate();
-}
-
-
-void ToolbarMenu::appendSeparator()
-{
-    appendEntry( nullptr );
-}
-
-
-/** creates an empty ValueSet that is initialized and can be inserted with appendEntry. */
-VclPtr<ValueSet> ToolbarMenu::createEmptyValueSetControl()
-{
-    VclPtr<ValueSet> pSet = VclPtr<ValueSet>::Create( this, WB_TABSTOP | WB_MENUSTYLEVALUESET | WB_FLATVALUESET | WB_NOBORDER | WB_NO_DIRECTSELECT );
-    pSet->EnableFullItemMode( false );
-    pSet->SetColor( GetControlBackground() );
-    pSet->SetHighlightHdl( LINK( this, ToolbarMenu, HighlightHdl ) );
-    return pSet;
-}
-
-
-ToolbarMenuEntry* ToolbarMenu::implGetEntry( int nEntry ) const
-{
-    return mpImpl->implGetEntry( nEntry );
-}
-
-
-ToolbarMenuEntry* ToolbarMenu::implSearchEntry( int nEntryId ) const
-{
-    for( const auto& p : mpImpl->maEntryVector )
-    {
-        if( p && p->mnEntryId == nEntryId )
-        {
-            return p.get();
-        }
-    }
-
-    return nullptr;
-}
-
-
-void ToolbarMenu::implHighlightEntry(vcl::RenderContext& rRenderContext, int nHighlightEntry)
-{
-    Size aSz(GetOutputSizePixel());
-    long nX = 0;
-    long nY = 0;
-
-    const int nEntryCount = mpImpl->maEntryVector.size();
-
-    for (int nEntry = 0; nEntry < nEntryCount; nEntry++)
-    {
-        ToolbarMenuEntry* const pEntry = mpImpl->maEntryVector[nEntry].get();
-        if (pEntry && (nEntry == nHighlightEntry))
-        {
-            // no highlights for controls only items
-            if (pEntry->mpControl)
-            {
-                break;
-            }
-
-            bool bRestoreLineColor = false;
-            Color oldLineColor;
-            bool bDrawItemRect = true;
-
-            tools::Rectangle aItemRect(Point(nX, nY), Size(aSz.Width(), pEntry->maSize.Height()));
-            if (pEntry->mnBits & MenuItemBits::POPUPSELECT)
-            {
-                long nFontHeight = GetTextHeight();
-                aItemRect.AdjustRight( -(nFontHeight + nFontHeight / 4) );
-            }
-
-            if (rRenderContext.IsNativeControlSupported(ControlType::MenuPopup, ControlPart::Entire))
-            {
-                Size aPxSize(GetOutputSizePixel());
-                rRenderContext.Push(PushFlags::CLIPREGION);
-                rRenderContext.IntersectClipRegion(tools::Rectangle(Point(nX, nY), Size(aSz.Width(), pEntry->maSize.Height())));
-                tools::Rectangle aCtrlRect(Point(nX, 0), Size(aPxSize.Width() - nX, aPxSize.Height()));
-                rRenderContext.DrawNativeControl(ControlType::MenuPopup, ControlPart::Entire, aCtrlRect,
-                                                 ControlState::ENABLED, ImplControlValue(), OUString());
-                if (rRenderContext.IsNativeControlSupported(ControlType::MenuPopup, ControlPart::MenuItem))
-                {
-                    bDrawItemRect = false;
-                    ControlState eState = ControlState::SELECTED | (pEntry->mbEnabled ? ControlState::ENABLED : ControlState::NONE);
-                    if (!rRenderContext.DrawNativeControl(ControlType::MenuPopup, ControlPart::MenuItem, aItemRect,
-                                                          eState, ImplControlValue(), OUString()))
-                    {
-                        bDrawItemRect = true;
-                    }
-                }
-                else
-                {
-                    bDrawItemRect = true;
-                }
-                rRenderContext.Pop();
-            }
-            if (bDrawItemRect)
-            {
-                if (pEntry->mbEnabled)
-                {
-                    rRenderContext.SetFillColor(rRenderContext.GetSettings().GetStyleSettings().GetMenuHighlightColor());
-                }
-                else
-                {
-                    rRenderContext.SetFillColor();
-                    oldLineColor = rRenderContext.GetLineColor();
-                    rRenderContext.SetLineColor(rRenderContext.GetSettings().GetStyleSettings().GetMenuHighlightColor());
-                    bRestoreLineColor = true;
-                }
-                rRenderContext.DrawRect(aItemRect);
-            }
-            implPaint(rRenderContext, pEntry, true/*bHighlight*/);
-            if (bRestoreLineColor)
-                rRenderContext.SetLineColor(oldLineColor);
-            break;
-        }
-
-        nY += pEntry ? pEntry->maSize.Height() : SEPARATOR_HEIGHT;
-    }
-}
-
-
-void ToolbarMenu::implSelectEntry( int nSelectedEntry )
-{
-    mpImpl->mnSelectedEntry = nSelectedEntry;
-
-    ToolbarMenuEntry* pEntry = nullptr;
-    if( nSelectedEntry != -1 )
-        pEntry = mpImpl->maEntryVector[ nSelectedEntry ].get();
-
-    if( pEntry )
-        mpImpl->maSelectHdl.Call( this );
-}
-
-
-void ToolbarMenu::MouseButtonDown( const MouseEvent& rMEvt )
-{
-    implHighlightAtPosition(rMEvt);
-    implSelectEntry(mpImpl->mnHighlightedEntry);
-}
-
-
-void ToolbarMenu::MouseButtonUp( const MouseEvent& )
-{
-}
-
-
-void ToolbarMenu::MouseMove( const MouseEvent& rMEvt )
-{
-    if (!IsVisible())
-        return;
-
-    implHighlightAtPosition(rMEvt);
-}
-
-
-void ToolbarMenu::implHighlightAtPosition(const MouseEvent& rMEvt)
-{
-    long nMouseY = rMEvt.GetPosPixel().Y();
-    Size aOutSz = GetOutputSizePixel();
-    if ( ( nMouseY >= 0 ) && ( nMouseY < aOutSz.Height() ) )
-    {
-        long nY = 0;
-        bool bHighlighted = false;
-
-        const int nEntryCount = mpImpl->maEntryVector.size();
-        for( int nEntry = 0; nEntry < nEntryCount; nEntry++ )
-        {
-            ToolbarMenuEntry* pEntry = mpImpl->maEntryVector[nEntry].get();
-            if( pEntry )
-            {
-                long nOldY = nY;
-                nY += pEntry->maSize.Height();
-
-                if( pEntry->mnEntryId != TITLE_ID )
-                {
-                    if ( ( nOldY <= nMouseY ) && ( nY > nMouseY ) )
-                    {
-                        if( nEntry != mpImpl->mnHighlightedEntry )
-                        {
-                            implChangeHighlightEntry( nEntry );
-                        }
-                        bHighlighted = true;
-                    }
-                }
-            }
-            else
-            {
-                nY += SEPARATOR_HEIGHT;
-            }
-        }
-        if ( !bHighlighted )
-            implChangeHighlightEntry( -1 );
-    }
-    else
-    {
-        implChangeHighlightEntry( -1 );
-    }
-}
-
-
-void ToolbarMenu::implChangeHighlightEntry(int nEntry)
-{
-    mpImpl->mnHighlightedEntry = nEntry;
-    Invalidate();
-
-    mpImpl->notifyHighlightedEntry();
-}
-
-
-static bool implCheckSubControlCursorMove( Control* pControl, bool bUp, int& nLastColumn )
-{
-    ValueSet* pValueSet = dynamic_cast< ValueSet* >( pControl );
-    if( pValueSet )
-    {
-        size_t nItemPos = pValueSet->GetItemPos( pValueSet->GetSelectedItemId() );
-        if( nItemPos != VALUESET_ITEM_NOTFOUND )
-        {
-            const sal_uInt16 nColCount = pValueSet->GetColCount();
-            const size_t nLine = nItemPos / nColCount;
-
-            nLastColumn = nItemPos - (nLine * nColCount);
-
-            if( bUp )
-            {
-                return nLine > 0;
-            }
-            else
-            {
-                const size_t nLineCount = (pValueSet->GetItemCount() + nColCount - 1) / nColCount;
-                return (nLine+1) < nLineCount;
-            }
-        }
-    }
-
-    return false;
-}
-
-
-ToolbarMenuEntry* ToolbarMenu::implCursorUpDown( bool bUp, bool bHomeEnd )
-{
-    int n = 0, nLoop = 0;
-    if( !bHomeEnd )
-    {
-        n = mpImpl->mnHighlightedEntry;
-        if( n == -1 )
-        {
-            if( bUp )
-                n = 0;
-            else
-                n = mpImpl->maEntryVector.size()-1;
-        }
-        else
-        {
-            // if we have a currently selected entry and
-            // cursor keys are used then check if this entry
-            // has a control that can use those cursor keys
-            ToolbarMenuEntry* pData = mpImpl->maEntryVector[n].get();
-            if( pData && pData->mpControl && !pData->mbHasText )
-            {
-                if( implCheckSubControlCursorMove( pData->mpControl, bUp, mpImpl->mnLastColumn ) )
-                    return pData;
-            }
-        }
-        nLoop = n;
-    }
-    else
-    {
-        // absolute positioning
-        if( bUp )
-        {
-            n = mpImpl->maEntryVector.size();
-            nLoop = n-1;
-        }
-        else
-        {
-            n = -1;
-            nLoop = mpImpl->maEntryVector.size()-1;
-        }
-    }
-
-    do
-    {
-        if( bUp )
-        {
-            if ( n )
-                n--;
-            else
-                if( mpImpl->mnHighlightedEntry == -1 )
-                    n = mpImpl->maEntryVector.size()-1;
-                else
-                    break;
-        }
-        else
-        {
-            if( n < (static_cast<int>(mpImpl->maEntryVector.size())-1) )
-                n++;
-            else
-                if( mpImpl->mnHighlightedEntry == -1 )
-                    n = 0;
-                else
-                    break;
-        }
-
-        ToolbarMenuEntry* pData = mpImpl->maEntryVector[n].get();
-        if( pData && (pData->mnEntryId != TITLE_ID) )
-        {
-            implChangeHighlightEntry( n );
-            return pData;
-        }
-    } while ( n != nLoop );
-
-    return nullptr;
-}
-
-
-void ToolbarMenu_Impl::implHighlightControl( sal_uInt16 nCode, Control* pControl )
-{
-    ValueSet* pValueSet = dynamic_cast< ValueSet* >( pControl );
-    if( !pValueSet )
-        return;
-
-    const size_t nItemCount = pValueSet->GetItemCount();
-    size_t nItemPos = VALUESET_ITEM_NOTFOUND;
-    switch( nCode )
-    {
-    case KEY_UP:
-    {
-        const sal_uInt16 nColCount = pValueSet->GetColCount();
-        const sal_uInt16 nLastLine = nItemCount / nColCount;
-        nItemPos = std::min( static_cast<size_t>(((nLastLine-1) * nColCount) + mnLastColumn), nItemCount-1 );
-        break;
-    }
-    case KEY_DOWN:
-        nItemPos = std::min( static_cast<size_t>(mnLastColumn), nItemCount-1 );
-        break;
-    case KEY_END:
-        nItemPos = nItemCount -1;
-        break;
-    case KEY_HOME:
-        nItemPos = 0;
-        break;
-    }
-    pValueSet->SelectItem( pValueSet->GetItemId( nItemPos ) );
-    notifyHighlightedEntry();
-}
-
-
-void ToolbarMenu::KeyInput( const KeyEvent& rKEvent )
-{
-    Control* pForwardControl = nullptr;
-    sal_uInt16 nCode = rKEvent.GetKeyCode().GetCode();
-    switch ( nCode )
-    {
-        case KEY_UP:
-        case KEY_DOWN:
-        {
-            int nOldEntry = mpImpl->mnHighlightedEntry;
-            ToolbarMenuEntry*p = implCursorUpDown( nCode == KEY_UP, false );
-            if( p && p->mpControl )
-            {
-                if( nOldEntry != mpImpl->mnHighlightedEntry )
-                {
-                    mpImpl->implHighlightControl( nCode, p->mpControl );
-                }
-                else
-                {
-                    // in case we are in a system floating window, GrabFocus does not work :-/
-                    pForwardControl = p->mpControl;
-                }
-            }
-        }
-        break;
-        case KEY_END:
-        case KEY_HOME:
-        {
-            ToolbarMenuEntry* p = implCursorUpDown( nCode == KEY_END, true );
-            if( p && p->mpControl )
-            {
-                mpImpl->implHighlightControl( nCode, p->mpControl );
-            }
-        }
-        break;
-        case KEY_F6:
-        case KEY_ESCAPE:
-        {
-            // Ctrl-F6 acts like ESC here, the menu bar however will then put the focus in the document
-            if( nCode == KEY_F6 && !rKEvent.GetKeyCode().IsMod1() )
-                break;
-
-            implSelectEntry( -1 );
-        }
-        break;
-
-        case KEY_RETURN:
-        {
-            ToolbarMenuEntry* pEntry = implGetEntry( mpImpl->mnHighlightedEntry );
-            if ( pEntry && pEntry->mbEnabled && (pEntry->mnEntryId != TITLE_ID) )
-            {
-                if( pEntry->mpControl )
-                {
-                    pForwardControl = pEntry->mpControl;
-                }
-                else
-                {
-                    implSelectEntry( mpImpl->mnHighlightedEntry );
-                }
-            }
-        }
-        break;
-        default:
-        {
-            ToolbarMenuEntry* pEntry = implGetEntry( mpImpl->mnHighlightedEntry );
-            if ( pEntry && pEntry->mbEnabled && pEntry->mpControl && !pEntry->mbHasText )
-            {
-                pForwardControl = pEntry->mpControl;
-            }
-        }
-
-    }
-    if( pForwardControl )
-        pForwardControl->KeyInput( rKEvent );
-
-}
-
-
-static void ImplPaintCheckBackground(vcl::RenderContext& rRenderContext, vcl::Window const & rWindow, const tools::Rectangle& i_rRect, bool i_bHighlight )
-{
-    bool bNativeOk = false;
-    if (rRenderContext.IsNativeControlSupported(ControlType::Toolbar, ControlPart::Button))
-    {
-        ImplControlValue aControlValue;
-        aControlValue.setTristateVal(ButtonValue::On);
-
-        bNativeOk = rRenderContext.DrawNativeControl(ControlType::Toolbar, ControlPart::Button,
-                                                     i_rRect,
-                                                     ControlState::PRESSED | ControlState::ENABLED,
-                                                     aControlValue, OUString());
-    }
-
-    if (!bNativeOk)
-    {
-        const StyleSettings& rSettings = rRenderContext.GetSettings().GetStyleSettings();
-        Color aColor(i_bHighlight ? rSettings.GetMenuHighlightTextColor() : rSettings.GetHighlightColor());
-        vcl::RenderTools::DrawSelectionBackground(rRenderContext, rWindow, i_rRect, 0, i_bHighlight, true, false, nullptr, 2, &aColor);
-    }
-}
-
-void ToolbarMenu::implPaint(vcl::RenderContext& rRenderContext, ToolbarMenuEntry const * pThisOnly, bool bHighlighted)
-{
-    long nFontHeight = GetTextHeight();
-
-    long nCheckHeight = 0, nRadioHeight = 0, nMaxCheckWidth = 0;
-    ImplGetNativeCheckAndRadioSize(rRenderContext, nCheckHeight, nRadioHeight, nMaxCheckWidth);
-
-    DecorationView aDecoView(&rRenderContext);
-    const StyleSettings& rSettings = rRenderContext.GetSettings().GetStyleSettings();
-    const bool bUseImages = rSettings.GetUseImagesInMenus();
-
-    int nOuterSpace = 0; // ImplGetSVData()->maNWFData.mnMenuFormatExtraBorder;
-    Point aTopLeft(nOuterSpace, nOuterSpace), aTmpPos;
-
-    Size aOutSz(GetOutputSizePixel());
-    for (const auto& pEntry : mpImpl->maEntryVector)
-    {
-        Point aPos(aTopLeft);
-
-        if ((pEntry == nullptr) && !pThisOnly)
-        {
-            // Separator
-            aTmpPos.setY( aPos.Y() + ((SEPARATOR_HEIGHT - 2) / 2) );
-            aTmpPos.setX( aPos.X() + 2 + nOuterSpace );
-            rRenderContext.SetLineColor(rSettings.GetShadowColor());
-            rRenderContext.DrawLine(aTmpPos, Point(aOutSz.Width() - 3 - 2 * nOuterSpace, aTmpPos.Y()));
-            aTmpPos.AdjustY( 1 );
-            rRenderContext.SetLineColor(rSettings.GetLightColor());
-            rRenderContext.DrawLine(aTmpPos, Point( aOutSz.Width() - 3 - 2 * nOuterSpace, aTmpPos.Y()));
-            rRenderContext.SetLineColor();
-        }
-        else if (!pThisOnly || (pEntry.get() == pThisOnly))
-        {
-            const bool bTitle = pEntry->mnEntryId == TITLE_ID;
-
-            if (pThisOnly && bHighlighted)
-                rRenderContext.SetTextColor(rSettings.GetMenuHighlightTextColor());
-
-            if( aPos.Y() >= 0 )
-            {
-                long nTextOffsetY = (pEntry->maSize.Height() - nFontHeight) / 2;
-
-                DrawTextFlags   nTextStyle   = DrawTextFlags::NONE;
-                DrawSymbolFlags nSymbolStyle = DrawSymbolFlags::NONE;
-                DrawImageFlags  nImageStyle  = DrawImageFlags::NONE;
-
-                if (!pEntry->mbEnabled)
-                {
-                    nTextStyle   |= DrawTextFlags::Disable;
-                    nSymbolStyle |= DrawSymbolFlags::Disable;
-                    nImageStyle  |= DrawImageFlags::Disable;
-                }
-
-                tools::Rectangle aOuterCheckRect(Point(aPos.X() + mpImpl->mnCheckPos, aPos.Y()),
-                                          Size(pEntry->maSize.Height(), pEntry->maSize.Height()));
-                aOuterCheckRect.AdjustLeft(1 );
-                aOuterCheckRect.AdjustRight( -1 );
-                aOuterCheckRect.AdjustTop(1 );
-                aOuterCheckRect.AdjustBottom( -1 );
-
-                if (bTitle)
-                {
-                    // fill the background
-                    tools::Rectangle aRect(aTopLeft, Size(aOutSz.Width(), pEntry->maSize.Height()));
-                    rRenderContext.SetFillColor(rSettings.GetDialogColor());
-                    rRenderContext.SetLineColor();
-                    rRenderContext.DrawRect(aRect);
-                    rRenderContext.SetLineColor(rSettings.GetLightColor());
-                    rRenderContext.DrawLine(aRect.TopLeft(), aRect.TopRight());
-                    rRenderContext.SetLineColor(rSettings.GetShadowColor());
-                    rRenderContext.DrawLine(aRect.BottomLeft(), aRect.BottomRight());
-                }
-
-                // CheckMark
-                if (pEntry->HasCheck())
-                {
-                    // draw selection transparent marker if checked
-                    // onto that either a checkmark or the item image
-                    // will be painted
-                    // however do not do this if native checks will be painted since
-                    // the selection color too often does not fit the theme's check and/or radio
-
-                    if (!pEntry->mbHasImage)
-                    {
-                        if (rRenderContext.IsNativeControlSupported(ControlType::MenuPopup,
-                                                             (pEntry->mnBits & MenuItemBits::RADIOCHECK)
-                                                             ? ControlPart::MenuItemCheckMark
-                                                             : ControlPart::MenuItemRadioMark))
-                        {
-                            ControlPart nPart = ((pEntry->mnBits & MenuItemBits::RADIOCHECK)
-                                                 ? ControlPart::MenuItemRadioMark
-                                                 : ControlPart::MenuItemCheckMark);
-
-                            ControlState nState = ControlState::NONE;
-
-                            if (pEntry->mbChecked)
-                                nState |= ControlState::PRESSED;
-
-                            if (pEntry->mbEnabled)
-                                nState |= ControlState::ENABLED;
-
-                            if ( bHighlighted )
-                                nState |= ControlState::SELECTED;
-
-                            long nCtrlHeight = (pEntry->mnBits & MenuItemBits::RADIOCHECK) ? nCheckHeight : nRadioHeight;
-                            aTmpPos.setX( aOuterCheckRect.Left() + (aOuterCheckRect.GetWidth() - nCtrlHeight) / 2 );
-                            aTmpPos.setY( aOuterCheckRect.Top() + (aOuterCheckRect.GetHeight() - nCtrlHeight) / 2 );
-
-                            tools::Rectangle aCheckRect(aTmpPos, Size(nCtrlHeight, nCtrlHeight));
-                            rRenderContext.DrawNativeControl(ControlType::MenuPopup, nPart, aCheckRect,
-                                                             nState, ImplControlValue(), OUString());
-                            aPos.setX(aPos.getX() + nCtrlHeight + gfxExtra);
-                        }
-                        else if (pEntry->mbChecked) // by default do nothing for unchecked items
-                        {
-                            ImplPaintCheckBackground(rRenderContext, *this, aOuterCheckRect, pThisOnly && bHighlighted);
-
-                            SymbolType eSymbol;
-                            Size aSymbolSize;
-                            if (pEntry->mnBits & MenuItemBits::RADIOCHECK)
-                            {
-                                eSymbol = SymbolType::RADIOCHECKMARK;
-                                aSymbolSize = Size(nFontHeight / 2, nFontHeight / 2);
-                            }
-                            else
-                            {
-                                eSymbol = SymbolType::CHECKMARK;
-                                aSymbolSize = Size((nFontHeight * 25) / 40, nFontHeight / 2);
-                            }
-                            aTmpPos.setX( aOuterCheckRect.Left() + (aOuterCheckRect.GetWidth() - aSymbolSize.Width())/2 );
-                            aTmpPos.setY( aOuterCheckRect.Top() + (aOuterCheckRect.GetHeight() - aSymbolSize.Height())/2 );
-                            tools::Rectangle aRect( aTmpPos, aSymbolSize );
-                            aDecoView.DrawSymbol(aRect, eSymbol, GetTextColor(), nSymbolStyle);
-                            aPos.setX(aPos.getX() + aSymbolSize.getWidth( ) + gfxExtra);
-                        }
-                    }
-                }
-
-                // Image:
-                if (pEntry->mbHasImage && bUseImages)
-                {
-                    if (pEntry->mbChecked)
-                        ImplPaintCheckBackground(rRenderContext, *this, aOuterCheckRect, pThisOnly && bHighlighted);
-                    aTmpPos = aOuterCheckRect.TopLeft();
-                    aTmpPos.AdjustX((aOuterCheckRect.GetWidth()-pEntry->maImage.GetSizePixel().Width())/2 );
-                    aTmpPos.AdjustY((aOuterCheckRect.GetHeight()-pEntry->maImage.GetSizePixel().Height())/2 );
-                    rRenderContext.DrawImage( aTmpPos, pEntry->maImage, nImageStyle );
-                }
-
-                // Text:
-                if (pEntry->mbHasText)
-                {
-                    aTmpPos.setX( aPos.X() + (bTitle ? 4 : mpImpl->mnTextPos) );
-                    aTmpPos.setY( aPos.Y() );
-                    aTmpPos.AdjustY(nTextOffsetY );
-                    DrawTextFlags nStyle = nTextStyle|DrawTextFlags::Mnemonic;
-
-                    rRenderContext.DrawCtrlText(aTmpPos, pEntry->maText, 0, pEntry->maText.getLength(), nStyle);
-                }
-
-                if (pThisOnly && bHighlighted)
-                {
-                    // This restores the normal menu or menu bar text
-                    // color for when it is no longer highlighted.
-                    rRenderContext.SetTextColor(rSettings.GetMenuTextColor());
-                 }
-            }
-        }
-
-        aTopLeft.AdjustY(pEntry ? pEntry->maSize.Height() : SEPARATOR_HEIGHT );
-    }
-}
-
-void ToolbarMenu::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&)
-{
-    rRenderContext.SetFillColor(rRenderContext.GetSettings().GetStyleSettings().GetMenuColor());
-
-    implPaint(rRenderContext);
-
-    if (mpImpl->mnHighlightedEntry != -1)
-        implHighlightEntry(rRenderContext, mpImpl->mnHighlightedEntry);
-}
-
-
-void ToolbarMenu::StateChanged( StateChangedType nType )
-{
-    ToolbarPopup::StateChanged( nType );
-
-    if ( ( nType == StateChangedType::ControlForeground ) || ( nType == StateChangedType::ControlBackground ) )
-    {
-        initWindow();
-        Invalidate();
-    }
-}
-
-
-void ToolbarMenu::DataChanged( const DataChangedEvent& rDCEvt )
-{
-    ToolbarPopup::DataChanged( rDCEvt );
-
-    if ( (rDCEvt.GetType() == DataChangedEventType::FONTS) ||
-         (rDCEvt.GetType() == DataChangedEventType::FONTSUBSTITUTION) ||
-         ((rDCEvt.GetType() == DataChangedEventType::SETTINGS) &&
-          (rDCEvt.GetFlags() & AllSettingsFlags::STYLE)) )
-    {
-        initWindow();
-        Invalidate();
-    }
-}
-
-
-void ToolbarMenu::Command( const CommandEvent& rCEvt )
-{
-    if ( rCEvt.GetCommand() == CommandEventId::Wheel )
-    {
-        const CommandWheelData* pData = rCEvt.GetWheelData();
-        if( !pData->GetModifier() && ( pData->GetMode() == CommandWheelMode::SCROLL ) )
-        {
-            implCursorUpDown( pData->GetDelta() > 0, false );
-        }
-    }
-}
-
-
-Reference< css::accessibility::XAccessible > ToolbarMenu::CreateAccessible()
-{
-    mpImpl->setAccessible( new ToolbarMenuAcc( *mpImpl ) );
-    return Reference< XAccessible >( mpImpl->mxAccessible.get() );
-}
-
-
 class ToolbarPopupStatusListener : public svt::FrameStatusListener
 {
 public:
@@ -1504,17 +176,6 @@ void ToolbarPopup::EndPopupMode()
 }
 
 
-const Size& ToolbarMenu::getMenuSize() const
-{
-    return mpImpl->maSize;
-}
-
-
-void ToolbarMenu::SetSelectHdl( const Link<ToolbarMenu*,void>& rLink )
-{
-    mpImpl->maSelectHdl = rLink;
-}
-
 }
 
 WeldToolbarPopup::WeldToolbarPopup(const css::uno::Reference<css::frame::XFrame>& rFrame,
diff --git a/svtools/source/control/toolbarmenuacc.cxx b/svtools/source/control/toolbarmenuacc.cxx
deleted file mode 100644
index b3d97a9ecbb4..000000000000
--- a/svtools/source/control/toolbarmenuacc.cxx
+++ /dev/null
@@ -1,833 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-
-#include <com/sun/star/accessibility/AccessibleEventId.hpp>
-#include <com/sun/star/accessibility/AccessibleRole.hpp>
-#include <com/sun/star/accessibility/AccessibleStateType.hpp>
-#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-
-#include <unotools/accessiblestatesethelper.hxx>
-
-#include <vcl/svapp.hxx>
-#include <vcl/settings.hxx>
-#include <tools/debug.hxx>
-
-#include <svtools/toolbarmenu.hxx>
-#include <svtools/framestatuslistener.hxx>
-
-#include "toolbarmenuimp.hxx"
-
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::accessibility;
-
-namespace svtools {
-
-
-ToolbarMenuAcc::ToolbarMenuAcc( ToolbarMenu_Impl& rParent )
-: ToolbarMenuAccComponentBase(m_aMutex)
-, mpParent( &rParent )
-, mbIsFocused(false)
-{
-    mpParent->mrMenu.AddEventListener( LINK( this, ToolbarMenuAcc, WindowEventListener ) );
-}
-
-
-ToolbarMenuAcc::~ToolbarMenuAcc()
-{
-    if( mpParent )
-        mpParent->mrMenu.RemoveEventListener( LINK( this, ToolbarMenuAcc, WindowEventListener ) );
-}
-
-
-IMPL_LINK( ToolbarMenuAcc, WindowEventListener, VclWindowEvent&, rEvent, void )
-{
-    /* Ignore VclEventId::WindowEndPopupMode, because the UNO accessibility wrapper
-     * might have been destroyed by the previous VCLEventListener (if no AT tool
-     * is running), e.g. sub-toolbars in impress.
-     */
-    if ( !mpParent || (rEvent.GetId() == VclEventId::WindowEndPopupMode) )
-        return;
-    DBG_ASSERT( rEvent.GetWindow(), "Window???" );
-    if( rEvent.GetWindow()->IsAccessibilityEventsSuppressed() && ( rEvent.GetId() != VclEventId::ObjectDying ) )
-        return;
-
-    switch ( rEvent.GetId() )
-    {
-        case VclEventId::ObjectDying:
-        {
-            mpParent->mrMenu.RemoveEventListener( LINK( this, ToolbarMenuAcc, WindowEventListener ) );
-            mpParent = nullptr;
-        }
-        break;
-
-        case VclEventId::WindowGetFocus:
-        {
-            if( !mbIsFocused )
-            {
-                mpParent->notifyHighlightedEntry();
-                mbIsFocused = true;
-            }
-        }
-        break;
-        case VclEventId::WindowLoseFocus:
-        {
-            if( mbIsFocused )
-            {
-                mbIsFocused = false;
-            }
-        }
-        break;
-        default:
-        {
-        }
-        break;
-    }
-}
-
-
-void ToolbarMenuAcc::FireAccessibleEvent( short nEventId, const Any& rOldValue, const Any& rNewValue )
-{
-    if( !nEventId )
-        return;
-
-    EventListenerVector                  aTmpListeners( mxEventListeners );
-    AccessibleEventObject aEvtObject;
-
-    aEvtObject.EventId = nEventId;
-    aEvtObject.Source = static_cast<XWeak*>(this);
-    aEvtObject.NewValue = rNewValue;
-    aEvtObject.OldValue = rOldValue;
-
-    for (auto const& tmpListener : aTmpListeners)
-    {
-        try
-        {
-            tmpListener->notifyEvent( aEvtObject );
-        }
-        catch( Exception& )
-        {
-        }
-    }
-}
-
-
-Reference< XAccessibleContext > SAL_CALL ToolbarMenuAcc::getAccessibleContext()
-{
-    ThrowIfDisposed();
-    return this;
-}
-
-
-sal_Int32 SAL_CALL ToolbarMenuAcc::getAccessibleChildCount()
-{
-    const SolarMutexGuard aSolarGuard;
-    ThrowIfDisposed();
-
-    return mpParent->getAccessibleChildCount();
-}
-
-
-Reference< XAccessible > SAL_CALL ToolbarMenuAcc::getAccessibleChild( sal_Int32 i )
-{
-    const SolarMutexGuard aSolarGuard;
-    ThrowIfDisposed();
-
-    return mpParent->getAccessibleChild(i);
-}
-
-
-Reference< XAccessible > SAL_CALL ToolbarMenuAcc::getAccessibleParent()
-{
-    ThrowIfDisposed();
-    const SolarMutexGuard aSolarGuard;
-
-    Reference< XAccessible > xRet;
-
-    vcl::Window* pParent = mpParent->mrMenu.GetParent();
-    if( pParent )
-        xRet = pParent->GetAccessible();
-
-    return xRet;
-}
-
-
-sal_Int32 SAL_CALL ToolbarMenuAcc::getAccessibleIndexInParent()
-{
-    const SolarMutexGuard aSolarGuard;
-    ThrowIfDisposed();
-
-    vcl::Window* pParent = mpParent->mrMenu.GetParent();
-    if( pParent )
-    {
-        for( sal_uInt16 i = 0, nCount = pParent->GetChildCount(); i < nCount ; i++ )
-        {
-            if( pParent->GetChild( i ) == &mpParent->mrMenu )
-                return i;
-        }
-    }
-
-    return 0;
-}
-
-
-sal_Int16 SAL_CALL ToolbarMenuAcc::getAccessibleRole()
-{
-    ThrowIfDisposed();
-    return AccessibleRole::LIST;
-}
-
-
-OUString SAL_CALL ToolbarMenuAcc::getAccessibleDescription()
-{
-    ThrowIfDisposed();
-    return "ToolbarMenu";
-}
-
-
-OUString SAL_CALL ToolbarMenuAcc::getAccessibleName()
-{
-    ThrowIfDisposed();
-    const SolarMutexGuard aSolarGuard;
-    OUString aRet;
-
-    if( mpParent )
-        aRet = mpParent->mrMenu.GetAccessibleName();
-
-    if( aRet.isEmpty() )
-    {
-        vcl::Window* pLabel = mpParent->mrMenu.GetAccessibleRelationLabeledBy();
-        if( pLabel && pLabel != &mpParent->mrMenu )
-            aRet = OutputDevice::GetNonMnemonicString( pLabel->GetText() );
-    }
-
-    return aRet;
-}
-
-
-Reference< XAccessibleRelationSet > SAL_CALL ToolbarMenuAcc::getAccessibleRelationSet()
-{
-    ThrowIfDisposed();
-    return Reference< XAccessibleRelationSet >();
-}
-
-
-Reference< XAccessibleStateSet > SAL_CALL ToolbarMenuAcc::getAccessibleStateSet()
-{
-    ThrowIfDisposed();
-    ::utl::AccessibleStateSetHelper* pStateSet = new ::utl::AccessibleStateSetHelper();
-
-    // Set some states.
-    pStateSet->AddState (AccessibleStateType::ENABLED);
-    pStateSet->AddState (AccessibleStateType::SENSITIVE);
-    pStateSet->AddState (AccessibleStateType::SHOWING);
-    pStateSet->AddState (AccessibleStateType::VISIBLE);
-    pStateSet->AddState (AccessibleStateType::MANAGES_DESCENDANTS);
-    pStateSet->AddState (AccessibleStateType::FOCUSABLE);
-    if (mbIsFocused)
-        pStateSet->AddState (AccessibleStateType::FOCUSED);
-
-    return pStateSet;
-}
-
-
-Locale SAL_CALL ToolbarMenuAcc::getLocale()
-{
-    ThrowIfDisposed();
-    const SolarMutexGuard aSolarGuard;
-    Reference< XAccessible > xParent( getAccessibleParent() );
-    Locale aRet( "", "", "" );
-
-    if( xParent.is() )
-    {
-        Reference< XAccessibleContext > xParentContext( xParent->getAccessibleContext() );
-
-        if( xParentContext.is() )
-            aRet = xParentContext->getLocale ();
-    }
-
-    return aRet;
-}
-
-
-void SAL_CALL ToolbarMenuAcc::addAccessibleEventListener( const Reference< XAccessibleEventListener >& rxListener )
-{
-    ThrowIfDisposed();
-    ::osl::MutexGuard aGuard(m_aMutex);
-
-    if( !rxListener.is() )
-           return;
-
-    for (auto const& eventListener : mxEventListeners)
-    {
-        if( eventListener == rxListener )
-            return;
-    }
-
-    mxEventListeners.push_back( rxListener );
-}
-
-
-void SAL_CALL ToolbarMenuAcc::removeAccessibleEventListener( const Reference< XAccessibleEventListener >& rxListener )
-{
-    ThrowIfDisposed();
-    ::osl::MutexGuard aGuard(m_aMutex);
-
-    if( rxListener.is() )
-    {
-        EventListenerVector::iterator aIter = std::find(mxEventListeners.begin(), mxEventListeners.end(), rxListener);
-        if (aIter != mxEventListeners.end())
-            mxEventListeners.erase(aIter);
-    }
-}
-
-
-sal_Bool SAL_CALL ToolbarMenuAcc::containsPoint( const awt::Point& aPoint )
-{
-    ThrowIfDisposed();
-    const awt::Rectangle aRect( getBounds() );
-    const Point aSize( aRect.Width, aRect.Height );
-    const Point aNullPoint, aTestPoint( aPoint.X, aPoint.Y );
-
-    return tools::Rectangle( aNullPoint, aSize ).IsInside( aTestPoint );
-}
-
-
-Reference< XAccessible > SAL_CALL ToolbarMenuAcc::getAccessibleAtPoint( const awt::Point& aPoint )
-{
-    const SolarMutexGuard aSolarGuard;
-    ThrowIfDisposed();
-
-    Reference< XAccessible > xRet;
-
-    const Point aVclPoint( aPoint.X, aPoint.Y );
-
-    const int nEntryCount = mpParent->maEntryVector.size();
-    for( int nEntry = 0; (nEntry < nEntryCount) && !xRet.is(); nEntry++ )
-    {
-        ToolbarMenuEntry* pEntry = mpParent->maEntryVector[nEntry].get();
-        if( pEntry && pEntry->maRect.IsInside( aVclPoint ) )
-        {
-            if( pEntry->mpControl )
-            {
-                awt::Point aChildPoint( aPoint.X - pEntry->maRect.Left(), aPoint.Y - pEntry->maRect.Top() );
-                Reference< XAccessibleComponent > xComp( pEntry->GetAccessible(), UNO_QUERY_THROW );
-                xRet = xComp->getAccessibleAtPoint(aChildPoint);
-            }
-            else
-            {
-                xRet.set( pEntry->GetAccessible(), UNO_QUERY );
-            }
-        }
-    }
-    return xRet;
-}
-
-
-awt::Rectangle SAL_CALL ToolbarMenuAcc::getBounds()
-{
-    ThrowIfDisposed();
-    const SolarMutexGuard aSolarGuard;
-    const Point         aOutPos( mpParent->mrMenu.GetPosPixel() );
-    const Size          aOutSize( mpParent->mrMenu.GetOutputSizePixel() );
-    awt::Rectangle      aRet;
-
-    aRet.X = aOutPos.X();
-    aRet.Y = aOutPos.Y();
-    aRet.Width = aOutSize.Width();
-    aRet.Height = aOutSize.Height();
-
-    return aRet;
-}
-
-
-awt::Point SAL_CALL ToolbarMenuAcc::getLocation()
-{
-    ThrowIfDisposed();
-    const SolarMutexGuard aSolarGuard;
-    const Point aOutPos( mpParent->mrMenu.GetPosPixel() );
-    return awt::Point( aOutPos.X(), aOutPos.Y() );
-}
-
-
-awt::Point SAL_CALL ToolbarMenuAcc::getLocationOnScreen()
-{
-    ThrowIfDisposed();
-    const SolarMutexGuard aSolarGuard;
-    const Point aScreenPos( mpParent->mrMenu.OutputToAbsoluteScreenPixel( Point() ) );
-    return awt::Point( aScreenPos.X(), aScreenPos.Y() );
-}
-
-
-awt::Size SAL_CALL ToolbarMenuAcc::getSize()
-{
-    ThrowIfDisposed();
-    const SolarMutexGuard aSolarGuard;
-    const Size aOutSize( mpParent->mrMenu.GetOutputSizePixel() );
-    return awt::Size( aOutSize.Width(), aOutSize.Height() );
-}
-
-void SAL_CALL ToolbarMenuAcc::grabFocus()
-{
-    ThrowIfDisposed();
-    const SolarMutexGuard aSolarGuard;
-    mpParent->mrMenu.GrabFocus();
-}
-
-sal_Int32 SAL_CALL ToolbarMenuAcc::getForeground()
-{
-    ThrowIfDisposed();
-    Color nColor = Application::GetSettings().GetStyleSettings().GetMenuTextColor();
-    return static_cast<sal_Int32>(nColor);
-}
-
-sal_Int32 SAL_CALL ToolbarMenuAcc::getBackground()
-{
-    ThrowIfDisposed();
-    Color nColor = Application::GetSettings().GetStyleSettings().GetMenuColor();
-    return static_cast<sal_Int32>(nColor);
-}
-
-void SAL_CALL ToolbarMenuAcc::selectAccessibleChild( sal_Int32 nChildIndex )
-{
-    const SolarMutexGuard aSolarGuard;
-    ThrowIfDisposed();
-
-    mpParent->selectAccessibleChild( nChildIndex );
-}
-
-sal_Bool SAL_CALL ToolbarMenuAcc::isAccessibleChildSelected( sal_Int32 nChildIndex )
-{
-    const SolarMutexGuard aSolarGuard;
-    ThrowIfDisposed();
-    return mpParent->isAccessibleChildSelected( nChildIndex );
-}
-
-
-void SAL_CALL ToolbarMenuAcc::clearAccessibleSelection()
-{
-    const SolarMutexGuard aSolarGuard;
-    ThrowIfDisposed();
-    mpParent->clearAccessibleSelection();
-}
-
-
-void SAL_CALL ToolbarMenuAcc::selectAllAccessibleChildren()
-{
-    ThrowIfDisposed();
-    // unsupported due to single selection only
-}
-
-
-sal_Int32 SAL_CALL ToolbarMenuAcc::getSelectedAccessibleChildCount()
-{
-    const SolarMutexGuard aSolarGuard;
-    ThrowIfDisposed();
-
-    return mpParent->mnHighlightedEntry != -1 ? 1 : 0;
-}
-
-
-Reference< XAccessible > SAL_CALL ToolbarMenuAcc::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
-{
-    ThrowIfDisposed();
-    const SolarMutexGuard aSolarGuard;
-
-    if( (mpParent->mnHighlightedEntry != -1) && (nSelectedChildIndex == 0) )
-    {
-        ToolbarMenuEntry* pEntry = mpParent->maEntryVector[ mpParent->mnHighlightedEntry ].get();
-        if( pEntry )
-        {
-            if( pEntry->mpControl )
-            {
-                Reference< XAccessibleSelection > xSel( pEntry->GetAccessible(), UNO_QUERY_THROW );
-                return xSel->getSelectedAccessibleChild(0);
-            }
-            else
-                return Reference< XAccessible >( pEntry->GetAccessible(), UNO_QUERY );
-        }
-    }
-
-    throw IndexOutOfBoundsException();
-}
-
-
-void SAL_CALL ToolbarMenuAcc::deselectAccessibleChild( sal_Int32 nChildIndex )
-{
-    ThrowIfDisposed();
-    const SolarMutexGuard aSolarGuard;
-    // Because of the single selection we can reset the whole selection when
-    // the specified child is currently selected.
-    if (isAccessibleChildSelected(nChildIndex))
-        mpParent->clearAccessibleSelection();
-}
-
-
-void SAL_CALL ToolbarMenuAcc::disposing()
-{
-    EventListenerVector aListenerListCopy;
-
-    {
-        // Make a copy of the list and clear the original.
-        const SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard (m_aMutex);
-        aListenerListCopy = mxEventListeners;
-        mxEventListeners.clear();
-
-        // Reset the pointer to the parent.  It has to be the one who has
-        // disposed us because he is dying.
-        mpParent = nullptr;
-    }
-
-    // Inform all listeners that this objects is disposing.
-    EventObject aEvent (static_cast<XAccessible*>(this));
-    for (auto const& listenerCopy : aListenerListCopy)
-    {
-        try
-        {
-            listenerCopy->disposing (aEvent);
-        }
-        catch( Exception& )
-        {
-            // Ignore exceptions.
-        }
-
-    }
-}
-
-void ToolbarMenuAcc::ThrowIfDisposed()
-{
-    if(rBHelper.bDisposed || rBHelper.bInDispose || !mpParent)
-    {
-        throw DisposedException ("object has been already disposed", static_cast<XWeak*>(this));
-    }
-}
-
-
-ToolbarMenuEntryAcc::ToolbarMenuEntryAcc( ToolbarMenuEntry* pParent )
-: ToolbarMenuEntryAccBase( m_aMutex )
-, mpParent( pParent )
-{
-}
-
-
-ToolbarMenuEntryAcc::~ToolbarMenuEntryAcc()
-{
-}
-
-
-void SAL_CALL ToolbarMenuEntryAcc::disposing()
-{
-    EventListenerVector aListenerListCopy;
-
-    {
-        // Make a copy of the list and clear the original.
-        const SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard (m_aMutex);
-        aListenerListCopy = mxEventListeners;
-        mxEventListeners.clear();
-
-        // Reset the pointer to the parent.  It has to be the one who has
-        // disposed us because he is dying.
-        mpParent = nullptr;
-    }
-
-    // Inform all listeners that this objects is disposing.
-    EventObject aEvent (static_cast<XAccessible*>(this));
-    for (auto const& listenerCopy : aListenerListCopy)
-    {
-        try
-        {
-            listenerCopy->disposing (aEvent);
-        }
-        catch( Exception& )
-        {
-            // Ignore exceptions.
-        }
-    }
-}
-
-
-Reference< XAccessibleContext > SAL_CALL ToolbarMenuEntryAcc::getAccessibleContext()
-{
-    return this;
-}
-
-
-sal_Int32 SAL_CALL ToolbarMenuEntryAcc::getAccessibleChildCount()
-{
-    return 0;
-}
-
-
-Reference< XAccessible > SAL_CALL ToolbarMenuEntryAcc::getAccessibleChild( sal_Int32 )
-{
-    throw IndexOutOfBoundsException();
-}
-
-
-Reference< XAccessible > SAL_CALL ToolbarMenuEntryAcc::getAccessibleParent()
-{
-    const SolarMutexGuard aSolarGuard;
-    Reference< XAccessible > xRet;
-
-    if( mpParent )
-        xRet = mpParent->mrMenu.GetAccessible();
-
-    return xRet;
-}
-
-
-sal_Int32 SAL_CALL ToolbarMenuEntryAcc::getAccessibleIndexInParent()
-{
-    const SolarMutexGuard aSolarGuard;
-    // The index defaults to -1 to indicate the child does not belong to its
-    // parent.
-    sal_Int32 nIndexInParent = -1;
-
-    if( mpParent )
-    {
-        Reference< XAccessibleContext > xParent( mpParent->mrMenu.GetAccessible(), UNO_QUERY );
-
-        if( xParent.is() )
-        {
-            Reference< XAccessible > xThis( this );
-
-            const sal_Int32 nCount = xParent->getAccessibleChildCount();
-            for( sal_Int32 nIndex = 0; nIndex < nCount; nIndex++ )
-            {
-                if( xParent->getAccessibleChild(nIndex) == xThis )
-                {
-                    nIndexInParent = nIndex;
-                    break;
-                }
-            }
-        }
-    }
-
-    return nIndexInParent;
-}
-
-
-sal_Int16 SAL_CALL ToolbarMenuEntryAcc::getAccessibleRole()
-{
-    return AccessibleRole::LIST_ITEM;
-}
-
-
-OUString SAL_CALL ToolbarMenuEntryAcc::getAccessibleDescription()
-{
-    return OUString();
-}
-
-
-OUString SAL_CALL ToolbarMenuEntryAcc::getAccessibleName()
-{
-    const SolarMutexGuard aSolarGuard;
-    OUString              aRet;
-
-    if( mpParent )
-    {
-        aRet = mpParent->maText;
-
-        if( aRet.isEmpty() )
-        {
-            aRet = "Item " +
-                OUString::number( mpParent->mnEntryId );
-        }
-    }
-
-    return aRet;
-}
-
-
-Reference< XAccessibleRelationSet > SAL_CALL ToolbarMenuEntryAcc::getAccessibleRelationSet()
-{
-    return Reference< XAccessibleRelationSet >();
-}
-
-
-Reference< XAccessibleStateSet > SAL_CALL ToolbarMenuEntryAcc::getAccessibleStateSet()
-{
-    const SolarMutexGuard aSolarGuard;
-    ::utl::AccessibleStateSetHelper*    pStateSet = new ::utl::AccessibleStateSetHelper;
-
-    if( mpParent )
-    {
-        pStateSet->AddState (AccessibleStateType::ENABLED);
-        pStateSet->AddState (AccessibleStateType::SENSITIVE);
-        pStateSet->AddState (AccessibleStateType::SHOWING);
-        pStateSet->AddState (AccessibleStateType::VISIBLE);
-        pStateSet->AddState (AccessibleStateType::TRANSIENT);
-        if( mpParent->mnEntryId != TITLE_ID )
-        {
-            pStateSet->AddState( AccessibleStateType::SELECTABLE );
-
-            // SELECTED
-            if( mpParent->mrMenu.getHighlightedEntryId() == mpParent->mnEntryId )
-                pStateSet->AddState( AccessibleStateType::SELECTED );
-        }
-    }
-
-    return pStateSet;
-}
-
-
-Locale SAL_CALL ToolbarMenuEntryAcc::getLocale()
-{
-    Locale aRet( "", "", "" );
-
-    Reference< XAccessible > xParent( getAccessibleParent() );
-    if( xParent.is() )
-    {
-        Reference< XAccessibleContext > xParentContext( xParent->getAccessibleContext() );
-
-        if( xParentContext.is() )
-            aRet = xParentContext->getLocale();
-    }
-
-    return aRet;
-}
-
-
-void SAL_CALL ToolbarMenuEntryAcc::addAccessibleEventListener( const Reference< XAccessibleEventListener >& rxListener )
-{
-    const ::osl::MutexGuard aGuard( maMutex );
-
-    if( rxListener.is() )
-    {
-        for (auto const& eventListener : mxEventListeners)
-        {
-            if (eventListener == rxListener)
-                return;
-        }
-        // listener not found so add it
-        mxEventListeners.push_back( rxListener );
-    }
-}
-
-
-void SAL_CALL ToolbarMenuEntryAcc::removeAccessibleEventListener( const Reference< XAccessibleEventListener >& rxListener )
-{
-    const ::osl::MutexGuard aGuard( maMutex );
-
-    if( rxListener.is() )
-    {
-        EventListenerVector::iterator aIter = std::find(mxEventListeners.begin(), mxEventListeners.end(), rxListener);
-        if (aIter != mxEventListeners.end())
-            mxEventListeners.erase(aIter);
-    }
-}
-
-
-sal_Bool SAL_CALL ToolbarMenuEntryAcc::containsPoint( const awt::Point& aPoint )
-{
-    const awt::Rectangle    aRect( getBounds() );
-    const Point             aSize( aRect.Width, aRect.Height );
-    const Point             aNullPoint, aTestPoint( aPoint.X, aPoint.Y );
-
-    return tools::Rectangle( aNullPoint, aSize ).IsInside( aTestPoint );
-}
-
-
-Reference< XAccessible > SAL_CALL ToolbarMenuEntryAcc::getAccessibleAtPoint( const awt::Point& )
-{
-    Reference< XAccessible > xRet;
-    return xRet;
-}
-
-
-awt::Rectangle SAL_CALL ToolbarMenuEntryAcc::getBounds()
-{
-    const SolarMutexGuard aSolarGuard;
-    awt::Rectangle      aRet;
-
-    if( mpParent )
-    {
-        tools::Rectangle   aRect( mpParent->maRect );
-        tools::Rectangle   aParentRect( Point(), mpParent->mrMenu.GetOutputSizePixel() );
-
-        aRect.Intersection( aParentRect );
-
-        aRet.X = aRect.Left();
-        aRet.Y = aRect.Top();
-        aRet.Width = aRect.GetWidth();
-        aRet.Height = aRect.GetHeight();
-    }
-
-    return aRet;
-}
-
-
-awt::Point SAL_CALL ToolbarMenuEntryAcc::getLocation()
-{
-    const awt::Rectangle aRect( getBounds() );
-    return awt::Point( aRect.X, aRect.Y );
-}
-
-
-awt::Point SAL_CALL ToolbarMenuEntryAcc::getLocationOnScreen()
-{
-    const SolarMutexGuard aSolarGuard;
-    awt::Point aRet;
-
-    if( mpParent )
-    {
-        const Point aScreenPos( mpParent->mrMenu.OutputToAbsoluteScreenPixel( mpParent->maRect.TopLeft() ) );
-
-        aRet.X = aScreenPos.X();
-        aRet.Y = aScreenPos.Y();
-    }
-
-    return aRet;
-}
-
-
-awt::Size SAL_CALL ToolbarMenuEntryAcc::getSize()
-{
-    const awt::Rectangle aRect( getBounds() );
-    awt::Size aRet;
-
-    aRet.Width = aRect.Width;
-    aRet.Height = aRect.Height;
-
-    return aRet;
-}
-
-void SAL_CALL ToolbarMenuEntryAcc::grabFocus()
-{
-    // nothing to do
-}
-
-sal_Int32 SAL_CALL ToolbarMenuEntryAcc::getForeground(  )
-{
-    return static_cast<sal_Int32>(Application::GetSettings().GetStyleSettings().GetMenuTextColor());
-}
-
-sal_Int32 SAL_CALL ToolbarMenuEntryAcc::getBackground(  )
-{
-    return static_cast<sal_Int32>(Application::GetSettings().GetStyleSettings().GetMenuColor());
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svtools/source/control/toolbarmenuimp.hxx b/svtools/source/control/toolbarmenuimp.hxx
deleted file mode 100644
index 7e3d4d0fddc5..000000000000
--- a/svtools/source/control/toolbarmenuimp.hxx
+++ /dev/null
@@ -1,292 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#pragma once
-
-#include <osl/mutex.hxx>
-#include <vcl/ctrl.hxx>
-#include <vcl/image.hxx>
-
-#include <cppuhelper/compbase.hxx>
-#include <cppuhelper/basemutex.hxx>
-
-#include <com/sun/star/accessibility/XAccessible.hpp>
-#include <com/sun/star/accessibility/XAccessibleContext.hpp>
-#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
-#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
-#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
-
-#include <rtl/ref.hxx>
-
-#include <memory>
-#include <vector>
-
-namespace svtools {
-
-struct ToolbarMenu_Impl;
-class ToolbarMenu;
-class ToolbarMenuEntry;
-
-typedef ::std::vector< css::uno::Reference< css::accessibility::XAccessibleEventListener > > EventListenerVector;
-typedef std::vector< std::unique_ptr< ToolbarMenuEntry > > ToolbarMenuEntryVector;
-
-const int SEPARATOR_HEIGHT = 4;
-const int TITLE_ID = -1;
-const int BORDER_X = 0;
-const int BORDER_Y = 0;
-
-
-class ToolbarMenuEntry
-{
-public:
-    ToolbarMenu& mrMenu;
-
-    int mnEntryId;
-    MenuItemBits mnBits;
-    Size maSize;
-
-    bool mbHasText;
-    bool mbHasImage;
-    bool mbChecked;
-    bool mbEnabled;
-
-    OUString maText;
-    Image maImage;
-    VclPtr<Control> mpControl;
-    tools::Rectangle maRect;
-
-    css::uno::Reference< css::accessibility::XAccessibleContext > mxAccContext;
-
-public:
-    ToolbarMenuEntry( ToolbarMenu& rMenu, int nEntryId, const OUString& rText, MenuItemBits nBits );
-    ToolbarMenuEntry( ToolbarMenu& rMenu, int nEntryId, const Image& rImage, const OUString& rText, MenuItemBits nBits );
-    ToolbarMenuEntry( ToolbarMenu& rMenu, int nEntryId, Control* pControl, MenuItemBits nBits );
-    ~ToolbarMenuEntry();
-
-    void init( int nEntryId, MenuItemBits nBits );
-
-    const css::uno::Reference< css::accessibility::XAccessibleContext >& GetAccessible();
-
-    /// @throws css::uno::RuntimeException
-    sal_Int32 getAccessibleChildCount();
-    /// @throws css::lang::IndexOutOfBoundsException
-    /// @throws css::uno::RuntimeException
-    css::uno::Reference< css::accessibility::XAccessible > getAccessibleChild( sal_Int32 index );
-
-    bool HasCheck() const
-    {
-        return mbChecked || ( mnBits & ( MenuItemBits::RADIOCHECK | MenuItemBits::CHECKABLE | MenuItemBits::AUTOCHECK ) );
-    }
-};
-
-
-typedef ::cppu::WeakComponentImplHelper<
-    css::accessibility::XAccessible,
-    css::accessibility::XAccessibleEventBroadcaster,
-    css::accessibility::XAccessibleContext,
-    css::accessibility::XAccessibleComponent,
-    css::accessibility::XAccessibleSelection >
-    ToolbarMenuAccComponentBase;
-
-class ToolbarMenuAcc :
-    public ::cppu::BaseMutex,
-    public ToolbarMenuAccComponentBase
-{
-public:
-
-    explicit ToolbarMenuAcc( ToolbarMenu_Impl& rParent );
-    virtual ~ToolbarMenuAcc() override;
-
-    void                FireAccessibleEvent( short nEventId, const css::uno::Any& rOldValue, const css::uno::Any& rNewValue );
-    bool                HasAccessibleListeners() const { return( mxEventListeners.size() > 0 ); }
-
-public:
-
-    // XAccessible
-    virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) override;
-
-    // XAccessibleEventBroadcaster
-    virtual void SAL_CALL addAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
-    virtual void SAL_CALL removeAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
-
-    // XAccessibleContext
-    virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) override;
-    virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
-    virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) override;
-    virtual sal_Int32 SAL_CALL getAccessibleIndexInParent(  ) override;
-    virtual sal_Int16 SAL_CALL getAccessibleRole(  ) override;
-    virtual OUString SAL_CALL getAccessibleDescription(  ) override;
-    virtual OUString SAL_CALL getAccessibleName(  ) override;
-    virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) override;
-    virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) override;
-    virtual css::lang::Locale SAL_CALL getLocale(  ) override;
-
-    // XAccessibleComponent
-    virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& aPoint ) override;
-    virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
-    virtual css::awt::Rectangle SAL_CALL getBounds(  ) override;
-    virtual css::awt::Point SAL_CALL getLocation(  ) override;
-    virtual css::awt::Point SAL_CALL getLocationOnScreen(  ) override;
-    virtual css::awt::Size SAL_CALL getSize(  ) override;
-    virtual void SAL_CALL grabFocus(  ) override;
-    virtual sal_Int32 SAL_CALL getForeground(  ) override;
-    virtual sal_Int32 SAL_CALL getBackground(  ) override;
-
-    // XAccessibleSelection
-    virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
-    virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
-    virtual void SAL_CALL clearAccessibleSelection(  ) override;
-    virtual void SAL_CALL selectAllAccessibleChildren(  ) override;
-    virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount(  ) override;
-    virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
-    virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
-
-    DECL_LINK( WindowEventListener, VclWindowEvent&, void );
-
-private:
-    EventListenerVector mxEventListeners;
-    ToolbarMenu_Impl* mpParent;
-    /// The current FOCUSED state.
-    bool mbIsFocused;
-
-    /** Tell all listeners that the object is dying.  This callback is
-        usually called from the WeakComponentImplHelper class.
-    */
-    virtual void SAL_CALL disposing() override;
-
-    /** Check whether or not the object has been disposed (or is in the
-        state of being disposed).  If that is the case then
-        DisposedException is thrown to inform the (indirect) caller of the
-        foul deed.
-
-        @throws css::lang::DisposedException
-    */
-    void ThrowIfDisposed();
-};
-
-
-typedef ::cppu::WeakComponentImplHelper< css::accessibility::XAccessible,
-                                                     css::accessibility::XAccessibleEventBroadcaster,
-                                                     css::accessibility::XAccessibleContext,
-                                                     css::accessibility::XAccessibleComponent > ToolbarMenuEntryAccBase;
-
-class ToolbarMenuEntryAcc : public ::cppu::BaseMutex,
-                            public ToolbarMenuEntryAccBase
-{
-public:
-    explicit ToolbarMenuEntryAcc( ToolbarMenuEntry* pParent );
-    virtual ~ToolbarMenuEntryAcc() override;
-
-    // XAccessible
-    virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) override;
-
-    // XAccessibleEventBroadcaster
-    virtual void SAL_CALL addAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
-    virtual void SAL_CALL removeAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
-
-    // XAccessibleContext
-    virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) override;
-    virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
-    virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) override;
-    virtual sal_Int32 SAL_CALL getAccessibleIndexInParent(  ) override;
-    virtual sal_Int16 SAL_CALL getAccessibleRole(  ) override;
-    virtual OUString SAL_CALL getAccessibleDescription(  ) override;
-    virtual OUString SAL_CALL getAccessibleName(  ) override;
-    virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) override;
-    virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) override;
-    virtual css::lang::Locale SAL_CALL getLocale(  ) override;
-
-    // XAccessibleComponent
-    virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& aPoint ) override;
-    virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
-    virtual css::awt::Rectangle SAL_CALL getBounds(  ) override;
-    virtual css::awt::Point SAL_CALL getLocation(  ) override;
-    virtual css::awt::Point SAL_CALL getLocationOnScreen(  ) override;
-    virtual css::awt::Size SAL_CALL getSize(  ) override;
-    virtual void SAL_CALL grabFocus(  ) override;
-    virtual sal_Int32 SAL_CALL getForeground(  ) override;
-    virtual sal_Int32 SAL_CALL getBackground(  ) override;
-
-private:
-    EventListenerVector    mxEventListeners;
-    ::osl::Mutex           maMutex;
-    ToolbarMenuEntry*      mpParent;
-
-    /** Tell all listeners that the object is dying.  This callback is
-        usually called from the WeakComponentImplHelper class.
-    */
-    virtual void SAL_CALL disposing() override;
-};
-
-
-struct ToolbarMenu_Impl
-{
-    ToolbarMenu& mrMenu;
-
-    rtl::Reference< ToolbarMenuAcc >                       mxAccessible;
-    css::uno::Reference< css::accessibility::XAccessible > mxOldSelection;
-
-    ToolbarMenuEntryVector  maEntryVector;
-
-    int mnCheckPos;
-    int mnImagePos;
-    int mnTextPos;
-
-    int mnHighlightedEntry;
-    int mnSelectedEntry;
-    int mnLastColumn;
-
-    Size maSize;
-
-    Link<ToolbarMenu*,void>          maSelectHdl;
-
-    explicit ToolbarMenu_Impl( ToolbarMenu& rMenu );
-    ~ToolbarMenu_Impl();
-
-    void setAccessible( ToolbarMenuAcc* pAccessible );
-
-    void fireAccessibleEvent( short nEventId, const css::uno::Any& rOldValue, const css::uno::Any& rNewValue );
-
-    /// @throws css::uno::RuntimeException
-    sal_Int32 getAccessibleChildCount();
-    /// @throws css::lang::IndexOutOfBoundsException
-    /// @throws css::uno::RuntimeException
-    css::uno::Reference< css::accessibility::XAccessible > getAccessibleChild( sal_Int32 index );
-    /// @throws css::lang::IndexOutOfBoundsException
-    /// @throws css::uno::RuntimeException
-    css::uno::Reference< css::accessibility::XAccessible > getAccessibleChild( Control const * pControl, sal_Int32 childIndex );
-
-    /// @throws css::lang::IndexOutOfBoundsException
-    /// @throws css::uno::RuntimeException
-    void selectAccessibleChild( sal_Int32 nChildIndex );
-    /// @throws css::lang::IndexOutOfBoundsException
-    /// @throws css::uno::RuntimeException
-    bool isAccessibleChildSelected( sal_Int32 nChildIndex );
-    void clearAccessibleSelection();
-
-    ToolbarMenuEntry* implGetEntry( int nEntry ) const;
-    void notifyHighlightedEntry();
-
-    void implHighlightControl( sal_uInt16 nCode, Control* pControl );
-};
-
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 473e9720077e5753e6e81de365053d2a964f6349
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Jan 27 17:31:43 2020 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Jan 28 10:01:40 2020 +0100

    weld FontworkAlignmentWindow
    
    Change-Id: Ib686407bae900cefa35294249fc02458a7992d8d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87553
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
index a0cb6e11ed14..0c4d78465364 100644
--- a/include/svx/strings.hrc
+++ b/include/svx/strings.hrc
@@ -1005,12 +1005,6 @@
 #define RID_GALLERYSTR_THEME_TROUBLE                        NC_("RID_GALLERYSTR_THEME_TROUBLE", "Problem Solving")
 #define RID_GALLERYSTR_THEME_SCREENBEANS                    NC_("RID_GALLERYSTR_THEME_SCREENBEANS", "Screen Beans")
 
-#define RID_SVXSTR_ALIGN_LEFT                               NC_("RID_SVXSTR_ALIGN_LEFT", "~Left Align")
-#define RID_SVXSTR_ALIGN_CENTER                             NC_("RID_SVXSTR_ALIGN_CENTER", "~Center")
-#define RID_SVXSTR_ALIGN_RIGHT                              NC_("RID_SVXSTR_ALIGN_RIGHT", "~Right Align")
-#define RID_SVXSTR_ALIGN_WORD                               NC_("RID_SVXSTR_ALIGN_WORD", "~Word Justify")
-#define RID_SVXSTR_ALIGN_STRETCH                            NC_("RID_SVXSTR_ALIGN_STRETCH", "S~tretch Justify")
-
 #define RID_SVXSTR_QRY_PRINT_TITLE                          NC_("RID_SVXSTR_QRY_PRINT_TITLE", "Printing selection")
 #define RID_SVXSTR_QRY_PRINT_MSG                            NC_("RID_SVXSTR_QRY_PRINT_MSG", "Do you want to print the selection or the entire document?")
 #define RID_SVXSTR_QRY_PRINT_ALL                            NC_("RID_SVXSTR_QRY_PRINT_ALL", "~All")
diff --git a/svx/UIConfig_svx.mk b/svx/UIConfig_svx.mk
index 07be2bf6a62a..bf3d64b015cf 100644
--- a/svx/UIConfig_svx.mk
+++ b/svx/UIConfig_svx.mk
@@ -55,6 +55,7 @@ $(eval $(call gb_UIConfig_add_uifiles,svx,\
 	svx/uiconfig/ui/floatinglineproperty \
 	svx/uiconfig/ui/floatinglinestyle \
 	svx/uiconfig/ui/floatingundoredo \
+	svx/uiconfig/ui/fontworkalignmentcontrol \
 	svx/uiconfig/ui/fontworkcharacterspacingcontrol \
 	svx/uiconfig/ui/fontworkgallerydialog \
 	svx/uiconfig/ui/fontworkspacingdialog \
diff --git a/svx/inc/bitmaps.hlst b/svx/inc/bitmaps.hlst
index 9078184c6ee7..fdb60807e47d 100644
--- a/svx/inc/bitmaps.hlst
+++ b/svx/inc/bitmaps.hlst
@@ -259,12 +259,6 @@
 #define BMP_MARKER_RECTPLUS11_5                       "svx/res/marker-rectplus11-5.png"
 #define BMP_MARKER_RECTPLUS11_6                       "svx/res/marker-rectplus11-6.png"
 
-#define RID_SVXBMP_FONTWORK_ALIGN_LEFT              "svx/res/fontworkalignleft_16.png"
-#define RID_SVXBMP_FONTWORK_ALIGN_CENTER            "svx/res/fontworkaligncentered_16.png"
-#define RID_SVXBMP_FONTWORK_ALIGN_RIGHT             "svx/res/fontworkalignright_16.png"
-#define RID_SVXBMP_FONTWORK_ALIGN_WORD              "svx/res/fontworkalignjustified_16.png"
-#define RID_SVXBMP_FONTWORK_ALIGN_STRETCH           "svx/res/fontworkalignstretch_16.png"
-
 /*
  * Bitmaps for SvxFrameWindow
  */
diff --git a/svx/source/tbxctrls/fontworkgallery.cxx b/svx/source/tbxctrls/fontworkgallery.cxx
index ecd9588d321c..fb191fec46c2 100644
--- a/svx/source/tbxctrls/fontworkgallery.cxx
+++ b/svx/source/tbxctrls/fontworkgallery.cxx
@@ -54,8 +54,6 @@
 
 #include <bitmaps.hlst>
 
-using ::svtools::ToolbarMenu;
-
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::lang;
 using namespace ::com::sun::star::beans;
@@ -265,17 +263,26 @@ IMPL_LINK_NOARG(FontWorkGalleryDialog, DoubleClickFavoriteHdl, SvtValueSet*, voi
 
 namespace {
 
-class FontworkAlignmentWindow : public ToolbarMenu
+class FontworkAlignmentWindow final : public WeldToolbarPopup
 {
 public:
-    FontworkAlignmentWindow( svt::ToolboxController& rController, vcl::Window* pParentWindow );
-
+    FontworkAlignmentWindow(svt::PopupWindowController* pControl, weld::Widget* pParentWindow);
+    virtual void GrabFocus() override
+    {
+        mxLeft->grab_focus();
+    }
     virtual void statusChanged( const css::frame::FeatureStateEvent& Event ) override;
 
 private:
-    svt::ToolboxController& mrController;
+    rtl::Reference<svt::PopupWindowController> mxControl;
+    std::unique_ptr<weld::RadioButton> mxLeft;
+    std::unique_ptr<weld::RadioButton> mxCenter;
+    std::unique_ptr<weld::RadioButton> mxRight;
+    std::unique_ptr<weld::RadioButton> mxWord;
+    std::unique_ptr<weld::RadioButton> mxStretch;
+    bool mbSettingValue;
 
-    DECL_LINK( SelectHdl, ToolbarMenu*, void );
+    DECL_LINK( SelectHdl, weld::ToggleButton&, void );
 
     void    implSetAlignment( int nAlignmentMode, bool bEnabled );
 };
@@ -284,37 +291,40 @@ private:
 
 static const OUStringLiteral gsFontworkAlignment(".uno:FontworkAlignment");
 
-FontworkAlignmentWindow::FontworkAlignmentWindow(svt::ToolboxController& rController, vcl::Window* pParentWindow)
-    : ToolbarMenu(rController.getFrameInterface(), pParentWindow, WB_STDPOPUP)
-    , mrController(rController)
+FontworkAlignmentWindow::FontworkAlignmentWindow(svt::PopupWindowController* pControl, weld::Widget* pParent)
+    : WeldToolbarPopup(pControl->getFrameInterface(), pParent, "svx/ui/fontworkalignmentcontrol.ui", "FontworkAlignmentControl")
+    , mxControl(pControl)
+    , mxLeft(m_xBuilder->weld_radio_button("left"))
+    , mxCenter(m_xBuilder->weld_radio_button("center"))
+    , mxRight(m_xBuilder->weld_radio_button("right"))
+    , mxWord(m_xBuilder->weld_radio_button("word"))
+    , mxStretch(m_xBuilder->weld_radio_button("stretch"))
+    , mbSettingValue(false)
 {
-    SetSelectHdl( LINK( this, FontworkAlignmentWindow, SelectHdl ) );
-
-    Image aImgAlgin1(StockImage::Yes, RID_SVXBMP_FONTWORK_ALIGN_LEFT);
-    Image aImgAlgin2(StockImage::Yes, RID_SVXBMP_FONTWORK_ALIGN_CENTER);
-    Image aImgAlgin3(StockImage::Yes, RID_SVXBMP_FONTWORK_ALIGN_RIGHT);
-    Image aImgAlgin4(StockImage::Yes, RID_SVXBMP_FONTWORK_ALIGN_WORD);
-    Image aImgAlgin5(StockImage::Yes, RID_SVXBMP_FONTWORK_ALIGN_STRETCH);
-
-    appendEntry(0, SvxResId(RID_SVXSTR_ALIGN_LEFT), aImgAlgin1);
-    appendEntry(1, SvxResId(RID_SVXSTR_ALIGN_CENTER), aImgAlgin2);
-    appendEntry(2, SvxResId(RID_SVXSTR_ALIGN_RIGHT), aImgAlgin3);
-    appendEntry(3, SvxResId(RID_SVXSTR_ALIGN_WORD), aImgAlgin4);
-    appendEntry(4, SvxResId(RID_SVXSTR_ALIGN_STRETCH), aImgAlgin5);
-
-    SetOutputSizePixel( getMenuSize() );
+    mxLeft->connect_toggled(LINK(this, FontworkAlignmentWindow, SelectHdl));
+    mxCenter->connect_toggled(LINK(this, FontworkAlignmentWindow, SelectHdl));
+    mxRight->connect_toggled(LINK(this, FontworkAlignmentWindow, SelectHdl));
+    mxWord->connect_toggled(LINK(this, FontworkAlignmentWindow, SelectHdl));
+    mxStretch->connect_toggled(LINK(this, FontworkAlignmentWindow, SelectHdl));
 
     AddStatusListener( gsFontworkAlignment );
 }
 
 void FontworkAlignmentWindow::implSetAlignment( int nSurface, bool bEnabled )
 {
-    int i;
-    for( i = 0; i < 5; i++ )
-    {
-        checkEntry( i, (i == nSurface) && bEnabled );
-        enableEntry( i, bEnabled );
-    }
+    bool bSettingValue = mbSettingValue;
+    mbSettingValue = true;
+    mxLeft->set_active(nSurface == 0 && bEnabled);
+    mxLeft->set_sensitive(bEnabled);
+    mxCenter->set_active(nSurface == 1 && bEnabled);
+    mxCenter->set_sensitive(bEnabled);
+    mxRight->set_active(nSurface == 2 && bEnabled);
+    mxRight->set_sensitive(bEnabled);
+    mxWord->set_active(nSurface == 3 && bEnabled);
+    mxWord->set_sensitive(bEnabled);
+    mxStretch->set_active(nSurface == 4 && bEnabled);
+    mxStretch->set_sensitive(bEnabled);
+    mbSettingValue = bSettingValue;
 }
 
 void FontworkAlignmentWindow::statusChanged( const css::frame::FeatureStateEvent& Event )
@@ -334,22 +344,32 @@ void FontworkAlignmentWindow::statusChanged( const css::frame::FeatureStateEvent
     }
 }
 
-IMPL_LINK_NOARG(FontworkAlignmentWindow, SelectHdl, ToolbarMenu*, void)
+IMPL_LINK(FontworkAlignmentWindow, SelectHdl, weld::ToggleButton&, rButton, void)
 {
-    if ( IsInPopupMode() )
-        EndPopupMode();
+    if (mbSettingValue || !rButton.get_active())
+        return;
 
-    sal_Int32 nAlignment = getSelectedEntryId();
-    if( nAlignment >= 0 )
-    {
-        Sequence< PropertyValue > aArgs( 1 );
-        aArgs[0].Name = OUString(gsFontworkAlignment).copy(5);
-        aArgs[0].Value <<= nAlignment;
+    sal_Int32 nAlignment;
+    if (mxLeft->get_active())
+        nAlignment = 0;
+    else if (mxCenter->get_active())
+        nAlignment = 1;
+    else if (mxRight->get_active())
+        nAlignment = 2;
+    else if (mxWord->get_active())
+        nAlignment = 3;
+    else
+        nAlignment = 4;
 
-        mrController.dispatchCommand( gsFontworkAlignment, aArgs );
+    Sequence< PropertyValue > aArgs( 1 );
+    aArgs[0].Name = OUString(gsFontworkAlignment).copy(5);
+    aArgs[0].Value <<= nAlignment;
 
-        implSetAlignment( nAlignment, true );
-    }
+    mxControl->dispatchCommand( gsFontworkAlignment, aArgs );
+
+    implSetAlignment( nAlignment, true );
+
+    mxControl->EndPopupMode();
 }
 
 namespace {
@@ -359,6 +379,7 @@ class FontworkAlignmentControl : public svt::PopupWindowController
 public:
     explicit FontworkAlignmentControl( const css::uno::Reference< css::uno::XComponentContext >& rxContext );
 
+    virtual std::unique_ptr<WeldToolbarPopup> weldPopupWindow() override;
     virtual VclPtr<vcl::Window> createVclPopupWindow( vcl::Window* pParent ) override;
 
     // XInitialization
@@ -376,10 +397,19 @@ FontworkAlignmentControl::FontworkAlignmentControl( const Reference< XComponentC
 {
 }
 
+std::unique_ptr<WeldToolbarPopup> FontworkAlignmentControl::weldPopupWindow()
+{
+    return std::make_unique<FontworkAlignmentWindow>(this, m_pToolbar);
+}
 
 VclPtr<vcl::Window> FontworkAlignmentControl::createVclPopupWindow( vcl::Window* pParent )
 {
-    return VclPtr<FontworkAlignmentWindow>::Create( *this, pParent );
+    mxInterimPopover = VclPtr<InterimToolbarPopup>::Create(getFrameInterface(), pParent,
+        std::make_unique<FontworkAlignmentWindow>(this, pParent->GetFrameWeld()));
+
+    mxInterimPopover->Show();
+
+    return mxInterimPopover;
 }
 
 // XInitialization
diff --git a/svx/uiconfig/ui/fontworkalignmentcontrol.ui b/svx/uiconfig/ui/fontworkalignmentcontrol.ui
new file mode 100644
index 000000000000..5e448b2c87da
--- /dev/null
+++ b/svx/uiconfig/ui/fontworkalignmentcontrol.ui
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
+<interface domain="svx">
+  <requires lib="gtk+" version="3.18"/>
+  <object class="GtkImage" id="image1">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="icon_name">svx/res/fontworkalignleft_16.png</property>
+  </object>
+  <object class="GtkImage" id="image2">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="icon_name">svx/res/fontworkaligncentered_16.png</property>
+  </object>
+  <object class="GtkImage" id="image3">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="icon_name">svx/res/fontworkalignright_16.png</property>
+  </object>
+  <object class="GtkImage" id="image4">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="icon_name">svx/res/fontworkalignjustified_16.png</property>
+  </object>
+  <object class="GtkImage" id="image5">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="icon_name">svx/res/fontworkalignstretch_16.png</property>
+  </object>
+  <object class="GtkPopover" id="FontworkAlignmentControl">
+    <property name="can_focus">False</property>
+    <property name="no_show_all">True</property>
+    <property name="border_width">4</property>
+    <child>
+      <object class="GtkGrid" id="container">
+        <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>
+        <child>
+          <object class="GtkRadioButton" id="left">
+            <property name="label" translatable="yes" context="fontworkalignmentcontrol|RID_SVXSTR_ALIGN_LEFT">_Left Align</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="image">image1</property>
+            <property name="use_underline">True</property>
+            <property name="xalign">0</property>
+            <property name="always_show_image">True</property>
+            <property name="active">True</property>
+            <property name="draw_indicator">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list