chart2/source/controller/sidebar/ChartAreaPanel.cxx | 9 framework/inc/uielement/complextoolbarcontroller.hxx | 2 framework/inc/uielement/generictoolbarcontroller.hxx | 2 framework/source/uielement/FixedImageToolbarController.cxx | 6 framework/source/uielement/FixedTextToolbarController.cxx | 8 framework/source/uielement/comboboxtoolbarcontroller.cxx | 6 framework/source/uielement/complextoolbarcontroller.cxx | 36 framework/source/uielement/dropdownboxtoolbarcontroller.cxx | 6 framework/source/uielement/edittoolbarcontroller.cxx | 6 framework/source/uielement/generictoolbarcontroller.cxx | 36 framework/source/uielement/imagebuttontoolbarcontroller.cxx | 4 framework/source/uielement/spinfieldtoolbarcontroller.cxx | 6 framework/source/uielement/togglebuttontoolbarcontroller.cxx | 10 include/sfx2/weldutils.hxx | 7 include/svtools/popupwindowcontroller.hxx | 10 include/svtools/toolboxcontroller.hxx | 11 include/svx/PaletteManager.hxx | 6 include/svx/colorwindow.hxx | 8 include/svx/itemwin.hxx | 1 include/svx/sidebar/AreaPropertyPanelBase.hxx | 69 - include/svx/sidebar/AreaTransparencyGradientPopup.hxx | 46 include/svx/tbcontrl.hxx | 13 include/svx/tbxcolorupdate.hxx | 76 - include/vcl/weld.hxx | 9 reportdesign/source/ui/dlg/Condition.cxx | 6 reportdesign/source/ui/dlg/Condition.hxx | 2 sc/inc/pch/precompiled_sc.hxx | 3 sc/inc/pch/precompiled_scfilt.hxx | 17 sc/inc/pch/precompiled_scui.hxx | 10 sd/inc/pch/precompiled_sd.hxx | 3 sd/inc/pch/precompiled_sdui.hxx | 3 sfx2/source/sidebar/ControllerFactory.cxx | 4 sfx2/source/toolbox/weldutils.cxx | 6 solenv/sanitizers/ui/svx.suppr | 3 svtools/source/uno/popupwindowcontroller.cxx | 8 svtools/source/uno/toolboxcontroller.cxx | 13 svx/source/sidebar/area/AreaPropertyPanelBase.cxx | 746 +++++------ svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx | 125 - svx/source/tbxctrls/PaletteManager.cxx | 2 svx/source/tbxctrls/itemwin.cxx | 27 svx/source/tbxctrls/tbcontrl.cxx | 137 +- svx/source/tbxctrls/tbxcolorupdate.cxx | 153 +- svx/uiconfig/ui/floatingareastyle.ui | 84 - svx/uiconfig/ui/sidebararea.ui | 146 +- vcl/source/app/salvtables.cxx | 25 vcl/unx/gtk3/gtk3gtkinst.cxx | 116 + 46 files changed, 1200 insertions(+), 832 deletions(-)
New commits: commit 40fe5b93bc0838e04b46bfc7942d1ee6a2482ce0 Author: Caolán McNamara <[email protected]> AuthorDate: Thu Jan 2 14:45:32 2020 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Mon Jan 6 16:44:21 2020 +0100 weld AreaPropertyPanel Change-Id: I5f4c4b43067b99cd57f8ea941002481ef5977e09 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86144 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> diff --git a/chart2/source/controller/sidebar/ChartAreaPanel.cxx b/chart2/source/controller/sidebar/ChartAreaPanel.cxx index 61e72318043c..1260b36fe397 100644 --- a/chart2/source/controller/sidebar/ChartAreaPanel.cxx +++ b/chart2/source/controller/sidebar/ChartAreaPanel.cxx @@ -17,6 +17,7 @@ #include <com/sun/star/util/XModifyBroadcaster.hpp> #include <com/sun/star/chart2/XDiagram.hpp> +#include <sfx2/weldutils.hxx> #include <svx/xfltrit.hxx> #include <svx/xflftrit.hxx> #include <svx/xbtmpit.hxx> @@ -29,9 +30,9 @@ namespace chart { namespace sidebar { namespace { -SvxColorToolBoxControl* getColorToolBoxControl(sfx2::sidebar::SidebarToolBox* pToolBoxColor) +SvxColorToolBoxControl* getColorToolBoxControl(ToolbarUnoDispatcher& rColorDispatch) { - css::uno::Reference<css::frame::XToolbarController> xController = pToolBoxColor->GetFirstController(); + css::uno::Reference<css::frame::XToolbarController> xController = rColorDispatch.GetControllerForCommand(".uno:FillColor"); SvxColorToolBoxControl* pToolBoxColorControl = dynamic_cast<SvxColorToolBoxControl*>(xController.get()); return pToolBoxColorControl; } @@ -261,7 +262,7 @@ ChartAreaPanel::ChartAreaPanel(vcl::Window* pParent, mxSelectionListener(new ChartSidebarSelectionListener(this)), mbUpdate(true), mbModelValid(true), - maFillColorWrapper(mxModel, getColorToolBoxControl(mpToolBoxColor.get()), "FillColor") + maFillColorWrapper(mxModel, getColorToolBoxControl(*mxColorDispatch), "FillColor") { std::vector<ObjectType> aAcceptedTypes { OBJECTTYPE_PAGE, OBJECTTYPE_DIAGRAM, OBJECTTYPE_DATA_SERIES, OBJECTTYPE_DATA_POINT, @@ -296,7 +297,7 @@ void ChartAreaPanel::Initialize() if (xSelectionSupplier.is()) xSelectionSupplier->addSelectionChangeListener(mxSelectionListener.get()); - SvxColorToolBoxControl* pToolBoxColor = getColorToolBoxControl(mpToolBoxColor.get()); + SvxColorToolBoxControl* pToolBoxColor = getColorToolBoxControl(*mxColorDispatch); pToolBoxColor->setColorSelectFunction(maFillColorWrapper); updateData(); diff --git a/framework/inc/uielement/complextoolbarcontroller.hxx b/framework/inc/uielement/complextoolbarcontroller.hxx index fad83e62a233..5c5bf8499eeb 100644 --- a/framework/inc/uielement/complextoolbarcontroller.hxx +++ b/framework/inc/uielement/complextoolbarcontroller.hxx @@ -88,7 +88,7 @@ class ComplexToolbarController : public svt::ToolboxController void notifyFocusLost(); void notifyTextChanged( const OUString& aText ); - VclPtr<ToolBox> m_pToolbar; + VclPtr<ToolBox> m_xToolbar; sal_uInt16 m_nID; bool m_bMadeInvisible; mutable css::util::URL m_aURL; diff --git a/framework/inc/uielement/generictoolbarcontroller.hxx b/framework/inc/uielement/generictoolbarcontroller.hxx index b1d7c5b70b99..4eee88c1fcf1 100644 --- a/framework/inc/uielement/generictoolbarcontroller.hxx +++ b/framework/inc/uielement/generictoolbarcontroller.hxx @@ -62,7 +62,7 @@ class GenericToolbarController final : public svt::ToolboxController }; private: - VclPtr<ToolBox> m_pToolbar; + VclPtr<ToolBox> m_xToolbar; sal_uInt16 m_nID; bool m_bEnumCommand : 1, m_bMadeInvisible : 1; diff --git a/framework/source/uielement/FixedImageToolbarController.cxx b/framework/source/uielement/FixedImageToolbarController.cxx index e3a37e9c4c4d..19e05f081d0d 100644 --- a/framework/source/uielement/FixedImageToolbarController.cxx +++ b/framework/source/uielement/FixedImageToolbarController.cxx @@ -42,8 +42,8 @@ FixedImageToolbarController::FixedImageToolbarController( : ComplexToolbarController(rxContext, rFrame, pToolbar, nID, aCommand) , m_eSymbolSize(SvtMiscOptions().GetCurrentSymbolsSize()) { - m_pFixedImageControl = VclPtr<FixedImage>::Create(m_pToolbar, 0); - m_pToolbar->SetItemWindow(m_nID, m_pFixedImageControl); + m_pFixedImageControl = VclPtr<FixedImage>::Create(m_xToolbar, 0); + m_xToolbar->SetItemWindow(m_nID, m_pFixedImageControl); bool bBigImages(SvtMiscOptions().AreCurrentSymbolsLarge()); @@ -59,7 +59,7 @@ void SAL_CALL FixedImageToolbarController::dispose() SolarMutexGuard aSolarMutexGuard; SvtMiscOptions().RemoveListenerLink( LINK(this, FixedImageToolbarController, MiscOptionsChanged)); - m_pToolbar->SetItemWindow(m_nID, nullptr); + m_xToolbar->SetItemWindow(m_nID, nullptr); m_pFixedImageControl.disposeAndClear(); ComplexToolbarController::dispose(); } diff --git a/framework/source/uielement/FixedTextToolbarController.cxx b/framework/source/uielement/FixedTextToolbarController.cxx index 97a980987300..26208cc68bb1 100644 --- a/framework/source/uielement/FixedTextToolbarController.cxx +++ b/framework/source/uielement/FixedTextToolbarController.cxx @@ -38,16 +38,16 @@ FixedTextToolbarController::FixedTextToolbarController( ToolBox* pToolbar, sal_uInt16 nID, const OUString& aCommand) : ComplexToolbarController(rxContext, rFrame, pToolbar, nID, aCommand) { - m_pFixedTextControl = VclPtr<FixedText>::Create(m_pToolbar, WB_NOMULTILINE | WB_VCENTER + m_pFixedTextControl = VclPtr<FixedText>::Create(m_xToolbar, WB_NOMULTILINE | WB_VCENTER | WB_LEFT | WB_NOPOINTERFOCUS); - m_pToolbar->SetItemWindow(m_nID, m_pFixedTextControl); - m_pToolbar->SetItemBits(m_nID, ToolBoxItemBits::AUTOSIZE | m_pToolbar->GetItemBits(m_nID)); + m_xToolbar->SetItemWindow(m_nID, m_pFixedTextControl); + m_xToolbar->SetItemBits(m_nID, ToolBoxItemBits::AUTOSIZE | m_xToolbar->GetItemBits(m_nID)); } void SAL_CALL FixedTextToolbarController::dispose() { SolarMutexGuard aSolarMutexGuard; - m_pToolbar->SetItemWindow(m_nID, nullptr); + m_xToolbar->SetItemWindow(m_nID, nullptr); m_pFixedTextControl.disposeAndClear(); ComplexToolbarController::dispose(); } diff --git a/framework/source/uielement/comboboxtoolbarcontroller.cxx b/framework/source/uielement/comboboxtoolbarcontroller.cxx index 699fd676cb35..fedb1b75d9a7 100644 --- a/framework/source/uielement/comboboxtoolbarcontroller.cxx +++ b/framework/source/uielement/comboboxtoolbarcontroller.cxx @@ -124,7 +124,7 @@ ComboboxToolbarController::ComboboxToolbarController( ComplexToolbarController( rxContext, rFrame, pToolbar, nID, aCommand ) , m_pComboBox( nullptr ) { - m_pComboBox = VclPtr<ComboBoxControl>::Create( m_pToolbar, WB_DROPDOWN, this ); + m_pComboBox = VclPtr<ComboBoxControl>::Create( m_xToolbar, WB_DROPDOWN, this ); if ( nWidth == 0 ) nWidth = 100; @@ -133,7 +133,7 @@ ComboboxToolbarController::ComboboxToolbarController( ::Size aPixelSize = m_pComboBox->LogicToPixel(aLogicalSize, MapMode(MapUnit::MapAppFont)); m_pComboBox->SetSizePixel( ::Size( nWidth, aPixelSize.Height() )); - m_pToolbar->SetItemWindow( m_nID, m_pComboBox ); + m_xToolbar->SetItemWindow( m_nID, m_pComboBox ); } ComboboxToolbarController::~ComboboxToolbarController() @@ -144,7 +144,7 @@ void SAL_CALL ComboboxToolbarController::dispose() { SolarMutexGuard aSolarMutexGuard; - m_pToolbar->SetItemWindow( m_nID, nullptr ); + m_xToolbar->SetItemWindow( m_nID, nullptr ); m_pComboBox.disposeAndClear(); ComplexToolbarController::dispose(); diff --git a/framework/source/uielement/complextoolbarcontroller.cxx b/framework/source/uielement/complextoolbarcontroller.cxx index 51ede7a9a9b4..eb4a59f38a0a 100644 --- a/framework/source/uielement/complextoolbarcontroller.cxx +++ b/framework/source/uielement/complextoolbarcontroller.cxx @@ -53,7 +53,7 @@ ComplexToolbarController::ComplexToolbarController( sal_uInt16 nID, const OUString& aCommand ) : svt::ToolboxController( rxContext, rFrame, aCommand ) - , m_pToolbar( pToolbar ) + , m_xToolbar( pToolbar ) , m_nID( nID ) , m_bMadeInvisible( false ) { @@ -68,11 +68,11 @@ void SAL_CALL ComplexToolbarController::dispose() { SolarMutexGuard aSolarMutexGuard; - m_pToolbar->SetItemWindow( m_nID, nullptr ); + m_xToolbar->SetItemWindow( m_nID, nullptr ); svt::ToolboxController::dispose(); m_xURLTransformer.clear(); - m_pToolbar.clear(); + m_xToolbar.clear(); m_nID = 0; } @@ -128,11 +128,11 @@ void ComplexToolbarController::statusChanged( const FeatureStateEvent& Event ) if ( m_bDisposed ) return; - if ( m_pToolbar ) + if ( m_xToolbar ) { - m_pToolbar->EnableItem( m_nID, Event.IsEnabled ); + m_xToolbar->EnableItem( m_nID, Event.IsEnabled ); - ToolBoxItemBits nItemBits = m_pToolbar->GetItemBits( m_nID ); + ToolBoxItemBits nItemBits = m_xToolbar->GetItemBits( m_nID ); nItemBits &= ~ToolBoxItemBits::CHECKABLE; TriState eTri = TRISTATE_FALSE; @@ -146,8 +146,8 @@ void ComplexToolbarController::statusChanged( const FeatureStateEvent& Event ) { // Boolean, treat it as checked/unchecked if ( m_bMadeInvisible ) - m_pToolbar->ShowItem( m_nID ); - m_pToolbar->CheckItem( m_nID, bValue ); + m_xToolbar->ShowItem( m_nID ); + m_xToolbar->CheckItem( m_nID, bValue ); if ( bValue ) eTri = TRISTATE_TRUE; nItemBits |= ToolBoxItemBits::CHECKABLE; @@ -155,22 +155,22 @@ void ComplexToolbarController::statusChanged( const FeatureStateEvent& Event ) else if ( Event.State >>= aStrValue ) { OUString aText( MnemonicGenerator::EraseAllMnemonicChars( aStrValue ) ); - m_pToolbar->SetItemText( m_nID, aText ); - m_pToolbar->SetQuickHelpText( m_nID, aText ); + m_xToolbar->SetItemText( m_nID, aText ); + m_xToolbar->SetQuickHelpText( m_nID, aText ); if ( m_bMadeInvisible ) - m_pToolbar->ShowItem( m_nID ); + m_xToolbar->ShowItem( m_nID ); } else if ( Event.State >>= aItemState ) { eTri = TRISTATE_INDET; nItemBits |= ToolBoxItemBits::CHECKABLE; if ( m_bMadeInvisible ) - m_pToolbar->ShowItem( m_nID ); + m_xToolbar->ShowItem( m_nID ); } else if ( Event.State >>= aItemVisibility ) { - m_pToolbar->ShowItem( m_nID, aItemVisibility.bVisible ); + m_xToolbar->ShowItem( m_nID, aItemVisibility.bVisible ); m_bMadeInvisible = !aItemVisibility.bVisible; } else if ( Event.State >>= aControlCommand ) @@ -183,7 +183,7 @@ void ComplexToolbarController::statusChanged( const FeatureStateEvent& Event ) { OUString aHelpText; aControlCommand.Arguments[i].Value >>= aHelpText; - m_pToolbar->SetQuickHelpText(m_nID, aHelpText); + m_xToolbar->SetQuickHelpText(m_nID, aHelpText); break; } } @@ -193,14 +193,14 @@ void ComplexToolbarController::statusChanged( const FeatureStateEvent& Event ) executeControlCommand( aControlCommand ); } if ( m_bMadeInvisible ) - m_pToolbar->ShowItem( m_nID ); + m_xToolbar->ShowItem( m_nID ); } else if ( m_bMadeInvisible ) - m_pToolbar->ShowItem( m_nID ); + m_xToolbar->ShowItem( m_nID ); - m_pToolbar->SetItemState( m_nID, eTri ); - m_pToolbar->SetItemBits( m_nID, nItemBits ); + m_xToolbar->SetItemState( m_nID, eTri ); + m_xToolbar->SetItemBits( m_nID, nItemBits ); } } diff --git a/framework/source/uielement/dropdownboxtoolbarcontroller.cxx b/framework/source/uielement/dropdownboxtoolbarcontroller.cxx index ef73758a6040..6eacd138660d 100644 --- a/framework/source/uielement/dropdownboxtoolbarcontroller.cxx +++ b/framework/source/uielement/dropdownboxtoolbarcontroller.cxx @@ -116,7 +116,7 @@ DropdownToolbarController::DropdownToolbarController( ComplexToolbarController( rxContext, rFrame, pToolbar, nID, aCommand ) , m_pListBoxControl( nullptr ) { - m_pListBoxControl = VclPtr<ListBoxControl>::Create( m_pToolbar, WB_DROPDOWN|WB_AUTOHSCROLL|WB_BORDER, this ); + m_pListBoxControl = VclPtr<ListBoxControl>::Create( m_xToolbar, WB_DROPDOWN|WB_AUTOHSCROLL|WB_BORDER, this ); if ( nWidth == 0 ) nWidth = 100; @@ -125,7 +125,7 @@ DropdownToolbarController::DropdownToolbarController( ::Size aPixelSize = m_pListBoxControl->LogicToPixel(aLogicalSize, MapMode(MapUnit::MapAppFont)); m_pListBoxControl->SetSizePixel( ::Size( nWidth, aPixelSize.Height() )); - m_pToolbar->SetItemWindow( m_nID, m_pListBoxControl ); + m_xToolbar->SetItemWindow( m_nID, m_pListBoxControl ); m_pListBoxControl->SetDropDownLineCount( 5 ); } @@ -137,7 +137,7 @@ void SAL_CALL DropdownToolbarController::dispose() { SolarMutexGuard aSolarMutexGuard; - m_pToolbar->SetItemWindow( m_nID, nullptr ); + m_xToolbar->SetItemWindow( m_nID, nullptr ); m_pListBoxControl.disposeAndClear(); ComplexToolbarController::dispose(); diff --git a/framework/source/uielement/edittoolbarcontroller.cxx b/framework/source/uielement/edittoolbarcontroller.cxx index 0ec00b73a3e4..2e6164181072 100644 --- a/framework/source/uielement/edittoolbarcontroller.cxx +++ b/framework/source/uielement/edittoolbarcontroller.cxx @@ -116,7 +116,7 @@ EditToolbarController::EditToolbarController( ComplexToolbarController( rxContext, rFrame, pToolbar, nID, aCommand ) , m_pEditControl( nullptr ) { - m_pEditControl = VclPtr<EditControl>::Create( m_pToolbar, WB_BORDER, this ); + m_pEditControl = VclPtr<EditControl>::Create( m_xToolbar, WB_BORDER, this ); if ( nWidth == 0 ) nWidth = 100; @@ -124,7 +124,7 @@ EditToolbarController::EditToolbarController( sal_Int32 nHeight = getFontSizePixel( m_pEditControl ) + 6 + 1; m_pEditControl->SetSizePixel( ::Size( nWidth, nHeight )); - m_pToolbar->SetItemWindow( m_nID, m_pEditControl ); + m_xToolbar->SetItemWindow( m_nID, m_pEditControl ); } EditToolbarController::~EditToolbarController() @@ -135,7 +135,7 @@ void SAL_CALL EditToolbarController::dispose() { SolarMutexGuard aSolarMutexGuard; - m_pToolbar->SetItemWindow( m_nID, nullptr ); + m_xToolbar->SetItemWindow( m_nID, nullptr ); m_pEditControl.disposeAndClear(); ComplexToolbarController::dispose(); diff --git a/framework/source/uielement/generictoolbarcontroller.cxx b/framework/source/uielement/generictoolbarcontroller.cxx index 746f4e18f5ca..770f5860fbef 100644 --- a/framework/source/uielement/generictoolbarcontroller.cxx +++ b/framework/source/uielement/generictoolbarcontroller.cxx @@ -92,7 +92,7 @@ GenericToolbarController::GenericToolbarController( const Reference< XComponentC sal_uInt16 nID, const OUString& aCommand ) : svt::ToolboxController( rxContext, rFrame, aCommand ) - , m_pToolbar( pToolbar ) + , m_xToolbar( pToolbar ) , m_nID( nID ) , m_bEnumCommand( isEnumCommand( aCommand )) , m_bMadeInvisible( false ) @@ -112,7 +112,7 @@ void SAL_CALL GenericToolbarController::dispose() svt::ToolboxController::dispose(); - m_pToolbar.clear(); + m_xToolbar.clear(); m_nID = 0; } @@ -167,11 +167,11 @@ void GenericToolbarController::statusChanged( const FeatureStateEvent& Event ) if ( m_bDisposed ) return; - if ( m_pToolbar ) + if ( m_xToolbar ) { - m_pToolbar->EnableItem( m_nID, Event.IsEnabled ); + m_xToolbar->EnableItem( m_nID, Event.IsEnabled ); - ToolBoxItemBits nItemBits = m_pToolbar->GetItemBits( m_nID ); + ToolBoxItemBits nItemBits = m_xToolbar->GetItemBits( m_nID ); nItemBits &= ~ToolBoxItemBits::CHECKABLE; TriState eTri = TRISTATE_FALSE; @@ -185,8 +185,8 @@ void GenericToolbarController::statusChanged( const FeatureStateEvent& Event ) { // Boolean, treat it as checked/unchecked if ( m_bMadeInvisible ) - m_pToolbar->ShowItem( m_nID ); - m_pToolbar->CheckItem( m_nID, bValue ); + m_xToolbar->ShowItem( m_nID ); + m_xToolbar->CheckItem( m_nID, bValue ); if ( bValue ) eTri = TRISTATE_TRUE; nItemBits |= ToolBoxItemBits::CHECKABLE; @@ -197,7 +197,7 @@ void GenericToolbarController::statusChanged( const FeatureStateEvent& Event ) { bValue = aStrValue == m_aEnumCommand; - m_pToolbar->CheckItem( m_nID, bValue ); + m_xToolbar->CheckItem( m_nID, bValue ); if ( bValue ) eTri = TRISTATE_TRUE; nItemBits |= ToolBoxItemBits::CHECKABLE; @@ -217,24 +217,24 @@ void GenericToolbarController::statusChanged( const FeatureStateEvent& Event ) { aStrValue = FwkResId(STR_SAVECOPYDOC) + aStrValue.copy( 4 ); } - m_pToolbar->SetItemText( m_nID, aStrValue ); + m_xToolbar->SetItemText( m_nID, aStrValue ); // tdf#124267 strip mnemonic from tooltip - m_pToolbar->SetQuickHelpText(m_nID, aStrValue.replaceFirst("~", "")); + m_xToolbar->SetQuickHelpText(m_nID, aStrValue.replaceFirst("~", "")); } if ( m_bMadeInvisible ) - m_pToolbar->ShowItem( m_nID ); + m_xToolbar->ShowItem( m_nID ); } else if (( Event.State >>= aItemState ) && !m_bEnumCommand ) { eTri = TRISTATE_INDET; nItemBits |= ToolBoxItemBits::CHECKABLE; if ( m_bMadeInvisible ) - m_pToolbar->ShowItem( m_nID ); + m_xToolbar->ShowItem( m_nID ); } else if ( Event.State >>= aItemVisibility ) { - m_pToolbar->ShowItem( m_nID, aItemVisibility.bVisible ); + m_xToolbar->ShowItem( m_nID, aItemVisibility.bVisible ); m_bMadeInvisible = !aItemVisibility.bVisible; } else if ( Event.State >>= aControlCommand ) @@ -247,19 +247,19 @@ void GenericToolbarController::statusChanged( const FeatureStateEvent& Event ) { OUString aHelpText; aControlCommand.Arguments[i].Value >>= aHelpText; - m_pToolbar->SetQuickHelpText(m_nID, aHelpText); + m_xToolbar->SetQuickHelpText(m_nID, aHelpText); break; } } } if ( m_bMadeInvisible ) - m_pToolbar->ShowItem( m_nID ); + m_xToolbar->ShowItem( m_nID ); } else if ( m_bMadeInvisible ) - m_pToolbar->ShowItem( m_nID ); + m_xToolbar->ShowItem( m_nID ); - m_pToolbar->SetItemState( m_nID, eTri ); - m_pToolbar->SetItemBits( m_nID, nItemBits ); + m_xToolbar->SetItemState( m_nID, eTri ); + m_xToolbar->SetItemBits( m_nID, nItemBits ); } } diff --git a/framework/source/uielement/imagebuttontoolbarcontroller.cxx b/framework/source/uielement/imagebuttontoolbarcontroller.cxx index 18b23dd41628..9ad5cc47885e 100644 --- a/framework/source/uielement/imagebuttontoolbarcontroller.cxx +++ b/framework/source/uielement/imagebuttontoolbarcontroller.cxx @@ -66,7 +66,7 @@ ImageButtonToolbarController::ImageButtonToolbarController( Image aImage = AddonsOptions().GetImageFromURL( aCommand, bBigImages, true ); // Height will be controlled by scaling according to button height - m_pToolbar->SetItemImage( m_nID, aImage ); + m_xToolbar->SetItemImage( m_nID, aImage ); } ImageButtonToolbarController::~ImageButtonToolbarController() @@ -100,7 +100,7 @@ void ImageButtonToolbarController::executeControlCommand( const css::frame::Cont aURL, aImage )) { - m_pToolbar->SetItemImage( m_nID, aImage ); + m_xToolbar->SetItemImage( m_nID, aImage ); // send notification uno::Sequence< beans::NamedValue > aInfo { { "URL", css::uno::makeAny(aURL) } }; diff --git a/framework/source/uielement/spinfieldtoolbarcontroller.cxx b/framework/source/uielement/spinfieldtoolbarcontroller.cxx index ae51cc6063ea..0f329d9681ec 100644 --- a/framework/source/uielement/spinfieldtoolbarcontroller.cxx +++ b/framework/source/uielement/spinfieldtoolbarcontroller.cxx @@ -160,7 +160,7 @@ SpinfieldToolbarController::SpinfieldToolbarController( , m_nStep( 0.0 ) , m_pSpinfieldControl( nullptr ) { - m_pSpinfieldControl = VclPtr<SpinfieldControl>::Create( m_pToolbar, WB_SPIN|WB_BORDER, this ); + m_pSpinfieldControl = VclPtr<SpinfieldControl>::Create( m_xToolbar, WB_SPIN|WB_BORDER, this ); if ( nWidth == 0 ) nWidth = 100; @@ -168,7 +168,7 @@ SpinfieldToolbarController::SpinfieldToolbarController( sal_Int32 nHeight = getFontSizePixel( m_pSpinfieldControl ) + 5 + 1; m_pSpinfieldControl->SetSizePixel( ::Size( nWidth, nHeight )); - m_pToolbar->SetItemWindow( m_nID, m_pSpinfieldControl ); + m_xToolbar->SetItemWindow( m_nID, m_pSpinfieldControl ); } SpinfieldToolbarController::~SpinfieldToolbarController() @@ -179,7 +179,7 @@ void SAL_CALL SpinfieldToolbarController::dispose() { SolarMutexGuard aSolarMutexGuard; - m_pToolbar->SetItemWindow( m_nID, nullptr ); + m_xToolbar->SetItemWindow( m_nID, nullptr ); m_pSpinfieldControl.disposeAndClear(); ComplexToolbarController::dispose(); diff --git a/framework/source/uielement/togglebuttontoolbarcontroller.cxx b/framework/source/uielement/togglebuttontoolbarcontroller.cxx index 8cd8a94b51f0..ca2d4312c443 100644 --- a/framework/source/uielement/togglebuttontoolbarcontroller.cxx +++ b/framework/source/uielement/togglebuttontoolbarcontroller.cxx @@ -45,9 +45,9 @@ ToggleButtonToolbarController::ToggleButtonToolbarController( ComplexToolbarController( rxContext, rFrame, pToolbar, nID, aCommand ) { if ( eStyle == Style::DropDownButton ) - m_pToolbar->SetItemBits( m_nID, ToolBoxItemBits::DROPDOWNONLY | m_pToolbar->GetItemBits( m_nID ) ); + m_xToolbar->SetItemBits( m_nID, ToolBoxItemBits::DROPDOWNONLY | m_xToolbar->GetItemBits( m_nID ) ); else // Style::ToggleDropDownButton - m_pToolbar->SetItemBits( m_nID, ToolBoxItemBits::DROPDOWN | m_pToolbar->GetItemBits( m_nID ) ); + m_xToolbar->SetItemBits( m_nID, ToolBoxItemBits::DROPDOWN | m_xToolbar->GetItemBits( m_nID ) ); } ToggleButtonToolbarController::~ToggleButtonToolbarController() @@ -94,10 +94,10 @@ uno::Reference< awt::XWindow > SAL_CALL ToggleButtonToolbarController::createPop aPopup->SetTipHelpText( sal_uInt16( i+1 ), m_aDropdownMenuList[i].mTipHelpText ); } - m_pToolbar->SetItemDown( m_nID, true ); + m_xToolbar->SetItemDown( m_nID, true ); aPopup->SetSelectHdl( LINK( this, ToggleButtonToolbarController, MenuSelectHdl )); - aPopup->Execute( m_pToolbar, m_pToolbar->GetItemRect( m_nID )); - m_pToolbar->SetItemDown( m_nID, false ); + aPopup->Execute( m_xToolbar, m_xToolbar->GetItemRect( m_nID )); + m_xToolbar->SetItemDown( m_nID, false ); return xWindow; } diff --git a/include/sfx2/weldutils.hxx b/include/sfx2/weldutils.hxx index ccca8b393042..e87295c23abc 100644 --- a/include/sfx2/weldutils.hxx +++ b/include/sfx2/weldutils.hxx @@ -38,13 +38,14 @@ private: ControllerContainer; ControllerContainer maControllers; - css::uno::Reference<css::frame::XToolbarController> - GetControllerForCommand(const OUString& rCommand) const; - public: // fill in the label and icons for actions and dispatch the action on item click ToolbarUnoDispatcher(weld::Toolbar& rToolbar, const css::uno::Reference<css::frame::XFrame>& rFrame); + + css::uno::Reference<css::frame::XToolbarController> + GetControllerForCommand(const OUString& rCommand) const; + void dispose(); ~ToolbarUnoDispatcher(); }; diff --git a/include/svtools/popupwindowcontroller.hxx b/include/svtools/popupwindowcontroller.hxx index 41de1cbee9c7..1666c8ad1513 100644 --- a/include/svtools/popupwindowcontroller.hxx +++ b/include/svtools/popupwindowcontroller.hxx @@ -32,6 +32,11 @@ namespace vcl { class Window; } +namespace svtools +{ + class ToolbarPopupBase; +} + namespace svt { class PopupWindowControllerImpl; @@ -45,6 +50,8 @@ public: const OUString& aCommandURL ); virtual ~PopupWindowController() override; + void EndPopupMode(); + virtual VclPtr<vcl::Window> createPopupWindow( vcl::Window* pParent ) = 0; // XServiceInfo @@ -61,6 +68,9 @@ public: // XToolbarController virtual css::uno::Reference< css::awt::XWindow > SAL_CALL createPopupWindow() override; +protected: + std::unique_ptr<svtools::ToolbarPopupBase> mxPopover; + private: std::unique_ptr<PopupWindowControllerImpl, o3tl::default_delete<PopupWindowControllerImpl>> mxImpl; }; diff --git a/include/svtools/toolboxcontroller.hxx b/include/svtools/toolboxcontroller.hxx index 5d86aeb35930..0ec7228fe5a8 100644 --- a/include/svtools/toolboxcontroller.hxx +++ b/include/svtools/toolboxcontroller.hxx @@ -45,6 +45,11 @@ namespace com :: sun :: star :: util { class XURLTransformer; } class ToolBox; +namespace weld +{ + class Toolbar; +} + namespace svt { @@ -165,8 +170,9 @@ class SVT_DLLPUBLIC ToolboxController : // TODO remove const css::uno::Reference< css::awt::XWindow >& getParent() const { return m_xParentWindow;} - bool m_bInitialized : 1, - m_bDisposed : 1; + bool m_bInitialized, + m_bDisposed, + m_bSidebar; sal_uInt16 m_nToolBoxId; css::uno::Reference< css::frame::XFrame > m_xFrame; css::uno::Reference< css::uno::XComponentContext > m_xContext; @@ -177,6 +183,7 @@ class SVT_DLLPUBLIC ToolboxController : css::uno::Reference< css::awt::XWindow > m_xParentWindow; css::uno::Reference< css::util::XURLTransformer > m_xUrlTransformer; OUString m_sModuleName; + weld::Toolbar* m_pToolbar; }; } diff --git a/include/svx/PaletteManager.hxx b/include/svx/PaletteManager.hxx index 81621e436b0b..d468f0199588 100644 --- a/include/svx/PaletteManager.hxx +++ b/include/svx/PaletteManager.hxx @@ -29,7 +29,7 @@ class SvxColorValueSet; namespace com::sun::star::uno { class XComponentContext; } -namespace svx { class ToolboxButtonColorUpdater; } +namespace svx { class ToolboxButtonColorUpdaterBase; } namespace weld { class Window; } class SVX_DLLPUBLIC PaletteManager @@ -40,7 +40,7 @@ class SVX_DLLPUBLIC PaletteManager sal_uInt16 mnCurrentPalette; long mnColorCount; - svx::ToolboxButtonColorUpdater* mpBtnUpdater; + svx::ToolboxButtonColorUpdaterBase* mpBtnUpdater; XColorListRef pColorList; std::deque<NamedColor> maRecentColors; @@ -69,7 +69,7 @@ public: long GetRecentColorCount() const; void AddRecentColor(const Color& rRecentColor, const OUString& rColorName, bool bFront = true); - void SetBtnUpdater(svx::ToolboxButtonColorUpdater* pBtnUpdater); + void SetBtnUpdater(svx::ToolboxButtonColorUpdaterBase* pBtnUpdater); void PopupColorPicker(weld::Window* pParent, const OUString& aCommand, const Color& rInitialColor); void SetColorSelectFunction(const std::function<void(const OUString&, const NamedColor&)>& aColorSelectFunction); diff --git a/include/svx/colorwindow.hxx b/include/svx/colorwindow.hxx index acc18149e2ca..257d1e6801f7 100644 --- a/include/svx/colorwindow.hxx +++ b/include/svx/colorwindow.hxx @@ -132,6 +132,7 @@ private: std::unique_ptr<weld::Builder> m_xBuilder; const sal_uInt16 theSlotId; + OUString maCommand; weld::Window* const mpParentWindow; MenuOrToolMenuButton maMenuButton; std::shared_ptr<PaletteManager> mxPaletteManager; @@ -150,6 +151,7 @@ private: std::unique_ptr<weld::CustomWeld> mxRecentColorSetWin; weld::Button* mpDefaultButton; + Link<const NamedColor&, void> maSelectedLink; DECL_LINK(SelectHdl, SvtValueSet*, void); DECL_LINK(SelectPaletteHdl, weld::ComboBox&, void); DECL_LINK(AutoColorClickHdl, weld::Button&, void); @@ -160,13 +162,14 @@ private: NamedColor GetAutoColor() const; public: - ColorWindow(std::shared_ptr<PaletteManager> const & rPaletteManager, + ColorWindow(const OUString& rCommand, + std::shared_ptr<PaletteManager> const & rPaletteManager, ColorStatus& rColorStatus, sal_uInt16 nSlotId, const css::uno::Reference< css::frame::XFrame >& rFrame, weld::Window* pParentWindow, const MenuOrToolMenuButton &rMenuButton, ColorSelectFunction const& rColorSelectFunction); - weld::Container* GetWidget() { return mxTopLevel.get(); } + weld::Container* getTopLevel() { return mxTopLevel.get(); } virtual ~ColorWindow() override; void ShowNoneButton(); void SetNoSelection(); @@ -179,6 +182,7 @@ public: virtual void statusChanged( const css::frame::FeatureStateEvent& rEvent ) override; + void SetSelectedHdl( const Link<const NamedColor&, void>& rLink ) { maSelectedLink = rLink; } }; #endif diff --git a/include/svx/itemwin.hxx b/include/svx/itemwin.hxx index 4f4c3ec140a0..889a513586fe 100644 --- a/include/svx/itemwin.hxx +++ b/include/svx/itemwin.hxx @@ -113,6 +113,7 @@ public: void Fill( const XPatternListRef &pList ); static void Fill(weld::ComboBox&, const XHatchListRef &pList); + static void Fill(weld::ComboBox&, const XGradientListRef &pList); static void Fill(weld::ComboBox&, const XBitmapListRef &pList); static void Fill(weld::ComboBox&, const XPatternListRef &pList); diff --git a/include/svx/sidebar/AreaPropertyPanelBase.hxx b/include/svx/sidebar/AreaPropertyPanelBase.hxx index abe5a603514c..bc72b8b7c4aa 100644 --- a/include/svx/sidebar/AreaPropertyPanelBase.hxx +++ b/include/svx/sidebar/AreaPropertyPanelBase.hxx @@ -32,15 +32,11 @@ #include <svx/xflhtit.hxx> #include <svx/xbtmpit.hxx> #include <svx/sidebar/PanelLayout.hxx> -#include <vcl/lstbox.hxx> -#include <vcl/field.hxx> -#include <vcl/slider.hxx> -#include <vcl/fixed.hxx> -#include <vcl/vclptr.hxx> #include <svl/intitem.hxx> #include <svx/svxdllapi.h> #include <sfx2/sidebar/Panel.hxx> +class ToolbarUnoDispatcher; class XFillFloatTransparenceItem; class XFillTransparenceItem; class XFillStyleItem; @@ -117,20 +113,22 @@ protected: XGradient maGradientRect; //ui controls - VclPtr<FixedText> mpColorTextFT; - VclPtr<SvxFillTypeBox> mpLbFillType; - VclPtr<SvxFillAttrBox> mpLbFillAttr; - VclPtr<SvxColorListBox> mpLbFillGradFrom; - VclPtr<SvxColorListBox> mpLbFillGradTo; - VclPtr<sfx2::sidebar::SidebarToolBox> mpToolBoxColor; // for new color picker - VclPtr<FixedText> mpTrspTextFT; - VclPtr<ListBox> mpLBTransType; - VclPtr<MetricField> mpMTRTransparent; - VclPtr<Slider> mpSldTransparent; - VclPtr<ToolBox> mpBTNGradient; - VclPtr<MetricField> mpMTRAngle; - VclPtr<ListBox> mpGradientStyle; - VclPtr<PushButton> mpBmpImport; + std::unique_ptr<weld::Label> mxColorTextFT; + std::unique_ptr<weld::ComboBox> mxLbFillType; + std::unique_ptr<weld::ComboBox> mxLbFillAttr; + std::unique_ptr<ColorListBox> mxLbFillGradFrom; + std::unique_ptr<ColorListBox> mxLbFillGradTo; + std::unique_ptr<weld::Toolbar> mxToolBoxColor; // for new color picker + std::unique_ptr<ToolbarUnoDispatcher> mxColorDispatch; + std::unique_ptr<weld::Label> mxTrspTextFT; + std::unique_ptr<weld::ComboBox> mxLBTransType; + std::unique_ptr<weld::MetricSpinButton> mxMTRTransparent; + std::unique_ptr<weld::Scale> mxSldTransparent; + std::unique_ptr<weld::Toolbar> mxBTNGradient; + std::unique_ptr<weld::MetricSpinButton> mxMTRAngle; + std::unique_ptr<weld::ComboBox> mxGradientStyle; + std::unique_ptr<weld::Button> mxBmpImport; + std::unique_ptr<AreaTransparencyGradientPopup> mxTrGrPopup; std::unique_ptr< XFillStyleItem > mpStyleItem; std::unique_ptr< XFillColorItem > mpColorItem; @@ -138,30 +136,27 @@ protected: std::unique_ptr< XFillHatchItem > mpHatchItem; std::unique_ptr< XFillBitmapItem > mpBitmapItem; - Image maImgAxial; - Image maImgElli; - Image maImgQuad; - Image maImgRadial; - Image maImgSquare; - Image maImgLinear; + OUString maImgAxial; + OUString maImgElli; + OUString maImgQuad; + OUString maImgRadial; + OUString maImgSquare; + OUString maImgLinear; - VclPtr<AreaTransparencyGradientPopup> mxTrGrPopup; VclPtr<sfx2::sidebar::Panel> mpPanel; std::unique_ptr< XFillFloatTransparenceItem > mpFloatTransparenceItem; std::unique_ptr< SfxUInt16Item > mpTransparanceItem; - DECL_LINK(SelectFillTypeHdl, ListBox&, void ); - DECL_LINK(SelectFillAttrHdl, ListBox&, void ); - DECL_LINK(SelectFillColorHdl, SvxColorListBox&, void); - DECL_LINK(ChangeGradientAngle, Edit&, void); - DECL_LINK(ChangeTrgrTypeHdl_Impl, ListBox&, void); - DECL_LINK(ModifyTransparentHdl_Impl, Edit&, void); - DECL_LINK(ModifyTransSliderHdl, Slider*, void); - DECL_LINK(ClickImportBitmapHdl, Button*, void); - - // for transparency gradient - DECL_LINK( ClickTrGrHdl_Impl, ToolBox*, void ); + DECL_LINK(SelectFillTypeHdl, weld::ComboBox&, void ); + DECL_LINK(SelectFillAttrHdl, weld::ComboBox&, void ); + DECL_LINK(SelectFillColorHdl, ColorListBox&, void); + DECL_LINK(ChangeGradientAngle, weld::MetricSpinButton&, void); + DECL_LINK(ChangeTrgrTypeHdl_Impl, weld::ComboBox&, void); + DECL_LINK(ModifyTransparentHdl_Impl, weld::MetricSpinButton&, void); + DECL_LINK(ModifyTransSliderHdl, weld::Scale&, void); + DECL_LINK(ClickImportBitmapHdl, weld::Button&, void); + DECL_LINK(ToolbarHdl_Impl, const OString&, void); void Initialize(); void Update(); diff --git a/include/svx/sidebar/AreaTransparencyGradientPopup.hxx b/include/svx/sidebar/AreaTransparencyGradientPopup.hxx index cbdc5e9a114e..67abcbf6a5cc 100644 --- a/include/svx/sidebar/AreaTransparencyGradientPopup.hxx +++ b/include/svx/sidebar/AreaTransparencyGradientPopup.hxx @@ -19,12 +19,8 @@ #ifndef INCLUDED_SVX_SOURCE_SIDEBAR_AREA_AREATRANSPARENCYGRADIENTPOPUP_HXX #define INCLUDED_SVX_SOURCE_SIDEBAR_AREA_AREATRANSPARENCYGRADIENTPOPUP_HXX -#include <vcl/edit.hxx> -#include <vcl/field.hxx> -#include <vcl/floatwin.hxx> -#include <vcl/toolbox.hxx> +#include <vcl/weld.hxx> -class VclContainer; class XFillFloatTransparenceItem; namespace svx { namespace sidebar { @@ -32,31 +28,35 @@ namespace svx { namespace sidebar { class AreaTransparencyGradientControl; class AreaPropertyPanelBase; -class AreaTransparencyGradientPopup final : public FloatingWindow +class AreaTransparencyGradientPopup final { private: AreaPropertyPanelBase& mrAreaPropertyPanel; - VclPtr<VclContainer> maCenterGrid; - VclPtr<VclContainer> maAngleGrid; - VclPtr<MetricField> maMtrTrgrCenterX; - VclPtr<MetricField> maMtrTrgrCenterY; - VclPtr<MetricField> maMtrTrgrAngle; - VclPtr<ToolBox> maBtnLeft45; - VclPtr<ToolBox> maBtnRight45; - VclPtr<MetricField> maMtrTrgrStartValue; - VclPtr<MetricField> maMtrTrgrEndValue; - VclPtr<MetricField> maMtrTrgrBorder; + std::unique_ptr<weld::Builder> mxBuilder; + std::unique_ptr<weld::Widget> mxTopLevel; + std::unique_ptr<weld::Widget> mxCenterGrid; + std::unique_ptr<weld::Widget> mxAngleGrid; + std::unique_ptr<weld::MetricSpinButton> mxMtrTrgrCenterX; + std::unique_ptr<weld::MetricSpinButton> mxMtrTrgrCenterY; + std::unique_ptr<weld::MetricSpinButton> mxMtrTrgrAngle; + std::unique_ptr<weld::Toolbar> mxBtnLeft45; + std::unique_ptr<weld::Toolbar> mxBtnRight45; + std::unique_ptr<weld::MetricSpinButton> mxMtrTrgrStartValue; + std::unique_ptr<weld::MetricSpinButton> mxMtrTrgrEndValue; + std::unique_ptr<weld::MetricSpinButton> mxMtrTrgrBorder; void InitStatus(XFillFloatTransparenceItem const * pGradientItem); void ExecuteValueModify(sal_uInt8 nStartCol, sal_uInt8 nEndCol); - DECL_LINK(ModifiedTrgrHdl_Impl, Edit&, void); - DECL_LINK(Left_Click45_Impl, ToolBox*, void); - DECL_LINK(Right_Click45_Impl, ToolBox*, void); + DECL_LINK(ModifiedTrgrHdl_Impl, weld::MetricSpinButton&, void); + DECL_LINK(Left_Click45_Impl, const OString&, void); + DECL_LINK(Right_Click45_Impl, const OString&, void); public: - AreaTransparencyGradientPopup(AreaPropertyPanelBase& rPanel); - virtual ~AreaTransparencyGradientPopup() override; - void Rearrange (XFillFloatTransparenceItem const * pItem); - virtual void dispose() override; + AreaTransparencyGradientPopup(AreaPropertyPanelBase& rPanel, weld::Widget* pParent); + ~AreaTransparencyGradientPopup(); + + weld::Widget* getTopLevel() const { return mxTopLevel.get(); } + + void Rearrange(XFillFloatTransparenceItem const * pItem); }; } } // end of namespace svx::sidebar diff --git a/include/svx/tbcontrl.hxx b/include/svx/tbcontrl.hxx index 315fd9e1c57e..226160e422c0 100644 --- a/include/svx/tbcontrl.hxx +++ b/include/svx/tbcontrl.hxx @@ -150,7 +150,7 @@ class PaletteManager; namespace svx { - class ToolboxButtonColorUpdater; + class ToolboxButtonColorUpdaterBase; } class SVX_DLLPUBLIC SvxStyleToolBoxControl final : public SfxToolBoxControl @@ -204,13 +204,15 @@ typedef std::function<void(const OUString&, const NamedColor&)> ColorSelectFunct class SVX_DLLPUBLIC SvxColorToolBoxControl final : public cppu::ImplInheritanceHelper< svt::PopupWindowController, css::frame::XSubToolbarController > { - std::unique_ptr<svx::ToolboxButtonColorUpdater> m_xBtnUpdater; + std::unique_ptr<svx::ToolboxButtonColorUpdaterBase> m_xBtnUpdater; std::shared_ptr<PaletteManager> m_xPaletteManager; ColorStatus m_aColorStatus; bool m_bSplitButton; sal_uInt16 m_nSlotId; ColorSelectFunction m_aColorSelectFunction; DECL_LINK(SelectedHdl, const NamedColor&, void); + DECL_LINK(ToolbarHdl_Impl, const OString&, void); + public: explicit SvxColorToolBoxControl( const css::uno::Reference<css::uno::XComponentContext>& rContext ); virtual ~SvxColorToolBoxControl() override; @@ -265,8 +267,6 @@ private: LanguageType m_eLanguage; sal_uInt32 m_nFormatKey; - weld::Toolbar* m_pToolbar; - std::unique_ptr<svtools::ToolbarPopupBase> m_xPopover; public: static void GetCurrencySymbols( std::vector<OUString>& rList, bool bFlag, std::vector<sal_uInt16>& rCurrencyList ); @@ -277,14 +277,9 @@ public: // XToolbarController virtual void SAL_CALL execute( sal_Int16 nSelectModifier ) override; - // XComponent - virtual void SAL_CALL dispose() override; - using svt::ToolboxController::createPopupWindow; virtual VclPtr<vcl::Window> createPopupWindow( vcl::Window* pParent ) override; - void EndPopupMode(); - // XServiceInfo virtual OUString SAL_CALL getImplementationName() override; virtual css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override; diff --git a/include/svx/tbxcolorupdate.hxx b/include/svx/tbxcolorupdate.hxx index e37f7f1f0e4d..460635c0ac52 100644 --- a/include/svx/tbxcolorupdate.hxx +++ b/include/svx/tbxcolorupdate.hxx @@ -24,13 +24,18 @@ #include <tools/gen.hxx> #include <tools/color.hxx> +#include <vcl/vclenum.hxx> #include <vcl/vclptr.hxx> - #include <svx/Palette.hxx> +#include <com/sun/star/frame/XFrame.hpp> class ToolBox; class VirtualDevice; +namespace weld +{ + class Toolbar; +} namespace svx { @@ -42,12 +47,14 @@ namespace svx formerly known as SvxTbxButtonColorUpdater_Impl, residing in svx/source/tbxctrls/colorwindow.hxx. */ - class ToolboxButtonColorUpdater + class ToolboxButtonColorUpdaterBase { public: - ToolboxButtonColorUpdater( sal_uInt16 nSlotId, sal_uInt16 nTbxBtnId, ToolBox* ptrTbx, bool bWideButton, - const OUString& rCommandLabel ); - ~ToolboxButtonColorUpdater(); + ToolboxButtonColorUpdaterBase(bool bWideButton, const OUString& rCommandLabel, + const OUString& rCommandURL, + const css::uno::Reference<css::frame::XFrame>& rFrame); + + virtual ~ToolboxButtonColorUpdaterBase(); void Update( const NamedColor& rNamedColor ); void Update( const Color& rColor, bool bForceUpdate = false ); @@ -55,22 +62,67 @@ namespace svx OUString GetCurrentColorName(); private: - ToolboxButtonColorUpdater(ToolboxButtonColorUpdater const &) = delete; - ToolboxButtonColorUpdater& operator =(ToolboxButtonColorUpdater const &) = delete; + ToolboxButtonColorUpdaterBase(ToolboxButtonColorUpdaterBase const &) = delete; + ToolboxButtonColorUpdaterBase& operator =(ToolboxButtonColorUpdaterBase const &) = delete; - bool const mbWideButton; - sal_uInt16 const mnBtnId; - VclPtr<ToolBox> mpTbx; + protected: + bool const mbWideButton; + bool mbWasHiContrastMode; Color maCurColor; tools::Rectangle maUpdRect; Size maBmpSize; - bool mbWasHiContrastMode; OUString maCommandLabel; + OUString maCommandURL; + css::uno::Reference<css::frame::XFrame> mxFrame; + + void Init(sal_uInt16 nSlotId); + + virtual void SetQuickHelpText(const OUString& rText) = 0; + virtual OUString GetQuickHelpText() const = 0; + virtual void SetImage(VirtualDevice* pVirDev) = 0; + virtual VclPtr<VirtualDevice> CreateVirtualDevice() const = 0; + virtual vcl::ImageType GetImageSize() const = 0; + virtual Size GetItemSize() const = 0; }; + class VclToolboxButtonColorUpdater : public ToolboxButtonColorUpdaterBase + { + public: + VclToolboxButtonColorUpdater(sal_uInt16 nSlotId, sal_uInt16 nTbxBtnId, ToolBox* ptrTbx, bool bWideButton, + const OUString& rCommandLabel, const OUString& rCommandURL, + const css::uno::Reference<css::frame::XFrame>& rFrame); -} + private: + sal_uInt16 const mnBtnId; + VclPtr<ToolBox> mpTbx; + + virtual void SetQuickHelpText(const OUString& rText) override; + virtual OUString GetQuickHelpText() const override; + virtual void SetImage(VirtualDevice* pVirDev) override; + virtual VclPtr<VirtualDevice> CreateVirtualDevice() const override; + virtual vcl::ImageType GetImageSize() const override; + virtual Size GetItemSize() const override; + }; + + class ToolboxButtonColorUpdater : public ToolboxButtonColorUpdaterBase + { + public: + ToolboxButtonColorUpdater(sal_uInt16 nSlotId, const OString& rTbxBtnId, weld::Toolbar* ptrTbx, bool bWideButton, + const OUString& rCommandLabel, const css::uno::Reference<css::frame::XFrame>& rFrame); + + private: + OString msBtnId; + weld::Toolbar* mpTbx; + + virtual void SetQuickHelpText(const OUString& rText) override; + virtual OUString GetQuickHelpText() const override; + virtual void SetImage(VirtualDevice* pVirDev) override; + virtual VclPtr<VirtualDevice> CreateVirtualDevice() const override; + virtual vcl::ImageType GetImageSize() const override; + virtual Size GetItemSize() const override; + }; +} #endif // INCLUDED_SVX_TBXCOLORUPDATE_HXX diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index 8c20ef58cda4..c8ccf4291338 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -1973,6 +1973,12 @@ public: virtual void set_item_label(const OString& rIdent, const OUString& rLabel) = 0; virtual OUString get_item_label(const OString& rIdent) const = 0; virtual void set_item_tooltip_text(const OString& rIdent, const OUString& rTip) = 0; + virtual OUString get_item_tooltip_text(const OString& rIdent) const = 0; + virtual void set_item_icon_name(const OString& rIdent, const OUString& rIconName) = 0; + virtual void set_item_image(const OString& rIdent, + const css::uno::Reference<css::graphic::XGraphic>& rIcon) + = 0; + virtual void set_item_image(const OString& rIdent, VirtualDevice* pDevice) = 0; virtual void insert_separator(int pos, const OUString& rId) = 0; void append_separator(const OUString& rId) { insert_separator(-1, rId); } @@ -1981,7 +1987,8 @@ public: virtual OString get_item_ident(int nIndex) const = 0; virtual void set_item_ident(int nIndex, const OString& rIdent) = 0; virtual void set_item_label(int nIndex, const OUString& rLabel) = 0; - virtual void set_item_icon(int nIndex, const css::uno::Reference<css::graphic::XGraphic>& rIcon) + virtual void set_item_image(int nIndex, + const css::uno::Reference<css::graphic::XGraphic>& rIcon) = 0; virtual void set_item_tooltip_text(int nIndex, const OUString& rTip) = 0; diff --git a/reportdesign/source/ui/dlg/Condition.cxx b/reportdesign/source/ui/dlg/Condition.cxx index f76fe4935d69..b2add1cb3709 100644 --- a/reportdesign/source/ui/dlg/Condition.cxx +++ b/reportdesign/source/ui/dlg/Condition.cxx @@ -166,6 +166,7 @@ Condition::~Condition() void Condition::SetBackgroundDropdownClick() { m_xBackColorFloat.reset(new ColorWindow( + OUString() /*m_aCommandURL*/, m_xPaletteManager, m_aColorStatus, SID_BACKGROUND_COLOR, @@ -174,12 +175,13 @@ void Condition::SetBackgroundDropdownClick() MenuOrToolMenuButton(m_xActions.get(), "background"), m_aBackColorWrapper)); - m_xActions->set_item_popover("background", m_xBackColorFloat->GetWidget()); + m_xActions->set_item_popover("background", m_xBackColorFloat->getTopLevel()); } void Condition::SetForegroundDropdownClick() { m_xForeColorFloat.reset(new ColorWindow( + OUString() /*m_aCommandURL*/, m_xPaletteManager, m_aColorStatus, SID_ATTR_CHAR_COLOR2, @@ -188,7 +190,7 @@ void Condition::SetForegroundDropdownClick() MenuOrToolMenuButton(m_xActions.get(), "foreground"), m_aForeColorWrapper)); - m_xActions->set_item_popover("foreground", m_xForeColorFloat->GetWidget()); + m_xActions->set_item_popover("foreground", m_xForeColorFloat->getTopLevel()); } diff --git a/reportdesign/source/ui/dlg/Condition.hxx b/reportdesign/source/ui/dlg/Condition.hxx index 4f263f815ba6..641c1a2bf5dc 100644 --- a/reportdesign/source/ui/dlg/Condition.hxx +++ b/reportdesign/source/ui/dlg/Condition.hxx @@ -32,8 +32,6 @@ #include <memory> -namespace svx { class ToolboxButtonColorUpdater; } - namespace rptui { class OColorPopup; diff --git a/sc/inc/pch/precompiled_sc.hxx b/sc/inc/pch/precompiled_sc.hxx index 424eaa02758a..fabc4b884701 100644 --- a/sc/inc/pch/precompiled_sc.hxx +++ b/sc/inc/pch/precompiled_sc.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:20:23 using: + Generated on 2020-01-02 15:21:26 using: ./bin/update_pch sc sc --cutoff=12 --exclude:system --include:module --include:local If after updating build fails, use the following command to locate conflicting headers: @@ -472,6 +472,7 @@ #include <formula/token.hxx> #include <formula/vectortoken.hxx> #include <formulacell.hxx> +#include <funcdesc.hxx> #include <global.hxx> #include <globalnames.hxx> #include <hints.hxx> diff --git a/sc/inc/pch/precompiled_scfilt.hxx b/sc/inc/pch/precompiled_scfilt.hxx index d13e9f4a854a..e64703567778 100644 --- a/sc/inc/pch/precompiled_scfilt.hxx +++ b/sc/inc/pch/precompiled_scfilt.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-10-17 16:10:56 using: + Generated on 2020-01-02 15:19:32 using: ./bin/update_pch sc scfilt --cutoff=4 --exclude:system --exclude:module --include:local If after updating build fails, use the following command to locate conflicting headers: @@ -40,12 +40,12 @@ #include <string.h> #include <string_view> #include <type_traits> +#include <typeinfo> #include <unordered_map> #include <unordered_set> #include <utility> #include <vector> -#include <o3tl/optional.hxx> -#include <boost/property_tree/ptree.hpp> +#include <boost/property_tree/ptree_fwd.hpp> #endif // PCH_LEVEL >= 1 #if PCH_LEVEL >= 2 #include <osl/diagnose.h> @@ -102,7 +102,9 @@ #include <com/sun/star/awt/Point.hpp> #include <com/sun/star/awt/Size.hpp> #include <com/sun/star/beans/PropertyState.hpp> +#include <com/sun/star/beans/XMultiPropertySet.hpp> #include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/beans/XPropertyState.hpp> #include <com/sun/star/chart/XChartDocument.hpp> #include <com/sun/star/container/XIndexAccess.hpp> #include <com/sun/star/container/XIndexContainer.hpp> @@ -116,6 +118,7 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/lang/XTypeProvider.hpp> +#include <com/sun/star/lang/XUnoTunnel.hpp> #include <com/sun/star/sheet/DataPilotFieldGroupBy.hpp> #include <com/sun/star/sheet/DataPilotFieldReferenceItemType.hpp> #include <com/sun/star/sheet/FormulaLanguage.hpp> @@ -134,11 +137,13 @@ #include <com/sun/star/xml/sax/XFastContextHandler.hpp> #include <comphelper/comphelperdllapi.h> #include <comphelper/processfactory.hxx> +#include <comphelper/servicehelper.hxx> #include <comphelper/string.hxx> #include <cppu/unotype.hxx> #include <cppuhelper/implbase.hxx> #include <cppuhelper/implbase_ex.hxx> #include <cppuhelper/weak.hxx> +#include <cppuhelper/weakref.hxx> #include <drawinglayer/primitive2d/baseprimitive2d.hxx> #include <editeng/borderline.hxx> #include <editeng/boxitem.hxx> @@ -161,6 +166,7 @@ #include <filter/msfilter/msfilterdllapi.h> #include <i18nlangtag/lang.h> #include <o3tl/cow_wrapper.hxx> +#include <o3tl/optional.hxx> #include <o3tl/strong_int.hxx> #include <o3tl/typed_flags_set.hxx> #include <o3tl/underlyingenumvalue.hxx> @@ -204,13 +210,16 @@ #include <svl/typedwhich.hxx> #include <svl/zforlist.hxx> #include <svtools/svtdllapi.h> +#include <svx/DiagramDataInterface.hxx> #include <svx/itextprovider.hxx> #include <svx/msdffdef.hxx> #include <svx/sdtaditm.hxx> #include <svx/sdtaitm.hxx> #include <svx/sdtakitm.hxx> +#include <svx/shapeproperty.hxx> #include <svx/svddef.hxx> #include <svx/svdoattr.hxx> +#include <svx/svdobj.hxx> #include <svx/svdoole2.hxx> #include <svx/svdorect.hxx> #include <svx/svdotext.hxx> @@ -224,6 +233,7 @@ #include <tools/color.hxx> #include <tools/date.hxx> #include <tools/datetime.hxx> +#include <tools/diagnose_ex.h> #include <tools/gen.hxx> #include <tools/link.hxx> #include <tools/mapunit.hxx> @@ -232,6 +242,7 @@ #include <tools/time.hxx> #include <tools/toolsdllapi.h> #include <tools/urlobj.hxx> +#include <tools/weakbase.h> #include <typelib/typedescription.h> #include <uno/data.h> #include <unotools/charclass.hxx> diff --git a/sc/inc/pch/precompiled_scui.hxx b/sc/inc/pch/precompiled_scui.hxx index 61dee39e0410..e01d112a6cc4 100644 --- a/sc/inc/pch/precompiled_scui.hxx +++ b/sc/inc/pch/precompiled_scui.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-10-15 16:58:12 using: + Generated on 2020-01-02 15:21:50 using: ./bin/update_pch sc scui --cutoff=1 --exclude:system --exclude:module --include:local If after updating build fails, use the following command to locate conflicting headers: @@ -34,14 +34,7 @@ #include <rtl/ustrbuf.hxx> #include <sal/config.h> #include <sal/types.h> -#include <vcl/button.hxx> -#include <vcl/combobox.hxx> -#include <vcl/edit.hxx> #include <vcl/event.hxx> -#include <vcl/field.hxx> -#include <vcl/fixed.hxx> -#include <vcl/lstbox.hxx> -#include <vcl/ptrstyle.hxx> #include <vcl/settings.hxx> #include <vcl/svapp.hxx> #include <vcl/weld.hxx> @@ -92,6 +85,7 @@ #include <svtools/ctrlbox.hxx> #include <svtools/ehdl.hxx> #include <svtools/inettbc.hxx> +#include <svtools/miscopt.hxx> #include <svtools/restartdialog.hxx> #include <svtools/sfxecode.hxx> #include <svtools/unitconv.hxx> diff --git a/sd/inc/pch/precompiled_sd.hxx b/sd/inc/pch/precompiled_sd.hxx index b2c4f9364bc1..b3c53e6d3828 100644 --- a/sd/inc/pch/precompiled_sd.hxx +++ b/sd/inc/pch/precompiled_sd.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-01 19:53:21 using: + Generated on 2020-01-02 15:15:28 using: ./bin/update_pch sd sd --cutoff=4 --exclude:system --exclude:module --include:local If after updating build fails, use the following command to locate conflicting headers: @@ -41,6 +41,7 @@ #include <vector> #include <boost/property_tree/json_parser.hpp> #include <boost/property_tree/ptree.hpp> +#include <boost/property_tree/ptree_fwd.hpp> #endif // PCH_LEVEL >= 1 #if PCH_LEVEL >= 2 #include <osl/diagnose.h> diff --git a/sd/inc/pch/precompiled_sdui.hxx b/sd/inc/pch/precompiled_sdui.hxx index bfecafbda3c7..7b2124a09afa 100644 --- a/sd/inc/pch/precompiled_sdui.hxx +++ b/sd/inc/pch/precompiled_sdui.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:20:46 using: + Generated on 2020-01-02 15:15:40 using: ./bin/update_pch sd sdui --cutoff=4 --exclude:system --include:module --include:local If after updating build fails, use the following command to locate conflicting headers: @@ -119,7 +119,6 @@ #include <vcl/image.hxx> #include <vcl/keycod.hxx> #include <vcl/keycodes.hxx> -#include <vcl/lstbox.hxx> #include <vcl/mapmod.hxx> #include <vcl/menu.hxx> #include <vcl/metaactiontypes.hxx> diff --git a/sfx2/source/sidebar/ControllerFactory.cxx b/sfx2/source/sidebar/ControllerFactory.cxx index 61ed92452c54..49b67cbf6e07 100644 --- a/sfx2/source/sidebar/ControllerFactory.cxx +++ b/sfx2/source/sidebar/ControllerFactory.cxx @@ -231,6 +231,10 @@ Reference<frame::XToolbarController> ControllerFactory::CreateToolBarController( aPropValue.Value <<= rxToolbar; aPropertyVector.push_back( makeAny( aPropValue )); + aPropValue.Name = "IsSidebar"; + aPropValue.Value <<= true; + aPropertyVector.push_back( makeAny( aPropValue )); + if (nWidth > 0) { aPropValue.Name = "Width"; diff --git a/sfx2/source/toolbox/weldutils.cxx b/sfx2/source/toolbox/weldutils.cxx index 3f2d0970cc6e..52cf254d7b9a 100644 --- a/sfx2/source/toolbox/weldutils.cxx +++ b/sfx2/source/toolbox/weldutils.cxx @@ -57,6 +57,8 @@ ToolbarUnoDispatcher::ToolbarUnoDispatcher(weld::Toolbar& rToolbar, : m_xFrame(rFrame) , m_pToolbar(&rToolbar) { + rToolbar.connect_clicked(LINK(this, ToolbarUnoDispatcher, SelectHdl)); + OUString aModuleName(vcl::CommandInfoProvider::GetModuleIdentifier(rFrame)); vcl::ImageType eSize = rToolbar.get_icon_size(); @@ -75,12 +77,10 @@ ToolbarUnoDispatcher::ToolbarUnoDispatcher(weld::Toolbar& rToolbar, vcl::CommandInfoProvider::GetTooltipForCommand(sCommand, aProperties, rFrame)); rToolbar.set_item_tooltip_text(i, aTooltip); auto xImage(vcl::CommandInfoProvider::GetXGraphicForCommand(sCommand, rFrame, eSize)); - rToolbar.set_item_icon(i, xImage); + rToolbar.set_item_image(i, xImage); CreateController(sCommand); } - - rToolbar.connect_clicked(LINK(this, ToolbarUnoDispatcher, SelectHdl)); } void ToolbarUnoDispatcher::CreateController(const OUString& rCommand) diff --git a/solenv/sanitizers/ui/svx.suppr b/solenv/sanitizers/ui/svx.suppr index b2d33d3c19b6..d089305f2326 100644 --- a/solenv/sanitizers/ui/svx.suppr +++ b/solenv/sanitizers/ui/svx.suppr @@ -60,9 +60,6 @@ svx/uiconfig/ui/redlinefilterpage.ui://GtkLabel[@id='and'] orphan-label svx/uiconfig/ui/safemodedialog.ui://GtkLabel[@id='label1'] orphan-label svx/uiconfig/ui/safemodedialog.ui://GtkLabel[@id='label3'] orphan-label svx/uiconfig/ui/safemodedialog.ui://GtkLabel[@id='label4'] orphan-label -svx/uiconfig/ui/sidebararea.ui://GtkLabel[@id='filllabel'] orphan-label -svx/uiconfig/ui/sidebararea.ui://svxlo-SvxFillAttrBox[@id='fillattr'] missing-label-for -svx/uiconfig/ui/sidebararea.ui://svxlo-SvxFillTypeBox[@id='fillstyle'] missing-label-for svx/uiconfig/ui/sidebararea.ui://GtkLabel[@id='transparencylabel'] orphan-label svx/uiconfig/ui/sidebarshadow.ui://GtkLabel[@id='transparency_label'] orphan-label svx/uiconfig/ui/sidebarshadow.ui://GtkSpinButton[@id='FIELD_TRANSPARENCY'] no-labelled-by diff --git a/svtools/source/uno/popupwindowcontroller.cxx b/svtools/source/uno/popupwindowcontroller.cxx index 0ffb2f5871cd..cc283adbdf42 100644 --- a/svtools/source/uno/popupwindowcontroller.cxx +++ b/svtools/source/uno/popupwindowcontroller.cxx @@ -24,7 +24,9 @@ #include <vcl/toolbox.hxx> #include <vcl/weldutils.hxx> +#include <svtools/framestatuslistener.hxx> #include <svtools/popupwindowcontroller.hxx> +#include <svtools/toolbarmenu.hxx> using namespace ::com::sun::star; using namespace css::uno; @@ -174,6 +176,7 @@ sal_Bool SAL_CALL PopupWindowController::supportsService( const OUString& Servic // XComponent void SAL_CALL PopupWindowController::dispose() { + mxPopover.reset(); mxImpl.reset(); svt::ToolboxController::dispose(); } @@ -233,6 +236,11 @@ Reference< awt::XWindow > SAL_CALL PopupWindowController::createPopupWindow() return Reference< awt::XWindow >(); } +void PopupWindowController::EndPopupMode() +{ + m_pToolbar->set_menu_item_active(m_aCommandURL.toUtf8(), false); +} + } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svtools/source/uno/toolboxcontroller.cxx b/svtools/source/uno/toolboxcontroller.cxx index 8bd9d94f2366..3ff118f31bb5 100644 --- a/svtools/source/uno/toolboxcontroller.cxx +++ b/svtools/source/uno/toolboxcontroller.cxx @@ -29,6 +29,7 @@ #include <vcl/svapp.hxx> #include <toolkit/helper/vclunohelper.hxx> #include <vcl/toolbox.hxx> +#include <vcl/weldutils.hxx> #include <comphelper/processfactory.hxx> const int TOOLBARCONTROLLER_PROPHANDLE_SUPPORTSVISIBLE = 1; @@ -54,11 +55,13 @@ ToolboxController::ToolboxController( , m_bSupportVisible( false ) , m_bInitialized( false ) , m_bDisposed( false ) + , m_bSidebar( false ) , m_nToolBoxId( SAL_MAX_UINT16 ) , m_xFrame( xFrame ) , m_xContext( rxContext ) , m_aCommandURL( aCommandURL ) , m_aListenerContainer( m_aMutex ) + , m_pToolbar(nullptr) { OSL_ASSERT( m_xContext.is() ); registerProperty( TOOLBARCONTROLLER_PROPNAME_SUPPORTSVISIBLE, @@ -80,8 +83,10 @@ ToolboxController::ToolboxController() : , m_bSupportVisible(false) , m_bInitialized( false ) , m_bDisposed( false ) + , m_bSidebar( false ) , m_nToolBoxId( SAL_MAX_UINT16 ) , m_aListenerContainer( m_aMutex ) + , m_pToolbar(nullptr) { registerProperty( TOOLBARCONTROLLER_PROPNAME_SUPPORTSVISIBLE, TOOLBARCONTROLLER_PROPHANDLE_SUPPORTSVISIBLE, @@ -191,6 +196,8 @@ void SAL_CALL ToolboxController::initialize( const Sequence< Any >& aArguments ) aPropValue.Value >>= m_sModuleName; else if ( aPropValue.Name == "Identifier" ) aPropValue.Value >>= m_nToolBoxId; + else if ( aPropValue.Name == "IsSidebar" ) + aPropValue.Value >>= m_bSidebar; } } @@ -205,6 +212,12 @@ void SAL_CALL ToolboxController::initialize( const Sequence< Any >& aArguments ) if ( !m_aCommandURL.isEmpty() ) m_aListenerMap.emplace( m_aCommandURL, Reference< XDispatch >() ); + + if (weld::TransportAsXWindow* pTunnel = dynamic_cast<weld::TransportAsXWindow*>(getParent().get())) + { + m_pToolbar = dynamic_cast<weld::Toolbar*>(pTunnel->getWidget()); + assert(m_pToolbar && "must be a toolbar"); + } } void SAL_CALL ToolboxController::update() diff --git a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx index 0b050bb708a4..e53bd5db11c2 100644 --- a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx +++ b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx @@ -35,13 +35,14 @@ #include <svtools/toolbarmenu.hxx> #include <svx/tbcontrl.hxx> #include <sfx2/opengrf.hxx> +#include <sfx2/weldutils.hxx> #include <tools/urlobj.hxx> #include <bitmaps.hlst> using namespace css; using namespace css::uno; -const char UNO_SIDEBARGRADIENT[] = ".uno:sidebargradient"; +const char SIDEBARGRADIENT[] = "sidebargradient"; namespace svx { namespace sidebar { @@ -69,7 +70,7 @@ const sal_Int32 AreaPropertyPanelBase::DEFAULT_BORDER = 0; AreaPropertyPanelBase::AreaPropertyPanelBase( vcl::Window* pParent, const css::uno::Reference<css::frame::XFrame>& rxFrame) - : PanelLayout(pParent, "AreaPropertyPanel", "svx/ui/sidebararea.ui", rxFrame), + : PanelLayout(pParent, "AreaPropertyPanel", "svx/ui/sidebararea.ui", rxFrame, true), meLastXFS(static_cast<sal_uInt16>(-1)), mnLastPosHatch(0), mnLastPosBitmap(0), @@ -81,37 +82,36 @@ AreaPropertyPanelBase::AreaPropertyPanelBase( maGradientElliptical(), maGradientSquare(), maGradientRect(), + mxColorTextFT(m_xBuilder->weld_label("filllabel")), + mxLbFillType(m_xBuilder->weld_combo_box("fillstyle")), + mxLbFillAttr(m_xBuilder->weld_combo_box("fillattr")), + mxLbFillGradFrom(new ColorListBox(m_xBuilder->weld_menu_button("fillgrad1"), GetFrameWeld())), + mxLbFillGradTo(new ColorListBox(m_xBuilder->weld_menu_button("fillgrad2"), GetFrameWeld())), + mxToolBoxColor(m_xBuilder->weld_toolbar("selectcolor")), + mxColorDispatch(new ToolbarUnoDispatcher(*mxToolBoxColor, rxFrame)), + mxTrspTextFT(m_xBuilder->weld_label("transparencylabel")), + mxLBTransType(m_xBuilder->weld_combo_box("transtype")), + mxMTRTransparent(m_xBuilder->weld_metric_spin_button("settransparency", FieldUnit::PERCENT)), + mxSldTransparent(m_xBuilder->weld_scale("transparencyslider")), + mxBTNGradient(m_xBuilder->weld_toolbar("selectgradient")), + mxMTRAngle(m_xBuilder->weld_metric_spin_button("gradangle", FieldUnit::DEGREE)), + mxGradientStyle(m_xBuilder->weld_combo_box("gradientstyle")), + mxBmpImport(m_xBuilder->weld_button("bmpimport")), mpStyleItem(), mpColorItem(), mpFillGradientItem(), mpHatchItem(), mpBitmapItem(), - maImgAxial(StockImage::Yes, BMP_AXIAL), - maImgElli(StockImage::Yes, BMP_ELLI), - maImgQuad(StockImage::Yes, BMP_QUAD), - maImgRadial(StockImage::Yes, BMP_RADIAL), - maImgSquare(StockImage::Yes, BMP_SQUARE), - maImgLinear(StockImage::Yes, BMP_LINEAR), + maImgAxial(BMP_AXIAL), + maImgElli(BMP_ELLI), + maImgQuad(BMP_QUAD), + maImgRadial(BMP_RADIAL), + maImgSquare(BMP_SQUARE), + maImgLinear(BMP_LINEAR), mpFloatTransparenceItem(), mpTransparanceItem() { - get(mpColorTextFT, "filllabel"); - get(mpLbFillType, "fillstyle"); - get(mpLbFillAttr, "fillattr"); - get(mpTrspTextFT, "transparencylabel"); - get(mpToolBoxColor, "selectcolor"); - get(mpLBTransType, "transtype"); - get(mpMTRTransparent, "settransparency"); - get(mpSldTransparent, "transparencyslider"); - get(mpBTNGradient, "selectgradient"); - get(mpMTRAngle, "gradangle"); - get(mpLbFillGradFrom, "fillgrad1"); - get(mpLbFillGradTo, "fillgrad2"); - get(mpGradientStyle, "gradientstyle"); - get(mpBmpImport, "bmpimport"); mpPanel = dynamic_cast<sfx2::sidebar::Panel*>(pParent); - - Initialize(); } AreaPropertyPanelBase::~AreaPropertyPanelBase() @@ -121,21 +121,22 @@ AreaPropertyPanelBase::~AreaPropertyPanelBase() void AreaPropertyPanelBase::dispose() { - mxTrGrPopup.disposeAndClear(); - mpColorTextFT.clear(); - mpLbFillType.clear(); - mpLbFillAttr.clear(); - mpToolBoxColor.clear(); - mpTrspTextFT.clear(); - mpLBTransType.clear(); - mpMTRTransparent.clear(); - mpSldTransparent.clear(); - mpBTNGradient.clear(); - mpMTRAngle.clear(); - mpLbFillGradFrom.clear(); - mpLbFillGradTo.clear(); - mpGradientStyle.clear(); - mpBmpImport.clear(); + mxTrGrPopup.reset(); + mxColorTextFT.reset(); + mxLbFillType.reset(); + mxLbFillAttr.reset(); + mxColorDispatch.reset(); + mxToolBoxColor.reset(); + mxTrspTextFT.reset(); + mxLBTransType.reset(); + mxMTRTransparent.reset(); + mxSldTransparent.reset(); + mxBTNGradient.reset(); + mxMTRAngle.reset(); + mxLbFillGradFrom.reset(); + mxLbFillGradTo.reset(); + mxGradientStyle.reset(); + mxBmpImport.reset(); mpPanel.clear(); PanelLayout::dispose(); @@ -143,6 +144,8 @@ void AreaPropertyPanelBase::dispose() void AreaPropertyPanelBase::Initialize() { + FillTypeLB::Fill(*mxLbFillType); + maGradientLinear.SetXOffset(DEFAULT_CENTERX); maGradientLinear.SetYOffset(DEFAULT_CENTERY); maGradientLinear.SetAngle(DEFAULT_ANGLE); @@ -167,39 +170,44 @@ void AreaPropertyPanelBase::Initialize() maGradientRect.SetGradientStyle(css::awt::GradientStyle_RECT); - mpLbFillType->SetSelectHdl( LINK( this, AreaPropertyPanelBase, SelectFillTypeHdl ) ); + mxLbFillType->connect_changed( LINK( this, AreaPropertyPanelBase, SelectFillTypeHdl ) ); - Link<ListBox&,void> aLink = LINK( this, AreaPropertyPanelBase, SelectFillAttrHdl ); - Link<SvxColorListBox&,void> aLink3 = LINK( this, AreaPropertyPanelBase, SelectFillColorHdl ); - mpLbFillAttr->SetSelectHdl( aLink ); - mpGradientStyle->SetSelectHdl( aLink ); - mpLbFillGradFrom->SetSelectHdl( aLink3 ); - mpLbFillGradTo->SetSelectHdl( aLink3 ); - mpMTRAngle->SetModifyHdl(LINK(this,AreaPropertyPanelBase, ChangeGradientAngle)); + Link<weld::ComboBox&,void> aLink = LINK( this, AreaPropertyPanelBase, SelectFillAttrHdl ); + mxLbFillAttr->connect_changed( aLink ); + mxGradientStyle->connect_changed( aLink ); + Link<ColorListBox&,void> aLink3 = LINK( this, AreaPropertyPanelBase, SelectFillColorHdl ); + mxLbFillGradFrom->SetSelectHdl( aLink3 ); + mxLbFillGradTo->SetSelectHdl( aLink3 ); + mxMTRAngle->connect_value_changed(LINK(this,AreaPropertyPanelBase, ChangeGradientAngle)); - mpLBTransType->SetSelectHdl(LINK(this, AreaPropertyPanelBase, ChangeTrgrTypeHdl_Impl)); + mxLBTransType->connect_changed(LINK(this, AreaPropertyPanelBase, ChangeTrgrTypeHdl_Impl)); SetTransparency( 50 ); - mpMTRTransparent->SetModifyHdl(LINK(this, AreaPropertyPanelBase, ModifyTransparentHdl_Impl)); - mpSldTransparent->SetSlideHdl(LINK(this, AreaPropertyPanelBase, ModifyTransSliderHdl)); - - const sal_uInt16 nIdGradient = mpBTNGradient->GetItemId(UNO_SIDEBARGRADIENT); - mpBTNGradient->SetItemBits( nIdGradient, mpBTNGradient->GetItemBits( nIdGradient ) | ToolBoxItemBits::DROPDOWNONLY ); - Link<ToolBox *, void> aLink2 = LINK( this, AreaPropertyPanelBase, ClickTrGrHdl_Impl ); - mpBTNGradient->SetDropdownClickHdl( aLink2 ); - mpBTNGradient->SetSelectHdl( aLink2 ); - mpBTNGradient->SetItemImage(nIdGradient,maImgLinear); - mpBTNGradient->Hide(); - mpBmpImport->SetClickHdl( LINK(this, AreaPropertyPanelBase, ClickImportBitmapHdl)); + mxMTRTransparent->connect_value_changed(LINK(this, AreaPropertyPanelBase, ModifyTransparentHdl_Impl)); + mxSldTransparent->connect_value_changed(LINK(this, AreaPropertyPanelBase, ModifyTransSliderHdl)); + + mxTrGrPopup = std::make_unique<AreaTransparencyGradientPopup>(*this, mxBTNGradient.get()); + + mxBTNGradient->set_item_popover(SIDEBARGRADIENT, mxTrGrPopup->getTopLevel()); + mxBTNGradient->connect_clicked(LINK(this, AreaPropertyPanelBase, ToolbarHdl_Impl)); + + mxBTNGradient->set_item_icon_name(SIDEBARGRADIENT, maImgLinear); + mxBTNGradient->hide(); + mxBmpImport->connect_clicked( LINK(this, AreaPropertyPanelBase, ClickImportBitmapHdl)); +} + +IMPL_LINK_NOARG(AreaPropertyPanelBase, ToolbarHdl_Impl, const OString&, void) +{ + mxBTNGradient->set_menu_item_active(SIDEBARGRADIENT, !mxBTNGradient->get_menu_item_active(SIDEBARGRADIENT)); } void AreaPropertyPanelBase::SetTransparency(sal_uInt16 nVal) { - mpSldTransparent->SetThumbPos(nVal); - mpMTRTransparent->SetValue(nVal); + mxSldTransparent->set_value(nVal); + mxMTRTransparent->set_value(nVal, FieldUnit::PERCENT); } -IMPL_LINK_NOARG(AreaPropertyPanelBase, ClickImportBitmapHdl, Button*, void) +IMPL_LINK_NOARG(AreaPropertyPanelBase, ClickImportBitmapHdl, weld::Button&, void) { SvxOpenGraphicDialog aDlg("Import", GetFrameWeld()); aDlg.EnableLink(false); @@ -232,18 +240,18 @@ IMPL_LINK_NOARG(AreaPropertyPanelBase, ClickImportBitmapHdl, Button*, void) pList->Insert(std::make_unique<XBitmapEntry>(aGraphic, aName)); pList->Save(); - mpLbFillAttr->Clear(); - mpLbFillAttr->Fill(pList); - mpLbFillAttr->SelectEntry(aName); - SelectFillAttrHdl(*mpLbFillAttr); + mxLbFillAttr->clear(); + SvxFillAttrBox::Fill(*mxLbFillAttr, pList); + mxLbFillAttr->set_active_text(aName); + SelectFillAttrHdl(*mxLbFillAttr); } } } -IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillTypeHdl, ListBox&, void) +IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillTypeHdl, weld::ComboBox&, void) { - sal_Int32 nPos = static_cast<eFillStyle>(mpLbFillType->GetSelectedEntryPos()); - mpLbFillAttr->Clear(); + sal_Int32 nPos = static_cast<eFillStyle>(mxLbFillType->get_active()); + mxLbFillAttr->clear(); SfxObjectShell* pSh = SfxObjectShell::Current(); if(!pSh) return; @@ -257,15 +265,14 @@ IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillTypeHdl, ListBox&, void) default: case NONE: { - mpLbFillAttr->Show(); - mpLbFillGradFrom->Hide(); - mpLbFillGradTo->Hide(); - mpGradientStyle->Hide(); - mpMTRAngle->Hide(); - mpToolBoxColor->Hide(); - mpBmpImport->Hide(); - mpLbFillType->Selected(); - mpLbFillAttr->Disable(); + mxLbFillAttr->show(); + mxLbFillGradFrom->hide(); + mxLbFillGradTo->hide(); + mxGradientStyle->hide(); + mxMTRAngle->hide(); + mxToolBoxColor->hide(); + mxBmpImport->hide(); + mxLbFillAttr->set_sensitive(false); // #i122676# need to call a single SID_ATTR_FILL_STYLE change setFillStyle(XFillStyleItem(drawing::FillStyle_NONE)); @@ -273,13 +280,13 @@ IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillTypeHdl, ListBox&, void) } case SOLID: { - mpLbFillAttr->Hide(); - mpLbFillGradFrom->Hide(); - mpLbFillGradTo->Hide(); - mpGradientStyle->Hide(); - mpMTRAngle->Hide(); - mpBmpImport->Hide(); - mpToolBoxColor->Show(); + mxLbFillAttr->hide(); + mxLbFillGradFrom->hide(); + mxLbFillGradTo->hide(); + mxGradientStyle->hide(); + mxMTRAngle->hide(); + mxBmpImport->hide(); + mxToolBoxColor->show(); const OUString aTmpStr; const Color aColor = mpColorItem ? mpColorItem->GetColorValue() : COL_AUTO; const XFillColorItem aXFillColorItem( aTmpStr, aColor ); @@ -291,20 +298,20 @@ IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillTypeHdl, ListBox&, void) } case GRADIENT: { - mpLbFillAttr->Hide(); - mpLbFillGradFrom->Show(); - mpLbFillGradTo->Show(); - mpGradientStyle->Show(); - mpMTRAngle->Show(); - mpToolBoxColor->Hide(); - mpBmpImport->Hide(); - - mpLbFillAttr->Enable(); - mpLbFillGradTo->Enable(); - mpLbFillGradFrom->Enable(); - mpGradientStyle->Enable(); - mpMTRAngle->Enable(); - mpLbFillAttr->Clear(); + mxLbFillAttr->hide(); + mxLbFillGradFrom->show(); + mxLbFillGradTo->show(); + mxGradientStyle->show(); + mxMTRAngle->show(); + mxToolBoxColor->hide(); + mxBmpImport->hide(); + + mxLbFillAttr->set_sensitive(true); + mxLbFillGradTo->set_sensitive(true); + mxLbFillGradFrom->set_sensitive(true); + mxGradientStyle->set_sensitive(true); + mxMTRAngle->set_sensitive(true); + mxLbFillAttr->clear(); const SvxGradientListItem * pItem = pSh->GetItem(SID_GRADIENT_LIST); @@ -317,36 +324,34 @@ IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillTypeHdl, ListBox&, void) // #i122676# change FillStyle and Gradient in one call XFillStyleItem aXFillStyleItem(drawing::FillStyle_GRADIENT); setFillStyleAndGradient(&aXFillStyleItem, aXFillGradientItem); - mpLbFillGradFrom->SelectEntry(aGradient.GetStartColor()); - mpLbFillGradTo->SelectEntry(aGradient.GetEndColor()); + mxLbFillGradFrom->SelectEntry(aGradient.GetStartColor()); + mxLbFillGradTo->SelectEntry(aGradient.GetEndColor()); - mpMTRAngle->SetValue(aGradient.GetAngle() / 10); + mxMTRAngle->set_value(aGradient.GetAngle() / 10, FieldUnit::DEGREE); css::awt::GradientStyle eXGS = aGradient.GetGradientStyle(); - mpGradientStyle->SelectEntryPos(sal::static_int_cast< sal_Int32 >( eXGS )); + mxGradientStyle->set_active(sal::static_int_cast< sal_Int32 >( eXGS )); } break; } case HATCH: { - mpLbFillAttr->Show(); - mpLbFillGradFrom->Hide(); - mpLbFillGradTo->Hide(); - mpMTRAngle->Hide(); - mpGradientStyle->Hide(); - mpToolBoxColor->Hide(); - mpBmpImport->Hide(); + mxLbFillAttr->show(); + mxLbFillGradFrom->hide(); + mxLbFillGradTo->hide(); + mxMTRAngle->hide(); + mxGradientStyle->hide(); + mxToolBoxColor->hide(); + mxBmpImport->hide(); const SvxHatchListItem* pItem( pSh->GetItem(SID_HATCH_LIST) ); if(pItem) { const XHatchListRef& pXHatchList(pItem->GetHatchList()); - mpLbFillAttr->Enable(); - mpLbFillAttr->Clear(); - mpLbFillAttr->Fill(pXHatchList); + mxLbFillAttr->set_sensitive(true); + mxLbFillAttr->clear(); + SvxFillAttrBox::Fill(*mxLbFillAttr, pXHatchList); - mpLbFillAttr->AdaptDropDownLineCountToMaximum(); - - if(LISTBOX_ENTRY_NOTFOUND != mnLastPosHatch) + if (mnLastPosHatch != -1) { if(mnLastPosHatch < pXHatchList->Count()) { @@ -357,81 +362,78 @@ IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillTypeHdl, ListBox&, void) // #i122676# change FillStyle and Hatch in one call XFillStyleItem aXFillStyleItem(drawing::FillStyle_HATCH); setFillStyleAndHatch(&aXFillStyleItem, aXFillHatchItem); - mpLbFillAttr->SelectEntryPos(mnLastPosHatch); + mxLbFillAttr->set_active(mnLastPosHatch); } } } else { - mpLbFillAttr->Disable(); + mxLbFillAttr->set_sensitive(false); } break; } case BITMAP: case PATTERN: { - mpLbFillAttr->Show(); - mpLbFillAttr->Enable(); - mpLbFillAttr->Clear(); - mpLbFillGradFrom->Hide(); - mpLbFillGradTo->Hide(); - mpMTRAngle->Hide(); - mpGradientStyle->Hide(); - mpToolBoxColor->Hide(); + mxLbFillAttr->show(); + mxLbFillAttr->set_sensitive(true); + mxLbFillAttr->clear(); + mxLbFillGradFrom->hide(); + mxLbFillGradTo->hide(); + mxMTRAngle->hide(); + mxGradientStyle->hide(); + mxToolBoxColor->hide(); OUString aName; GraphicObject aBitmap; if(nPos == static_cast< sal_Int32 >(BITMAP)) { - mpBmpImport->Show(); + mxBmpImport->show(); const SvxBitmapListItem* pItem = pSh->GetItem(SID_BITMAP_LIST); if(pItem) { const XBitmapListRef& pXBitmapList(pItem->GetBitmapList()); - mpLbFillAttr->Fill(pXBitmapList); - - mpLbFillAttr->AdaptDropDownLineCountToMaximum(); + SvxFillAttrBox::Fill(*mxLbFillAttr, pXBitmapList); - if(LISTBOX_ENTRY_NOTFOUND != mnLastPosBitmap) + if (mnLastPosBitmap != -1) { if(mnLastPosBitmap < pXBitmapList->Count()) { const XBitmapEntry* pXBitmapEntry = pXBitmapList->GetBitmap(mnLastPosBitmap); aBitmap = pXBitmapEntry->GetGraphicObject(); aName = pXBitmapEntry->GetName(); - mpLbFillAttr->SelectEntryPos(mnLastPosBitmap); + mxLbFillAttr->set_active(mnLastPosBitmap); } } } else { - mpLbFillAttr->Hide(); + mxLbFillAttr->hide(); } } else if(nPos == static_cast< sal_Int32 >(PATTERN)) { - mpBmpImport->Hide(); + mxBmpImport->hide(); const SvxPatternListItem* pItem = pSh->GetItem(SID_PATTERN_LIST); if(pItem) { const XPatternListRef& pXPatternList(pItem->GetPatternList()); - mpLbFillAttr->Fill(pXPatternList); + SvxFillAttrBox::Fill(*mxLbFillAttr, pXPatternList); - mpLbFillAttr->AdaptDropDownLineCountToMaximum(); - if(LISTBOX_ENTRY_NOTFOUND != mnLastPosPattern) + if (mnLastPosPattern != -1) { if(mnLastPosPattern < pXPatternList->Count()) { const XBitmapEntry* pXPatternEntry = pXPatternList->GetBitmap(mnLastPosPattern); aBitmap = pXPatternEntry->GetGraphicObject(); aName = pXPatternEntry->GetName(); - mpLbFillAttr->SelectEntryPos(mnLastPosPattern); + mxLbFillAttr->set_active(mnLastPosPattern); } } } else { - mpLbFillAttr->Hide(); + mxLbFillAttr->hide(); } } const XFillBitmapItem aXFillBitmapItem( aName, aBitmap ); @@ -443,25 +445,21 @@ IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillTypeHdl, ListBox&, void) meLastXFS = static_cast<sal_uInt16>(nPos); - if(eFillStyle::NONE != static_cast<eFillStyle>(nPos)) - { - mpLbFillType->Selected(); - } if(mpPanel) mpPanel->TriggerDeckLayouting(); } -IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillColorHdl, SvxColorListBox&, void) +IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillColorHdl, ColorListBox&, void) { SelectFillAttrHdl_Impl(); } -IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillAttrHdl, ListBox&, void) +IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillAttrHdl, weld::ComboBox&, void) { SelectFillAttrHdl_Impl(); } -IMPL_LINK_NOARG(AreaPropertyPanelBase, ChangeGradientAngle, Edit&, void) +IMPL_LINK_NOARG(AreaPropertyPanelBase, ChangeGradientAngle, weld::MetricSpinButton&, void) { SelectFillAttrHdl_Impl(); } @@ -473,7 +471,7 @@ void AreaPropertyPanelBase::DataChanged( void AreaPropertyPanelBase::SelectFillAttrHdl_Impl() { - sal_Int32 nPosFillStyle = static_cast<eFillStyle>(mpLbFillType->GetSelectedEntryPos()); + sal_Int32 nPosFillStyle = static_cast<eFillStyle>(mxLbFillType->get_active()); SfxObjectShell* pSh = SfxObjectShell::Current(); // #i122676# dependent from bFillStyleChange, do execute a single or two @@ -507,12 +505,12 @@ void AreaPropertyPanelBase::SelectFillAttrHdl_Impl() if(pSh && pSh->GetItem(SID_COLOR_TABLE)) { XGradient aGradient; - aGradient.SetAngle(mpMTRAngle->GetValue() * 10); - aGradient.SetGradientStyle(static_cast<css::awt::GradientStyle>(mpGradientStyle->GetSelectedEntryPos())); - aGradient.SetStartColor(mpLbFillGradFrom->GetSelectEntryColor()); - aGradient.SetEndColor(mpLbFillGradTo->GetSelectEntryColor()); + aGradient.SetAngle(mxMTRAngle->get_value(FieldUnit::DEGREE) * 10); + aGradient.SetGradientStyle(static_cast<css::awt::GradientStyle>(mxGradientStyle->get_active())); + aGradient.SetStartColor(mxLbFillGradFrom->GetSelectEntryColor()); + aGradient.SetEndColor(mxLbFillGradTo->GetSelectEntryColor()); - const XFillGradientItem aXFillGradientItem(mpLbFillAttr->GetSelectedEntry(), aGradient); + const XFillGradientItem aXFillGradientItem(mxLbFillAttr->get_active_text(), aGradient); // #i122676# Change FillStyle and Gradinet in one call XFillStyleItem aXFillStyleItem(drawing::FillStyle_GRADIENT); @@ -522,21 +520,21 @@ void AreaPropertyPanelBase::SelectFillAttrHdl_Impl() } case eFillStyle::HATCH: { - sal_Int32 nPos = mpLbFillAttr->GetSelectedEntryPos(); + sal_Int32 nPos = mxLbFillAttr->get_active(); - if(LISTBOX_ENTRY_NOTFOUND == nPos) + if (nPos == -1) { nPos = mnLastPosHatch; } - if(LISTBOX_ENTRY_NOTFOUND != nPos && pSh && pSh->GetItem(SID_HATCH_LIST)) + if (nPos != -1 && pSh && pSh->GetItem(SID_HATCH_LIST)) { const SvxHatchListItem * pItem = pSh->GetItem(SID_HATCH_LIST); if(nPos < pItem->GetHatchList()->Count()) { const XHatch aHatch = pItem->GetHatchList()->GetHatch(nPos)->GetHatch(); - const XFillHatchItem aXFillHatchItem( mpLbFillAttr->GetSelectedEntry(), aHatch); + const XFillHatchItem aXFillHatchItem( mxLbFillAttr->get_active_text(), aHatch); // #i122676# Change FillStyle and Hatch in one call XFillStyleItem aXFillStyleItem(drawing::FillStyle_HATCH); @@ -544,7 +542,7 @@ void AreaPropertyPanelBase::SelectFillAttrHdl_Impl() } } - if(LISTBOX_ENTRY_NOTFOUND != nPos) + if (nPos != -1) { mnLastPosHatch = nPos; } @@ -552,21 +550,21 @@ void AreaPropertyPanelBase::SelectFillAttrHdl_Impl() } case eFillStyle::BITMAP: { - sal_Int32 nPos = mpLbFillAttr->GetSelectedEntryPos(); + sal_Int32 nPos = mxLbFillAttr->get_active(); - if(LISTBOX_ENTRY_NOTFOUND == nPos) + if (nPos == -1) { nPos = mnLastPosBitmap; } - if(LISTBOX_ENTRY_NOTFOUND != nPos && pSh && pSh->GetItem(SID_BITMAP_LIST)) + if (nPos != -1 && pSh && pSh->GetItem(SID_BITMAP_LIST)) { const SvxBitmapListItem * pItem = pSh->GetItem(SID_BITMAP_LIST); if(nPos < pItem->GetBitmapList()->Count()) { const XBitmapEntry* pXBitmapEntry = pItem->GetBitmapList()->GetBitmap(nPos); - const XFillBitmapItem aXFillBitmapItem(mpLbFillAttr->GetSelectedEntry(), pXBitmapEntry->GetGraphicObject()); + const XFillBitmapItem aXFillBitmapItem(mxLbFillAttr->get_active_text(), pXBitmapEntry->GetGraphicObject()); // #i122676# Change FillStyle and Bitmap in one call XFillStyleItem aXFillStyleItem(drawing::FillStyle_BITMAP); @@ -574,7 +572,7 @@ void AreaPropertyPanelBase::SelectFillAttrHdl_Impl() } } - if(LISTBOX_ENTRY_NOTFOUND != nPos) + if (nPos != -1) { mnLastPosBitmap = nPos; } @@ -582,21 +580,21 @@ void AreaPropertyPanelBase::SelectFillAttrHdl_Impl() } case eFillStyle::PATTERN: { - sal_Int32 nPos = mpLbFillAttr->GetSelectedEntryPos(); + sal_Int32 nPos = mxLbFillAttr->get_active(); - if(LISTBOX_ENTRY_NOTFOUND == nPos) + if (nPos == -1) { nPos = mnLastPosPattern; } - if(LISTBOX_ENTRY_NOTFOUND != nPos && pSh && pSh->GetItem(SID_PATTERN_LIST)) + if (nPos != -1 && pSh && pSh->GetItem(SID_PATTERN_LIST)) { const SvxPatternListItem * pItem = pSh->GetItem(SID_PATTERN_LIST); if(nPos < pItem->GetPatternList()->Count()) { const XBitmapEntry* pXPatternEntry = pItem->GetPatternList()->GetBitmap(nPos); - const XFillBitmapItem aXFillBitmapItem(mpLbFillAttr->GetSelectedEntry(), pXPatternEntry->GetGraphicObject()); + const XFillBitmapItem aXFillBitmapItem(mxLbFillAttr->get_active_text(), pXPatternEntry->GetGraphicObject()); // #i122676# Change FillStyle and Bitmap in one call XFillStyleItem aXFillStyleItem(drawing::FillStyle_BITMAP); @@ -604,7 +602,7 @@ void AreaPropertyPanelBase::SelectFillAttrHdl_Impl() } } - if(LISTBOX_ENTRY_NOTFOUND != nPos) + if (nPos != -1) { mnLastPosPattern = nPos; } @@ -631,20 +629,20 @@ void AreaPropertyPanelBase::ImpUpdateTransparencies() } else if(nValue <= 100) { - mpLBTransType->Enable(); - mpTrspTextFT->Enable(); - mpLBTransType->SelectEntryPos(1); - mpBTNGradient->Hide(); - mpMTRTransparent->Show(); - mpSldTransparent->Show(); - mpMTRTransparent->Enable(); - mpSldTransparent->Enable(); + mxLBTransType->set_sensitive(true); + mxTrspTextFT->set_sensitive(true); + mxLBTransType->set_active(1); + mxBTNGradient->hide(); + mxMTRTransparent->show(); + mxSldTransparent->show(); + mxMTRTransparent->set_sensitive(true); + mxSldTransparent->set_sensitive(true); SetTransparency(nValue); } if (!bZeroValue && mxTrGrPopup) { - mxTrGrPopup->EndPopupMode(); + mxBTNGradient->set_menu_item_active(SIDEBARGRADIENT, false); } } @@ -654,14 +652,14 @@ void AreaPropertyPanelBase::ImpUpdateTransparencies() { const XGradient& rGradient = mpFloatTransparenceItem->GetGradientValue(); sal_Int32 nEntryPos(0); - Image* pImage = nullptr; + OUString* pImage = nullptr; - mpLBTransType->Enable(); - mpTrspTextFT->Enable(); - mpMTRTransparent->Hide(); - mpSldTransparent->Hide(); - mpBTNGradient->Enable(); - mpBTNGradient->Show(); + mxLBTransType->set_sensitive(true); + mxTrspTextFT->set_sensitive(true); + mxMTRTransparent->hide(); + mxSldTransparent->hide(); + mxBTNGradient->set_sensitive(true); + mxBTNGradient->show(); switch(rGradient.GetGradientStyle()) { @@ -703,10 +701,9 @@ void AreaPropertyPanelBase::ImpUpdateTransparencies() break; } } - - const sal_uInt16 nIdGradient = mpBTNGradient->GetItemId(UNO_SIDEBARGRADIENT); - mpLBTransType->SelectEntryPos(nEntryPos); - mpBTNGradient->SetItemImage(nIdGradient, *pImage); + mxLBTransType->set_active(nEntryPos); + mxBTNGradient->set_item_icon_name(SIDEBARGRADIENT, *pImage); + mxTrGrPopup->Rearrange(mpFloatTransparenceItem.get()); bZeroValue = false; } else @@ -717,29 +714,29 @@ void AreaPropertyPanelBase::ImpUpdateTransparencies() if(bZeroValue) { - mpLBTransType->Enable(); - mpTrspTextFT->Enable(); - mpLBTransType->SelectEntryPos(0); - mpBTNGradient->Hide(); - mpMTRTransparent->Enable(); - mpSldTransparent->Enable(); - mpMTRTransparent->Show(); - mpSldTransparent->Show(); + mxLBTransType->set_sensitive(true); + mxTrspTextFT->set_sensitive(true); + mxLBTransType->set_active(0); + mxBTNGradient->hide(); + mxMTRTransparent->set_sensitive(true); + mxSldTransparent->set_sensitive(true); + mxMTRTransparent->show(); + mxSldTransparent->show(); SetTransparency(0); } } else { // no transparency at all - mpLBTransType->SetNoSelection(); - mpLBTransType->Disable(); - mpTrspTextFT->Disable(); - mpMTRTransparent->Disable(); - mpSldTransparent->Disable(); - mpMTRTransparent->Show(); - mpSldTransparent->Show(); - mpBTNGradient->Disable(); - mpBTNGradient->Hide(); + mxLBTransType->set_active(-1); + mxLBTransType->set_sensitive(false); + mxTrspTextFT->set_sensitive(false); + mxMTRTransparent->set_sensitive(false); + mxSldTransparent->set_sensitive(false); + mxMTRTransparent->show(); + mxSldTransparent->show(); + mxBTNGradient->set_sensitive(false); + mxBTNGradient->hide(); } } @@ -804,13 +801,13 @@ void AreaPropertyPanelBase::updateFillStyle(bool bDisabled, bool bDefaultOrSet, { if(bDisabled) { - mpLbFillType->Disable(); - mpColorTextFT->Disable(); - mpLbFillType->SetNoSelection(); - mpLbFillAttr->Show(); - mpLbFillAttr->Disable(); - mpLbFillAttr->SetNoSelection(); - mpToolBoxColor->Hide(); + mxLbFillType->set_sensitive(false); + mxColorTextFT->set_sensitive(false); + mxLbFillType->set_active(-1); + mxLbFillAttr->show(); + mxLbFillAttr->set_sensitive(false); + mxLbFillAttr->set_active(-1); + mxToolBoxColor->hide(); meLastXFS = static_cast<sal_uInt16>(-1); mpStyleItem.reset(); } @@ -818,8 +815,8 @@ void AreaPropertyPanelBase::updateFillStyle(bool bDisabled, bool bDefaultOrSet, { const XFillStyleItem* pItem = static_cast<const XFillStyleItem*>(pState); mpStyleItem.reset(pItem->Clone()); - mpLbFillType->Enable(); - mpColorTextFT->Enable(); + mxLbFillType->set_sensitive(true); + mxColorTextFT->set_sensitive(true); drawing::FillStyle eXFS = mpStyleItem->GetValue(); eFillStyle nPos = NONE; switch(eXFS) @@ -827,8 +824,8 @@ void AreaPropertyPanelBase::updateFillStyle(bool bDisabled, bool bDefaultOrSet, default: case drawing::FillStyle_NONE: { - mpLbFillAttr->SetNoSelection(); - mpLbFillAttr->Disable(); + mxLbFillAttr->set_active(-1); + mxLbFillAttr->set_sensitive(false); nPos = NONE; break; } @@ -855,17 +852,17 @@ void AreaPropertyPanelBase::updateFillStyle(bool bDisabled, bool bDefaultOrSet, break; } } - meLastXFS = static_cast< sal_uInt16 >(mpLbFillType->GetSelectedEntryPos()); - mpLbFillType->SelectEntryPos(static_cast< sal_Int32 >(nPos)); + meLastXFS = static_cast< sal_uInt16 >(mxLbFillType->get_active()); + mxLbFillType->set_active(static_cast< sal_Int32 >(nPos)); Update(); return; } - mpLbFillType->SetNoSelection(); - mpLbFillAttr->Show(); - mpLbFillAttr->Disable(); - mpLbFillAttr->SetNoSelection(); - mpToolBoxColor->Hide(); + mxLbFillType->set_active(-1); + mxLbFillAttr->show(); + mxLbFillAttr->set_sensitive(false); + mxLbFillAttr->set_active(-1); + mxToolBoxColor->hide(); meLastXFS = static_cast<sal_uInt16>(-1); mpStyleItem.reset(); if(mpPanel) @@ -882,31 +879,31 @@ void AreaPropertyPanelBase::updateFillGradient(bool bDisabled, bool bDefaultOrSe if(mpStyleItem && drawing::FillStyle_GRADIENT == mpStyleItem->GetValue()) { - mpLbFillAttr->Hide(); - mpLbFillGradFrom->Show(); - mpLbFillGradTo->Show(); - mpMTRAngle->Show(); - mpGradientStyle->Show(); - mpToolBoxColor->Hide(); + mxLbFillAttr->hide(); + mxLbFillGradFrom->show(); + mxLbFillGradTo->show(); + mxMTRAngle->show(); + mxGradientStyle->show(); + mxToolBoxColor->hide(); if (bDefaultOrSet) { - mpLbFillType->SelectEntryPos(GRADIENT); + mxLbFillType->set_active(GRADIENT); Update(); } else if(bDisabled) { - mpLbFillGradFrom->SetNoSelection(); - mpLbFillGradTo->SetNoSelection(); - mpLbFillGradFrom->Disable(); - mpLbFillGradTo->Disable(); - mpMTRAngle->Disable(); - mpGradientStyle->Disable(); + mxLbFillGradFrom->SetNoSelection(); + mxLbFillGradTo->SetNoSelection(); + mxLbFillGradFrom->set_sensitive(false); + mxLbFillGradTo->set_sensitive(false); + mxMTRAngle->set_sensitive(false); + mxGradientStyle->set_sensitive(false); } else { - mpLbFillGradFrom->SetNoSelection(); - mpLbFillGradTo->SetNoSelection(); + mxLbFillGradFrom->SetNoSelection(); + mxLbFillGradTo->SetNoSelection(); } } if(mpPanel) @@ -923,23 +920,23 @@ void AreaPropertyPanelBase::updateFillHatch(bool bDisabled, bool bDefaultOrSet, if(mpStyleItem && drawing::FillStyle_HATCH == mpStyleItem->GetValue()) { - mpLbFillAttr->Show(); - mpToolBoxColor->Hide(); + mxLbFillAttr->show(); + mxToolBoxColor->hide(); if (bDefaultOrSet) { - mpLbFillAttr->Enable(); - mpLbFillType->SelectEntryPos(HATCH); + mxLbFillAttr->set_sensitive(true); + mxLbFillType->set_active(HATCH); Update(); } else if(bDisabled) { - mpLbFillAttr->Disable(); ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
