summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-01-02 14:45:32 +0000
committerCaolán McNamara <caolanm@redhat.com>2020-01-06 16:44:21 +0100
commit40fe5b93bc0838e04b46bfc7942d1ee6a2482ce0 (patch)
tree151814d0863c9912d18722732beb13b1e22e0ff1
parentd1133d71a6109d1999121fd6a91573d12dc4852b (diff)
weld AreaPropertyPanel
Change-Id: I5f4c4b43067b99cd57f8ea941002481ef5977e09 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86144 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--chart2/source/controller/sidebar/ChartAreaPanel.cxx9
-rw-r--r--framework/inc/uielement/complextoolbarcontroller.hxx2
-rw-r--r--framework/inc/uielement/generictoolbarcontroller.hxx2
-rw-r--r--framework/source/uielement/FixedImageToolbarController.cxx6
-rw-r--r--framework/source/uielement/FixedTextToolbarController.cxx8
-rw-r--r--framework/source/uielement/comboboxtoolbarcontroller.cxx6
-rw-r--r--framework/source/uielement/complextoolbarcontroller.cxx36
-rw-r--r--framework/source/uielement/dropdownboxtoolbarcontroller.cxx6
-rw-r--r--framework/source/uielement/edittoolbarcontroller.cxx6
-rw-r--r--framework/source/uielement/generictoolbarcontroller.cxx36
-rw-r--r--framework/source/uielement/imagebuttontoolbarcontroller.cxx4
-rw-r--r--framework/source/uielement/spinfieldtoolbarcontroller.cxx6
-rw-r--r--framework/source/uielement/togglebuttontoolbarcontroller.cxx10
-rw-r--r--include/sfx2/weldutils.hxx7
-rw-r--r--include/svtools/popupwindowcontroller.hxx10
-rw-r--r--include/svtools/toolboxcontroller.hxx11
-rw-r--r--include/svx/PaletteManager.hxx6
-rw-r--r--include/svx/colorwindow.hxx8
-rw-r--r--include/svx/itemwin.hxx1
-rw-r--r--include/svx/sidebar/AreaPropertyPanelBase.hxx69
-rw-r--r--include/svx/sidebar/AreaTransparencyGradientPopup.hxx46
-rw-r--r--include/svx/tbcontrl.hxx13
-rw-r--r--include/svx/tbxcolorupdate.hxx76
-rw-r--r--include/vcl/weld.hxx9
-rw-r--r--reportdesign/source/ui/dlg/Condition.cxx6
-rw-r--r--reportdesign/source/ui/dlg/Condition.hxx2
-rw-r--r--sc/inc/pch/precompiled_sc.hxx3
-rw-r--r--sc/inc/pch/precompiled_scfilt.hxx17
-rw-r--r--sc/inc/pch/precompiled_scui.hxx10
-rw-r--r--sd/inc/pch/precompiled_sd.hxx3
-rw-r--r--sd/inc/pch/precompiled_sdui.hxx3
-rw-r--r--sfx2/source/sidebar/ControllerFactory.cxx4
-rw-r--r--sfx2/source/toolbox/weldutils.cxx6
-rw-r--r--solenv/sanitizers/ui/svx.suppr3
-rw-r--r--svtools/source/uno/popupwindowcontroller.cxx8
-rw-r--r--svtools/source/uno/toolboxcontroller.cxx13
-rw-r--r--svx/source/sidebar/area/AreaPropertyPanelBase.cxx746
-rw-r--r--svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx125
-rw-r--r--svx/source/tbxctrls/PaletteManager.cxx2
-rw-r--r--svx/source/tbxctrls/itemwin.cxx27
-rw-r--r--svx/source/tbxctrls/tbcontrl.cxx137
-rw-r--r--svx/source/tbxctrls/tbxcolorupdate.cxx153
-rw-r--r--svx/uiconfig/ui/floatingareastyle.ui84
-rw-r--r--svx/uiconfig/ui/sidebararea.ui146
-rw-r--r--vcl/source/app/salvtables.cxx25
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx116
46 files changed, 1200 insertions, 832 deletions
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();
- mpLbFillAttr->SetNoSelection();
+ mxLbFillAttr->set_sensitive(false);
+ mxLbFillAttr->set_active(-1);
}
else
{
- mpLbFillAttr->SetNoSelection();
+ mxLbFillAttr->set_active(-1);
}
}
if(mpPanel)
@@ -956,9 +953,9 @@ void AreaPropertyPanelBase::updateFillColor(bool bDefaultOrSet, const SfxPoolIte
if(mpStyleItem && drawing::FillStyle_SOLID == mpStyleItem->GetValue())
{
- mpLbFillAttr->Hide();
- mpToolBoxColor->Show();
- mpLbFillType->SelectEntryPos(SOLID);
+ mxLbFillAttr->hide();
+ mxToolBoxColor->show();
+ mxLbFillType->set_active(SOLID);
Update();
}
if(mpPanel)
@@ -975,25 +972,25 @@ void AreaPropertyPanelBase::updateFillBitmap(bool bDisabled, bool bDefaultOrSet,
if(mpStyleItem && drawing::FillStyle_BITMAP == mpStyleItem->GetValue())
{
- mpLbFillAttr->Show();
- mpToolBoxColor->Hide();
+ mxLbFillAttr->show();
+ mxToolBoxColor->hide();
if (bDefaultOrSet)
{
if(mpBitmapItem->isPattern())
- mpLbFillType->SelectEntryPos(PATTERN);
+ mxLbFillType->set_active(PATTERN);
else
- mpLbFillType->SelectEntryPos(BITMAP);
+ mxLbFillType->set_active(BITMAP);
Update();
}
else if(bDisabled)
{
- mpLbFillAttr->Hide();
- mpLbFillAttr->SetNoSelection();
+ mxLbFillAttr->hide();
+ mxLbFillAttr->set_active(-1);
}
else
{
- mpLbFillAttr->SetNoSelection();
+ mxLbFillAttr->set_active(-1);
}
}
if(mpPanel)
@@ -1043,14 +1040,14 @@ void AreaPropertyPanelBase::NotifyItemUpdate(
const OUString aString( mpFillGradientItem->GetName() );
const SfxObjectShell* pSh = SfxObjectShell::Current();
- mpLbFillAttr->Clear();
- mpLbFillAttr->Enable();
- mpLbFillAttr->Fill(pSh->GetItem(SID_GRADIENT_LIST)->GetGradientList());
- mpLbFillAttr->SelectEntry(aString);
+ mxLbFillAttr->clear();
+ mxLbFillAttr->set_sensitive(true);
+ SvxFillAttrBox::Fill(*mxLbFillAttr, pSh->GetItem(SID_GRADIENT_LIST)->GetGradientList());
+ mxLbFillAttr->set_active_text(aString);
}
else
{
- mpLbFillAttr->SetNoSelection();
+ mxLbFillAttr->set_active(-1);
}
}
}
@@ -1067,14 +1064,14 @@ void AreaPropertyPanelBase::NotifyItemUpdate(
const OUString aString( mpHatchItem->GetName() );
const SfxObjectShell* pSh = SfxObjectShell::Current();
- mpLbFillAttr->Clear();
- mpLbFillAttr->Enable();
- mpLbFillAttr->Fill(pSh->GetItem(SID_HATCH_LIST)->GetHatchList());
- mpLbFillAttr->SelectEntry(aString);
+ mxLbFillAttr->clear();
+ mxLbFillAttr->set_sensitive(true);
+ SvxFillAttrBox::Fill(*mxLbFillAttr, pSh->GetItem(SID_HATCH_LIST)->GetHatchList());
+ mxLbFillAttr->set_active_text(aString);
}
else
{
- mpLbFillAttr->SetNoSelection();
+ mxLbFillAttr->set_active(-1);
}
}
}
@@ -1091,21 +1088,21 @@ void AreaPropertyPanelBase::NotifyItemUpdate(
{
const OUString aString( mpBitmapItem->GetName() );
const SfxObjectShell* pSh = SfxObjectShell::Current();
- mpLbFillAttr->Clear();
- mpLbFillAttr->Show();
+ mxLbFillAttr->clear();
+ mxLbFillAttr->show();
if(nSID == SID_BITMAP_LIST)
{
- mpLbFillAttr->Fill(pSh->GetItem(SID_BITMAP_LIST)->GetBitmapList());
+ SvxFillAttrBox::Fill(*mxLbFillAttr, pSh->GetItem(SID_BITMAP_LIST)->GetBitmapList());
}
else if(nSID == SID_PATTERN_LIST)
{
- mpLbFillAttr->Fill(pSh->GetItem(SID_PATTERN_LIST)->GetPatternList());
+ SvxFillAttrBox::Fill(*mxLbFillAttr, pSh->GetItem(SID_PATTERN_LIST)->GetPatternList());
}
- mpLbFillAttr->SelectEntry(aString);
+ mxLbFillAttr->set_active_text(aString);
}
else
{
- mpLbFillAttr->SetNoSelection();
+ mxLbFillAttr->set_active(-1);
}
}
}
@@ -1116,147 +1113,147 @@ void AreaPropertyPanelBase::NotifyItemUpdate(
void AreaPropertyPanelBase::Update()
{
- const eFillStyle eXFS = static_cast<eFillStyle>(mpLbFillType->GetSelectedEntryPos());
+ const eFillStyle eXFS = static_cast<eFillStyle>(mxLbFillType->get_active());
SfxObjectShell* pSh = SfxObjectShell::Current();
switch( eXFS )
{
case eFillStyle::NONE:
{
- 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();
break;
}
case eFillStyle::SOLID:
{
if(mpColorItem)
{
- mpLbFillAttr->Hide();
- mpLbFillGradFrom->Hide();
- mpLbFillGradTo->Hide();
- mpMTRAngle->Hide();
- mpGradientStyle->Hide();
- mpToolBoxColor->Show();
- mpBmpImport->Hide();
+ mxLbFillAttr->hide();
+ mxLbFillGradFrom->hide();
+ mxLbFillGradTo->hide();
+ mxMTRAngle->hide();
+ mxGradientStyle->hide();
+ mxToolBoxColor->show();
+ mxBmpImport->hide();
}
break;
}
case eFillStyle::GRADIENT:
{
- mpLbFillAttr->Hide();
- mpLbFillGradFrom->Show();
- mpLbFillGradTo->Show();
- mpMTRAngle->Enable();
- mpMTRAngle->Show();
- mpGradientStyle->Show();
- mpToolBoxColor->Hide();
- mpBmpImport->Hide();
+ mxLbFillAttr->hide();
+ mxLbFillGradFrom->show();
+ mxLbFillGradTo->show();
+ mxMTRAngle->set_sensitive(true);
+ mxMTRAngle->show();
+ mxGradientStyle->show();
+ mxToolBoxColor->hide();
+ mxBmpImport->hide();
if(pSh && pSh->GetItem(SID_GRADIENT_LIST))
{
- mpLbFillAttr->Enable();
- mpLbFillAttr->Clear();
- mpLbFillAttr->Fill(pSh->GetItem(SID_GRADIENT_LIST)->GetGradientList());
- mpLbFillGradTo->SetNoSelection();
- mpLbFillGradFrom->SetNoSelection();
+ mxLbFillAttr->set_sensitive(true);
+ mxLbFillAttr->clear();
+ SvxFillAttrBox::Fill(*mxLbFillAttr, pSh->GetItem(SID_GRADIENT_LIST)->GetGradientList());
+ mxLbFillGradTo->SetNoSelection();
+ mxLbFillGradFrom->SetNoSelection();
if (mpFillGradientItem)
{
const OUString aString(mpFillGradientItem->GetName());
- mpLbFillAttr->SelectEntry(aString);
+ mxLbFillAttr->set_active_text(aString);
const XGradient aGradient = mpFillGradientItem->GetGradientValue();
- mpLbFillGradFrom->SelectEntry(aGradient.GetStartColor());
- mpLbFillGradTo->SelectEntry(aGradient.GetEndColor());
- mpGradientStyle->SelectEntryPos(sal::static_int_cast< sal_Int32 >( aGradient.GetGradientStyle() ));
- if(mpGradientStyle->GetSelectedEntryPos() == sal_Int32(GradientStyle::Radial))
- mpMTRAngle->Disable();
+ mxLbFillGradFrom->SelectEntry(aGradient.GetStartColor());
+ mxLbFillGradTo->SelectEntry(aGradient.GetEndColor());
+ mxGradientStyle->set_active(sal::static_int_cast< sal_Int32 >( aGradient.GetGradientStyle() ));
+ if(mxGradientStyle->get_active() == sal_Int32(GradientStyle::Radial))
+ mxMTRAngle->set_sensitive(false);
else
- mpMTRAngle->SetValue( aGradient.GetAngle() /10 );
+ mxMTRAngle->set_value(aGradient.GetAngle() / 10, FieldUnit::DEGREE);
}
else
{
- mpLbFillAttr->SetNoSelection();
+ mxLbFillAttr->set_active(-1);
}
}
else
{
- mpLbFillAttr->SetNoSelection();
+ mxLbFillAttr->set_active(-1);
}
break;
}
case eFillStyle::HATCH:
{
- mpLbFillAttr->Show();
- mpLbFillGradFrom->Hide();
- mpLbFillGradTo->Hide();
- mpMTRAngle->Hide();
- mpGradientStyle->Hide();
- mpToolBoxColor->Hide();
- mpBmpImport->Hide();
- mpBmpImport->Hide();
+ mxLbFillAttr->show();
+ mxLbFillGradFrom->hide();
+ mxLbFillGradTo->hide();
+ mxMTRAngle->hide();
+ mxGradientStyle->hide();
+ mxToolBoxColor->hide();
+ mxBmpImport->hide();
+ mxBmpImport->hide();
if(pSh && pSh->GetItem(SID_HATCH_LIST))
{
- mpLbFillAttr->Enable();
- mpLbFillAttr->Clear();
- mpLbFillAttr->Fill(pSh->GetItem(SID_HATCH_LIST)->GetHatchList());
+ mxLbFillAttr->set_sensitive(true);
+ mxLbFillAttr->clear();
+ SvxFillAttrBox::Fill(*mxLbFillAttr, pSh->GetItem(SID_HATCH_LIST)->GetHatchList());
if(mpHatchItem)
{
const OUString aString(mpHatchItem->GetName());
- mpLbFillAttr->SelectEntry( aString );
+ mxLbFillAttr->set_active_text( aString );
}
else
{
- mpLbFillAttr->SetNoSelection();
+ mxLbFillAttr->set_active(-1);
}
}
else
{
- mpLbFillAttr->SetNoSelection();
+ mxLbFillAttr->set_active(-1);
}
break;
}
case eFillStyle::BITMAP:
case eFillStyle::PATTERN:
{
- mpLbFillAttr->Show();
- mpLbFillAttr->Enable();
- mpLbFillAttr->Clear();
- mpToolBoxColor->Hide();
- mpLbFillGradFrom->Hide();
- mpLbFillGradTo->Hide();
- mpMTRAngle->Hide();
- mpGradientStyle->Hide();
+ mxLbFillAttr->show();
+ mxLbFillAttr->set_sensitive(true);
+ mxLbFillAttr->clear();
+ mxToolBoxColor->hide();
+ mxLbFillGradFrom->hide();
+ mxLbFillGradTo->hide();
+ mxMTRAngle->hide();
+ mxGradientStyle->hide();
if(mpBitmapItem)
{
if(pSh && pSh->GetItem(SID_BITMAP_LIST) && eXFS == BITMAP)
{
- mpBmpImport->Show();
- mpLbFillType->SelectEntryPos(sal_uInt32(BITMAP));
- mpLbFillAttr->Fill(pSh->GetItem(SID_BITMAP_LIST)->GetBitmapList());
+ mxBmpImport->show();
+ mxLbFillType->set_active(sal_uInt32(BITMAP));
+ SvxFillAttrBox::Fill(*mxLbFillAttr, pSh->GetItem(SID_BITMAP_LIST)->GetBitmapList());
const OUString aString(mpBitmapItem->GetName());
- mpLbFillAttr->SelectEntry(aString);
+ mxLbFillAttr->set_active_text(aString);
}
else if(pSh && pSh->GetItem(SID_PATTERN_LIST) && eXFS == PATTERN)
{
- mpBmpImport->Hide();
- mpLbFillType->SelectEntryPos(sal_uInt32(PATTERN));
- mpLbFillAttr->Fill(pSh->GetItem(SID_PATTERN_LIST)->GetPatternList());
+ mxBmpImport->hide();
+ mxLbFillType->set_active(sal_uInt32(PATTERN));
+ SvxFillAttrBox::Fill(*mxLbFillAttr, pSh->GetItem(SID_PATTERN_LIST)->GetPatternList());
const OUString aString(mpBitmapItem->GetName());
- mpLbFillAttr->SelectEntry(aString);
+ mxLbFillAttr->set_active_text(aString);
}
}
else
- mpLbFillAttr->SetNoSelection();
+ mxLbFillAttr->set_active(-1);
break;
}
default:
@@ -1267,80 +1264,69 @@ void AreaPropertyPanelBase::Update()
mpPanel->TriggerDeckLayouting();
}
-IMPL_LINK_NOARG(AreaPropertyPanelBase, ModifyTransSliderHdl, Slider*, void)
+IMPL_LINK_NOARG(AreaPropertyPanelBase, ModifyTransSliderHdl, weld::Scale&, void)
{
- const sal_uInt16 nVal = mpSldTransparent->GetThumbPos();
+ const sal_uInt16 nVal = mxSldTransparent->get_value();
SetTransparency(nVal);
const XFillTransparenceItem aLinearItem(nVal);
setFillTransparence(aLinearItem);
}
-IMPL_LINK( AreaPropertyPanelBase, ClickTrGrHdl_Impl, ToolBox*, pToolBox, void )
-{
- if (!mxTrGrPopup)
- mxTrGrPopup = VclPtr<AreaTransparencyGradientPopup>::Create(*this);
- if (mpFloatTransparenceItem)
- mxTrGrPopup->Rearrange(mpFloatTransparenceItem.get());
- OSL_ASSERT( pToolBox->GetItemCommand(pToolBox->GetCurItemId()) == UNO_SIDEBARGRADIENT);
- mxTrGrPopup->StartPopupMode(pToolBox, FloatWinPopupFlags::GrabFocus);
-}
-
-IMPL_LINK_NOARG(AreaPropertyPanelBase, ChangeTrgrTypeHdl_Impl, ListBox&, void)
+IMPL_LINK_NOARG(AreaPropertyPanelBase, ChangeTrgrTypeHdl_Impl, weld::ComboBox&, void)
{
- sal_Int32 nSelectType = mpLBTransType->GetSelectedEntryPos();
+ sal_Int32 nSelectType = mxLBTransType->get_active();
bool bGradient = false;
sal_uInt16 nTrans = 0;
if(!nSelectType)
{
- mpBTNGradient->Hide();
- mpMTRTransparent->Show();
- mpSldTransparent->Show();
- mpMTRTransparent->Enable();
- mpSldTransparent->Enable();
+ mxBTNGradient->hide();
+ mxMTRTransparent->show();
+ mxSldTransparent->show();
+ mxMTRTransparent->set_sensitive(true);
+ mxSldTransparent->set_sensitive(true);
SetTransparency(0);
}
else if(1 == nSelectType)
{
- mpBTNGradient->Hide();
- mpMTRTransparent->Show();
- mpSldTransparent->Show();
+ mxBTNGradient->hide();
+ mxMTRTransparent->show();
+ mxSldTransparent->show();
nTrans = mnLastTransSolid;
- mpMTRTransparent->SetValue(nTrans);
- mpLBTransType->SelectEntryPos(1);
- mpMTRTransparent->Enable();
- mpSldTransparent->Enable();
+ mxMTRTransparent->set_value(nTrans, FieldUnit::PERCENT);
+ mxLBTransType->set_active(1);
+ mxMTRTransparent->set_sensitive(true);
+ mxSldTransparent->set_sensitive(true);
}
else
{
- mpBTNGradient->Show();
+ mxBTNGradient->show();
- const sal_uInt16 nIdGradient = mpBTNGradient->GetItemId(UNO_SIDEBARGRADIENT);
switch (nSelectType)
{
case 2:
- mpBTNGradient->SetItemImage(nIdGradient, maImgLinear);
+ mxBTNGradient->set_item_icon_name(SIDEBARGRADIENT, maImgLinear);
break;
case 3:
- mpBTNGradient->SetItemImage(nIdGradient, maImgAxial);
+ mxBTNGradient->set_item_icon_name(SIDEBARGRADIENT, maImgAxial);
break;
case 4:
- mpBTNGradient->SetItemImage(nIdGradient, maImgRadial);
+ mxBTNGradient->set_item_icon_name(SIDEBARGRADIENT, maImgRadial);
break;
case 5:
- mpBTNGradient->SetItemImage(nIdGradient, maImgElli );
+ mxBTNGradient->set_item_icon_name(SIDEBARGRADIENT, maImgElli);
break;
case 6:
- mpBTNGradient->SetItemImage(nIdGradient, maImgQuad );
+ mxBTNGradient->set_item_icon_name(SIDEBARGRADIENT, maImgQuad);
break;
case 7:
- mpBTNGradient->SetItemImage(nIdGradient, maImgSquare);
+ mxBTNGradient->set_item_icon_name(SIDEBARGRADIENT, maImgSquare);
break;
}
- mpMTRTransparent->Hide();
- mpSldTransparent->Hide();
- mpBTNGradient->Enable();
+ mxMTRTransparent->hide();
+ mxSldTransparent->hide();
+ mxBTNGradient->set_sensitive(true);
bGradient = true;
}
@@ -1382,16 +1368,16 @@ IMPL_LINK_NOARG(AreaPropertyPanelBase, ChangeTrgrTypeHdl_Impl, ListBox&, void)
setFillFloatTransparence(aGradientItem);
}
-IMPL_LINK_NOARG(AreaPropertyPanelBase, ModifyTransparentHdl_Impl, Edit&, void)
+IMPL_LINK_NOARG(AreaPropertyPanelBase, ModifyTransparentHdl_Impl, weld::MetricSpinButton&, void)
{
- const sal_uInt16 nTrans = static_cast<sal_uInt16>(mpMTRTransparent->GetValue());
+ const sal_uInt16 nTrans = static_cast<sal_uInt16>(mxMTRTransparent->get_value(FieldUnit::PERCENT));
mnLastTransSolid = nTrans;
SetTransparency(nTrans);
- const sal_Int32 nSelectType = mpLBTransType->GetSelectedEntryPos();
+ const sal_Int32 nSelectType = mxLBTransType->get_active();
if(nTrans && !nSelectType)
{
- mpLBTransType->SelectEntryPos(1);
+ mxLBTransType->set_active(1);
}
const XFillTransparenceItem aLinearItem(nTrans);
@@ -1447,7 +1433,7 @@ void AreaPropertyPanelBase::SetGradient (const XGradient& rGradient)
sal_Int32 AreaPropertyPanelBase::GetSelectedTransparencyTypeIndex() const
{
- return mpLBTransType->GetSelectedEntryPos();
+ return mxLBTransType->get_active();
}
} } // end of namespace svx::sidebar
diff --git a/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx b/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx
index e3c0ae31c9f4..7bb81287e104 100644
--- a/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx
+++ b/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx
@@ -18,7 +18,6 @@
*/
#include <sfx2/app.hxx>
-#include <vcl/layout.hxx>
#include <svx/sidebar/AreaTransparencyGradientPopup.hxx>
#include <svx/sidebar/AreaPropertyPanelBase.hxx>
#include <svx/xflftrit.hxx>
@@ -26,35 +25,34 @@
namespace svx { namespace sidebar {
-AreaTransparencyGradientPopup::AreaTransparencyGradientPopup(AreaPropertyPanelBase& rPanel)
- : FloatingWindow(SfxGetpApp()->GetTopWindow(), "FloatingAreaStyle", "svx/ui/floatingareastyle.ui")
- , mrAreaPropertyPanel(rPanel)
+AreaTransparencyGradientPopup::AreaTransparencyGradientPopup(AreaPropertyPanelBase& rPanel, weld::Widget* pParent)
+ : mrAreaPropertyPanel(rPanel)
+ , mxBuilder(Application::CreateBuilder(pParent, "svx/ui/floatingareastyle.ui"))
+ , mxTopLevel(mxBuilder->weld_widget("FloatingAreaStyle"))
+ , mxCenterGrid(mxBuilder->weld_widget("centergrid"))
+ , mxAngleGrid(mxBuilder->weld_widget("anglegrid"))
+ , mxMtrTrgrCenterX(mxBuilder->weld_metric_spin_button("centerx", FieldUnit::PERCENT))
+ , mxMtrTrgrCenterY(mxBuilder->weld_metric_spin_button("centery", FieldUnit::PERCENT))
+ , mxMtrTrgrAngle(mxBuilder->weld_metric_spin_button("angle", FieldUnit::DEGREE))
+ , mxBtnLeft45(mxBuilder->weld_toolbar("lefttoolbox"))
+ , mxBtnRight45(mxBuilder->weld_toolbar("righttoolbox"))
+ , mxMtrTrgrStartValue(mxBuilder->weld_metric_spin_button("start", FieldUnit::PERCENT))
+ , mxMtrTrgrEndValue(mxBuilder->weld_metric_spin_button("end", FieldUnit::PERCENT))
+ , mxMtrTrgrBorder(mxBuilder->weld_metric_spin_button("border", FieldUnit::PERCENT))
{
- get(maCenterGrid, "centergrid");
- get(maAngleGrid, "anglegrid");
- get(maMtrTrgrCenterX, "centerx");
- get(maMtrTrgrCenterY, "centery");
- get(maMtrTrgrAngle, "angle");
- get(maBtnLeft45, "lefttoolbox");
- get(maBtnRight45, "righttoolbox");
- get(maMtrTrgrStartValue, "start");
- get(maMtrTrgrEndValue, "end");
- get(maMtrTrgrBorder, "border");
-
- Link<Edit&,void> aLink = LINK(this, AreaTransparencyGradientPopup, ModifiedTrgrHdl_Impl);
- maMtrTrgrCenterX->SetModifyHdl(aLink);
- maMtrTrgrCenterY->SetModifyHdl(aLink);
- maMtrTrgrAngle->SetModifyHdl(aLink);
- maMtrTrgrBorder->SetModifyHdl(aLink);
- maMtrTrgrStartValue->SetModifyHdl(aLink);
- maMtrTrgrEndValue->SetModifyHdl(aLink);
- maBtnLeft45->SetSelectHdl(LINK(this, AreaTransparencyGradientPopup, Left_Click45_Impl));
- maBtnRight45->SetSelectHdl(LINK(this, AreaTransparencyGradientPopup, Right_Click45_Impl));
+ Link<weld::MetricSpinButton&,void> aLink = LINK(this, AreaTransparencyGradientPopup, ModifiedTrgrHdl_Impl);
+ mxMtrTrgrCenterX->connect_value_changed(aLink);
+ mxMtrTrgrCenterY->connect_value_changed(aLink);
+ mxMtrTrgrAngle->connect_value_changed(aLink);
+ mxMtrTrgrBorder->connect_value_changed(aLink);
+ mxMtrTrgrStartValue->connect_value_changed(aLink);
+ mxMtrTrgrEndValue->connect_value_changed(aLink);
+ mxBtnLeft45->connect_clicked(LINK(this, AreaTransparencyGradientPopup, Left_Click45_Impl));
+ mxBtnRight45->connect_clicked(LINK(this, AreaTransparencyGradientPopup, Right_Click45_Impl));
}
AreaTransparencyGradientPopup::~AreaTransparencyGradientPopup()
{
- disposeOnce();
}
void AreaTransparencyGradientPopup::InitStatus(XFillFloatTransparenceItem const * pGradientItem)
@@ -78,12 +76,12 @@ void AreaTransparencyGradientPopup::InitStatus(XFillFloatTransparenceItem const
{
aGradient = rGradient;
}
- maMtrTrgrCenterX->SetValue(aGradient.GetXOffset());
- maMtrTrgrCenterY->SetValue(aGradient.GetYOffset());
- maMtrTrgrAngle->SetValue(aGradient.GetAngle() / 10);
- maMtrTrgrStartValue->SetValue(static_cast<sal_uInt16>(((static_cast<sal_uInt16>(aGradient.GetStartColor().GetRed()) + 1) * 100) / 255));
- maMtrTrgrEndValue->SetValue(static_cast<sal_uInt16>(((static_cast<sal_uInt16>(aGradient.GetEndColor().GetRed()) + 1) * 100) / 255));
- maMtrTrgrBorder->SetValue(aGradient.GetBorder());
+ mxMtrTrgrCenterX->set_value(aGradient.GetXOffset(), FieldUnit::PERCENT);
+ mxMtrTrgrCenterY->set_value(aGradient.GetYOffset(), FieldUnit::PERCENT);
+ mxMtrTrgrAngle->set_value(aGradient.GetAngle() / 10, FieldUnit::DEGREE);
+ mxMtrTrgrStartValue->set_value(static_cast<sal_uInt16>(((static_cast<sal_uInt16>(aGradient.GetStartColor().GetRed()) + 1) * 100) / 255), FieldUnit::PERCENT);
+ mxMtrTrgrEndValue->set_value(static_cast<sal_uInt16>(((static_cast<sal_uInt16>(aGradient.GetEndColor().GetRed()) + 1) * 100) / 255), FieldUnit::PERCENT);
+ mxMtrTrgrBorder->set_value(aGradient.GetBorder(), FieldUnit::PERCENT);
}
void AreaTransparencyGradientPopup::Rearrange(XFillFloatTransparenceItem const * pGradientItem)
@@ -96,18 +94,18 @@ void AreaTransparencyGradientPopup::Rearrange(XFillFloatTransparenceItem const *
{
case css::awt::GradientStyle_LINEAR:
case css::awt::GradientStyle_AXIAL:
- maCenterGrid->Hide();
- maAngleGrid->Show();
+ mxCenterGrid->hide();
+ mxAngleGrid->show();
break;
case css::awt::GradientStyle_RADIAL:
- maCenterGrid->Show();
- maAngleGrid->Hide();
+ mxCenterGrid->show();
+ mxAngleGrid->hide();
break;
case css::awt::GradientStyle_ELLIPTICAL:
case css::awt::GradientStyle_SQUARE:
case css::awt::GradientStyle_RECT:
- maCenterGrid->Show();
- maAngleGrid->Show();
+ mxCenterGrid->show();
+ mxAngleGrid->show();
break;
default:
break;
@@ -117,21 +115,21 @@ void AreaTransparencyGradientPopup::Rearrange(XFillFloatTransparenceItem const *
void AreaTransparencyGradientPopup::ExecuteValueModify(sal_uInt8 nStartCol, sal_uInt8 nEndCol)
{
//Added
- sal_Int16 aMtrValue = static_cast<sal_Int16>(maMtrTrgrAngle->GetValue());
+ sal_Int16 aMtrValue = static_cast<sal_Int16>(mxMtrTrgrAngle->get_value(FieldUnit::DEGREE));
while(aMtrValue<0)
aMtrValue += 360;
sal_uInt16 nVal = aMtrValue/360;
nVal = aMtrValue - nVal*360;
- maMtrTrgrAngle->SetValue(nVal);
+ mxMtrTrgrAngle->set_value(nVal, FieldUnit::DEGREE);
//End of new code
XGradient aTmpGradient(
Color(nStartCol, nStartCol, nStartCol),
Color(nEndCol, nEndCol, nEndCol),
static_cast<css::awt::GradientStyle>(mrAreaPropertyPanel.GetSelectedTransparencyTypeIndex()-2),
- static_cast<sal_uInt16>(maMtrTrgrAngle->GetValue()) * 10,
- static_cast<sal_uInt16>(maMtrTrgrCenterX->GetValue()),
- static_cast<sal_uInt16>(maMtrTrgrCenterY->GetValue()),
- static_cast<sal_uInt16>(maMtrTrgrBorder->GetValue()),
+ static_cast<sal_uInt16>(mxMtrTrgrAngle->get_value(FieldUnit::DEGREE)) * 10,
+ static_cast<sal_uInt16>(mxMtrTrgrCenterX->get_value(FieldUnit::PERCENT)),
+ static_cast<sal_uInt16>(mxMtrTrgrCenterY->get_value(FieldUnit::PERCENT)),
+ static_cast<sal_uInt16>(mxMtrTrgrBorder->get_value(FieldUnit::PERCENT)),
100, 100);
mrAreaPropertyPanel.SetGradient(aTmpGradient);
@@ -141,52 +139,37 @@ void AreaTransparencyGradientPopup::ExecuteValueModify(sal_uInt8 nStartCol, sal_
mrAreaPropertyPanel.setFillFloatTransparence(aGradientItem);
}
-IMPL_LINK_NOARG(AreaTransparencyGradientPopup, ModifiedTrgrHdl_Impl, Edit&, void)
+IMPL_LINK_NOARG(AreaTransparencyGradientPopup, ModifiedTrgrHdl_Impl, weld::MetricSpinButton&, void)
{
- sal_uInt8 nStartCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(maMtrTrgrStartValue->GetValue()) * 255) / 100);
- sal_uInt8 nEndCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(maMtrTrgrEndValue->GetValue()) * 255) / 100);
+ sal_uInt8 nStartCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(mxMtrTrgrStartValue->get_value(FieldUnit::PERCENT)) * 255) / 100);
+ sal_uInt8 nEndCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(mxMtrTrgrEndValue->get_value(FieldUnit::PERCENT)) * 255) / 100);
ExecuteValueModify( nStartCol, nEndCol );
}
-IMPL_LINK_NOARG(AreaTransparencyGradientPopup, Left_Click45_Impl, ToolBox *, void)
+IMPL_LINK_NOARG(AreaTransparencyGradientPopup, Left_Click45_Impl, const OString&, void)
{
- sal_uInt8 nStartCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(maMtrTrgrStartValue->GetValue()) * 255) / 100);
- sal_uInt8 nEndCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(maMtrTrgrEndValue->GetValue()) * 255) / 100);
- sal_uInt16 nTemp = static_cast<sal_uInt16>(maMtrTrgrAngle->GetValue());
+ sal_uInt8 nStartCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(mxMtrTrgrStartValue->get_value(FieldUnit::PERCENT)) * 255) / 100);
+ sal_uInt8 nEndCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(mxMtrTrgrEndValue->get_value(FieldUnit::PERCENT)) * 255) / 100);
+ sal_uInt16 nTemp = static_cast<sal_uInt16>(mxMtrTrgrAngle->get_value(FieldUnit::DEGREE));
if (nTemp>=315)
nTemp -= 360;
nTemp += 45;
- maMtrTrgrAngle->SetValue(nTemp);
+ mxMtrTrgrAngle->set_value(nTemp, FieldUnit::DEGREE);
ExecuteValueModify(nStartCol, nEndCol);
}
-IMPL_LINK_NOARG(AreaTransparencyGradientPopup, Right_Click45_Impl, ToolBox *, void)
+IMPL_LINK_NOARG(AreaTransparencyGradientPopup, Right_Click45_Impl, const OString&, void)
{
- sal_uInt8 nStartCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(maMtrTrgrStartValue->GetValue()) * 255) / 100);
- sal_uInt8 nEndCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(maMtrTrgrEndValue->GetValue()) * 255) / 100);
- sal_uInt16 nTemp = static_cast<sal_uInt16>(maMtrTrgrAngle->GetValue());
+ sal_uInt8 nStartCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(mxMtrTrgrStartValue->get_value(FieldUnit::PERCENT)) * 255) / 100);
+ sal_uInt8 nEndCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(mxMtrTrgrEndValue->get_value(FieldUnit::PERCENT)) * 255) / 100);
+ sal_uInt16 nTemp = static_cast<sal_uInt16>(mxMtrTrgrAngle->get_value(FieldUnit::DEGREE));
if (nTemp<45)
nTemp += 360;
nTemp -= 45;
- maMtrTrgrAngle->SetValue(nTemp);
+ mxMtrTrgrAngle->set_value(nTemp, FieldUnit::DEGREE);
ExecuteValueModify(nStartCol, nEndCol);
}
-void AreaTransparencyGradientPopup::dispose()
-{
- maCenterGrid.clear();
- maAngleGrid.clear();
- maMtrTrgrCenterX.clear();
- maMtrTrgrCenterY.clear();
- maMtrTrgrAngle.clear();
- maBtnLeft45.clear();
- maBtnRight45.clear();
- maMtrTrgrStartValue.clear();
- maMtrTrgrEndValue.clear();
- maMtrTrgrBorder.clear();
- FloatingWindow::dispose();
-}
-
} } // end of namespace svx::sidebar
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/tbxctrls/PaletteManager.cxx b/svx/source/tbxctrls/PaletteManager.cxx
index 0dba161ef7fd..f8bfd20bf561 100644
--- a/svx/source/tbxctrls/PaletteManager.cxx
+++ b/svx/source/tbxctrls/PaletteManager.cxx
@@ -341,7 +341,7 @@ void PaletteManager::AddRecentColor(const Color& rRecentColor, const OUString& r
batch->commit();
}
-void PaletteManager::SetBtnUpdater(svx::ToolboxButtonColorUpdater* pBtnUpdater)
+void PaletteManager::SetBtnUpdater(svx::ToolboxButtonColorUpdaterBase* pBtnUpdater)
{
mpBtnUpdater = pBtnUpdater;
}
diff --git a/svx/source/tbxctrls/itemwin.cxx b/svx/source/tbxctrls/itemwin.cxx
index f879c0a84313..c6b07d3b71de 100644
--- a/svx/source/tbxctrls/itemwin.cxx
+++ b/svx/source/tbxctrls/itemwin.cxx
@@ -732,6 +732,33 @@ void SvxFillAttrBox::Fill(weld::ComboBox& rBox, const XHatchListRef &pList)
rBox.thaw();
}
+void SvxFillAttrBox::Fill(weld::ComboBox& rBox, const XGradientListRef &pList)
+{
+ if( !pList.is() )
+ return;
+
+ long nCount = pList->Count();
+ ScopedVclPtrInstance< VirtualDevice > pVD;
+ rBox.freeze();
+
+ for( long i = 0; i < nCount; i++ )
+ {
+ const XGradientEntry* pEntry = pList->GetGradient(i);
+ const BitmapEx aBitmapEx = pList->GetUiBitmap( i );
+ if( !aBitmapEx.IsEmpty() )
+ {
+ const Size aBmpSize(aBitmapEx.GetSizePixel());
+ pVD->SetOutputSizePixel(aBmpSize, false);
+ pVD->DrawBitmapEx(Point(), aBitmapEx);
+ rBox.append("", pEntry->GetName(), *pVD);
+ }
+ else
+ rBox.append_text(pEntry->GetName());
+ }
+
+ rBox.thaw();
+}
+
void SvxFillAttrBox::Fill(weld::ComboBox& rBox, const XBitmapListRef &pList)
{
if( !pList.is() )
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index b4c7ca5e4e9f..10ad6779c234 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -32,7 +32,6 @@
#include <vcl/bitmapaccess.hxx>
#include <vcl/menubtn.hxx>
#include <vcl/vclptr.hxx>
-#include <vcl/weldutils.hxx>
#include <svtools/valueset.hxx>
#include <svtools/ctrlbox.hxx>
#include <svl/style.hxx>
@@ -1775,7 +1774,8 @@ SvxColorWindow::SvxColorWindow(const OUString& rCommand,
}
}
-ColorWindow::ColorWindow(std::shared_ptr<PaletteManager> const & rPaletteManager,
+ColorWindow::ColorWindow(const OUString& rCommand,
+ std::shared_ptr<PaletteManager> const & rPaletteManager,
ColorStatus& rColorStatus,
sal_uInt16 nSlotId,
const Reference< XFrame >& rFrame,
@@ -1785,6 +1785,7 @@ ColorWindow::ColorWindow(std::shared_ptr<PaletteManager> const & rPaletteManager
: ToolbarPopupBase(rFrame)
, m_xBuilder(Application::CreateBuilder(rMenuButton.get_widget(), "svx/ui/colorwindow.ui"))
, theSlotId(nSlotId)
+ , maCommand(rCommand)
, mpParentWindow(pParentWindow)
, maMenuButton(rMenuButton)
, mxPaletteManager(rPaletteManager)
@@ -1877,6 +1878,12 @@ ColorWindow::ColorWindow(std::shared_ptr<PaletteManager> const & rPaletteManager
mxRecentColorSet->set_size_request(aSize.Width(), aSize.Height());
AddStatusListener( ".uno:ColorTableState" );
+ AddStatusListener( maCommand );
+ if ( maCommand == ".uno:FrameLineColor" )
+ {
+ AddStatusListener( ".uno:BorderTLBR" );
+ AddStatusListener( ".uno:BorderBLTR" );
+ }
}
IMPL_LINK_NOARG(ColorWindow, FocusHdl, weld::Widget&, void)
@@ -2036,7 +2043,9 @@ IMPL_LINK(ColorWindow, SelectHdl, SvtValueSet*, pColorSet, void)
if (maMenuButton.get_active())
maMenuButton.set_active(false);
- maColorSelectFunction(OUString(), aNamedColor);
+ maSelectedLink.Call(aNamedColor);
+
+ maColorSelectFunction(maCommand, aNamedColor);
}
IMPL_LINK_NOARG(SvxColorWindow, SelectPaletteHdl, ListBox&, void)
@@ -2092,7 +2101,9 @@ IMPL_LINK(ColorWindow, AutoColorClickHdl, weld::Button&, rButton, void)
if (maMenuButton.get_active())
maMenuButton.set_active(false);
- maColorSelectFunction(OUString(), aNamedColor);
+ maSelectedLink.Call(aNamedColor);
+
+ maColorSelectFunction(maCommand, aNamedColor);
}
IMPL_LINK_NOARG(SvxColorWindow, OpenPickerClickHdl, Button*, void)
@@ -2119,7 +2130,7 @@ IMPL_LINK_NOARG(ColorWindow, OpenPickerClickHdl, weld::Button&, void)
{
if (maMenuButton.get_active())
maMenuButton.set_active(false);
- mxPaletteManager->PopupColorPicker(mpParentWindow, OUString(), GetSelectEntryColor().first);
+ mxPaletteManager->PopupColorPicker(mpParentWindow, maCommand, GetSelectEntryColor().first);
}
void SvxColorWindow::StartSelection()
@@ -3456,25 +3467,54 @@ void SvxColorToolBoxControl::initialize( const css::uno::Sequence<css::uno::Any>
{
PopupWindowController::initialize( rArguments );
- ToolBox* pToolBox = nullptr;
- sal_uInt16 nId = 0;
- if ( !getToolboxId( nId, &pToolBox ) )
- {
- SAL_WARN("svx.tbxcrtls", "ToolBox not found!");
- return;
- }
-
m_nSlotId = MapCommandToSlotId( m_aCommandURL );
+
if ( m_nSlotId == SID_ATTR_LINE_COLOR || m_nSlotId == SID_ATTR_FILL_COLOR ||
m_nSlotId == SID_FRAME_LINECOLOR || m_nSlotId == SID_BACKGROUND_COLOR )
+ {
// Sidebar uses wide buttons for those.
- m_bSplitButton = typeid( *pToolBox ) != typeid( sfx2::sidebar::SidebarToolBox );
+ m_bSplitButton = !m_bSidebar;
+ }
auto aProperties = vcl::CommandInfoProvider::GetCommandProperties(getCommandURL(), getModuleName());
OUString aCommandLabel = vcl::CommandInfoProvider::GetLabelForCommand(aProperties);
- m_xBtnUpdater.reset( new svx::ToolboxButtonColorUpdater( m_nSlotId, nId, pToolBox, !m_bSplitButton, aCommandLabel ) );
- pToolBox->SetItemBits( nId, pToolBox->GetItemBits( nId ) | ( m_bSplitButton ? ToolBoxItemBits::DROPDOWN : ToolBoxItemBits::DROPDOWNONLY ) );
+ if (m_pToolbar)
+ {
+ EnsurePaletteManager();
+
+ const css::uno::Reference<css::awt::XWindow> xParent = m_xFrame->getContainerWindow();
+ weld::Window* pParentFrame = Application::GetFrameWeld(xParent);
+
+ const OString aId(m_aCommandURL.toUtf8());
+
+ auto xPopover = std::make_unique<ColorWindow>(
+ m_aCommandURL,
+ m_xPaletteManager,
+ m_aColorStatus,
+ m_nSlotId,
+ m_xFrame,
+ pParentFrame,
+ MenuOrToolMenuButton(m_pToolbar, aId),
+ m_aColorSelectFunction);
+
+ if ( m_bSplitButton )
+ xPopover->SetSelectedHdl( LINK( this, SvxColorToolBoxControl, SelectedHdl ) );
+
+ m_pToolbar->set_item_popover(aId, xPopover->getTopLevel());
+ mxPopover = std::move(xPopover);
+
+ m_xBtnUpdater.reset(new svx::ToolboxButtonColorUpdater(m_nSlotId, aId, m_pToolbar, !m_bSplitButton, aCommandLabel, m_xFrame));
+ return;
+ }
+
+ ToolBox* pToolBox = nullptr;
+ sal_uInt16 nId = 0;
+ if (getToolboxId(nId, &pToolBox))
+ {
+ m_xBtnUpdater.reset( new svx::VclToolboxButtonColorUpdater( m_nSlotId, nId, pToolBox, !m_bSplitButton, aCommandLabel, m_aCommandURL, m_xFrame ) );
+ pToolBox->SetItemBits( nId, pToolBox->GetItemBits( nId ) | ( m_bSplitButton ? ToolBoxItemBits::DROPDOWN : ToolBoxItemBits::DROPDOWNONLY ) );
+ }
}
void SvxColorToolBoxControl::update()
@@ -3552,11 +3592,15 @@ void SvxColorToolBoxControl::statusChanged( const css::frame::FeatureStateEvent&
{
ToolBox* pToolBox = nullptr;
sal_uInt16 nId = 0;
- if ( !getToolboxId( nId, &pToolBox ) )
- return;
+ getToolboxId(nId, &pToolBox);
if ( rEvent.FeatureURL.Complete == m_aCommandURL )
- pToolBox->EnableItem( nId, rEvent.IsEnabled );
+ {
+ if (m_pToolbar)
+ m_pToolbar->set_item_sensitive(m_aCommandURL.toUtf8(), rEvent.IsEnabled);
+ else
+ pToolBox->EnableItem( nId, rEvent.IsEnabled );
+ }
bool bValue;
if ( !m_bSplitButton )
@@ -3565,15 +3609,29 @@ void SvxColorToolBoxControl::statusChanged( const css::frame::FeatureStateEvent&
m_xBtnUpdater->Update( m_aColorStatus.GetColor() );
}
else if ( rEvent.State >>= bValue )
- pToolBox->CheckItem( nId, bValue );
+ {
+ if (m_pToolbar)
+ m_pToolbar->set_item_active(m_aCommandURL.toUtf8(), bValue);
+ else if (pToolBox)
+ pToolBox->CheckItem( nId, bValue );
+ }
}
void SvxColorToolBoxControl::execute(sal_Int16 /*nSelectModifier*/)
{
if ( !m_bSplitButton )
{
- // Open the popup also when Enter key is pressed.
- createPopupWindow();
+ if (m_pToolbar)
+ {
+ // Toggle the popup also when toolbutton is activated
+ const OString aId(m_aCommandURL.toUtf8());
+ m_pToolbar->set_menu_item_active(aId, !m_pToolbar->get_menu_item_active(aId));
+ }
+ else
+ {
+ // Open the popup also when Enter key is pressed.
+ createPopupWindow();
+ }
return;
}
@@ -3611,17 +3669,7 @@ sal_Bool SvxColorToolBoxControl::opensSubToolbar()
void SvxColorToolBoxControl::updateImage()
{
- ToolBox* pToolBox = nullptr;
- sal_uInt16 nId = 0;
- if ( !getToolboxId( nId, &pToolBox ) )
- return;
-
- Image aImage = vcl::CommandInfoProvider::GetImageForCommand(m_aCommandURL, m_xFrame, pToolBox->GetImageSize());
- if ( !!aImage )
- {
- pToolBox->SetItemImage( nId, aImage );
- m_xBtnUpdater->Update(m_xBtnUpdater->GetCurrentColor(), true);
- }
+ m_xBtnUpdater->Update(m_xBtnUpdater->GetCurrentColor(), true);
}
OUString SvxColorToolBoxControl::getSubToolbarName()
@@ -3741,8 +3789,7 @@ void SvxSimpleUndoRedoController::StateChanged( sal_uInt16, SfxItemState eState,
SvxCurrencyToolBoxControl::SvxCurrencyToolBoxControl( const css::uno::Reference<css::uno::XComponentContext>& rContext ) :
PopupWindowController( rContext, nullptr, OUString() ),
m_eLanguage( Application::GetSettings().GetLanguageTag().getLanguageType() ),
- m_nFormatKey( NUMBERFORMAT_ENTRY_NOT_FOUND ),
- m_pToolbar(nullptr)
+ m_nFormatKey( NUMBERFORMAT_ENTRY_NOT_FOUND )
{
}
@@ -3877,28 +3924,15 @@ namespace
}
}
-void SvxCurrencyToolBoxControl::EndPopupMode()
-{
- m_pToolbar->set_menu_item_active(m_aCommandURL.toUtf8(), false);
-}
-
-void SvxCurrencyToolBoxControl::dispose()
-{
- m_xPopover.reset();
- svt::PopupWindowController::dispose();
-}
-
void SvxCurrencyToolBoxControl::initialize( const css::uno::Sequence< css::uno::Any >& rArguments )
{
PopupWindowController::initialize(rArguments);
- if (weld::TransportAsXWindow* pTunnel = dynamic_cast<weld::TransportAsXWindow*>(getParent().get()))
+ if (m_pToolbar)
{
- m_pToolbar = dynamic_cast<weld::Toolbar*>(pTunnel->getWidget());
- assert(m_pToolbar && "must be a toolbar");
auto xPopover = std::make_unique<CurrencyList_Impl>(this, m_pToolbar, m_aFormatString, m_eLanguage);
m_pToolbar->set_item_popover(m_aCommandURL.toUtf8(), xPopover->getTopLevel());
- m_xPopover = std::move(xPopover);
+ mxPopover = std::move(xPopover);
return;
}
@@ -4310,6 +4344,7 @@ void ColorListBox::createColorWindow()
EnsurePaletteManager();
m_xColorWindow.reset(new ColorWindow(
+ OUString() /*m_aCommandURL*/,
m_xPaletteManager,
m_aColorStatus,
m_nSlotId,
@@ -4319,7 +4354,7 @@ void ColorListBox::createColorWindow()
m_aColorWrapper));
SetNoSelection();
- m_xButton->set_popover(m_xColorWindow->GetWidget());
+ m_xButton->set_popover(m_xColorWindow->getTopLevel());
if (m_bShowNoneButton)
m_xColorWindow->ShowNoneButton();
m_xColorWindow->SelectEntry(m_aSelectedColor);
diff --git a/svx/source/tbxctrls/tbxcolorupdate.cxx b/svx/source/tbxctrls/tbxcolorupdate.cxx
index 547ae1c42757..2895f258590b 100644
--- a/svx/source/tbxctrls/tbxcolorupdate.cxx
+++ b/svx/source/tbxctrls/tbxcolorupdate.cxx
@@ -21,9 +21,11 @@
#include <svx/svxids.hrc>
#include <svx/xdef.hxx>
+#include <vcl/commandinfoprovider.hxx>
#include <vcl/svapp.hxx>
#include <vcl/toolbox.hxx>
#include <vcl/virdev.hxx>
+#include <vcl/weld.hxx>
#include <vcl/settings.hxx>
#include <tools/debug.hxx>
@@ -32,16 +34,20 @@
namespace svx
{
- ToolboxButtonColorUpdater::ToolboxButtonColorUpdater(
- sal_uInt16 nSlotId, sal_uInt16 nTbxBtnId, ToolBox* pToolBox, bool bWideButton, const OUString& rCommandLabel)
+ ToolboxButtonColorUpdaterBase::ToolboxButtonColorUpdaterBase(bool bWideButton, const OUString& rCommandLabel,
+ const OUString& rCommandURL,
+ const css::uno::Reference<css::frame::XFrame>& rFrame)
: mbWideButton(bWideButton)
- , mnBtnId(nTbxBtnId)
- , mpTbx(pToolBox)
+ , mbWasHiContrastMode(Application::GetSettings().GetStyleSettings().GetHighContrastMode())
, maCurColor(COL_TRANSPARENT)
, maCommandLabel(rCommandLabel)
+ , maCommandURL(rCommandURL)
+ , mxFrame(rFrame)
+ {
+ }
+
+ void ToolboxButtonColorUpdaterBase::Init(sal_uInt16 nSlotId)
{
- DBG_ASSERT(pToolBox, "ToolBox not found :-(");
- mbWasHiContrastMode = pToolBox && pToolBox->GetSettings().GetStyleSettings().GetHighContrastMode();
switch (nSlotId)
{
case SID_ATTR_CHAR_COLOR:
@@ -68,10 +74,57 @@ namespace svx
}
}
- ToolboxButtonColorUpdater::~ToolboxButtonColorUpdater()
+ VclToolboxButtonColorUpdater::VclToolboxButtonColorUpdater(
+ sal_uInt16 nSlotId, sal_uInt16 nTbxBtnId, ToolBox* pToolBox, bool bWideButton,
+ const OUString& rCommandLabel, const OUString& rCommandURL,
+ const css::uno::Reference<css::frame::XFrame>& rFrame)
+ : ToolboxButtonColorUpdaterBase(bWideButton, rCommandLabel, rCommandURL, rFrame)
+ , mnBtnId(nTbxBtnId)
+ , mpTbx(pToolBox)
+ {
+ Init(nSlotId);
+ }
+
+ void VclToolboxButtonColorUpdater::SetQuickHelpText(const OUString& rText)
+ {
+ mpTbx->SetQuickHelpText(mnBtnId, rText);
+ }
+
+ OUString VclToolboxButtonColorUpdater::GetQuickHelpText() const
+ {
+ return mpTbx->GetQuickHelpText(mnBtnId);
+ }
+
+ void VclToolboxButtonColorUpdater::SetImage(VirtualDevice* pVirDev)
+ {
+ mpTbx->SetItemImage(mnBtnId, Image(pVirDev->GetBitmapEx(Point(0,0), maBmpSize)));
+ }
+
+ VclPtr<VirtualDevice> VclToolboxButtonColorUpdater::CreateVirtualDevice() const
+ {
+ auto xRet = VclPtr<VirtualDevice>::Create(*mpTbx,
+ DeviceFormat::DEFAULT, DeviceFormat::DEFAULT);
+ xRet->SetBackground(mpTbx->GetControlBackground());
+ return xRet;
+ }
+
+ vcl::ImageType VclToolboxButtonColorUpdater::GetImageSize() const
+ {
+ return mpTbx->GetImageSize();
+ }
+
+ Size VclToolboxButtonColorUpdater::GetItemSize() const
+ {
+ if (mbWideButton)
+ return mpTbx->GetItemContentSize(mnBtnId);
+ Image aImage(mpTbx->GetItemImage(mnBtnId));
+ return aImage.GetSizePixel();
+ }
+
+ ToolboxButtonColorUpdaterBase::~ToolboxButtonColorUpdaterBase()
{}
- void ToolboxButtonColorUpdater::Update(const NamedColor &rNamedColor)
+ void ToolboxButtonColorUpdaterBase::Update(const NamedColor &rNamedColor)
{
Update(rNamedColor.first);
if (!mbWideButton)
@@ -80,14 +133,14 @@ namespace svx
OUString colorSuffix = OUString(" (%1)").replaceFirst("%1", rNamedColor.second);
OUString colorHelpText = maCommandLabel + colorSuffix;
- mpTbx->SetQuickHelpText(mnBtnId, colorHelpText);
+ SetQuickHelpText(colorHelpText);
}
}
- void ToolboxButtonColorUpdater::Update(const Color& rColor, bool bForceUpdate)
+ void ToolboxButtonColorUpdaterBase::Update(const Color& rColor, bool bForceUpdate)
{
- Image aImage(mpTbx->GetItemImage(mnBtnId));
- Size aItemSize(mbWideButton ? mpTbx->GetItemContentSize(mnBtnId) : aImage.GetSizePixel());
+ Size aItemSize(GetItemSize());
+
#ifdef IOS // tdf#126966
// Oddly enough, it is in the "not wide button" case that we want the larger ones, hmm.
if (!mbWideButton)
@@ -102,7 +155,7 @@ namespace svx
}
#endif
const bool bSizeChanged = (maBmpSize != aItemSize);
- const bool bDisplayModeChanged = (mbWasHiContrastMode != mpTbx->GetSettings().GetStyleSettings().GetHighContrastMode());
+ const bool bDisplayModeChanged = (mbWasHiContrastMode != Application::GetSettings().GetStyleSettings().GetHighContrastMode());
Color aColor(rColor);
// !!! #109290# Workaround for SetFillColor with COL_AUTO
@@ -115,19 +168,20 @@ namespace svx
if (!aItemSize.Width() || !aItemSize.Height())
return;
- ScopedVclPtr<VirtualDevice> pVirDev(VclPtr<VirtualDevice>::Create(*Application::GetDefaultDevice(),
- DeviceFormat::DEFAULT, DeviceFormat::DEFAULT));
+ ScopedVclPtr<VirtualDevice> pVirDev(CreateVirtualDevice());
pVirDev->SetOutputSizePixel(aItemSize);
maBmpSize = aItemSize;
- mbWasHiContrastMode = mpTbx->GetSettings().GetStyleSettings().GetHighContrastMode();
+ auto xImage = vcl::CommandInfoProvider::GetXGraphicForCommand(maCommandURL, mxFrame, GetImageSize());
+ pVirDev->DrawImage(Point(0, 0), Image(xImage));
+
+ const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
+ mbWasHiContrastMode = rStyleSettings.GetHighContrastMode();
if ((COL_TRANSPARENT != aColor) && (maBmpSize.Width() == maBmpSize.Height()))
pVirDev->SetLineColor(aColor);
- else if( mpTbx->GetBackground().GetColor().IsDark() )
- pVirDev->SetLineColor(COL_WHITE);
else
- pVirDev->SetLineColor(COL_BLACK);
+ pVirDev->SetLineColor(rStyleSettings.GetDisableColor());
// use not only COL_TRANSPARENT for detection of transparence,
// but the method/way which is designed to do that
@@ -151,12 +205,12 @@ namespace svx
pVirDev->DrawRect(maUpdRect);
- mpTbx->SetItemOverlayImage(mnBtnId, Image(pVirDev->GetBitmapEx(Point(0,0), aItemSize)));
+ SetImage(pVirDev.get());
}
- OUString ToolboxButtonColorUpdater::GetCurrentColorName()
+ OUString ToolboxButtonColorUpdaterBase::GetCurrentColorName()
{
- OUString sColorName = mpTbx->GetQuickHelpText(mnBtnId);
+ OUString sColorName = GetQuickHelpText();
// The obtained string is of format: color context (color name)
// Generate a substring which contains only the color name
sal_Int32 nStart = sColorName.indexOf('(');
@@ -166,6 +220,61 @@ namespace svx
sColorName = sColorName.copy( 0, nLength - 1);
return sColorName;
}
+
+ ToolboxButtonColorUpdater::ToolboxButtonColorUpdater(sal_uInt16 nSlotId, const OString& rTbxBtnId, weld::Toolbar* ptrTbx, bool bWideButton,
+ const OUString& rCommandLabel, const css::uno::Reference<css::frame::XFrame>& rFrame)
+ : ToolboxButtonColorUpdaterBase(bWideButton, rCommandLabel, OUString::fromUtf8(rTbxBtnId), rFrame)
+ , msBtnId(rTbxBtnId)
+ , mpTbx(ptrTbx)
+ {
+ Init(nSlotId);
+ }
+
+ void ToolboxButtonColorUpdater::SetQuickHelpText(const OUString& rText)
+ {
+ mpTbx->set_item_tooltip_text(msBtnId, rText);
+ }
+
+ OUString ToolboxButtonColorUpdater::GetQuickHelpText() const
+ {
+ return mpTbx->get_item_tooltip_text(msBtnId);
+ }
+
+ void ToolboxButtonColorUpdater::SetImage(VirtualDevice* pVirDev)
+ {
+ mpTbx->set_item_image(msBtnId, pVirDev);
+ }
+
+ VclPtr<VirtualDevice> ToolboxButtonColorUpdater::CreateVirtualDevice() const
+ {
+ return mpTbx->create_virtual_device();
+ }
+
+ vcl::ImageType ToolboxButtonColorUpdater::GetImageSize() const
+ {
+ return mpTbx->get_icon_size();
+ }
+
+ Size ToolboxButtonColorUpdater::GetItemSize() const
+ {
+ vcl::ImageType eImageType = GetImageSize();
+ int nHeight(16);
+ switch (eImageType)
+ {
+ case vcl::ImageType::Size16:
+ nHeight = 16;
+ break;
+ case vcl::ImageType::Size26:
+ nHeight = 26;
+ break;
+ case vcl::ImageType::Size32:
+ nHeight = 32;
+ break;
+ }
+ int nWidth = mbWideButton ? nHeight * 5 : nHeight;
+ return Size(nWidth, nHeight);
+ }
+
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/uiconfig/ui/floatingareastyle.ui b/svx/uiconfig/ui/floatingareastyle.ui
index 5ba56ad8d0ac..bef7b2400015 100644
--- a/svx/uiconfig/ui/floatingareastyle.ui
+++ b/svx/uiconfig/ui/floatingareastyle.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.20.0 -->
+<!-- Generated with glade 3.22.1 -->
<interface domain="svx">
<requires lib="gtk+" version="3.18"/>
<object class="GtkAdjustment" id="adjustment1">
@@ -12,16 +12,30 @@
<property name="step_increment">5</property>
<property name="page_increment">10</property>
</object>
- <object class="GtkWindow" id="FloatingAreaStyle">
+ <object class="GtkAdjustment" id="adjustment3">
+ <property name="upper">100</property>
+ <property name="step_increment">5</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="adjustment4">
+ <property name="upper">100</property>
+ <property name="step_increment">5</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="adjustment5">
+ <property name="upper">100</property>
+ <property name="step_increment">5</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="adjustment6">
+ <property name="upper">100</property>
+ <property name="step_increment">5</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkPopover" id="FloatingAreaStyle">
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="no_show_all">True</property>
<property name="border_width">4</property>
- <property name="resizable">False</property>
- <property name="destroy_with_parent">True</property>
- <property name="type_hint">popup-menu</property>
- <property name="skip_pager_hint">True</property>
- <property name="deletable">False</property>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
@@ -42,7 +56,7 @@
<property name="halign">start</property>
<property name="label" translatable="yes" context="floatingareastyle|label1">_Angle:</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">angle:0degrees</property>
+ <property name="mnemonic_widget">angle</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -56,7 +70,7 @@
<property name="column_spacing">12</property>
<property name="column_homogeneous">True</property>
<child>
- <object class="GtkSpinButton" id="angle:0degrees">
+ <object class="GtkSpinButton" id="angle">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes" context="floatingareastyle|angle|tooltip_text">Specify the angle of rotation for the gradient shading style.</property>
@@ -75,6 +89,9 @@
<object class="GtkToolbar" id="lefttoolbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="toolbar_style">icons</property>
+ <property name="show_arrow">False</property>
+ <property name="icon_size">2</property>
<child>
<object class="GtkToolButton" id="left">
<property name="visible">True</property>
@@ -84,7 +101,7 @@
</object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">True</property>
+ <property name="homogeneous">False</property>
</packing>
</child>
</object>
@@ -97,6 +114,9 @@
<object class="GtkToolbar" id="righttoolbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="toolbar_style">icons</property>
+ <property name="show_arrow">False</property>
+ <property name="icon_size">2</property>
<child>
<object class="GtkToolButton" id="right">
<property name="visible">True</property>
@@ -106,7 +126,7 @@
</object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">True</property>
+ <property name="homogeneous">False</property>
</packing>
</child>
</object>
@@ -146,7 +166,7 @@
<property name="halign">start</property>
<property name="label" translatable="yes" context="floatingareastyle|label4">_Start value:</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">start:0%</property>
+ <property name="mnemonic_widget">start</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -160,7 +180,7 @@
<property name="halign">start</property>
<property name="label" translatable="yes" context="floatingareastyle|label5">_End value:</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">end:0%</property>
+ <property name="mnemonic_widget">end</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -168,11 +188,11 @@
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="start:0%">
+ <object class="GtkSpinButton" id="start">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes" context="floatingareastyle|start|tooltip_text">Enter a transparency value for the beginning point of the gradient, where 0% is fully opaque and 100% is fully transparent.</property>
- <property name="adjustment">adjustment2</property>
+ <property name="adjustment">adjustment4</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -180,11 +200,11 @@
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="end:0%">
+ <object class="GtkSpinButton" id="end">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes" context="floatingareastyle|end|tooltip_text">Enter a transparency value for the endpoint of the gradient, where 0% is fully opaque and 100% is fully transparent.</property>
- <property name="adjustment">adjustment2</property>
+ <property name="adjustment">adjustment5</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -209,7 +229,7 @@
<property name="halign">start</property>
<property name="label" translatable="yes" context="floatingareastyle|label6">_Border:</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">border:0%</property>
+ <property name="mnemonic_widget">border</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -217,11 +237,11 @@
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="border:0%">
+ <object class="GtkSpinButton" id="border">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes" context="floatingareastyle|border|tooltip_text">Specify the border value of gradient transparency.</property>
- <property name="adjustment">adjustment2</property>
+ <property name="adjustment">adjustment6</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -247,7 +267,7 @@
<property name="halign">start</property>
<property name="label" translatable="yes" context="floatingareastyle|label2">Center _X:</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">centerx:0%</property>
+ <property name="mnemonic_widget">centerx</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -261,7 +281,7 @@
<property name="halign">start</property>
<property name="label" translatable="yes" context="floatingareastyle|label3">Center _Y:</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">centery:0%</property>
+ <property name="mnemonic_widget">centery</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -269,7 +289,7 @@
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="centerx:0%">
+ <object class="GtkSpinButton" id="centerx">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes" context="floatingareastyle|centerx|tooltip_text">Specify the horizontal offset percentage from the center for the gradient shading style. 50% is the horizontal center.</property>
@@ -281,11 +301,11 @@
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="centery:0%">
+ <object class="GtkSpinButton" id="centery">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes" context="floatingareastyle|centery|tooltip_text">Specify the vertical offset percentage from the center for the gradient shading style. 50% is the vertical center.</property>
- <property name="adjustment">adjustment2</property>
+ <property name="adjustment">adjustment3</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -301,4 +321,14 @@
</object>
</child>
</object>
+ <object class="GtkSizeGroup">
+ <widgets>
+ <widget name="angle"/>
+ <widget name="start"/>
+ <widget name="end"/>
+ <widget name="border"/>
+ <widget name="centerx"/>
+ <widget name="centery"/>
+ </widgets>
+ </object>
</interface>
diff --git a/svx/uiconfig/ui/sidebararea.ui b/svx/uiconfig/ui/sidebararea.ui
index ba5169a23614..79e5299ec252 100644
--- a/svx/uiconfig/ui/sidebararea.ui
+++ b/svx/uiconfig/ui/sidebararea.ui
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.16.1 -->
+<!-- Generated with glade 3.22.1 -->
<interface domain="svx">
- <requires lib="LibreOffice" version="1.0"/>
<requires lib="gtk+" version="3.18"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">100</property>
@@ -13,6 +12,23 @@
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
+ <object class="GtkAdjustment" id="adjustment4">
+ <property name="upper">100</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkListStore" id="liststore4">
+ <columns>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ <!-- column-name image -->
+ <column type="GdkPixbuf"/>
+ <!-- column-name surface -->
+ <column type="CairoSurface"/>
+ </columns>
+ </object>
<object class="GtkGrid" id="AreaPropertyPanel">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -38,15 +54,14 @@
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|filllabel|tooltip_text">Fill:</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes" context="sidebararea|filllabel">_Fill:</property>
<property name="use_underline">True</property>
+ <property name="mnemonic_widget">fillstyle</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
@@ -55,21 +70,23 @@
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<child>
- <object class="sfxlo-SidebarToolBox" id="selectcolor">
+ <object class="GtkToolbar" id="selectcolor">
<property name="can_focus">True</property>
+ <property name="halign">start</property>
+ <property name="toolbar_style">icons</property>
+ <property name="show_arrow">False</property>
+ <property name="icon_size">2</property>
<child>
- <object class="GtkMenuToolButton" id="color">
- <property name="width_request">105</property>
+ <object class="GtkMenuToolButton" id=".uno:FillColor">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|color|tooltip_text">Select the color to apply.</property>
- <property name="action_name">.uno:FillColor</property>
<property name="use_underline">True</property>
</object>
<packing>
- <property name="expand">True</property>
- <property name="homogeneous">True</property>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
</packing>
</child>
</object>
@@ -80,13 +97,27 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxFillAttrBox" id="fillattr">
- <property name="can_focus">True</property>
+ <object class="GtkComboBox" id="fillattr">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|fillattr|tooltip_text">Select the effect to apply.</property>
- <accessibility>
- <relation type="labelled-by" target="filllabel"/>
- </accessibility>
+ <property name="hexpand">True</property>
+ <property name="model">liststore4</property>
+ <property name="entry_text_column">0</property>
+ <property name="id_column">1</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext3"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ <child>
+ <object class="GtkCellRendererPixbuf" id="cellrenderertext4"/>
+ <attributes>
+ <attribute name="surface">3</attribute>
+ </attributes>
+ </child>
<child internal-child="accessible">
<object class="AtkObject" id="fillattr-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="sidebararea|fillattr-atkobject">Hatching/Bitmap</property>
@@ -100,10 +131,19 @@
</packing>
</child>
<child>
- <object class="svxcorelo-SvxColorListBox" id="fillgrad1">
+ <object class="GtkMenuButton" id="fillgrad1">
+ <property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|fillgrad1|tooltip_text">Fill gradient from.</property>
+ <property name="valign">center</property>
+ <property name="hexpand">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="label" translatable="no"></property>
+ <child>
+ <placeholder/>
+ </child>
</object>
<packing>
<property name="expand">True</property>
@@ -115,21 +155,14 @@
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
- <object class="svxlo-SvxFillTypeBox" id="fillstyle">
+ <object class="GtkComboBoxText" id="fillstyle">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|fillstyle|tooltip_text">Select the fill type to apply.</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
- <accessibility>
- <relation type="labelled-by" target="fillstyle"/>
- </accessibility>
<child internal-child="accessible">
<object class="AtkObject" id="fillstyle-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="sidebararea|fillstyle-atkobject">Fill Type</property>
@@ -139,21 +172,26 @@
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
- <object class="svxcorelo-SvxColorListBox" id="fillgrad2">
+ <object class="GtkMenuButton" id="fillgrad2">
+ <property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|fillgrad2|tooltip_text">Fill gradient to.</property>
+ <property name="valign">center</property>
+ <property name="hexpand">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="label" translatable="no"></property>
+ <child>
+ <placeholder/>
+ </child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
@@ -163,7 +201,7 @@
<child>
<object class="GtkComboBoxText" id="gradientstyle">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|gradientstyle|tooltip_text">Select the gradient style.</property>
<items>
<item translatable="yes" context="sidebararea|gradientstyle">Linear</item>
@@ -202,17 +240,15 @@
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="gradangle:0degrees">
+ <object class="GtkSpinButton" id="gradangle">
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|gradangle|tooltip_text">Select the gradient angle.</property>
<property name="adjustment">adjustment2</property>
<child internal-child="accessible">
- <object class="AtkObject" id="gradangle:0degrees-atkobject">
+ <object class="AtkObject" id="gradangle-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="sidebararea|gradangle-atkobject">Gradient angle</property>
</object>
</child>
@@ -220,8 +256,6 @@
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
@@ -230,21 +264,19 @@
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|transparencylabel|tooltip_text">Transparency</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes" context="sidebararea|transparencylabel">_Transparency:</property>
<property name="use_underline">True</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="transtype">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|transtype|tooltip_text">Select the type of transparency to apply.</property>
<items>
@@ -266,8 +298,6 @@
<packing>
<property name="left_attach">1</property>
<property name="top_attach">3</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
@@ -275,27 +305,26 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="halign">start</property>
+ <property name="toolbar_style">icons</property>
+ <property name="show_arrow">False</property>
+ <property name="icon_size">2</property>
<child>
- <object class="GtkMenuToolButton" id="gradient">
+ <object class="GtkMenuToolButton" id="sidebargradient">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|gradient|tooltip_text">Specify the variation of gradient transparency.</property>
- <property name="hexpand">True</property>
- <property name="action_name">.uno:sidebargradient</property>
<property name="use_underline">True</property>
</object>
<packing>
- <property name="expand">True</property>
- <property name="homogeneous">True</property>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">4</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
@@ -319,6 +348,7 @@
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|transparencyslider|tooltip_text">Specify 0% for fully opaque through 100% for fully transparent.</property>
<property name="hexpand">True</property>
+ <property name="adjustment">adjustment4</property>
<property name="round_digits">1</property>
<property name="draw_value">False</property>
</object>
@@ -326,21 +356,17 @@
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">3</property>
- <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="settransparency:0%">
+ <object class="GtkSpinButton" id="settransparency">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="sidebararea|settransparency|tooltip_text">Specify 0% for fully opaque through 100% for fully transparent.</property>
- <property name="max_length">100</property>
- <property name="secondary_icon_activatable">False</property>
<property name="adjustment">adjustment1</property>
- <property name="numeric">True</property>
<child internal-child="accessible">
- <object class="AtkObject" id="settransparency:0%-atkobject">
+ <object class="AtkObject" id="settransparency-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="sidebararea|settransparency-atkobject">Transparency</property>
</object>
</child>
@@ -348,8 +374,6 @@
<packing>
<property name="left_attach">3</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
</object>
@@ -363,8 +387,6 @@
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
</object>
@@ -381,7 +403,7 @@
<widget name="filllabel"/>
<widget name="gradientstyle"/>
<widget name="bmpimport"/>
- <widget name="gradangle:0degrees"/>
+ <widget name="gradangle"/>
<widget name="transparencylabel"/>
</widgets>
</object>
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index cb6f6d5f0087..910778b2da6e 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -1099,7 +1099,25 @@ public:
m_xToolBox->SetItemText(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), rLabel);
}
- virtual void set_item_icon(int nIndex, const css::uno::Reference<css::graphic::XGraphic>& rIcon) override
+ virtual void set_item_icon_name(const OString& rIdent, const OUString& rIconName) override
+ {
+ m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), Image(StockImage::Yes, rIconName));
+ }
+
+ virtual void set_item_image(const OString& rIdent, const css::uno::Reference<css::graphic::XGraphic>& rIcon) override
+ {
+ m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), Image(rIcon));
+ }
+
+ virtual void set_item_image(const OString& rIdent, VirtualDevice* pDevice) override
+ {
+ if (pDevice)
+ m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), createImage(*pDevice));
+ else
+ m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), Image());
+ }
+
+ virtual void set_item_image(int nIndex, const css::uno::Reference<css::graphic::XGraphic>& rIcon) override
{
m_xToolBox->SetItemImage(m_xToolBox->GetItemId(nIndex), Image(rIcon));
}
@@ -1114,6 +1132,11 @@ public:
m_xToolBox->SetQuickHelpText(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), rTip);
}
+ virtual OUString get_item_tooltip_text(const OString& rIdent) const override
+ {
+ return m_xToolBox->GetQuickHelpText(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)));
+ }
+
virtual vcl::ImageType get_icon_size() const override
{
return m_xToolBox->GetImageSize();
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 6630ee15f2fc..a291dafc7d44 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -2989,6 +2989,34 @@ namespace
return pRet;
}
+ GdkPixbuf* getPixbuf(const OUString& rIconName)
+ {
+ if (rIconName.isEmpty())
+ return nullptr;
+
+ GdkPixbuf* pixbuf = nullptr;
+
+ if (rIconName.lastIndexOf('.') != rIconName.getLength() - 4)
+ {
+ assert((rIconName== "dialog-warning" || rIconName== "dialog-error" || rIconName== "dialog-information") &&
+ "unknown stock image");
+
+ GError *error = nullptr;
+ GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
+ pixbuf = gtk_icon_theme_load_icon(icon_theme, OUStringToOString(rIconName, RTL_TEXTENCODING_UTF8).getStr(),
+ 16, GTK_ICON_LOOKUP_USE_BUILTIN, &error);
+ }
+ else
+ {
+ const AllSettings& rSettings = Application::GetSettings();
+ pixbuf = load_icon_by_name_theme_lang(rIconName,
+ rSettings.GetStyleSettings().DetermineIconTheme(),
+ rSettings.GetUILanguageTag().getBcp47());
+ }
+
+ return pixbuf;
+ }
+
GtkWidget* image_new_from_virtual_device(const VirtualDevice& rImageSurface)
{
GtkWidget* pImage = nullptr;
@@ -7101,6 +7129,33 @@ private:
signal_clicked(OString(pStr, pStr ? strlen(pStr) : 0));
}
+ static void set_item_image(GtkToolButton* pItem, const css::uno::Reference<css::graphic::XGraphic>& rIcon)
+ {
+ GtkWidget* pImage = nullptr;
+
+ if (GdkPixbuf* pixbuf = getPixbuf(rIcon))
+ {
+ pImage = gtk_image_new_from_pixbuf(pixbuf);
+ g_object_unref(pixbuf);
+ gtk_widget_show(pImage);
+ }
+
+ gtk_tool_button_set_icon_widget(pItem, pImage);
+ }
+
+ static void set_item_image(GtkToolButton* pItem, VirtualDevice* pDevice)
+ {
+ GtkWidget* pImage = nullptr;
+
+ if (pDevice)
+ {
+ pImage = image_new_from_virtual_device(*pDevice);
+ gtk_widget_show(pImage);
+ }
+
+ gtk_tool_button_set_icon_widget(pItem, pImage);
+ }
+
public:
GtkInstanceToolbar(GtkToolbar* pToolbar, GtkInstanceBuilder* pBuilder, bool bTakeOwnership)
: GtkInstanceWidget(GTK_WIDGET(pToolbar), pBuilder, bTakeOwnership)
@@ -7268,20 +7323,38 @@ public:
return OUString(pText, pText ? strlen(pText) : 0, RTL_TEXTENCODING_UTF8);
}
- virtual void set_item_icon(int nIndex, const css::uno::Reference<css::graphic::XGraphic>& rIcon) override
+ virtual void set_item_icon_name(const OString& rIdent, const OUString& rIconName) override
{
- GtkToolItem* pItem = gtk_toolbar_get_nth_item(m_pToolbar, nIndex);
+ GtkToolButton* pItem = m_aMap[rIdent];
GtkWidget* pImage = nullptr;
- if (GdkPixbuf* pixbuf = getPixbuf(rIcon))
+ if (GdkPixbuf* pixbuf = getPixbuf(rIconName))
{
pImage = gtk_image_new_from_pixbuf(pixbuf);
g_object_unref(pixbuf);
gtk_widget_show(pImage);
}
- gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(pItem), pImage);
+ gtk_tool_button_set_icon_widget(pItem, pImage);
+ }
+
+ virtual void set_item_image(const OString& rIdent, const css::uno::Reference<css::graphic::XGraphic>& rIcon) override
+ {
+ GtkToolButton* pItem = m_aMap[rIdent];
+ set_item_image(pItem, rIcon);
+ }
+
+ virtual void set_item_image(const OString& rIdent, VirtualDevice* pDevice) override
+ {
+ GtkToolButton* pItem = m_aMap[rIdent];
+ set_item_image(pItem, pDevice);
+ }
+
+ virtual void set_item_image(int nIndex, const css::uno::Reference<css::graphic::XGraphic>& rIcon) override
+ {
+ GtkToolItem* pItem = gtk_toolbar_get_nth_item(m_pToolbar, nIndex);
+ set_item_image(GTK_TOOL_BUTTON(pItem), rIcon);
}
virtual void set_item_tooltip_text(int nIndex, const OUString& rTip) override
@@ -7296,6 +7369,13 @@ public:
gtk_widget_set_tooltip_text(GTK_WIDGET(pItem), OUStringToOString(rTip, RTL_TEXTENCODING_UTF8).getStr());
}
+ virtual OUString get_item_tooltip_text(const OString& rIdent) const override
+ {
+ GtkToolButton* pItem = m_aMap.find(rIdent)->second;
+ const gchar* pStr = gtk_widget_get_tooltip_text(GTK_WIDGET(pItem));
+ return OUString(pStr, pStr ? strlen(pStr) : 0, RTL_TEXTENCODING_UTF8);
+ }
+
virtual vcl::ImageType get_icon_size() const override
{
return GtkToVcl(gtk_toolbar_get_icon_size(m_pToolbar));
@@ -7957,34 +8037,6 @@ public:
return found;
}
- GdkPixbuf* getPixbuf(const OUString& rIconName)
- {
- if (rIconName.isEmpty())
- return nullptr;
-
- GdkPixbuf* pixbuf = nullptr;
-
- if (rIconName.lastIndexOf('.') != rIconName.getLength() - 4)
- {
- assert((rIconName== "dialog-warning" || rIconName== "dialog-error" || rIconName== "dialog-information") &&
- "unknown stock image");
-
- GError *error = nullptr;
- GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
- pixbuf = gtk_icon_theme_load_icon(icon_theme, OUStringToOString(rIconName, RTL_TEXTENCODING_UTF8).getStr(),
- 16, GTK_ICON_LOOKUP_USE_BUILTIN, &error);
- }
- else
- {
- const AllSettings& rSettings = Application::GetSettings();
- pixbuf = load_icon_by_name_theme_lang(rIconName,
- rSettings.GetStyleSettings().DetermineIconTheme(),
- rSettings.GetUILanguageTag().getBcp47());
- }
-
- return pixbuf;
- }
-
void insert_row(GtkListStore* pListStore, GtkTreeIter& iter, int pos, const OUString* pId, const OUString& rText, const OUString* pIconName, const VirtualDevice* pDevice)
{
if (!pIconName && !pDevice)