diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-10-28 13:37:33 +0100 |
---|---|---|
committer | Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> | 2018-06-25 12:24:03 +0200 |
commit | 4b5d7b638dbbef50da258ef6f00c06596fba5f91 (patch) | |
tree | 4bf7b71a9261767a551cc9c36f67771d26355a15 | |
parent | let menu button launch arbitrary floating windows (diff) | |
download | core-private/s.mehrbrodt/colorpicker-backport.tar.gz core-private/s.mehrbrodt/colorpicker-backport.zip |
unify color selectors
private/s.mehrbrodt/colorpicker-backport
Note: this removes the use of auto-color from writer's asian text grid, because
its always invisible as far as I can see in practice.
(cherry picked from commit 43bc3031483d172eccd72c3804e2d4fc2ef37de4)
Conflicts:
chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx
chart2/source/controller/inc/dlg_View3D.hxx
cui/source/inc/border.hxx
cui/source/inc/chardlg.hxx
cui/source/inc/cuitabarea.hxx
cui/source/inc/cuitabline.hxx
cui/source/inc/numpages.hxx
cui/source/options/optcolor.cxx
cui/source/tabpages/border.cxx
cui/source/tabpages/borderconn.cxx
cui/source/tabpages/chardlg.cxx
cui/source/tabpages/numpages.cxx
cui/source/tabpages/tpgradnt.cxx
cui/source/tabpages/tphatch.cxx
cui/source/tabpages/tpline.cxx
cui/source/tabpages/tppattern.cxx
cui/source/tabpages/tpshadow.cxx
cui/uiconfig/ui/gradientpage.ui
cui/uiconfig/ui/hatchpage.ui
cui/uiconfig/ui/patterntabpage.ui
include/sfx2/controlwrapper.hxx
include/svx/PaletteManager.hxx
include/svx/colorwindow.hxx
include/svx/float3d.hxx
include/svx/fontwork.hxx
include/svx/sidebar/AreaPropertyPanelBase.hxx
include/svx/svxids.hrc
include/svx/tbcontrl.hxx
sc/source/ui/condformat/colorformat.cxx
sc/source/ui/condformat/condformatdlgentry.cxx
sc/source/ui/dbgui/scendlg.cxx
sc/source/ui/inc/scendlg.hxx
sc/source/ui/optdlg/opredlin.cxx
sc/source/ui/optdlg/tpview.cxx
sc/uiconfig/scalc/ui/conditionalentry.ui
sd/inc/sdabstdlg.hxx
sd/qa/unit/dialogs-test.cxx
sd/source/ui/animations/CustomAnimationDialog.cxx
sd/source/ui/dlg/copydlg.cxx
sd/source/ui/dlg/sddlgfact.cxx
sd/source/ui/dlg/sddlgfact.hxx
sd/source/ui/func/fucopy.cxx
sd/source/ui/inc/copydlg.hxx
sd/source/ui/sidebar/SlideBackground.cxx
sd/source/ui/sidebar/SlideBackground.hxx
sd/uiconfig/simpress/ui/sidebarslidebackground.ui
svtools/source/control/ctrlbox.cxx
svx/source/dialog/bmpmask.hrc
svx/source/dialog/bmpmask.src
svx/source/dialog/fontwork.cxx
svx/source/engine3d/float3d.cxx
svx/source/sidebar/area/AreaPropertyPanelBase.cxx
svx/source/sidebar/shadow/ShadowPropertyPanel.cxx
svx/source/sidebar/shadow/ShadowPropertyPanel.hxx
svx/source/tbxctrls/PaletteManager.cxx
svx/source/tbxctrls/tbcontrl.cxx
svx/uiconfig/ui/sidebararea.ui
sw/source/ui/config/optpage.cxx
sw/source/ui/frmdlg/column.cxx
sw/source/ui/misc/pgfnote.cxx
sw/source/ui/misc/pggrid.cxx
sw/source/uibase/inc/column.hxx
sw/source/uibase/inc/optpage.hxx
sw/source/uibase/inc/pgfnote.hxx
sw/source/uibase/inc/pggrid.hxx
sw/source/uibase/sidebar/PageStylesPanel.cxx
sw/source/uibase/sidebar/PageStylesPanel.hxx
sw/uiconfig/swriter/ui/optredlinepage.ui
sw/uiconfig/swriter/ui/pagestylespanel.ui
Change-Id: Ie850790d740a4d56c43015e493e093678cef3b4e
119 files changed, 1392 insertions, 1953 deletions
diff --git a/chart2/source/controller/dialogs/dlg_View3D.cxx b/chart2/source/controller/dialogs/dlg_View3D.cxx index eb0150b1ad7a..7cfd50f41fd1 100644 --- a/chart2/source/controller/dialogs/dlg_View3D.cxx +++ b/chart2/source/controller/dialogs/dlg_View3D.cxx @@ -39,7 +39,7 @@ using namespace ::com::sun::star::chart2; sal_uInt16 View3DDialog::m_nLastPageId = 0; -View3DDialog::View3DDialog(vcl::Window* pParent, const uno::Reference< frame::XModel > & xChartModel, const XColorListRef &pColorTable ) +View3DDialog::View3DDialog(vcl::Window* pParent, const uno::Reference< frame::XModel > & xChartModel) : TabDialog(pParent, "3DViewDialog", "modules/schart/ui/3dviewdialog.ui") , m_pGeometry(nullptr) , m_pAppearance(nullptr) @@ -51,7 +51,7 @@ View3DDialog::View3DDialog(vcl::Window* pParent, const uno::Reference< frame::XM uno::Reference< beans::XPropertySet > xSceneProperties( ChartModelHelper::findDiagram( xChartModel ), uno::UNO_QUERY ); m_pGeometry = VclPtr<ThreeD_SceneGeometry_TabPage>::Create(m_pTabControl,xSceneProperties,m_aControllerLocker); m_pAppearance = VclPtr<ThreeD_SceneAppearance_TabPage>::Create(m_pTabControl,xChartModel,m_aControllerLocker); - m_pIllumination = VclPtr<ThreeD_SceneIllumination_TabPage>::Create(m_pTabControl,xSceneProperties,xChartModel,pColorTable); + m_pIllumination = VclPtr<ThreeD_SceneIllumination_TabPage>::Create(m_pTabControl,xSceneProperties,xChartModel); m_pTabControl->InsertPage( TP_3D_SCENEGEOMETRY, SCH_RESSTR(STR_PAGE_PERSPECTIVE) ); m_pTabControl->InsertPage( TP_3D_SCENEAPPEARANCE, SCH_RESSTR(STR_PAGE_APPEARANCE) ); diff --git a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx index 07509aedc228..594f2dba837c 100644 --- a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx +++ b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx @@ -22,6 +22,7 @@ #include "Bitmaps.hrc" #include "CommonConverters.hxx" +#include <svx/colorbox.hxx> #include "svx/dialogs.hrc" #include <svx/dialmgr.hxx> #include <rtl/math.hxx> @@ -103,7 +104,7 @@ void LightSourceInfo::initButtonFromSource() namespace { - OUString lcl_makeColorName( Color rColor ) + OUString lcl_makeColorName(const Color& rColor) { OUString aStr = SVX_RESSTR(RID_SVXFLOAT3D_FIX_R) + OUString::number(rColor.GetRed()) + @@ -115,15 +116,11 @@ namespace OUString::number(rColor.GetBlue()); return aStr; } - void lcl_selectColor( ColorListBox& rListBox, const Color& rColor ) + + void lcl_selectColor(SvxColorListBox& rListBox, const Color& rColor) { rListBox.SetNoSelection(); - rListBox.SelectEntry( rColor ); - if( rListBox.GetSelectEntryCount() == 0 ) - { - const sal_Int32 nPos = rListBox.InsertEntry( rColor, lcl_makeColorName( rColor ) ); - rListBox.SelectEntryPos( nPos ); - } + rListBox.SelectEntry(std::make_pair(rColor, lcl_makeColorName(rColor))); } ::chart::LightSource lcl_getLightSourceFromProperties( @@ -215,8 +212,7 @@ namespace ThreeD_SceneIllumination_TabPage::ThreeD_SceneIllumination_TabPage( vcl::Window* pWindow , const uno::Reference< beans::XPropertySet > & xSceneProperties - , const uno::Reference< frame::XModel >& xChartModel - , const XColorListRef & pColorTable ) + , const uno::Reference< frame::XModel >& xChartModel ) : TabPage ( pWindow ,"tp_3D_SceneIllumination" ,"modules/schart/ui/tp_3D_SceneIllumination.ui") @@ -242,14 +238,6 @@ ThreeD_SceneIllumination_TabPage::ThreeD_SceneIllumination_TabPage( vcl::Window* get(m_pCtl_Preview, "CTL_LIGHT_PREVIEW"); - if( pColorTable.is() ) - { - m_pLB_AmbientLight->Fill( pColorTable ); - m_pLB_LightSource->Fill( pColorTable ); - } - m_pLB_AmbientLight->SetDropDownLineCount(10); - m_pLB_LightSource->SetDropDownLineCount(10); - m_pLightSourceInfoList = new LightSourceInfo[8]; m_pLightSourceInfoList[0].pButton = m_pBtn_Light1; m_pLightSourceInfoList[1].pButton = m_pBtn_Light2; @@ -408,7 +396,7 @@ IMPL_LINK_NOARG_TYPED(ThreeD_SceneIllumination_TabPage, PreviewSelectHdl, SvxLig IMPL_LINK_TYPED( ThreeD_SceneIllumination_TabPage, ColorDialogHdl, Button*, pButton, void ) { bool bIsAmbientLight = (pButton==m_pBtn_AmbientLight_Color); - ColorLB* pListBox = ( bIsAmbientLight ? m_pLB_AmbientLight : m_pLB_LightSource); + SvxColorListBox* pListBox = ( bIsAmbientLight ? m_pLB_AmbientLight : m_pLB_LightSource); SvColorDialog aColorDlg( this ); aColorDlg.SetColor( pListBox->GetSelectEntryColor() ); @@ -441,9 +429,9 @@ IMPL_LINK_TYPED( ThreeD_SceneIllumination_TabPage, ColorDialogHdl, Button*, pBut } } -IMPL_LINK_TYPED( ThreeD_SceneIllumination_TabPage, SelectColorHdl, ListBox&, rBox, void ) +IMPL_LINK_TYPED( ThreeD_SceneIllumination_TabPage, SelectColorHdl, SvxColorListBox&, rBox, void ) { - ColorLB* pListBox = static_cast<ColorLB*>(&rBox); + SvxColorListBox* pListBox = &rBox; if(pListBox==m_pLB_AmbientLight) { m_bInCommitToModel = true; diff --git a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx index 7d8834aac1df..2fafaa00f930 100644 --- a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx +++ b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx @@ -29,6 +29,8 @@ #include <svx/dlgctrl.hxx> #include <svx/dlgctl3d.hxx> +class SvxColorListBox; + namespace chart { @@ -59,7 +61,7 @@ public: private: DECL_LINK_TYPED( ClickLightSourceButtonHdl, Button*, void ); - DECL_LINK_TYPED( SelectColorHdl, ListBox&, void ); + DECL_LINK_TYPED( SelectColorHdl, SvxColorListBox&, void ); DECL_LINK_TYPED( ColorDialogHdl, Button*, void ); DECL_LINK_TYPED( PreviewChangeHdl, SvxLightCtl3D*, void ); DECL_LINK_TYPED( PreviewSelectHdl, SvxLightCtl3D*, void ); @@ -81,10 +83,10 @@ private: VclPtr<LightButton> m_pBtn_Light7; VclPtr<LightButton> m_pBtn_Light8; - VclPtr<ColorLB> m_pLB_LightSource; + VclPtr<SvxColorListBox> m_pLB_LightSource; VclPtr<PushButton> m_pBtn_LightSource_Color; - VclPtr<ColorLB> m_pLB_AmbientLight; + VclPtr<SvxColorListBox> m_pLB_AmbientLight; VclPtr<PushButton> m_pBtn_AmbientLight_Color; VclPtr<SvxLightCtl3D> m_pCtl_Preview; diff --git a/chart2/source/controller/inc/dlg_View3D.hxx b/chart2/source/controller/inc/dlg_View3D.hxx index e7a4f8f62df0..188f1a804687 100644 --- a/chart2/source/controller/inc/dlg_View3D.hxx +++ b/chart2/source/controller/inc/dlg_View3D.hxx @@ -38,8 +38,7 @@ class View3DDialog : public TabDialog { public: View3DDialog( vcl::Window* pWindow, - const css::uno::Reference< css::frame::XModel > & xChartModel, - const XColorListRef &pColorTable ); + const css::uno::Reference< css::frame::XModel > & xChartModel ); virtual ~View3DDialog(); virtual void dispose() override; diff --git a/chart2/source/controller/main/ChartController_Properties.cxx b/chart2/source/controller/main/ChartController_Properties.cxx index 43d9ca1212eb..ee90f98d202b 100644 --- a/chart2/source/controller/main/ChartController_Properties.cxx +++ b/chart2/source/controller/main/ChartController_Properties.cxx @@ -824,7 +824,7 @@ void ChartController::executeDispatch_View3D() //open dialog SolarMutexGuard aSolarGuard; - ScopedVclPtrInstance< View3DDialog > aDlg( m_pChartWindow, getModel(), m_pDrawModelWrapper->GetColorList() ); + ScopedVclPtrInstance< View3DDialog > aDlg(m_pChartWindow, getModel()); if( aDlg->Execute() == RET_OK ) aUndoGuard.commit(); } diff --git a/chart2/source/controller/sidebar/ChartColorWrapper.cxx b/chart2/source/controller/sidebar/ChartColorWrapper.cxx index 6172939bf849..863fcfee66cb 100644 --- a/chart2/source/controller/sidebar/ChartColorWrapper.cxx +++ b/chart2/source/controller/sidebar/ChartColorWrapper.cxx @@ -69,12 +69,12 @@ ChartColorWrapper::ChartColorWrapper( { } -void ChartColorWrapper::operator()(const OUString& , const Color& rColor) +void ChartColorWrapper::operator()(const OUString& , const NamedColor& rColor) { css::uno::Reference<css::beans::XPropertySet> xPropSet = getPropSet(mxModel); assert(xPropSet.is()); - xPropSet->setPropertyValue(maPropertyName, css::uno::makeAny(rColor.GetColor())); + xPropSet->setPropertyValue(maPropertyName, css::uno::makeAny(rColor.first.GetColor())); } void ChartColorWrapper::updateModel(const css::uno::Reference<css::frame::XModel>& xModel) diff --git a/chart2/source/controller/sidebar/ChartColorWrapper.hxx b/chart2/source/controller/sidebar/ChartColorWrapper.hxx index 4fcfb7d96a0a..f6ca4d75e950 100644 --- a/chart2/source/controller/sidebar/ChartColorWrapper.hxx +++ b/chart2/source/controller/sidebar/ChartColorWrapper.hxx @@ -12,6 +12,7 @@ #include <com/sun/star/frame/XFramesSupplier.hpp> #include <tools/color.hxx> +#include <svx/Palette.hxx> class SvxColorToolBoxControl; @@ -26,7 +27,7 @@ public: SvxColorToolBoxControl* pControl, const OUString& rPropertyName); - void operator()(const OUString& rCommand, const Color& rColor); + void operator()(const OUString& rCommand, const NamedColor& rColor); void updateModel(const css::uno::Reference<css::frame::XModel>& xModel); diff --git a/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui b/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui index 6addfed914d4..c76a0c683ca1 100644 --- a/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui +++ b/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui @@ -244,7 +244,7 @@ <property name="can_focus">False</property> <property name="spacing">12</property> <child> - <object class="svxlo-ColorLB" id="LB_LIGHTSOURCE"> + <object class="svxlo-SvxColorListBox" id="LB_LIGHTSOURCE"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -319,7 +319,7 @@ <property name="can_focus">False</property> <property name="spacing">12</property> <child> - <object class="svxlo-ColorLB" id="LB_AMBIENTLIGHT"> + <object class="svxlo-SvxColorListBox" id="LB_AMBIENTLIGHT"> <property name="visible">True</property> <property name="can_focus">False</property> </object> diff --git a/cui/source/inc/border.hxx b/cui/source/inc/border.hxx index e96ab2caad4d..4271e88226ff 100644 --- a/cui/source/inc/border.hxx +++ b/cui/source/inc/border.hxx @@ -25,6 +25,7 @@ #include <vcl/fixed.hxx> #include <svtools/valueset.hxx> #include <sfx2/tabdlg.hxx> +#include <svx/colorbox.hxx> #include <svx/frmsel.hxx> #include <svx/flagsdef.hxx> @@ -72,7 +73,7 @@ private: VclPtr<svx::FrameSelector> m_pFrameSel; VclPtr<LineListBox> m_pLbLineStyle; - VclPtr<ColorListBox> m_pLbLineColor; + VclPtr<SvxColorListBox> m_pLbLineColor; VclPtr<MetricField> m_pLineWidthMF; VclPtr<VclContainer> m_pSpacingFrame; @@ -91,7 +92,7 @@ private: VclPtr<FixedText> m_pFtShadowSize; VclPtr<MetricField> m_pEdShadowSize; VclPtr<FixedText> m_pFtShadowColor; - VclPtr<ColorListBox> m_pLbShadowColor; + VclPtr<SvxColorListBox> m_pLbShadowColor; VclPtr<VclContainer> m_pPropertiesFrame;///< properties - "Merge with next paragraph" in Writer @@ -119,7 +120,7 @@ private: // Handler DECL_LINK_TYPED( SelStyleHdl_Impl, ListBox&, void ); - DECL_LINK_TYPED( SelColHdl_Impl, ListBox&, void ); + DECL_LINK_TYPED( SelColHdl_Impl, SvxColorListBox&, void ); DECL_LINK_TYPED( SelPreHdl_Impl, ValueSet*, void ); DECL_LINK_TYPED( SelSdwHdl_Impl, ValueSet*, void ); DECL_LINK_TYPED( LinesChanged_Impl, LinkParamNone*, void ); diff --git a/cui/source/inc/chardlg.hxx b/cui/source/inc/chardlg.hxx index 33e0a02b971b..2aa7482e6b11 100644 --- a/cui/source/inc/chardlg.hxx +++ b/cui/source/inc/chardlg.hxx @@ -24,6 +24,7 @@ #include <sfx2/tabdlg.hxx> #include <svx/fntctrl.hxx> #include <svx/checklbx.hxx> +#include <svx/colorbox.hxx> #include <svx/langbox.hxx> #include <vcl/layout.hxx> @@ -175,7 +176,7 @@ class SvxCharEffectsPage : public SvxCharBasePage private: static const sal_uInt16 pEffectsRanges[]; VclPtr<FixedText> m_pFontColorFT; - VclPtr<ColorListBox> m_pFontColorLB; + VclPtr<SvxColorListBox> m_pFontColorLB; VclPtr<FixedText> m_pEffectsFT; VclPtr<ListBox> m_pEffectsLB; @@ -190,13 +191,13 @@ private: VclPtr<ListBox> m_pOverlineLB; VclPtr<FixedText> m_pOverlineColorFT; - VclPtr<ColorListBox> m_pOverlineColorLB; + VclPtr<SvxColorListBox> m_pOverlineColorLB; VclPtr<ListBox> m_pStrikeoutLB; VclPtr<ListBox> m_pUnderlineLB; VclPtr<FixedText> m_pUnderlineColorFT; - VclPtr<ColorListBox> m_pUnderlineColorLB; + VclPtr<SvxColorListBox> m_pUnderlineColorLB; VclPtr<CheckBox> m_pIndividualWordsBtn; @@ -208,8 +209,6 @@ private: sal_uInt16 m_nHtmlMode; - OUString m_aTransparentColorName; - SvxCharEffectsPage( vcl::Window* pParent, const SfxItemSet& rSet ); void Initialize(); @@ -219,7 +218,7 @@ private: bool FillItemSetColor_Impl( SfxItemSet& rSet ); void SelectHdl_Impl(ListBox*); - DECL_LINK_TYPED(SelectListBoxHdl_Impl, ListBox&, void); + DECL_LINK_TYPED(SelectListBoxHdl_Impl, SvxColorListBox&, void); DECL_LINK_TYPED(CbClickHdl_Impl, Button*, void); DECL_LINK_TYPED(TristClickHdl_Impl, Button*, void); DECL_LINK_TYPED(UpdatePreview_Impl, ListBox&, void); diff --git a/cui/source/inc/cuires.hrc b/cui/source/inc/cuires.hrc index f0a8ccd33223..ea558d64ba5f 100644 --- a/cui/source/inc/cuires.hrc +++ b/cui/source/inc/cuires.hrc @@ -85,7 +85,6 @@ #define RID_SVXSTR_CONNECTOR (RID_SVX_START + 221) #define RID_SVXSTR_DIMENSION_LINE (RID_SVX_START + 222) -#define RID_SVXSTR_CHARNAME_TRANSPARENT (RID_SVX_START + 237) #define RID_SVXSTR_DESC_LINEEND (RID_SVX_START + 238) #define RID_SVXSTR_CHARNAME_NOSTYLE (RID_SVX_START + 239) #define RID_SVXSTR_CHARNAME_FAMILY (RID_SVX_START + 240) diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx index dfffa39f13c6..990b8b1e9f74 100644 --- a/cui/source/inc/cuitabarea.hxx +++ b/cui/source/inc/cuitabarea.hxx @@ -31,6 +31,7 @@ class SdrModel; class SdrView; +class SvxColorListBox; /************************************************************************/ @@ -335,7 +336,7 @@ private: VclPtr<VclGrid> m_pGridShadow; VclPtr<SvxRectCtl> m_pCtlPosition; VclPtr<MetricField> m_pMtrDistance; - VclPtr<ColorLB> m_pLbShadowColor; + VclPtr<SvxColorListBox> m_pLbShadowColor; VclPtr<MetricField> m_pMtrTransparent; VclPtr<SvxXShadowPreview> m_pCtlXRectPreview; @@ -356,14 +357,13 @@ private: DECL_LINK_TYPED( ClickShadowHdl_Impl, Button*, void ); DECL_LINK_TYPED( ModifyShadowHdl_Impl, Edit&, void ); - DECL_LINK_TYPED( SelectShadowHdl_Impl, ListBox&, void ); + DECL_LINK_TYPED( SelectShadowHdl_Impl, SvxColorListBox&, void ); public: SvxShadowTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs ); virtual ~SvxShadowTabPage(); virtual void dispose() override; - void Construct(); static VclPtr<SfxTabPage> Create( vcl::Window*, const SfxItemSet* ); static const sal_uInt16* GetRanges() { return pShadowRanges; } @@ -397,9 +397,9 @@ private: VclPtr<FixedText> m_pFtAngle; VclPtr<MetricField> m_pMtrAngle; VclPtr<MetricField> m_pMtrBorder; - VclPtr<ColorLB> m_pLbColorFrom; + VclPtr<SvxColorListBox> m_pLbColorFrom; VclPtr<MetricField> m_pMtrColorFrom; - VclPtr<ColorLB> m_pLbColorTo; + VclPtr<SvxColorListBox> m_pLbColorTo; VclPtr<MetricField> m_pMtrColorTo; VclPtr<GradientLB> m_pLbGradients; VclPtr<SvxXRectPreview> m_pCtlPreview; @@ -431,6 +431,7 @@ private: DECL_LINK_TYPED( ClickDeleteHdl_Impl, Button*, void ); DECL_LINK_TYPED( ChangeGradientHdl_Impl, ListBox&, void ); DECL_LINK_TYPED( ModifiedEditHdl_Impl, Edit&, void ); + DECL_LINK_TYPED( ModifiedColorListBoxHdl_Impl, SvxColorListBox&, void ); DECL_LINK_TYPED( ModifiedListBoxHdl_Impl, ListBox&, void ); DECL_LINK_TYPED( ClickLoadHdl_Impl, Button*, void ); DECL_LINK_TYPED( ClickSaveHdl_Impl, Button*, void ); @@ -478,7 +479,7 @@ private: VclPtr<MetricField> m_pMtrAngle; VclPtr<SvxRectCtl> m_pCtlAngle; VclPtr<ListBox> m_pLbLineType; - VclPtr<ColorLB> m_pLbLineColor; + VclPtr<SvxColorListBox> m_pLbLineColor; VclPtr<HatchingLB> m_pLbHatchings; VclPtr<SvxXRectPreview> m_pCtlPreview; VclPtr<PushButton> m_pBtnAdd; @@ -509,6 +510,7 @@ private: DECL_LINK_TYPED( ChangeHatchHdl_Impl, ListBox&, void ); DECL_LINK_TYPED( ModifiedEditHdl_Impl, Edit&, void ); DECL_LINK_TYPED( ModifiedListBoxHdl_Impl, ListBox&, void ); + DECL_LINK_TYPED( ModifiedColorListBoxHdl_Impl, SvxColorListBox&, void ); void ModifiedHdl_Impl(void*); DECL_LINK_TYPED( ClickAddHdl_Impl, Button*, void ); DECL_LINK_TYPED( ClickModifyHdl_Impl, Button*, void ); @@ -559,8 +561,8 @@ class SvxBitmapTabPage : public SvxTabPage private: VclPtr<VclBox> m_pBxPixelEditor; VclPtr<SvxPixelCtl> m_pCtlPixel; - VclPtr<ColorLB> m_pLbColor; - VclPtr<ColorLB> m_pLbBackgroundColor; + VclPtr<SvxColorListBox> m_pLbColor; + VclPtr<SvxColorListBox> m_pLbBackgroundColor; VclPtr<FixedText> m_pLbBitmapsHidden; VclPtr<BitmapLB> m_pLbBitmaps; VclPtr<SvxXRectPreview> m_pCtlPreview; @@ -598,7 +600,7 @@ private: DECL_LINK_TYPED( ClickDeleteHdl_Impl, Button*, void ); DECL_LINK_TYPED( ChangeBitmapHdl_Impl, ListBox&, void ); DECL_LINK_TYPED( ChangePixelColorHdl_Impl, ListBox&, void ); - DECL_LINK_TYPED( ChangeBackgrndColorHdl_Impl, ListBox&, void ); + DECL_LINK_TYPED( ChangeBackgrndColorHdl_Impl, SvxColorListBox&, void ); DECL_LINK_TYPED( ClickLoadHdl_Impl, Button*, void ); DECL_LINK_TYPED( ClickSaveHdl_Impl, Button*, void ); diff --git a/cui/source/inc/cuitabline.hxx b/cui/source/inc/cuitabline.hxx index d51780e98fe1..1b2a240b9cb7 100644 --- a/cui/source/inc/cuitabline.hxx +++ b/cui/source/inc/cuitabline.hxx @@ -24,6 +24,8 @@ #include <svx/tabline.hxx> #include <svx/tabarea.hxx> +class SvxColorListBox; + class SvxLineTabDialog : public SfxTabDialog { sal_uInt16 m_nLineTabPage; @@ -91,7 +93,7 @@ class SvxLineTabPage : public SvxTabPage private: VclPtr<VclBox> m_pBoxColor; VclPtr<LineLB> m_pLbLineStyle; - VclPtr<ColorLB> m_pLbColor; + VclPtr<SvxColorListBox> m_pLbColor; VclPtr<VclBox> m_pBoxWidth; VclPtr<MetricField> m_pMtrLineWidth; VclPtr<VclBox> m_pBoxTransparency; @@ -181,7 +183,7 @@ private: DECL_LINK_TYPED( ChangeEndModifyHdl_Impl, Edit&, void ); DECL_LINK_TYPED( ChangeEndClickHdl_Impl, Button*, void ); void ChangeEndHdl_Impl(void*); - DECL_LINK_TYPED( ChangePreviewListBoxHdl_Impl, ListBox&, void ); + DECL_LINK_TYPED( ChangePreviewListBoxHdl_Impl, SvxColorListBox&, void ); DECL_LINK_TYPED( ChangePreviewModifyHdl_Impl, Edit&, void ); void ChangePreviewHdl_Impl(void*); DECL_LINK_TYPED( ChangeTransparentHdl_Impl, Edit&, void ); diff --git a/cui/source/inc/numpages.hxx b/cui/source/inc/numpages.hxx index 61901fc1c9d6..0fd4300d82ef 100644 --- a/cui/source/inc/numpages.hxx +++ b/cui/source/inc/numpages.hxx @@ -23,6 +23,7 @@ #include <memory> #include <sfx2/tabdlg.hxx> +#include <svx/Palette.hxx> #include <vcl/group.hxx> #include <vcl/fixed.hxx> #include <vcl/menubtn.hxx> @@ -33,6 +34,7 @@ #include <svtools/ctrlbox.hxx> #include <vcl/dialog.hxx> +class SvxColorListBox; class SvxNumRule; class SvxBmpNumValueSet; class SvxNumValueSet; @@ -256,7 +258,7 @@ class SvxNumOptionsTabPage : public SfxTabPage VclPtr<FixedText> m_pCharFmtFT; VclPtr<ListBox> m_pCharFmtLB; VclPtr<FixedText> m_pBulColorFT; - VclPtr<ColorListBox> m_pBulColLB; + VclPtr<SvxColorListBox> m_pBulColLB; VclPtr<FixedText> m_pBulRelSizeFT; VclPtr<MetricField> m_pBulRelSizeMF; VclPtr<FixedText> m_pAllLevelFT; @@ -329,7 +331,7 @@ class SvxNumOptionsTabPage : public SfxTabPage DECL_LINK_TYPED( AllLevelHdl_Impl, Edit&, void ); DECL_LINK_TYPED( OrientHdl_Impl, ListBox&, void ); DECL_LINK_TYPED( SameLevelHdl_Impl, Button*, void ); - DECL_LINK_TYPED( BulColorHdl_Impl, ListBox&, void ); + DECL_LINK_TYPED( BulColorHdl_Impl, SvxColorListBox&, void ); DECL_LINK_TYPED( BulRelSizeHdl_Impl, Edit&, void); DECL_LINK_TYPED( PreviewInvalidateHdl_Impl, Timer *, void); void EditModifyHdl_Impl(Edit*); diff --git a/cui/source/options/optcolor.cxx b/cui/source/options/optcolor.cxx index afcde48d7a89..2e12d55a405c 100644 --- a/cui/source/options/optcolor.cxx +++ b/cui/source/options/optcolor.cxx @@ -21,11 +21,13 @@ #include <bitset> +#include <editeng/editids.hrc> #include <svtools/colorcfg.hxx> #include <svtools/extcolorcfg.hxx> #include <svtools/headbar.hxx> #include <svtools/ctrlbox.hxx> #include <vcl/scrbar.hxx> +#include <svx/colorbox.hxx> #include <svx/xtable.hxx> #include <unotools/moduleoptions.hxx> #include <unotools/pathoptions.hxx> @@ -177,12 +179,12 @@ public: virtual void dispose() override; public: - void SetLinks (Link<Button*,void> const&, Link<ListBox&,void> const&, Link<Control&,void> const&); + void SetLinks (Link<Button*,void> const&, Link<SvxColorListBox&,void> const&, Link<Control&,void> const&); unsigned GetEntryHeight () const { return vEntries[0]->GetHeight(); } void Update (EditableColorConfig const*, EditableExtendedColorConfig const*); void ScrollHdl(const ScrollBar&); void ClickHdl (EditableColorConfig*, CheckBox*); - void ColorHdl (EditableColorConfig*, EditableExtendedColorConfig*, ColorListBox*); + void ColorHdl (EditableColorConfig*, EditableExtendedColorConfig*, SvxColorListBox*); void Init(ScrollBar *pVScroll, HeaderBar *m_pHeaderHB); void AdjustScrollBar(); void AdjustHeaderBar(); @@ -216,10 +218,10 @@ private: public: void Show (); void Hide (); - void SetAppearance(Wallpaper const& aTextWall, ColorListBox const& aSampleList); + void SetAppearance(Wallpaper const& rTextWall); void SetTextColor (Color C) { m_pText->SetTextColor(C); } public: - void SetLinks (Link<Button*,void> const&, Link<ListBox&,void> const&, Link<Control&,void> const&); + void SetLinks (Link<Button*,void> const&, Link<SvxColorListBox&,void> const&, Link<Control&,void> const&); void Update (ColorConfigEntry, ColorConfigValue const&); void Update (ExtendedColorConfigValue const&); void ColorChanged (ColorConfigEntry, ColorConfigValue&); @@ -229,7 +231,7 @@ private: unsigned GetHeight () const { return m_pColorList->GetSizePixel().Height(); } public: bool Is (CheckBox* pBox) const { return m_pText == pBox; } - bool Is (ColorListBox* pBox) const { return m_pColorList == pBox; } + bool Is (SvxColorListBox* pBox) const { return m_pColorList == pBox; } void dispose() { m_pText.disposeAndClear(); @@ -241,7 +243,7 @@ private: // checkbox (CheckBox) or simple text (FixedText) VclPtr<Control> m_pText; // color list box - VclPtr<ColorListBox> m_pColorList; + VclPtr<SvxColorListBox> m_pColorList; // color preview box VclPtr<vcl::Window> m_pPreview; // default color @@ -357,9 +359,7 @@ ColorConfigWindow_Impl::Entry::Entry( vcl::Window *pGrid, unsigned nYPos, m_pText->set_margin_left(6 + nCheckBoxLabelOffset); m_pText->SetText(rColorEntry.getDisplayName()); - WinBits nWinBits = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_TABSTOP|WB_DROPDOWN; - m_pColorList = VclPtr<ColorListBox>::Create(pGrid, nWinBits); - m_pColorList->EnableAutoSize(true); + m_pColorList = VclPtr<SvxColorListBox>::Create(pGrid); m_pColorList->set_grid_left_attach(1); m_pColorList->set_grid_top_attach(nYPos); @@ -397,24 +397,22 @@ void ColorConfigWindow_Impl::Entry::Hide() // SetAppearance() // iEntry: which entry is this? -// aTextWall: background of the text (transparent) +// rTextWall: background of the text (transparent) // aSampleList: sample color listbox (to copy from) -void ColorConfigWindow_Impl::Entry::SetAppearance( - Wallpaper const& aTextWall, - ColorListBox const& aSampleList) +void ColorConfigWindow_Impl::Entry::SetAppearance(Wallpaper const& rTextWall) { // text (and optionally checkbox) - m_pText->SetBackground(aTextWall); + m_pText->SetBackground(rTextWall); // preview m_pPreview->SetBorderStyle(WindowBorderStyle::MONO); // color list - m_pColorList->CopyEntries(aSampleList); - m_pColorList->InsertAutomaticEntryColor(m_aDefaultColor); + m_pColorList->SetSlotId(SID_ATTR_CHAR_COLOR); + m_pColorList->SetAutoDisplayColor(m_aDefaultColor); } // SetLinks() void ColorConfigWindow_Impl::Entry::SetLinks( - Link<Button*,void> const& aCheckLink, Link<ListBox&,void> const& aColorLink, + Link<Button*,void> const& aCheckLink, Link<SvxColorListBox&,void> const& aColorLink, Link<Control&,void> const& aGetFocusLink) { m_pColorList->SetSelectHdl(aColorLink); @@ -430,17 +428,10 @@ void ColorConfigWindow_Impl::Entry::SetLinks( void ColorConfigWindow_Impl::Entry::Update ( ColorConfigEntry aColorEntry, ColorConfigValue const& rValue ) { - Color aColor; - if ((unsigned)rValue.nColor == COL_AUTO) - { + Color aColor(rValue.nColor); + m_pColorList->SelectEntry(aColor); + if (aColor.GetColor() == COL_AUTO) aColor = ColorConfig::GetDefaultColor(aColorEntry); - m_pColorList->SelectEntryPos(0); - } - else - { - aColor = Color(rValue.nColor); - m_pColorList->SelectEntry(aColor); - } m_pPreview->SetBackground(Wallpaper(aColor)); if (CheckBox* pCheckBox = dynamic_cast<CheckBox*>(m_pText.get())) pCheckBox->Check(rValue.bIsVisible); @@ -452,7 +443,7 @@ void ColorConfigWindow_Impl::Entry::Update ( ) { Color aColor(rValue.getColor()); if (rValue.getColor() == rValue.getDefaultColor()) - m_pColorList->SelectEntryPos(0); + m_pColorList->SelectEntry(Color(COL_AUTO)); else m_pColorList->SelectEntry(aColor); SetColor(aColor); @@ -463,17 +454,10 @@ void ColorConfigWindow_Impl::Entry::ColorChanged ( ColorConfigEntry aColorEntry, ColorConfigValue& rValue ) { - Color aColor; - if (m_pColorList->IsAutomaticSelected()) - { + Color aColor = m_pColorList->GetSelectEntryColor(); + rValue.nColor = aColor.GetColor(); + if (aColor.GetColor() == COL_AUTO) aColor = ColorConfig::GetDefaultColor(aColorEntry); - rValue.nColor = COL_AUTO; - } - else - { - aColor = m_pColorList->GetSelectEntryColor(); - rValue.nColor = aColor.GetColor(); - } SetColor(aColor); } @@ -483,8 +467,7 @@ void ColorConfigWindow_Impl::Entry::ColorChanged ( ) { Color aColor = m_pColorList->GetSelectEntryColor(); rValue.setColor(aColor.GetColor()); - // automatic? - if (m_pColorList->GetSelectEntryPos() == 0) + if (aColor.GetColor() == COL_AUTO) { rValue.setColor(rValue.getDefaultColor()); aColor.SetColor(rValue.getColor()); @@ -635,22 +618,11 @@ void ColorConfigWindow_Impl::SetAppearance () OSL_ENSURE( vEntries.size() >= SAL_N_ELEMENTS(vEntryInfo), "wrong number of helpIDs for color listboxes" ); - // creating a sample color listbox with the color entries - ScopedVclPtrInstance< ColorListBox > aSampleColorList(this); - { - XColorListRef const xColorTable = XColorList::CreateStdColorList(); - for (sal_Int32 i = 0; i != xColorTable->Count(); ++i) - { - XColorEntry& rEntry = *xColorTable->GetColor(i); - aSampleColorList->InsertEntry(rEntry.GetColor(), rEntry.GetName()); - } - } - // appearance for (size_t i = 0; i != vEntries.size(); ++i) { // appearance - vEntries[i]->SetAppearance(aTransparentWall, *aSampleColorList.get()); + vEntries[i]->SetAppearance(aTransparentWall); } } @@ -688,7 +660,7 @@ void ColorConfigWindow_Impl::Init(ScrollBar *pVScroll, HeaderBar *pHeaderHB) // SetLinks() void ColorConfigWindow_Impl::SetLinks ( - Link<Button*,void> const& aCheckLink, Link<ListBox&,void> const& aColorLink, Link<Control&,void> const& aGetFocusLink + Link<Button*,void> const& aCheckLink, Link<SvxColorListBox&,void> const& aColorLink, Link<Control&,void> const& aGetFocusLink ) { for (unsigned i = 0; i != vEntries.size(); ++i) vEntries[i]->SetLinks(aCheckLink, aColorLink, aGetFocusLink); @@ -749,10 +721,10 @@ void ColorConfigWindow_Impl::ClickHdl (EditableColorConfig* pConfig, CheckBox* p } // ColorHdl() -void ColorConfigWindow_Impl::ColorHdl ( +void ColorConfigWindow_Impl::ColorHdl( EditableColorConfig* pConfig, EditableExtendedColorConfig* pExtConfig, - ColorListBox* pBox -) { + SvxColorListBox* pBox) +{ unsigned i = 0; // default entries @@ -845,7 +817,7 @@ class ColorConfigCtrl_Impl : public VclVBox DECL_LINK_TYPED(ScrollHdl, ScrollBar*, void); DECL_LINK_TYPED(ClickHdl, Button*, void); - DECL_LINK_TYPED(ColorHdl, ListBox&, void); + DECL_LINK_TYPED(ColorHdl, SvxColorListBox&, void); DECL_LINK_TYPED(ControlFocusHdl, Control&, void); virtual bool PreNotify (NotifyEvent& rNEvt) override; @@ -899,7 +871,7 @@ ColorConfigCtrl_Impl::ColorConfigCtrl_Impl(vcl::Window* pParent) m_pVScroll->SetEndScrollHdl(aScrollLink); Link<Button*,void> aCheckLink = LINK(this, ColorConfigCtrl_Impl, ClickHdl); - Link<ListBox&,void> aColorLink = LINK(this, ColorConfigCtrl_Impl, ColorHdl); + Link<SvxColorListBox&,void> aColorLink = LINK(this, ColorConfigCtrl_Impl, ColorHdl); Link<Control&,void> aGetFocusLink = LINK(this, ColorConfigCtrl_Impl, ControlFocusHdl); m_pScrollWindow->SetLinks(aCheckLink, aColorLink, aGetFocusLink); @@ -1005,10 +977,10 @@ IMPL_LINK_TYPED(ColorConfigCtrl_Impl, ClickHdl, Button*, pBox, void) } // a color list has changed -IMPL_LINK_TYPED(ColorConfigCtrl_Impl, ColorHdl, ListBox&, rBox, void) +IMPL_LINK_TYPED(ColorConfigCtrl_Impl, ColorHdl, SvxColorListBox&, rBox, void) { DBG_ASSERT(pColorConfig, "Configuration not set" ); - m_pScrollWindow->ColorHdl(pColorConfig, pExtColorConfig, static_cast<ColorListBox*>(&rBox)); + m_pScrollWindow->ColorHdl(pColorConfig, pExtColorConfig, &rBox); } IMPL_LINK_TYPED(ColorConfigCtrl_Impl, ControlFocusHdl, Control&, rCtrl, void) { diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx index 59df9a96c345..30b14853af37 100644 --- a/cui/source/tabpages/backgrnd.cxx +++ b/cui/source/tabpages/backgrnd.cxx @@ -382,7 +382,7 @@ SvxBackgroundTabPage::SvxBackgroundTabPage(vcl::Window* pParent, const SfxItemSe m_pBackgroundColorSet->SetSelectHdl( HDL(BackgroundColorHdl_Impl) ); m_pBackgroundColorSet->SetStyle(m_pBackgroundColorSet->GetStyle() | WB_ITEMBORDER | WB_NAMEFIELD | WB_NONEFIELD); - m_pBackgroundColorSet->SetText(SVX_RESSTR(RID_SVXSTR_TRANSPARENT)); + m_pBackgroundColorSet->SetText(SVX_RESSTR(RID_SVXSTR_NOFILL)); } SvxBackgroundTabPage::~SvxBackgroundTabPage() diff --git a/cui/source/tabpages/border.cxx b/cui/source/tabpages/border.cxx index d25283196363..b440c90d3b81 100644 --- a/cui/source/tabpages/border.cxx +++ b/cui/source/tabpages/border.cxx @@ -288,45 +288,13 @@ SvxBorderTabPage::SvxBorderTabPage(vcl::Window* pParent, const SfxItemSet& rCore m_pLbLineStyle->SetSelectHdl( LINK( this, SvxBorderTabPage, SelStyleHdl_Impl ) ); m_pLbLineColor->SetSelectHdl( LINK( this, SvxBorderTabPage, SelColHdl_Impl ) ); m_pLineWidthMF->SetModifyHdl( LINK( this, SvxBorderTabPage, ModifyWidthHdl_Impl ) ); - m_pLbShadowColor->SetSelectHdl( LINK( this, SvxBorderTabPage, SelColHdl_Impl ) ); m_pWndPresets->SetSelectHdl( LINK( this, SvxBorderTabPage, SelPreHdl_Impl ) ); m_pWndShadows->SetSelectHdl( LINK( this, SvxBorderTabPage, SelSdwHdl_Impl ) ); FillValueSets(); FillLineListBox_Impl(); - // fill ColorBox out of the XColorList - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - XColorListRef pColorTable; - - DBG_ASSERT( pDocSh, "DocShell not found!" ); - - if ( pDocSh ) - { - pItem = pDocSh->GetItem( SID_COLOR_TABLE ); - if ( pItem != nullptr ) - pColorTable = static_cast<const SvxColorListItem*>(pItem)->GetColorList(); - } - - DBG_ASSERT( pColorTable.is(), "ColorTable not found!" ); - - if ( pColorTable.is() ) - { - // filling the line color box - m_pLbLineColor->SetUpdateMode( false ); - - for ( long i = 0; i < pColorTable->Count(); ++i ) - { - XColorEntry* pEntry = pColorTable->GetColor(i); - m_pLbLineColor->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - } - m_pLbLineColor->SetUpdateMode( true ); - - m_pLbShadowColor->CopyEntries(*m_pLbLineColor); - } - // connections - bool bSupportsShadow = !SfxItemPool::IsSlot( GetWhich( SID_ATTR_BORDER_SHADOW ) ); if( bSupportsShadow ) AddItemConnection( svx::CreateShadowConnection( rCoreAttrs, *m_pWndShadows, *m_pEdShadowSize, *m_pLbShadowColor ) ); @@ -348,7 +316,8 @@ SvxBorderTabPage::SvxBorderTabPage(vcl::Window* pParent, const SfxItemSet& rCore AddItemConnection( new sfx::CheckBoxConnection( SID_SW_COLLAPSING_BORDERS, *m_pMergeAdjacentBordersCB, sfx::ITEMCONN_DEFAULT ) ); m_pMergeAdjacentBordersCB->Hide(); - if( pDocSh ) + SfxObjectShell* pDocSh = SfxObjectShell::Current(); + if (pDocSh) { Reference< XServiceInfo > xSI( pDocSh->GetModel(), UNO_QUERY ); if ( xSI.is() ) @@ -566,12 +535,8 @@ void SvxBorderTabPage::Reset( const SfxItemSet* rSet ) if( !bColorEq ) aColor.SetColor( COL_BLACK ); - sal_Int32 nSelPos = m_pLbLineColor->GetEntryPos( aColor ); - if( nSelPos == LISTBOX_ENTRY_NOTFOUND ) - nSelPos = m_pLbLineColor->InsertEntry( aColor, SVX_RESSTR( RID_SVXSTR_COLOR_USER ) ); - - m_pLbLineColor->SelectEntryPos( nSelPos ); - m_pLbLineStyle->SetColor( aColor ); + m_pLbLineColor->SelectEntry(aColor); + m_pLbLineStyle->SetColor(aColor); // Select all visible lines, if they are all equal. if( bWidthEq && bColorEq ) @@ -579,7 +544,6 @@ void SvxBorderTabPage::Reset( const SfxItemSet* rSet ) // set the current style and color (caches style in control even if nothing is selected) SelStyleHdl_Impl(*m_pLbLineStyle); - SelColHdl_Impl(*m_pLbLineColor); } bool bEnable = m_pWndShadows->GetSelectItemId() > 1 ; @@ -869,7 +833,6 @@ IMPL_LINK_NOARG_TYPED(SvxBorderTabPage, SelPreHdl_Impl, ValueSet*, void) // set current style to all previously selected lines SelStyleHdl_Impl(*m_pLbLineStyle); - SelColHdl_Impl(*m_pLbLineColor); } // Presets ValueSet does not show a selection (used as push buttons). @@ -890,15 +853,11 @@ IMPL_LINK_NOARG_TYPED(SvxBorderTabPage, SelSdwHdl_Impl, ValueSet*, void) } -IMPL_LINK_TYPED( SvxBorderTabPage, SelColHdl_Impl, ListBox&, rLb, void ) +IMPL_LINK_TYPED( SvxBorderTabPage, SelColHdl_Impl, SvxColorListBox&, rLb, void ) { - ColorListBox* pColLb = static_cast<ColorListBox*>(&rLb); - - if (&rLb == m_pLbLineColor) - { - m_pFrameSel->SetColorToSelection( pColLb->GetSelectEntryColor() ); - m_pLbLineStyle->SetColor( pColLb->GetSelectEntryColor() ); - } + Color aColor = rColorBox.GetSelectEntryColor(); + m_pFrameSel->SetColorToSelection(aColor); + m_pLbLineStyle->SetColor(aColor); } IMPL_LINK_NOARG_TYPED(SvxBorderTabPage, ModifyWidthHdl_Impl, Edit&, void) diff --git a/cui/source/tabpages/borderconn.cxx b/cui/source/tabpages/borderconn.cxx index 3f5019a50b98..5c0998a24965 100644 --- a/cui/source/tabpages/borderconn.cxx +++ b/cui/source/tabpages/borderconn.cxx @@ -22,6 +22,7 @@ #include "editeng/lineitem.hxx" #include <editeng/boxitem.hxx> #include <svx/algitem.hxx> +#include <svx/colorbox.hxx> #include <editeng/shaditem.hxx> namespace svx { @@ -203,7 +204,7 @@ static const ShadowPosWrapper::MapEntryType s_pShadowPosMap[] = class ShadowControlsWrapper : public sfx::MultiControlWrapper< SvxShadowItem > { public: - explicit ShadowControlsWrapper( ValueSet& rVsPos, MetricField& rMfSize, ColorListBox& rLbColor ); + explicit ShadowControlsWrapper( ValueSet& rVsPos, MetricField& rMfSize, SvxColorListBox& rLbColor ); virtual SvxShadowItem GetControlValue() const override; virtual void SetControlValue( SvxShadowItem aItem ) override; @@ -211,11 +212,11 @@ public: private: ShadowPosWrapper maPosWrp; sfx::MetricFieldWrapper<sal_uInt16> maSizeWrp; - sfx::ColorListBoxWrapper maColorWrp; + SvxColorListBoxWrapper maColorWrp; }; ShadowControlsWrapper::ShadowControlsWrapper( - ValueSet& rVsPos, MetricField& rMfSize, ColorListBox& rLbColor ) : + ValueSet& rVsPos, MetricField& rMfSize, SvxColorListBox& rLbColor ) : maPosWrp( rVsPos, s_pShadowPosMap ), maSizeWrp( rMfSize, FUNIT_TWIP ), maColorWrp( rLbColor ) @@ -250,11 +251,11 @@ class ShadowConnection : public sfx::ItemControlConnection< ShadowItemWrapper, S { public: explicit ShadowConnection( const SfxItemSet& rItemSet, - ValueSet& rVsPos, MetricField& rMfSize, ColorListBox& rLbColor ); + ValueSet& rVsPos, MetricField& rMfSize, SvxColorListBox& rLbColor ); }; ShadowConnection::ShadowConnection( const SfxItemSet& rItemSet, - ValueSet& rVsPos, MetricField& rMfSize, ColorListBox& rLbColor ) : + ValueSet& rVsPos, MetricField& rMfSize, SvxColorListBox& rLbColor ) : ItemControlConnectionType( SID_ATTR_BORDER_SHADOW, new ShadowControlsWrapper( rVsPos, rMfSize, rLbColor ), sfx::ITEMCONN_DEFAULT ) { mxCtrlWrp->SetDefaultValue( maItemWrp.GetDefaultItem( rItemSet ) ); @@ -275,7 +276,7 @@ sfx::ItemConnectionBase* CreateMarginConnection( const SfxItemSet& rItemSet, } sfx::ItemConnectionBase* CreateShadowConnection( const SfxItemSet& rItemSet, - ValueSet& rVsPos, MetricField& rMfSize, ColorListBox& rLbColor ) + ValueSet& rVsPos, MetricField& rMfSize, SvxColorListBox& rLbColor ) { return new ShadowConnection( rItemSet, rVsPos, rMfSize, rLbColor ); } diff --git a/cui/source/tabpages/borderconn.hxx b/cui/source/tabpages/borderconn.hxx index 17343d80025f..b04d4a8b0c1f 100644 --- a/cui/source/tabpages/borderconn.hxx +++ b/cui/source/tabpages/borderconn.hxx @@ -26,7 +26,7 @@ class SfxItemSet; class MetricField; class ValueSet; -class ColorListBox; +class SvxColorListBox; namespace svx { @@ -47,7 +47,7 @@ sfx::ItemConnectionBase* CreateMarginConnection( const SfxItemSet& rItemSet, /** Creates an item connection object that connects an SvxShadowItem with the controls of the SvxBorderTabPage. */ sfx::ItemConnectionBase* CreateShadowConnection( const SfxItemSet& rItemSet, - ValueSet& rVsPos, MetricField& rMfSize, ColorListBox& rLbColor ); + ValueSet& rVsPos, MetricField& rMfSize, SvxColorListBox& rLbColor ); } diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx index e01830d0df9a..2cac8e2ddbf8 100644 --- a/cui/source/tabpages/chardlg.cxx +++ b/cui/source/tabpages/chardlg.cxx @@ -1348,10 +1348,10 @@ void SvxCharNamePage::PageCreated(const SfxAllItemSet& aSet) SvxCharEffectsPage::SvxCharEffectsPage( vcl::Window* pParent, const SfxItemSet& rInSet ) : SvxCharBasePage(pParent, "EffectsPage", "cui/ui/effectspage.ui", rInSet) - , m_aTransparentColorName(CUI_RES(RID_SVXSTR_CHARNAME_TRANSPARENT)) { get(m_pFontColorFT, "fontcolorft"); get(m_pFontColorLB, "fontcolorlb"); + m_pFontColorLB->SetSlotId(SID_ATTR_CHAR_COLOR); get(m_pEffectsFT, "effectsft"); get(m_pEffectsLB, "effectslb"); get(m_pReliefFT, "reliefft"); @@ -1363,10 +1363,12 @@ SvxCharEffectsPage::SvxCharEffectsPage( vcl::Window* pParent, const SfxItemSet& get(m_pOverlineLB, "overlinelb"); get(m_pOverlineColorFT, "overlinecolorft"); get(m_pOverlineColorLB, "overlinecolorlb"); + m_pOverlineColorLB->SetSlotId(SID_ATTR_CHAR_COLOR); get(m_pStrikeoutLB, "strikeoutlb"); get(m_pUnderlineLB, "underlinelb"); get(m_pUnderlineColorFT, "underlinecolorft"); get(m_pUnderlineColorLB, "underlinecolorlb"); + m_pUnderlineColorLB->SetSlotId(SID_ATTR_CHAR_COLOR); get(m_pIndividualWordsBtn, "individualwordscb"); get(m_pEmphasisFT, "emphasisft"); get(m_pEmphasisLB, "emphasislb"); @@ -1429,55 +1431,14 @@ void SvxCharEffectsPage::Initialize() } } - // fill the color box - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - DBG_ASSERT( pDocSh, "DocShell not found!" ); - XColorListRef pColorTable; - - if ( pDocSh ) - { - pItem = pDocSh->GetItem( SID_COLOR_TABLE ); - if ( pItem != nullptr ) - pColorTable = static_cast<const SvxColorListItem*>(pItem)->GetColorList(); - } - - if ( !pColorTable.is() ) - pColorTable = XColorList::CreateStdColorList(); - - m_pUnderlineColorLB->SetUpdateMode( false ); - m_pOverlineColorLB->SetUpdateMode( false ); - m_pFontColorLB->SetUpdateMode( false ); - - { - std::unique_ptr<SfxPoolItem> pDummy; - SfxViewFrame* pFrame = SfxViewFrame::GetFirst( pDocSh ); - if ( !pFrame || - SfxItemState::DEFAULT > pFrame->GetBindings().QueryState( SID_ATTR_AUTO_COLOR_INVALID, pDummy ) ) - { - m_pUnderlineColorLB->InsertAutomaticEntryColor( Color( COL_AUTO ) ); - m_pOverlineColorLB->InsertAutomaticEntryColor( Color( COL_AUTO ) ); - m_pFontColorLB->InsertAutomaticEntryColor( Color( COL_AUTO ) ); - } - } - for ( long i = 0; i < pColorTable->Count(); i++ ) - { - XColorEntry* pEntry = pColorTable->GetColor(i); - m_pUnderlineColorLB->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - m_pOverlineColorLB->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - m_pFontColorLB->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - } - - m_pUnderlineColorLB->SetUpdateMode( true ); - m_pOverlineColorLB->SetUpdateMode( true ); - m_pFontColorLB->SetUpdateMode( true ); - m_pFontColorLB->SetSelectHdl( LINK( this, SvxCharEffectsPage, ColorBoxSelectHdl_Impl ) ); + m_pFontColorLB->SetSelectHdl(LINK(this, SvxCharEffectsPage, ColorBoxSelectHdl_Impl)); // handler Link<ListBox&,void> aLink = LINK( this, SvxCharEffectsPage, SelectListBoxHdl_Impl ); m_pUnderlineLB->SetSelectHdl( aLink ); - m_pUnderlineColorLB->SetSelectHdl( aLink ); + m_pUnderlineColorLB->SetSelectHdl(LINK(this, SvxCharEffectsPage, ColorBoxSelectHdl_Impl)); m_pOverlineLB->SetSelectHdl( aLink ); - m_pOverlineColorLB->SetSelectHdl( aLink ); + m_pOverlineColorLB->SetSelectHdl(LINK(this, SvxCharEffectsPage, ColorBoxSelectHdl_Impl)); m_pStrikeoutLB->SetSelectHdl( aLink ); m_pEmphasisLB->SetSelectHdl( aLink ); m_pPositionLB->SetSelectHdl( aLink ); @@ -1485,9 +1446,7 @@ void SvxCharEffectsPage::Initialize() m_pReliefLB->SetSelectHdl( aLink ); m_pUnderlineLB->SelectEntryPos( 0 ); - m_pUnderlineColorLB->SelectEntryPos( 0 ); m_pOverlineLB->SelectEntryPos( 0 ); - m_pOverlineColorLB->SelectEntryPos( 0 ); m_pStrikeoutLB->SelectEntryPos( 0 ); m_pEmphasisLB->SelectEntryPos( 0 ); m_pPositionLB->SelectEntryPos( 0 ); @@ -1516,6 +1475,11 @@ void SvxCharEffectsPage::UpdatePreview_Impl() SvxFont& rCJKFont = GetPreviewCJKFont(); SvxFont& rCTLFont = GetPreviewCTLFont(); + const Color& rSelectedColor = m_pFontColorLB->GetSelectEntryColor(); + rFont.SetColor(rSelectedColor.GetColor() == COL_AUTO ? Color(COL_BLACK) : rSelectedColor); + rCJKFont.SetColor(rSelectedColor.GetColor() == COL_AUTO ? Color(COL_BLACK) : rSelectedColor); + rCTLFont.SetColor(rSelectedColor.GetColor() == COL_AUTO ? Color(COL_BLACK) : rSelectedColor); + sal_Int32 nPos = m_pUnderlineLB->GetSelectEntryPos(); FontLineStyle eUnderline = (FontLineStyle)reinterpret_cast<sal_uLong>(m_pUnderlineLB->GetEntryData( nPos )); nPos = m_pOverlineLB->GetSelectEntryPos(); @@ -1543,7 +1507,7 @@ void SvxCharEffectsPage::UpdatePreview_Impl() rCTLFont.SetEmphasisMark( eMark ); sal_Int32 nRelief = m_pReliefLB->GetSelectEntryPos(); - if(LISTBOX_ENTRY_NOTFOUND != nRelief) + if (LISTBOX_ENTRY_NOTFOUND != nRelief) { rFont.SetRelief( (FontRelief)nRelief ); rCJKFont.SetRelief( (FontRelief)nRelief ); @@ -1627,64 +1591,31 @@ void SvxCharEffectsPage::ResetColor_Impl( const SfxItemSet& rSet ) rCTLFont.SetColor( aColor.GetColor() == COL_AUTO ? Color(COL_BLACK) : aColor ); m_pPreviewWin->Invalidate(); - sal_Int32 nSelPos = m_pFontColorLB->GetEntryPos( aColor ); - if ( nSelPos == LISTBOX_ENTRY_NOTFOUND && aColor == Color( COL_TRANSPARENT ) ) - nSelPos = m_pFontColorLB->GetEntryPos( m_aTransparentColorName ); - if ( LISTBOX_ENTRY_NOTFOUND != nSelPos ) - m_pFontColorLB->SelectEntryPos( nSelPos ); - else - { - nSelPos = m_pFontColorLB->GetEntryPos( aColor ); - if ( LISTBOX_ENTRY_NOTFOUND != nSelPos ) - m_pFontColorLB->SelectEntryPos( nSelPos ); - else - m_pFontColorLB->SelectEntryPos( - m_pFontColorLB->InsertEntry( aColor, OUString( SVX_RES( RID_SVXSTR_COLOR_USER ) ) ) ); - } + m_pFontColorLB->SelectEntry(aColor); break; } } } - bool SvxCharEffectsPage::FillItemSetColor_Impl( SfxItemSet& rSet ) { sal_uInt16 nWhich = GetWhich( SID_ATTR_CHAR_COLOR ); const SvxColorItem* pOld = static_cast<const SvxColorItem*>(GetOldItem( rSet, SID_ATTR_CHAR_COLOR )); - const SvxColorItem* pItem = nullptr; bool bChanged = true; - const SfxItemSet* pExampleSet = GetTabDialog() ? GetTabDialog()->GetExampleSet() : nullptr; const SfxItemSet& rOldSet = GetItemSet(); - Color aSelectedColor; - if ( m_pFontColorLB->GetSelectEntry() == m_aTransparentColorName ) - aSelectedColor = Color( COL_TRANSPARENT ); - else - aSelectedColor = m_pFontColorLB->GetSelectEntryColor(); + Color aSelectedColor = m_pFontColorLB->GetSelectEntryColor(); - if ( pOld && pOld->GetValue() == aSelectedColor ) + if (pOld && pOld->GetValue() == aSelectedColor) bChanged = false; - if ( !bChanged ) - bChanged = ( m_pFontColorLB->GetSavedValue() == LISTBOX_ENTRY_NOTFOUND ); - - if ( !bChanged && pExampleSet && - pExampleSet->GetItemState( nWhich, false, reinterpret_cast<const SfxPoolItem**>(&pItem) ) == SfxItemState::SET && - pItem->GetValue() != aSelectedColor ) - bChanged = true; - - bool bModified = false; - - if ( bChanged && m_pFontColorLB->GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND ) - { + if (bChanged) rSet.Put( SvxColorItem( aSelectedColor, nWhich ) ); - bModified = true; - } else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) ) CLEARTITEM; - return bModified; + return bChanged; } @@ -1692,6 +1623,7 @@ IMPL_LINK_TYPED( SvxCharEffectsPage, SelectListBoxHdl_Impl, ListBox&, rBox, void { SelectHdl_Impl(&rBox); } + void SvxCharEffectsPage::SelectHdl_Impl( ListBox* pBox ) { if ( m_pEmphasisLB == pBox ) @@ -1747,23 +1679,9 @@ IMPL_LINK_NOARG_TYPED(SvxCharEffectsPage, TristClickHdl_Impl, Button*, void) } -IMPL_LINK_TYPED( SvxCharEffectsPage, ColorBoxSelectHdl_Impl, ListBox&, rListBox, void ) +IMPL_LINK_TYPED( SvxCharEffectsPage, ColorBoxSelectHdl_Impl, SvxColorListBox&, rListBox, void ) { - ColorListBox* pBox = static_cast<ColorListBox*>(&rListBox); - SvxFont& rFont = GetPreviewFont(); - SvxFont& rCJKFont = GetPreviewCJKFont(); - SvxFont& rCTLFont = GetPreviewCTLFont(); - - Color aSelectedColor; - if ( pBox->GetSelectEntry() == m_aTransparentColorName ) - aSelectedColor = Color( COL_TRANSPARENT ); - else - aSelectedColor = pBox->GetSelectEntryColor(); - rFont.SetColor( aSelectedColor.GetColor() == COL_AUTO ? Color(COL_BLACK) : aSelectedColor ); - rCJKFont.SetColor( aSelectedColor.GetColor() == COL_AUTO ? Color(COL_BLACK) : aSelectedColor ); - rCTLFont.SetColor( aSelectedColor.GetColor() == COL_AUTO ? Color(COL_BLACK) : aSelectedColor ); - - m_pPreviewWin->Invalidate(); + UpdatePreview_Impl(); } @@ -1823,24 +1741,11 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet ) } Color aColor = rItem.GetColor(); - sal_Int32 nPos = m_pUnderlineColorLB->GetEntryPos( aColor ); - - if ( LISTBOX_ENTRY_NOTFOUND != nPos ) - m_pUnderlineColorLB->SelectEntryPos( nPos ); - else - { - nPos = m_pUnderlineColorLB->GetEntryPos( aColor ); - if ( LISTBOX_ENTRY_NOTFOUND != nPos ) - m_pUnderlineColorLB->SelectEntryPos( nPos ); - else - m_pUnderlineColorLB->SelectEntryPos( - m_pUnderlineColorLB->InsertEntry( aColor, - OUString( SVX_RES( RID_SVXSTR_COLOR_USER ) ) ) ); - } + m_pUnderlineColorLB->SelectEntry(aColor); } else { - m_pUnderlineColorLB->SelectEntry( Color( COL_AUTO )); + m_pUnderlineColorLB->SelectEntry(Color(COL_AUTO)); m_pUnderlineColorLB->Disable(); } } @@ -1880,24 +1785,11 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet ) } Color aColor = rItem.GetColor(); - sal_Int32 nPos = m_pOverlineColorLB->GetEntryPos( aColor ); - - if ( LISTBOX_ENTRY_NOTFOUND != nPos ) - m_pOverlineColorLB->SelectEntryPos( nPos ); - else - { - nPos = m_pOverlineColorLB->GetEntryPos( aColor ); - if ( LISTBOX_ENTRY_NOTFOUND != nPos ) - m_pOverlineColorLB->SelectEntryPos( nPos ); - else - m_pOverlineColorLB->SelectEntryPos( - m_pOverlineColorLB->InsertEntry( aColor, - OUString( SVX_RES( RID_SVXSTR_COLOR_USER ) ) ) ); - } + m_pOverlineColorLB->SelectEntry(aColor); } else { - m_pOverlineColorLB->SelectEntry( Color( COL_AUTO )); + m_pOverlineColorLB->SelectEntry(Color(COL_AUTO)); m_pOverlineColorLB->Disable(); } } @@ -2210,12 +2102,10 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet ) ChangesApplied(); } -void SvxCharEffectsPage::ChangesApplied() +void SvxCharEffectsPage::ChangesApplied() { m_pUnderlineLB->SaveValue(); - m_pUnderlineColorLB->SaveValue(); m_pOverlineLB->SaveValue(); - m_pOverlineColorLB->SaveValue(); m_pStrikeoutLB->SaveValue(); m_pIndividualWordsBtn->SaveValue(); m_pEmphasisLB->SaveValue(); @@ -2227,10 +2117,8 @@ void SvxCharEffectsPage::ChangesApplied() m_pBlinkingBtn->SaveValue(); m_pHiddenBtn->SaveValue(); m_pFontColorLB->SaveValue(); - } - bool SvxCharEffectsPage::FillItemSet( SfxItemSet* rSet ) { const SfxPoolItem* pOld = nullptr; @@ -2301,7 +2189,7 @@ bool SvxCharEffectsPage::FillItemSet( SfxItemSet* rSet ) rSet->Put( aNewItem ); bModified = true; } - else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) ) + else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) ) rSet->InvalidateItem(nWhich); bChanged = true; diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx index b5bb9afb2fa9..0f6d19e10c95 100644 --- a/cui/source/tabpages/numpages.cxx +++ b/cui/source/tabpages/numpages.cxx @@ -31,6 +31,7 @@ #include <svl/eitem.hxx> #include <vcl/layout.hxx> #include <vcl/svapp.hxx> +#include <svx/colorbox.hxx> #include <svx/gallery.hxx> #include <svl/urihelper.hxx> #include <editeng/brushitem.hxx> @@ -1176,6 +1177,7 @@ SvxNumOptionsTabPage::SvxNumOptionsTabPage(vcl::Window* pParent, get(m_pBulColorFT, "colorft"); get(m_pBulColLB, "color"); + m_pBulColLB->SetSlotId(SID_ATTR_CHAR_COLOR); get(m_pBulRelSizeFT, "relsizeft"); get(m_pBulRelSizeMF, "relsize"); @@ -1446,31 +1448,6 @@ void SvxNumOptionsTabPage::Reset( const SfxItemSet* rSet ) m_pPreviewWIN->SetNumRule(pActNum); m_pSameLevelCB->Check(pActNum->IsContinuousNumbering()); - // fill ColorListBox as needed - if ( pActNum->IsFeatureSupported( SvxNumRuleFlags::BULLET_COLOR ) ) - { - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - DBG_ASSERT( pDocSh, "DocShell not found!" ); - XColorListRef pColorTable; - if ( pDocSh ) - { - pItem = pDocSh->GetItem( SID_COLOR_TABLE ); - if ( pItem ) - pColorTable = static_cast<const SvxColorListItem*>(pItem)->GetColorList(); - } - - if ( !pColorTable.is() ) - pColorTable = XColorList::CreateStdColorList(); - - m_pBulColLB->InsertEntry( Color( COL_AUTO ), SVX_RESSTR( RID_SVXSTR_AUTOMATIC )); - - for ( long i = 0; i < pColorTable->Count(); i++ ) - { - XColorEntry* pEntry = pColorTable->GetColor(i); - m_pBulColLB->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - } - } - SfxObjectShell* pShell; if ( SfxItemState::SET == rSet->GetItemState( SID_HTML_MODE, false, &pItem ) || ( nullptr != ( pShell = SfxObjectShell::Current()) && @@ -2000,10 +1977,9 @@ IMPL_LINK_TYPED( SvxNumOptionsTabPage, SameLevelHdl_Impl, Button*, pBox, void ) InitControls(); } -IMPL_LINK_TYPED( SvxNumOptionsTabPage, BulColorHdl_Impl, ListBox&, rListBox, void ) +IMPL_LINK_TYPED( SvxNumOptionsTabPage, BulColorHdl_Impl, SvxColorListBox&, rListBox, void ) { - ColorListBox* pBox = static_cast<ColorListBox*>(&rListBox); - Color nSetColor = pBox->GetSelectEntryColor(); + Color nSetColor = rColorBox.GetSelectEntryColor(); sal_uInt16 nMask = 1; for(sal_uInt16 i = 0; i < pActNum->GetLevelCount(); i++) diff --git a/cui/source/tabpages/strings.src b/cui/source/tabpages/strings.src index db14dd06ae5f..6b3305ac006b 100644 --- a/cui/source/tabpages/strings.src +++ b/cui/source/tabpages/strings.src @@ -79,10 +79,6 @@ String RID_SVXSTR_DESC_LINEEND { Text [ en-US ] = "Please enter a name for the new arrowhead:" ; }; -String RID_SVXSTR_CHARNAME_TRANSPARENT -{ - Text [ en-US ] = "Transparent"; -}; String RID_SVXSTR_CHARNAME_NOSTYLE { Text [ en-US ] = "No %1"; diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx index c87694a87ae2..7d0ee217f1ff 100644 --- a/cui/source/tabpages/tpgradnt.cxx +++ b/cui/source/tabpages/tpgradnt.cxx @@ -28,6 +28,7 @@ #include <cuires.hrc> #include "helpid.hrc" +#include <svx/colorbox.hxx> #include "svx/xattr.hxx" #include <svx/xtable.hxx> #include <svx/xpool.hxx> @@ -123,9 +124,10 @@ SvxGradientTabPage::SvxGradientTabPage m_pMtrAngle->SetModifyHdl( aLink ); m_pMtrBorder->SetModifyHdl( aLink ); m_pMtrColorFrom->SetModifyHdl( aLink ); - m_pLbColorFrom->SetSelectHdl( aLink2 ); + Link<SvxColorListBox&,void> aLink3 = LINK( this, SvxGradientTabPage, ModifiedColorListBoxHdl_Impl ); + m_pLbColorFrom->SetSelectHdl( aLink3 ); m_pMtrColorTo->SetModifyHdl( aLink ); - m_pLbColorTo->SetSelectHdl( aLink2 ); + m_pLbColorTo->SetSelectHdl( aLink3 ); m_pBtnLoad->SetClickHdl( LINK( this, SvxGradientTabPage, ClickLoadHdl_Impl ) ); @@ -167,66 +169,26 @@ void SvxGradientTabPage::dispose() SfxTabPage::dispose(); } - void SvxGradientTabPage::Construct() { - m_pLbColorFrom->Fill( m_pColorList ); - m_pLbColorTo->CopyEntries( *m_pLbColorFrom ); - - m_pLbGradients->Fill( m_pGradientList ); + m_pGradientLB->FillPresetListBox( *m_pGradientList ); } - -void SvxGradientTabPage::ActivatePage( const SfxItemSet& ) +void SvxGradientTabPage::ActivatePage( const SfxItemSet& rSet ) { - sal_Int32 nPos; - sal_Int32 nCount; - - if( m_nDlgType == 0 ) // area dialog + if( m_pColorList.is() ) { *m_pbAreaTP = false; if( m_pColorList.is() ) { - // ColorList - if( *m_pnColorListState & ChangeType::CHANGED || - *m_pnColorListState & ChangeType::MODIFIED ) - { - if( *m_pnColorListState & ChangeType::CHANGED ) - m_pColorList = static_cast<SvxAreaTabDialog*>( GetParentDialog() )->GetNewColorList(); - - // LbColorFrom - nPos = m_pLbColorFrom->GetSelectEntryPos(); - m_pLbColorFrom->Clear(); - m_pLbColorFrom->Fill( m_pColorList ); - nCount = m_pLbColorFrom->GetEntryCount(); - if( nCount == 0 ) - ; // this case should not occur - else if( nCount <= nPos ) - m_pLbColorFrom->SelectEntryPos( 0 ); - else - m_pLbColorFrom->SelectEntryPos( nPos ); - - // LbColorTo - nPos = m_pLbColorTo->GetSelectEntryPos(); - m_pLbColorTo->Clear(); - m_pLbColorTo->CopyEntries( *m_pLbColorFrom ); - nCount = m_pLbColorTo->GetEntryCount(); - if( nCount == 0 ) - ; // this case should not occur - else if( nCount <= nPos ) - m_pLbColorTo->SelectEntryPos( 0 ); - else - m_pLbColorTo->SelectEntryPos( nPos ); - - ModifiedHdl_Impl( this ); - } + SvxAreaTabDialog* pArea = (*m_pnColorListState & ChangeType::CHANGED) ? + dynamic_cast<SvxAreaTabDialog*>(GetParentDialog()) : nullptr; + if (pArea) + m_pColorList = pArea->GetNewColorList(); - // determining (and possibly cutting) the name and - // displaying it in the GroupBox - OUString aString( CUI_RES( RID_SVXSTR_TABLE ) ); - aString += ": "; - INetURLObject aURL( m_pGradientList->GetPath() ); + ModifiedHdl_Impl( this ); + } aURL.Append( m_pGradientList->GetName() ); DBG_ASSERT( aURL.GetProtocol() != INetProtocol::NotValid, "invalid URL" ); @@ -393,11 +355,16 @@ VclPtr<SfxTabPage> SvxGradientTabPage::Create( vcl::Window* pWindow, return VclPtr<SvxGradientTabPage>::Create( pWindow, *rOutAttrs ); } - IMPL_LINK_TYPED( SvxGradientTabPage, ModifiedListBoxHdl_Impl, ListBox&, rListBox, void ) { ModifiedHdl_Impl(&rListBox); } + +IMPL_LINK_TYPED( SvxGradientTabPage, ModifiedColorListBoxHdl_Impl, SvxColorListBox&, rListBox, void ) +{ + ModifiedHdl_Impl(&rListBox); +} + IMPL_LINK_TYPED( SvxGradientTabPage, ModifiedEditHdl_Impl, Edit&, rBox, void ) { ModifiedHdl_Impl(&rBox); @@ -835,21 +802,9 @@ IMPL_LINK_NOARG_TYPED(SvxGradientTabPage, ChangeGradientHdl_Impl, ListBox&, void m_pLbColorFrom->SetNoSelection(); m_pLbColorFrom->SelectEntry( pGradient->GetStartColor() ); - if ( m_pLbColorFrom->GetSelectEntryCount() == 0 ) - { - m_pLbColorFrom->InsertEntry( pGradient->GetStartColor(), - OUString() ); - m_pLbColorFrom->SelectEntry( pGradient->GetStartColor() ); - } m_pLbColorTo->SetNoSelection(); m_pLbColorTo->SelectEntry( pGradient->GetEndColor() ); - if ( m_pLbColorTo->GetSelectEntryCount() == 0 ) - { - m_pLbColorTo->InsertEntry( pGradient->GetEndColor(), OUString() ); - m_pLbColorTo->SelectEntry( pGradient->GetEndColor() ); - } - m_pMtrAngle->SetValue( pGradient->GetAngle() / 10 ); // should be changed in resource m_pMtrBorder->SetValue( pGradient->GetBorder() ); m_pMtrCenterX->SetValue( pGradient->GetXOffset() ); diff --git a/cui/source/tabpages/tphatch.cxx b/cui/source/tabpages/tphatch.cxx index f5d863ea94fb..e4766e24a905 100644 --- a/cui/source/tabpages/tphatch.cxx +++ b/cui/source/tabpages/tphatch.cxx @@ -29,6 +29,7 @@ #include <cuires.hrc> #include "helpid.hrc" +#include <svx/colorbox.hxx> #include "svx/xattr.hxx" #include <svx/xpool.hxx> #include <svx/xtable.hxx> @@ -121,7 +122,8 @@ SvxHatchTabPage::SvxHatchTabPage m_pMtrDistance->SetModifyHdl( aLink ); m_pMtrAngle->SetModifyHdl( aLink ); m_pLbLineType->SetSelectHdl( aLink2 ); - m_pLbLineColor->SetSelectHdl( aLink2 ); + Link<SvxColorListBox&,void> aLink3 = LINK( this, SvxHatchTabPage, ModifiedColorListBoxHdl_Impl ); + m_pLbLineColor->SetSelectHdl( aLink3 ); m_pBtnAdd->SetClickHdl( LINK( this, SvxHatchTabPage, ClickAddHdl_Impl ) ); m_pBtnModify->SetClickHdl( @@ -158,22 +160,35 @@ void SvxHatchTabPage::dispose() SvxTabPage::dispose(); } - void SvxHatchTabPage::Construct() { - m_pLbLineColor->Fill( m_pColorList ); - m_pLbHatchings->Fill( m_pHatchingList ); + m_pHatchLB->FillPresetListBox(*m_pHatchingList); } - void SvxHatchTabPage::ActivatePage( const SfxItemSet& rSet ) { - sal_Int32 nPos; - sal_Int32 nCount; - - if( m_nDlgType == 0 ) // area dialog + if( m_pColorList.is() ) { - *m_pbAreaTP = false; + // ColorList + if( *m_pnColorListState & ChangeType::CHANGED || + *m_pnColorListState & ChangeType::MODIFIED ) + { + SvxAreaTabDialog* pArea = (*m_pnColorListState & ChangeType::CHANGED) ? + dynamic_cast<SvxAreaTabDialog*>(GetParentDialog()) : nullptr; + if (pArea) + m_pColorList = pArea->GetNewColorList(); + + ModifiedHdl_Impl( this ); + } + + // determining (possibly cutting) the name + // and displaying it in the GroupBox + OUString aString( CUI_RES( RID_SVXSTR_TABLE ) ); + aString += ": "; + INetURLObject aURL( m_pHatchingList->GetPath() ); + + aURL.Append( m_pHatchingList->GetName() ); + SAL_WARN_IF( aURL.GetProtocol() == INetProtocol::NotValid, "cui.tabpages", "invalid URL" ); if( m_pColorList.is() ) { @@ -216,16 +231,19 @@ void SvxHatchTabPage::ActivatePage( const SfxItemSet& rSet ) else aString += aURL.getBase(); - if( *m_pPageType == PT_HATCH && *m_pPos != LISTBOX_ENTRY_NOTFOUND ) - { - m_pLbHatchings->SelectEntryPos( *m_pPos ); - } - // colors could have been deleted - ChangeHatchHdl_Impl( *m_pLbHatchings ); - - *m_pPageType = PT_HATCH; - *m_pPos = LISTBOX_ENTRY_NOTFOUND; - } + if(aBckItem.GetValue()) + { + m_pCbBackgroundColor->SetState(TRISTATE_TRUE); + XFillColorItem aColorItem( static_cast<const XFillColorItem&>(rSet.Get(XATTR_FILLCOLOR)) ); + Color aColor(aColorItem.GetColorValue()); + m_pLbBackgroundColor->Enable(); + m_pLbBackgroundColor->SelectEntry(aColor); + m_rXFSet.Put( aColorItem ); + } + else + { + m_pCbBackgroundColor->SetState(TRISTATE_FALSE); + m_pLbBackgroundColor->Disable(); } m_rXFSet.Put( static_cast<const XFillColorItem&>( rSet.Get(XATTR_FILLCOLOR)) ); @@ -297,32 +315,30 @@ long SvxHatchTabPage::CheckChanges_Impl() bool SvxHatchTabPage::FillItemSet( SfxItemSet* rSet ) { - if( m_nDlgType == 0 && !*m_pbAreaTP ) // area dialog + std::unique_ptr<XHatch> pXHatch; + OUString aString; + size_t nPos = m_pHatchLB->GetSelectItemPos(); + if( nPos != VALUESET_ITEM_NOTFOUND ) { - if( *m_pPageType == PT_HATCH ) - { - // CheckChanges(); <-- duplicate inquiry ? - - std::unique_ptr<XHatch> pXHatch; - OUString aString; - sal_Int32 nPos = m_pLbHatchings->GetSelectEntryPos(); - if( nPos != LISTBOX_ENTRY_NOTFOUND ) - { - pXHatch.reset(new XHatch( m_pHatchingList->GetHatch( nPos )->GetHatch() )); - aString = m_pLbHatchings->GetSelectEntry(); - } - // gradient has been (unidentifiedly) passed - else - { - pXHatch.reset(new XHatch( m_pLbLineColor->GetSelectEntryColor(), - (css::drawing::HatchStyle) m_pLbLineType->GetSelectEntryPos(), - GetCoreValue( *m_pMtrDistance, m_ePoolUnit ), - static_cast<long>(m_pMtrAngle->GetValue() * 10) )); - } - DBG_ASSERT( pXHatch, "XHatch konnte nicht erzeugt werden" ); - rSet->Put( XFillStyleItem( drawing::FillStyle_HATCH ) ); - rSet->Put( XFillHatchItem( aString, *pXHatch ) ); - } + pXHatch.reset(new XHatch( m_pHatchingList->GetHatch( static_cast<sal_uInt16>(nPos) )->GetHatch() )); + aString = m_pHatchLB->GetItemText( m_pHatchLB->GetSelectItemId() ); + } + // gradient has been (unidentifiedly) passed + else + { + pXHatch.reset(new XHatch( m_pLbLineColor->GetSelectEntryColor(), + (css::drawing::HatchStyle) m_pLbLineType->GetSelectEntryPos(), + GetCoreValue( *m_pMtrDistance, m_ePoolUnit ), + static_cast<long>(m_pMtrAngle->GetValue() * 10) )); + } + assert( pXHatch && "XHatch couldn't be created" ); + rSet->Put( XFillStyleItem( drawing::FillStyle_HATCH ) ); + rSet->Put( XFillHatchItem( aString, *pXHatch ) ); + rSet->Put( XFillBackgroundItem( m_pCbBackgroundColor->IsChecked() ) ); + if (m_pCbBackgroundColor->IsChecked()) + { + NamedColor aColor = m_pLbBackgroundColor->GetSelectEntry(); + rSet->Put(XFillColorItem(aColor.second, aColor.first)); } return true; } @@ -359,12 +375,42 @@ VclPtr<SfxTabPage> SvxHatchTabPage::Create( vcl::Window* pWindow, return VclPtr<SvxHatchTabPage>::Create( pWindow, *rSet ); } - IMPL_LINK_TYPED( SvxHatchTabPage, ModifiedListBoxHdl_Impl, ListBox&, rListBox, void ) { ModifiedHdl_Impl(&rListBox); } -IMPL_LINK_TYPED( SvxHatchTabPage, ModifiedEditHdl_Impl, Edit&, rEdit, void ) + +IMPL_LINK_TYPED( SvxHatchTabPage, ModifiedColorListBoxHdl_Impl, SvxColorListBox&, rListBox, void ) +{ + ModifiedHdl_Impl(&rListBox); +} + +IMPL_LINK_NOARG_TYPED( SvxHatchTabPage, ToggleHatchBackgroundColor_Impl, CheckBox&, void ) +{ + if(m_pCbBackgroundColor->IsChecked()) + m_pLbBackgroundColor->Enable(); + else + m_pLbBackgroundColor->Disable(); + m_rXFSet.Put( XFillBackgroundItem( m_pCbBackgroundColor->IsChecked() ) ); + ModifiedBackgroundHdl_Impl(*m_pLbBackgroundColor); +} + +IMPL_LINK_NOARG_TYPED( SvxHatchTabPage, ModifiedBackgroundHdl_Impl, SvxColorListBox&, void ) +{ + Color aColor(COL_TRANSPARENT); + if(m_pCbBackgroundColor->IsChecked()) + { + aColor = m_pLbBackgroundColor->GetSelectEntryColor(); + m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() ); + m_pCtlPreview->Invalidate(); + } + m_rXFSet.Put(XFillColorItem( OUString(), m_pLbBackgroundColor->GetSelectEntryColor() )); + + m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() ); + m_pCtlPreview->Invalidate(); +} + +IMPL_LINK( SvxHatchTabPage, ModifiedEditHdl_Impl, Edit&, rEdit, void ) { ModifiedHdl_Impl(&rEdit); } @@ -428,15 +474,8 @@ IMPL_LINK_NOARG_TYPED(SvxHatchTabPage, ChangeHatchHdl_Impl, ListBox&, void) { m_pLbLineType->SelectEntryPos( sal::static_int_cast< sal_Int32 >( pHatch->GetHatchStyle() ) ); - // if the entry is not in the listbox - // the color is added temporarily m_pLbLineColor->SetNoSelection(); m_pLbLineColor->SelectEntry( pHatch->GetColor() ); - if( m_pLbLineColor->GetSelectEntryCount() == 0 ) - { - m_pLbLineColor->InsertEntry( pHatch->GetColor(), OUString() ); - m_pLbLineColor->SelectEntry( pHatch->GetColor() ); - } SetMetricValue( *m_pMtrDistance, pHatch->GetDistance(), m_ePoolUnit ); m_pMtrAngle->SetValue( pHatch->GetAngle() / 10 ); diff --git a/cui/source/tabpages/tpline.cxx b/cui/source/tabpages/tpline.cxx index 240e9daa38ce..ddda07a3cea5 100644 --- a/cui/source/tabpages/tpline.cxx +++ b/cui/source/tabpages/tpline.cxx @@ -24,6 +24,7 @@ #include <sfx2/module.hxx> #include <cuires.hrc> +#include <svx/colorbox.hxx> #include "svx/xattr.hxx" #include <svx/xpool.hxx> #include <svx/xtable.hxx> @@ -277,8 +278,6 @@ void SvxLineTabPage::dispose() void SvxLineTabPage::Construct() { - // Color chart - m_pLbColor->Fill( m_pColorList ); FillListboxes(); } @@ -650,17 +649,6 @@ void SvxLineTabPage::ActivatePage( const SfxItemSet& rSet ) { if( *m_pnColorListState & ChangeType::CHANGED ) m_pColorList = static_cast<SvxLineTabDialog*>( GetParentDialog() )->GetNewColorList(); - // aLbColor - sal_Int32 nColorPos = m_pLbColor->GetSelectEntryPos(); - m_pLbColor->Clear(); - m_pLbColor->Fill( m_pColorList ); - nCount = m_pLbColor->GetEntryCount(); - if( nCount == 0 ) - ; // This case should never occur - else if( nCount <= nColorPos ) - m_pLbColor->SelectEntryPos( 0 ); - else - m_pLbColor->SelectEntryPos( nColorPos ); ChangePreviewHdl_Impl( nullptr ); } @@ -777,9 +765,9 @@ bool SvxLineTabPage::FillItemSet( SfxItemSet* rAttrs ) } // Line color - if( m_pLbColor->IsValueChangedFromSaved() ) { - XLineColorItem aItem( m_pLbColor->GetSelectEntry(), m_pLbColor->GetSelectEntryColor() ); + NamedColor aColor = m_pLbColor->GetSelectEntry(); + XLineColorItem aItem(aColor.second, aColor.first); pOld = GetOldItem( *rAttrs, XATTR_LINECOLOR ); if ( !pOld || !( *static_cast<const XLineColorItem*>(pOld) == aItem ) ) { @@ -1080,7 +1068,8 @@ void SvxLineTabPage::FillXLSet_Impl() m_rXLSet.Put( XLineEndWidthItem( GetCoreValue( *m_pMtrEndWidth, m_ePoolUnit ) ) ); m_rXLSet.Put( XLineWidthItem( GetCoreValue( *m_pMtrLineWidth, m_ePoolUnit ) ) ); - m_rXLSet.Put( XLineColorItem( m_pLbColor->GetSelectEntry(), m_pLbColor->GetSelectEntryColor() ) ); + NamedColor aColor = m_pLbColor->GetSelectEntry(); + m_rXLSet.Put(XLineColorItem(aColor.second, aColor.first)); // Centered line end if( m_pTsbCenterStart->GetState() == TRISTATE_TRUE ) @@ -1270,11 +1259,6 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs ) { Color aCol = static_cast<const XLineColorItem&>( rAttrs->Get( XATTR_LINECOLOR ) ).GetColorValue(); m_pLbColor->SelectEntry( aCol ); - if( m_pLbColor->GetSelectEntryCount() == 0 ) - { - m_pLbColor->InsertEntry( aCol, OUString() ); - m_pLbColor->SelectEntry( aCol ); - } } // Line start @@ -1508,11 +1492,11 @@ VclPtr<SfxTabPage> SvxLineTabPage::Create( vcl::Window* pWindow, return VclPtr<SvxLineTabPage>::Create( pWindow, *rAttrs ); } - -IMPL_LINK_TYPED( SvxLineTabPage, ChangePreviewListBoxHdl_Impl, ListBox&, rListBox, void ) +IMPL_LINK_TYPED( SvxLineTabPage, ChangePreviewListBoxHdl_Impl, SvxColorListBox&, rListBox, void ) { ChangePreviewHdl_Impl(&rListBox); } + IMPL_LINK_TYPED( SvxLineTabPage, ChangePreviewModifyHdl_Impl, Edit&, rEdit, void ) { ChangePreviewHdl_Impl(&rEdit); diff --git a/cui/source/tabpages/tpshadow.cxx b/cui/source/tabpages/tpshadow.cxx index 1d9eddf343fd..a170a2950741 100644 --- a/cui/source/tabpages/tpshadow.cxx +++ b/cui/source/tabpages/tpshadow.cxx @@ -19,6 +19,7 @@ #include <sfx2/app.hxx> #include <sfx2/module.hxx> +#include <svx/colorbox.hxx> #include <svx/dialogs.hrc> #include "svx/xattr.hxx" @@ -183,23 +184,8 @@ void SvxShadowTabPage::dispose() SvxTabPage::dispose(); } -void SvxShadowTabPage::Construct() -{ - m_pLbShadowColor->Fill( m_pColorList ); - - if( m_bDisable ) - { - m_pTsbShowShadow->Disable(); - m_pGridShadow->Disable(); - } -} - - void SvxShadowTabPage::ActivatePage( const SfxItemSet& rSet ) { - sal_Int32 nPos; - sal_Int32 nCount; - const SfxUInt16Item* pPageTypeItem = rSet.GetItem<SfxUInt16Item>(SID_PAGE_TYPE, false); if (pPageTypeItem) SetPageType(pPageTypeItem->GetValue()); @@ -227,18 +213,6 @@ void SvxShadowTabPage::ActivatePage( const SfxItemSet& rSet ) } } - // aLbShadowColor - nPos = m_pLbShadowColor->GetSelectEntryPos(); - m_pLbShadowColor->Clear(); - m_pLbShadowColor->Fill( m_pColorList ); - nCount = m_pLbShadowColor->GetEntryCount(); - if( nCount == 0 ) - ; // this case should not occur - else if( nCount <= nPos ) - m_pLbShadowColor->SelectEntryPos( 0 ); - else - m_pLbShadowColor->SelectEntryPos( nPos ); - SfxItemSet rAttribs( rSet ); // rSet contains shadow attributes too, but we want // to use it for updating rectangle attributes only, @@ -343,10 +317,11 @@ bool SvxShadowTabPage::FillItemSet( SfxItemSet* rAttrs ) } } - // ShadowColor - sal_Int32 nPos = m_pLbShadowColor->GetSelectEntryPos(); - if( nPos != LISTBOX_ENTRY_NOTFOUND && - m_pLbShadowColor->IsValueChangedFromSaved() ) + // ShadowColor + { + XColorItem aItem(makeSdrShadowColorItem(m_pLbShadowColor->GetSelectEntryColor())); + pOld = GetOldItem( *rAttrs, SDRATTR_SHADOWCOLOR ); + if ( !pOld || !( *static_cast<const XColorItem*>(pOld) == aItem ) ) { XColorItem aItem(makeSdrShadowColorItem(m_pLbShadowColor->GetSelectEntryColor())); pOld = GetOldItem( *rAttrs, SDRATTR_SHADOWCOLOR ); @@ -501,11 +476,11 @@ IMPL_LINK_NOARG_TYPED(SvxShadowTabPage, ClickShadowHdl_Impl, Button*, void) ModifyShadowHdl_Impl( *m_pMtrTransparent ); } - -IMPL_LINK_NOARG_TYPED(SvxShadowTabPage, SelectShadowHdl_Impl, ListBox&, void) +IMPL_LINK_NOARG_TYPED(SvxShadowTabPage, SelectShadowHdl_Impl, SvxColorListBox&, void) { ModifyShadowHdl_Impl(*m_pMtrTransparent); } + IMPL_LINK_NOARG_TYPED(SvxShadowTabPage, ModifyShadowHdl_Impl, Edit&, void) { if( m_pTsbShowShadow->GetState() == TRISTATE_TRUE ) @@ -513,11 +488,7 @@ IMPL_LINK_NOARG_TYPED(SvxShadowTabPage, ModifyShadowHdl_Impl, Edit&, void) else m_rXFSet.Put( XFillStyleItem( drawing::FillStyle_NONE ) ); - sal_Int32 nPos = m_pLbShadowColor->GetSelectEntryPos(); - if( nPos != LISTBOX_ENTRY_NOTFOUND ) - { - m_rXFSet.Put( XFillColorItem( OUString(), m_pLbShadowColor->GetSelectEntryColor() ) ); - } + m_rXFSet.Put( XFillColorItem( OUString(), m_pLbShadowColor->GetSelectEntryColor() ) ); sal_uInt16 nVal = (sal_uInt16)m_pMtrTransparent->GetValue(); XFillTransparenceItem aItem( nVal ); m_rXFSet.Put( XFillTransparenceItem( aItem ) ); diff --git a/cui/uiconfig/ui/borderpage.ui b/cui/uiconfig/ui/borderpage.ui index 20fe9418fd49..f5e0b91a9c52 100644 --- a/cui/uiconfig/ui/borderpage.ui +++ b/cui/uiconfig/ui/borderpage.ui @@ -219,7 +219,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="linecolorlb"> + <object class="svxlo-SvxColorListBox" id="linecolorlb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -491,7 +491,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="shadowcolorlb"> + <object class="svxlo-SvxColorListBox" id="shadowcolorlb"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">start</property> diff --git a/cui/uiconfig/ui/colorconfigwin.ui b/cui/uiconfig/ui/colorconfigwin.ui index d03daf7c34fd..f4dd177a3c3d 100644 --- a/cui/uiconfig/ui/colorconfigwin.ui +++ b/cui/uiconfig/ui/colorconfigwin.ui @@ -38,7 +38,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="doccolor_lb"> + <object class="svxlo-SvxColorListBox" id="doccolor_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -72,7 +72,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="docboundaries_lb"> + <object class="svxlo-SvxColorListBox" id="docboundaries_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -98,7 +98,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="appback_lb"> + <object class="svxlo-SvxColorListBox" id="appback_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -148,7 +148,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="objboundaries_lb"> + <object class="svxlo-SvxColorListBox" id="objboundaries_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -185,7 +185,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="tblboundaries_lb"> + <object class="svxlo-SvxColorListBox" id="tblboundaries_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -220,7 +220,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="font_lb"> + <object class="svxlo-SvxColorListBox" id="font_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -257,7 +257,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="unvisitedlinks_lb"> + <object class="svxlo-SvxColorListBox" id="unvisitedlinks_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -294,7 +294,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="visitedlinks_lb"> + <object class="svxlo-SvxColorListBox" id="visitedlinks_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -354,7 +354,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="autospellcheck_lb"> + <object class="svxlo-SvxColorListBox" id="autospellcheck_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -364,7 +364,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="shadows_lb"> + <object class="svxlo-SvxColorListBox" id="shadows_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -374,7 +374,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="smarttags_lb"> + <object class="svxlo-SvxColorListBox" id="smarttags_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -400,7 +400,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="writergrid_lb"> + <object class="svxlo-SvxColorListBox" id="writergrid_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -435,7 +435,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="field_lb"> + <object class="svxlo-SvxColorListBox" id="field_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -457,7 +457,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="index_lb"> + <object class="svxlo-SvxColorListBox" id="index_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -479,7 +479,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="script_lb"> + <object class="svxlo-SvxColorListBox" id="script_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -559,7 +559,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="section_lb"> + <object class="svxlo-SvxColorListBox" id="section_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -581,7 +581,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="hdft_lb"> + <object class="svxlo-SvxColorListBox" id="hdft_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -616,7 +616,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="pagebreak_lb"> + <object class="svxlo-SvxColorListBox" id="pagebreak_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -651,7 +651,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="direct_lb"> + <object class="svxlo-SvxColorListBox" id="direct_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -702,7 +702,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="sgml_lb"> + <object class="svxlo-SvxColorListBox" id="sgml_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -737,7 +737,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="htmlcomment_lb"> + <object class="svxlo-SvxColorListBox" id="htmlcomment_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -772,7 +772,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="htmlkeyword_lb"> + <object class="svxlo-SvxColorListBox" id="htmlkeyword_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -807,7 +807,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="unknown_lb"> + <object class="svxlo-SvxColorListBox" id="unknown_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -858,7 +858,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="calcgrid_lb"> + <object class="svxlo-SvxColorListBox" id="calcgrid_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -893,7 +893,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="brk_lb"> + <object class="svxlo-SvxColorListBox" id="brk_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -928,7 +928,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="brkmanual_lb"> + <object class="svxlo-SvxColorListBox" id="brkmanual_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -963,7 +963,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="brkauto_lb"> + <object class="svxlo-SvxColorListBox" id="brkauto_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -998,7 +998,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="det_lb"> + <object class="svxlo-SvxColorListBox" id="det_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1033,7 +1033,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="deterror_lb"> + <object class="svxlo-SvxColorListBox" id="deterror_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1068,7 +1068,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="ref_lb"> + <object class="svxlo-SvxColorListBox" id="ref_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1103,7 +1103,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="notes_lb"> + <object class="svxlo-SvxColorListBox" id="notes_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1154,7 +1154,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="drawgrid_lb"> + <object class="svxlo-SvxColorListBox" id="drawgrid_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1205,7 +1205,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="basicid_lb"> + <object class="svxlo-SvxColorListBox" id="basicid_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1240,7 +1240,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="basiccomment_lb"> + <object class="svxlo-SvxColorListBox" id="basiccomment_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1275,7 +1275,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="basicnumber_lb"> + <object class="svxlo-SvxColorListBox" id="basicnumber_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1310,7 +1310,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="basicstring_lb"> + <object class="svxlo-SvxColorListBox" id="basicstring_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1345,7 +1345,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="basicop_lb"> + <object class="svxlo-SvxColorListBox" id="basicop_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1380,7 +1380,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="basickeyword_lb"> + <object class="svxlo-SvxColorListBox" id="basickeyword_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1415,7 +1415,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="error_lb"> + <object class="svxlo-SvxColorListBox" id="error_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1466,7 +1466,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="sqlid_lb"> + <object class="svxlo-SvxColorListBox" id="sqlid_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1501,7 +1501,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="sqlnumber_lb"> + <object class="svxlo-SvxColorListBox" id="sqlnumber_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1536,7 +1536,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="sqlstring_lb"> + <object class="svxlo-SvxColorListBox" id="sqlstring_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1571,7 +1571,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="sqlop_lb"> + <object class="svxlo-SvxColorListBox" id="sqlop_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1606,7 +1606,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="sqlkeyword_lb"> + <object class="svxlo-SvxColorListBox" id="sqlkeyword_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1641,7 +1641,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="sqlparam_lb"> + <object class="svxlo-SvxColorListBox" id="sqlparam_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -1676,7 +1676,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="sqlcomment_lb"> + <object class="svxlo-SvxColorListBox" id="sqlcomment_lb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> diff --git a/cui/uiconfig/ui/effectspage.ui b/cui/uiconfig/ui/effectspage.ui index 148532b6d941..bb20210dc411 100644 --- a/cui/uiconfig/ui/effectspage.ui +++ b/cui/uiconfig/ui/effectspage.ui @@ -324,7 +324,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="fontcolorlb"> + <object class="svxlo-SvxColorListBox" id="fontcolorlb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -389,7 +389,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="underlinecolorlb"> + <object class="svxlo-SvxColorListBox" id="underlinecolorlb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -399,7 +399,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="overlinecolorlb"> + <object class="svxlo-SvxColorListBox" id="overlinecolorlb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> diff --git a/cui/uiconfig/ui/gradientpage.ui b/cui/uiconfig/ui/gradientpage.ui index f09ecd5fc029..59b787b94629 100644 --- a/cui/uiconfig/ui/gradientpage.ui +++ b/cui/uiconfig/ui/gradientpage.ui @@ -205,7 +205,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="colorfromlb"> + <object class="svxlo-SvxColorListBox" id="colorfromlb"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="entry_text_column">0</property> @@ -242,7 +242,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="colortolb"> + <object class="svxlo-SvxColorListBox" id="colortolb"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="entry_text_column">0</property> diff --git a/cui/uiconfig/ui/hatchpage.ui b/cui/uiconfig/ui/hatchpage.ui index 387284481c2e..820e6d59731f 100644 --- a/cui/uiconfig/ui/hatchpage.ui +++ b/cui/uiconfig/ui/hatchpage.ui @@ -140,7 +140,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="linecolorlb"> + <object class="svxlo-SvxColorListBox" id="linecolorlb"> <property name="visible">True</property> <property name="can_focus">False</property> </object> diff --git a/cui/uiconfig/ui/linetabpage.ui b/cui/uiconfig/ui/linetabpage.ui index 0060a6fef564..a70a0ae7bed9 100644 --- a/cui/uiconfig/ui/linetabpage.ui +++ b/cui/uiconfig/ui/linetabpage.ui @@ -156,7 +156,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="LB_COLOR"> + <object class="svxlo-SvxColorListBox" id="LB_COLOR"> <property name="visible">True</property> <property name="can_focus">False</property> </object> diff --git a/cui/uiconfig/ui/numberingoptionspage.ui b/cui/uiconfig/ui/numberingoptionspage.ui index 71f392aab6df..76b609fba613 100644 --- a/cui/uiconfig/ui/numberingoptionspage.ui +++ b/cui/uiconfig/ui/numberingoptionspage.ui @@ -485,7 +485,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="color"> + <object class="svxlo-SvxColorListBox" id="color"> <property name="visible">True</property> <property name="can_focus">False</property> </object> diff --git a/cui/uiconfig/ui/shadowtabpage.ui b/cui/uiconfig/ui/shadowtabpage.ui index de63629337d3..74ad9de4df4a 100644 --- a/cui/uiconfig/ui/shadowtabpage.ui +++ b/cui/uiconfig/ui/shadowtabpage.ui @@ -99,7 +99,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="LB_SHADOW_COLOR"> + <object class="svxlo-SvxColorListBox" id="LB_SHADOW_COLOR"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">start</property> diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in index 58732b1fee4e..e0b4ac70ec53 100644 --- a/extras/source/glade/libreoffice-catalog.xml.in +++ b/extras/source/glade/libreoffice-catalog.xml.in @@ -94,29 +94,11 @@ </properties> </glade-widget-class> - <glade-widget-class title="Svt Color ListBox" name="svtlo-ColorListBox" - generic-name="Svt Color ListBox" parent="GtkComboBox" + <glade-widget-class title="Color ListBox" name="svxlo-ColorListBox" + generic-name="Color ListBox" parent="GtkComboBox" icon-name="widget-gtk-combobox"> - <properties> - <property save="True" query="False" id="dropdown" default="True" name="Use DropDown"> - <parameter-spec> - <type>GParamBoolean</type> - </parameter-spec> - </property> - </properties> </glade-widget-class> - <glade-widget-class title="Svx Color ListBox" name="svxlo-ColorLB" - generic-name="Svx Color ListBox" parent="GtkComboBox" - icon-name="widget-gtk-combobox"> - <properties> - <property save="True" query="False" id="dropdown" default="True" name="Use DropDown"> - <parameter-spec> - <type>GParamBoolean</type> - </parameter-spec> - </property> - </properties> - </glade-widget-class> <glade-widget-class title="Gradient ListBox" name="svxlo-GradientLB" generic-name="GradientListBox" parent="GtkComboBox" icon-name="widget-gtk-combobox"> diff --git a/include/sfx2/controlwrapper.hxx b/include/sfx2/controlwrapper.hxx index 33db87efaad0..41bd92ff799e 100644 --- a/include/sfx2/controlwrapper.hxx +++ b/include/sfx2/controlwrapper.hxx @@ -115,7 +115,7 @@ private: | +- DummyWindowWrapper [1] | +- CheckBoxWrapper [1] | +- EditWrapper [1] - | +- ColorListBoxWrapper [1] + | +- SvxColorListBoxWrapper [1] | | | +- NumericFieldWrapper< ValueT > [1] | | | @@ -245,26 +245,6 @@ public: }; -/** A wrapper for the SVTOOLS ColorListBox. */ -class SFX2_DLLPUBLIC ColorListBoxWrapper: - public SingleControlWrapper< ColorListBox, Color > -{ - /* Note: cannot use 'const Color&' as template argument, because the - SVTOOLS ColorListBox returns the color by value and not by reference, - therefore GetControlValue() must return a temporary object too. */ -public: - explicit ColorListBoxWrapper(ColorListBox & rListBox); - - virtual ~ColorListBoxWrapper(); - - virtual bool IsControlDontKnow() const override; - virtual void SetControlDontKnow( bool bSet ) override; - - virtual Color GetControlValue() const override; - virtual void SetControlValue( Color aColor ) override; -}; - - /** A wrapper for the VCL NumericField. */ template< typename ValueT > class NumericFieldWrapper : public SingleControlWrapper< NumericField, ValueT > @@ -280,7 +260,6 @@ public: virtual void SetControlValue( ValueT nValue ) SAL_OVERRIDE; }; - /** A wrapper for the VCL MetricField. Adds support for field units during accessing the control value. The diff --git a/include/svx/PaletteManager.hxx b/include/svx/PaletteManager.hxx index ceeea5d5a5e8..09662558ffdf 100644 --- a/include/svx/PaletteManager.hxx +++ b/include/svx/PaletteManager.hxx @@ -25,12 +25,8 @@ #include <svx/tbxcolorupdate.hxx> #include <tools/urlobj.hxx> -#include <comphelper/processfactory.hxx> #include <com/sun/star/util/XURLTransformer.hpp> #include <com/sun/star/util/URLTransformer.hpp> -#include <com/sun/star/frame/XDispatch.hpp> -#include <com/sun/star/frame/Desktop.hpp> -#include <com/sun/star/frame/XDispatchProvider.hpp> #include <deque> #include <vector> @@ -48,10 +44,10 @@ class SVX_DLLPUBLIC PaletteManager XColorListRef pColorList; Color mLastColor; - std::deque<Color> maRecentColors; + std::deque<NamedColor> maRecentColors; std::vector<std::unique_ptr<Palette>> m_Palettes; - std::function<void(const OUString&, const Color&)> maColorSelectFunction; + std::function<void(const OUString&, const NamedColor&)> maColorSelectFunction; css::uno::Reference < css::uno::XComponentContext > m_context; public: PaletteManager(); @@ -73,14 +69,14 @@ public: const Color& GetLastColor(); void SetLastColor(const Color& rLastColor); - void AddRecentColor(const Color& rRecentColor); + void AddRecentColor(const Color& rRecentColor, const OUString& rColorName, bool bFront = true); void SetBtnUpdater(svx::ToolboxButtonColorUpdater* pBtnUpdater); - void PopupColorPicker(const OUString& aCommand); + void PopupColorPicker(vcl::Window* pParent, const OUString& aCommand, const Color& rInitialColor); - void SetColorSelectFunction(const std::function<void(const OUString&, const Color&)>& aColorSelectFunction); + void SetColorSelectFunction(const std::function<void(const OUString&, const NamedColor&)>& aColorSelectFunction); - static void DispatchColorCommand(const OUString& aCommand, const Color& rColor); + static void DispatchColorCommand(const OUString& aCommand, const NamedColor& rColor); }; #endif // INCLUDED_SVX_PALETTEMANAGER_HXX diff --git a/include/svx/SvxColorValueSet.hxx b/include/svx/SvxColorValueSet.hxx index 0b9f53366cb5..1e6d6a615c79 100644 --- a/include/svx/SvxColorValueSet.hxx +++ b/include/svx/SvxColorValueSet.hxx @@ -28,7 +28,7 @@ class XColorList; class SVX_DLLPUBLIC SvxColorValueSet : public ValueSet { public: - SvxColorValueSet(vcl::Window* pParent, WinBits nWinStyle = WB_ITEMBORDER); + SvxColorValueSet(vcl::Window* pParent, WinBits nWinStyle); virtual void Resize() override; diff --git a/include/svx/bmpmask.hxx b/include/svx/bmpmask.hxx index b8c404e1b8fd..e8359a8d53a5 100644 --- a/include/svx/bmpmask.hxx +++ b/include/svx/bmpmask.hxx @@ -75,6 +75,7 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxBmpMaskChildWindow : public SfxChildWindo class MaskData; class MaskSet; class ColorWindow; +class SvxColorListBox; class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxBmpMask : public SfxDockingWindow { @@ -88,28 +89,27 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxBmpMask : public SfxDockingWindow VclPtr<CheckBox> m_pCbx1; VclPtr<MaskSet> m_pQSet1; VclPtr<MetricField> m_pSp1; - VclPtr<ColorLB> m_pLbColor1; + VclPtr<SvxColorListBox> m_pLbColor1; VclPtr<CheckBox> m_pCbx2; VclPtr<MaskSet> m_pQSet2; VclPtr<MetricField> m_pSp2; - VclPtr<ColorLB> m_pLbColor2; + VclPtr<SvxColorListBox> m_pLbColor2; VclPtr<CheckBox> m_pCbx3; VclPtr<MaskSet> m_pQSet3; VclPtr<MetricField> m_pSp3; - VclPtr<ColorLB> m_pLbColor3; + VclPtr<SvxColorListBox> m_pLbColor3; VclPtr<CheckBox> m_pCbx4; VclPtr<MaskSet> m_pQSet4; VclPtr<MetricField> m_pSp4; - VclPtr<ColorLB> m_pLbColor4; + VclPtr<SvxColorListBox> m_pLbColor4; MaskData* pData; VclPtr<CheckBox> m_pCbxTrans; - VclPtr<ColorLB> m_pLbColorTrans; + VclPtr<SvxColorListBox> m_pLbColorTrans; - XColorListRef pColLst; Color aPipetteColor; SvxBmpMaskSelectItem aSelItem; @@ -140,9 +140,6 @@ public: void SetColor( const Color& rColor ); void PipetteClicked(); - bool NeedsColorList() const; - void SetColorList( const XColorListRef &pColorList ); - void SetExecState( bool bEnable ); Graphic Mask( const Graphic& rGraphic ); diff --git a/include/svx/colorbox.hxx b/include/svx/colorbox.hxx new file mode 100644 index 000000000000..8043363f9856 --- /dev/null +++ b/include/svx/colorbox.hxx @@ -0,0 +1,93 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef INCLUDED_SVX_COLORBOX_HXX +#define INCLUDED_SVX_COLORBOX_HXX + +#include <vcl/menubtn.hxx> +#include <svx/colorwindow.hxx> +#include <sfx2/controlwrapper.hxx> + +class SvxColorListBox; + +class SvxListBoxColorWrapper +{ +public: + SvxListBoxColorWrapper(SvxColorListBox* pControl); + void operator()(const OUString& rCommand, const NamedColor& rColor); +private: + VclPtr<SvxColorListBox> mxControl; +}; + +class SVX_DLLPUBLIC SvxColorListBox : public MenuButton +{ +private: + friend class SvxListBoxColorWrapper; + VclPtr<SvxColorWindow> m_xColorWindow; + Link<SvxColorListBox&, void> m_aSelectedLink; + SvxListBoxColorWrapper m_aColorWrapper; + Color m_aAutoDisplayColor; + NamedColor m_aSelectedColor; + sal_uInt16 m_nSlotId; + bool m_bShowNoneButton; + PaletteManager m_aPaletteManager; + BorderColorStatus m_aBorderColorStatus; + + DECL_LINK_TYPED(MenuActivateHdl, MenuButton *, void); + void Selected(const NamedColor& rNamedColor); + void createColorWindow(); + void LockWidthRequest(); + VclPtr<SvxColorWindow> getColorWindow() const; +public: + SvxColorListBox(vcl::Window* pParent); + virtual ~SvxColorListBox() override; + virtual void dispose() override; + + void SetSelectHdl(const Link<SvxColorListBox&, void>& rLink) + { + m_aSelectedLink = rLink; + } + + void SetSlotId(sal_uInt16 nSlotId, bool bShowNoneButton = false); + + NamedColor GetSelectEntry() const; + Color GetSelectEntryColor() const; + + void SelectEntry(const NamedColor& rColor); + void SelectEntry(const Color& rColor); + + void SetNoSelection() { getColorWindow()->SetNoSelection(); } + bool IsNoSelection() const { return getColorWindow()->IsNoSelection(); } + + void SetAutoDisplayColor(const Color &rColor) { m_aAutoDisplayColor = rColor; } + void ShowPreview(const NamedColor &rColor); +}; + +/** A wrapper for SvxColorListBox. */ +class SVX_DLLPUBLIC SvxColorListBoxWrapper + : public sfx::SingleControlWrapper<SvxColorListBox, Color> +{ + /* Note: cannot use 'const Color&' as template argument, because the + SvxColorListBox returns the color by value and not by reference, + therefore GetControlValue() must return a temporary object too. */ +public: + explicit SvxColorListBoxWrapper(SvxColorListBox& rListBox); + + virtual ~SvxColorListBoxWrapper() override; + + virtual bool IsControlDontKnow() const override; + virtual void SetControlDontKnow( bool bSet ) override; + + virtual Color GetControlValue() const override; + virtual void SetControlValue( Color aColor ) override; +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/tbxctrls/colorwindow.hxx b/include/svx/colorwindow.hxx index d62176ac1443..1371a92dfde2 100644 --- a/svx/source/tbxctrls/colorwindow.hxx +++ b/include/svx/colorwindow.hxx @@ -21,6 +21,7 @@ #define INCLUDED_SVX_SOURCE_TBXCTRLS_COLORWINDOW_HXX #include <sfx2/tbxctrl.hxx> +#include <svtools/toolbarmenu.hxx> #include <svtools/valueset.hxx> #include <svl/lstner.hxx> #include <rtl/ustring.hxx> @@ -32,11 +33,13 @@ #include <functional> class BorderColorStatus; +class Button; +typedef std::function<void(const OUString&, const NamedColor&)> ColorSelectFunction; -class SvxColorWindow : public SfxPopupWindow -{ - using FloatingWindow::StateChanged; +#define COL_NONE_COLOR ::Color(0x80, 0xFF, 0xFF, 0xFF) +class SVX_DLLPUBLIC SvxColorWindow : public svtools::ToolbarPopup +{ private: const sal_uInt16 theSlotId; VclPtr<SvxColorValueSet> mpColorSet; @@ -44,42 +47,50 @@ private: VclPtr<ListBox> mpPaletteListBox; VclPtr<PushButton> mpButtonAutoColor; + VclPtr<PushButton> mpButtonNoneColor; VclPtr<PushButton> mpButtonPicker; VclPtr<FixedLine> mpAutomaticSeparator; OUString maCommand; - Link<const Color&, void> maSelectedLink; + Link<const NamedColor&, void> maSelectedLink; - PaletteManager& mrPaletteManager; + VclPtr<vcl::Window> mxParentWindow; + PaletteManager& mrPaletteManager; BorderColorStatus& mrBorderColorStatus; - std::function<void(const OUString&, const Color&)> maColorSelectFunction; + ColorSelectFunction maColorSelectFunction; DECL_LINK_TYPED( SelectHdl, ValueSet*, void ); DECL_LINK_TYPED( SelectPaletteHdl, ListBox&, void); DECL_LINK_TYPED( AutoColorClickHdl, Button*, void ); DECL_LINK_TYPED( OpenPickerClickHdl, Button*, void ); -protected: - virtual void Resize() override; - virtual bool Close() override; + static bool SelectValueSetEntry(SvxColorValueSet* pColorSet, const Color& rColor); + static NamedColor GetSelectEntryColor(ValueSet * pColorSet); + NamedColor GetAutoColor() const; + NamedColor GetNoneColor() const; public: - SvxColorWindow( const OUString& rCommand, - PaletteManager& rPaletteManager, - BorderColorStatus& rBorderColorStatus, - sal_uInt16 nSlotId, - const css::uno::Reference< css::frame::XFrame >& rFrame, - const OUString& rWndTitle, - vcl::Window* pParentWindow, - std::function<void(const OUString&, const Color&)> maColorSelectFunction); - virtual ~SvxColorWindow(); + SvxColorWindow(const OUString& rCommand, + PaletteManager& rPaletteManager, + BorderColorStatus& rBorderColorStatus, + sal_uInt16 nSlotId, + const css::uno::Reference< css::frame::XFrame >& rFrame, + vcl::Window* pParentWindow, + ColorSelectFunction const& rColorSelectFunction); + virtual ~SvxColorWindow() override; virtual void dispose() override; + void ShowNoneButton(); void StartSelection(); + void SetNoSelection(); + bool IsNoSelection() const; + void SelectEntry(const NamedColor& rColor); + void SelectEntry(const Color& rColor); + NamedColor GetSelectEntryColor() const; virtual void KeyInput( const KeyEvent& rKEvt ) override; - virtual void StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) override; + virtual void statusChanged( const css::frame::FeatureStateEvent& rEvent ) throw (com::sun::star::uno::RuntimeException, std::exception) override; - void SetSelectedHdl( const Link<const Color&, void>& rLink ) { maSelectedLink = rLink; } + void SetSelectedHdl( const Link<const NamedColor&, void>& rLink ) { maSelectedLink = rLink; } }; #endif diff --git a/include/svx/dialogs.hrc b/include/svx/dialogs.hrc index 59260ae53f00..8d46ec4323d3 100644 --- a/include/svx/dialogs.hrc +++ b/include/svx/dialogs.hrc @@ -31,8 +31,10 @@ // some strings also used in CUI #define RID_SVXERRCTX (RID_SVX_START + 351) #define RID_SVXSTR_COLOR (RID_SVX_START + 179) -#define RID_SVXSTR_TRANSPARENT (RID_SVX_START + 190) +#define RID_SVXSTR_NOFILL (RID_SVX_START + 190) #define RID_SVXSTR_AUTOMATIC (RID_SVX_START + 841) +#define RID_SVXSTR_BY_AUTHOR (RID_SVX_START + 842) +#define RID_SVXSTR_TRANSPARENT (RID_SVX_START + 843) #define RID_SVXSTR_INVISIBLE (RID_SVX_START + 178) #define RID_SVXSTR_NONE (RID_SVX_START + 183) #define RID_SVXSTR_SOLID (RID_SVX_START + 160) @@ -145,9 +147,6 @@ #define RID_SVXIMAGE_COLORDLG (RID_SVX_START + 214) #define RID_SVXFLOAT3D_FAVORITE (RID_SVX_START + 73) -#define RID_SVXFLOAT3D_FIX_X (RID_SVX_START + 74) -#define RID_SVXFLOAT3D_FIX_Y (RID_SVX_START + 75) -#define RID_SVXFLOAT3D_FIX_Z (RID_SVX_START + 76) #define RID_SVXFLOAT3D_FIX_R (RID_SVX_START + 77) #define RID_SVXFLOAT3D_FIX_G (RID_SVX_START + 78) #define RID_SVXFLOAT3D_FIX_B (RID_SVX_START + 84) diff --git a/include/svx/float3d.hxx b/include/svx/float3d.hxx index 6f22ef7d7d40..4179c1660c58 100644 --- a/include/svx/float3d.hxx +++ b/include/svx/float3d.hxx @@ -42,14 +42,13 @@ enum ViewType3D VIEWTYPE_MATERIAL }; -class SdrModel; class FmFormModel; class VirtualDevice; class E3dView; class SdrPageView; class Svx3DCtrlItem; class SvxConvertTo3DItem; - +class SvxColorListBox; struct Svx3DWinImpl; @@ -114,16 +113,16 @@ private: VclPtr<PushButton> m_pBtnLight6; VclPtr<PushButton> m_pBtnLight7; VclPtr<PushButton> m_pBtnLight8; - VclPtr<ColorLB> m_pLbLight1; - VclPtr<ColorLB> m_pLbLight2; - VclPtr<ColorLB> m_pLbLight3; - VclPtr<ColorLB> m_pLbLight4; - VclPtr<ColorLB> m_pLbLight5; - VclPtr<ColorLB> m_pLbLight6; - VclPtr<ColorLB> m_pLbLight7; - VclPtr<ColorLB> m_pLbLight8; + VclPtr<SvxColorListBox> m_pLbLight1; + VclPtr<SvxColorListBox> m_pLbLight2; + VclPtr<SvxColorListBox> m_pLbLight3; + VclPtr<SvxColorListBox> m_pLbLight4; + VclPtr<SvxColorListBox> m_pLbLight5; + VclPtr<SvxColorListBox> m_pLbLight6; + VclPtr<SvxColorListBox> m_pLbLight7; + VclPtr<SvxColorListBox> m_pLbLight8; VclPtr<PushButton> m_pBtnLightColor; - VclPtr<ColorLB> m_pLbAmbientlight; // ListBox + VclPtr<SvxColorListBox> m_pLbAmbientlight; // ListBox VclPtr<PushButton> m_pBtnAmbientColor; // color button // Textures @@ -145,13 +144,13 @@ private: // material editor VclPtr<VclContainer> m_pFLMaterial; VclPtr<ListBox> m_pLbMatFavorites; - VclPtr<ColorLB> m_pLbMatColor; + VclPtr<SvxColorListBox> m_pLbMatColor; VclPtr<PushButton> m_pBtnMatColor; - VclPtr<ColorLB> m_pLbMatEmission; + VclPtr<SvxColorListBox> m_pLbMatEmission; VclPtr<PushButton> m_pBtnEmissionColor; VclPtr<VclContainer> m_pFLMatSpecular; - VclPtr<ColorLB> m_pLbMatSpecular; + VclPtr<SvxColorListBox> m_pLbMatSpecular; VclPtr<PushButton> m_pBtnSpecularColor; VclPtr<MetricField> m_pMtrMatSpecularIntensity; @@ -193,7 +192,7 @@ private: DECL_LINK_TYPED( ClickAssignHdl, Button*, void ); DECL_LINK_TYPED( ClickHdl, Button*, void ); DECL_LINK_TYPED( ClickColorHdl, Button*, void ); - DECL_LINK_TYPED( SelectHdl, ListBox&, void ); + DECL_LINK_TYPED( SelectHdl, SvxColorListBox&, void ); DECL_LINK_TYPED( ModifyHdl, Edit&, void ); void ClickLight(PushButton &rBtn); @@ -202,7 +201,7 @@ private: SVX_DLLPRIVATE void Construct(); SVX_DLLPRIVATE void Reset(); - SVX_DLLPRIVATE bool LBSelectColor( ColorLB* pLb, const Color& rColor ); + SVX_DLLPRIVATE bool LBSelectColor( SvxColorListBox* pLb, const Color& rColor ); SVX_DLLPRIVATE sal_uInt16 GetLightSource( const PushButton* pBtn = nullptr ); SVX_DLLPRIVATE ColorLB* GetLbByButton( const PushButton* pBtn = nullptr ); @@ -218,7 +217,7 @@ public: virtual ~Svx3DWin(); virtual void dispose() override; - void InitColorLB( const SdrModel* pDoc ); + void InitColorLB(); bool IsUpdateMode() const { return bUpdate; } void Update( SfxItemSet& rSet ); diff --git a/include/svx/fontwork.hxx b/include/svx/fontwork.hxx index 5cbd86fde070..c69e901bf6c0 100644 --- a/include/svx/fontwork.hxx +++ b/include/svx/fontwork.hxx @@ -35,6 +35,7 @@ class SdrView; class SdrPageView; class SdrObject; +class SvxColorListBox; class XFormTextAdjustItem; class XFormTextDistanceItem; @@ -107,7 +108,7 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxFontWorkDialog : public SfxDockingWindow VclPtr<FixedImage> m_pFbShadowY; VclPtr<MetricField> m_pMtrFldShadowY; - VclPtr<ColorLB> m_pShadowColorLB; + VclPtr<SvxColorListBox> m_pShadowColorLB; SfxBindings& rBindings; Idle aInputIdle; @@ -138,8 +139,6 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxFontWorkDialog : public SfxDockingWindow long nSaveShadowAngle; long nSaveShadowSize; - XColorListRef pColorList; - friend class SvxFontWorkChildWindow; friend class SvxFontWorkControllerItem; @@ -150,7 +149,7 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxFontWorkDialog : public SfxDockingWindow DECL_LINK_TYPED( ModifyInputHdl_Impl, Edit&, void ); DECL_LINK_TYPED( InputTimoutHdl_Impl, Timer *, void ); - DECL_LINK_TYPED( ColorSelectHdl_Impl, ListBox&, void ); + DECL_LINK_TYPED( ColorSelectHdl_Impl, SvxColorListBox&, void ); void SetStyle_Impl(const XFormTextStyleItem*); void SetAdjust_Impl(const XFormTextAdjustItem*); @@ -175,8 +174,6 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxFontWorkDialog : public SfxDockingWindow vcl::Window* pParent); virtual ~SvxFontWorkDialog(); virtual void dispose() override; - - void SetColorList(const XColorListRef &pTable); }; #endif // INCLUDED_SVX_FONTWORK_HXX diff --git a/include/svx/sidebar/AreaPropertyPanelBase.hxx b/include/svx/sidebar/AreaPropertyPanelBase.hxx index ef653bdc219c..342f2fd1617f 100644 --- a/include/svx/sidebar/AreaPropertyPanelBase.hxx +++ b/include/svx/sidebar/AreaPropertyPanelBase.hxx @@ -25,6 +25,7 @@ #include <sfx2/sidebar/ControllerItem.hxx> #include <sfx2/sidebar/SidebarController.hxx> #include <sfx2/sidebar/SidebarToolBox.hxx> +#include <svx/colorbox.hxx> #include <svx/xgrad.hxx> #include <svx/itemwin.hxx> #include <svx/xfillit0.hxx> @@ -126,8 +127,8 @@ protected: VclPtr<FixedText> mpColorTextFT; VclPtr<SvxFillTypeBox> mpLbFillType; VclPtr<SvxFillAttrBox> mpLbFillAttr; - VclPtr<ColorLB> mpLbFillGradFrom; - VclPtr<ColorLB> mpLbFillGradTo; + VclPtr<SvxColorListBox> mpLbFillGradFrom; + VclPtr<SvxColorListBox> mpLbFillGradTo; VclPtr<sfx2::sidebar::SidebarToolBox> mpToolBoxColor; // for new color picker VclPtr<FixedText> mpTrspTextFT; VclPtr<ListBox> mpLBTransType; @@ -159,6 +160,7 @@ protected: DECL_LINK_TYPED(SelectFillTypeHdl, ListBox&, void ); DECL_LINK_TYPED(SelectFillAttrHdl, ListBox&, void ); + DECL_LINK_TYPED(SelectFillColorHdl, SvxColorListBox&, void ); DECL_LINK_TYPED(ChangeTrgrTypeHdl_Impl, ListBox&, void); DECL_LINK_TYPED(ModifyTransparentHdl_Impl, Edit&, void); DECL_LINK_TYPED(ModifyTransSliderHdl, Slider*, void); diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc index 67cbc9a24973..06ce25a9b47c 100644 --- a/include/svx/svxids.hrc +++ b/include/svx/svxids.hrc @@ -1032,8 +1032,11 @@ #define SID_EDIT_POSTIT ( SID_SVX_START + 1158 ) #define SID_ANCHOR_MENU ( SID_SVX_START + 1159 ) +#define SID_AUTHOR_COLOR ( SID_SVX_START + 1160 ) +#define SID_BMPMASK_COLOR ( SID_SVX_START + 1161 ) + // IMPORTANT NOTE: adjust SID_SVX_FIRSTFREE, when adding new slot id -#define SID_SVX_FIRSTFREE (SID_ANCHOR_MENU + 1) +#define SID_SVX_FIRSTFREE (SID_BMPMASK_COLOR + 1) // Overflow check for slot IDs diff --git a/include/svx/tbcontrl.hxx b/include/svx/tbcontrl.hxx index 34e5563ca31f..fa04ee76c855 100644 --- a/include/svx/tbcontrl.hxx +++ b/include/svx/tbcontrl.hxx @@ -136,6 +136,7 @@ #include <svx/strarray.hxx> #include <svx/svxdllapi.h> #include <com/sun/star/awt/FontDescriptor.hpp> +#include <svx/colorwindow.hxx> #include <svx/PaletteManager.hxx> #include <memory> @@ -226,17 +227,16 @@ public: Color GetColor(); }; -typedef std::function<void(const OUString&, const Color&)> ColorSelectFunction; class SVX_DLLPUBLIC SvxColorToolBoxControl : public SfxToolBoxControl { using SfxToolBoxControl::StateChanged; std::unique_ptr<svx::ToolboxButtonColorUpdater> m_xBtnUpdater; - PaletteManager mPaletteManager; + PaletteManager mrPaletteManager; BorderColorStatus maBorderColorStatus; bool bSidebarType; ColorSelectFunction maColorSelectFunction; - DECL_LINK_TYPED(SelectedHdl, const Color&, void); + DECL_LINK_TYPED(SelectedHdl, const NamedColor&, void); public: SFX_DECL_TOOLBOX_CONTROL(); SvxColorToolBoxControl(sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rToolBox); diff --git a/include/svx/tbxcolorupdate.hxx b/include/svx/tbxcolorupdate.hxx index 34e1689915a7..ebf5b183e62d 100644 --- a/include/svx/tbxcolorupdate.hxx +++ b/include/svx/tbxcolorupdate.hxx @@ -49,6 +49,7 @@ namespace svx ~ToolboxButtonColorUpdater(); void Update( const Color& rColor, bool bForceUpdate = false ); + Color GetCurrentColor() const { return maCurColor; } private: ToolboxButtonColorUpdater(ToolboxButtonColorUpdater &) = delete; diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs index 74cbc1525e1a..4eaffb93844f 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs @@ -3479,6 +3479,12 @@ </info> <value/> </prop> + <prop oor:name="RecentColorName" oor:type="oor:string-list" oor:nillable="false"> + <info> + <desc>List of Recent color names</desc> + </info> + <value/> + </prop> <prop oor:name="PaletteName" oor:type="xs:string" oor:nillable="false"> <info> <desc>Name of selected palette</desc> diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc index 141286fd8d9f..95bff7469c5f 100644 --- a/sc/inc/sc.hrc +++ b/sc/inc/sc.hrc @@ -829,7 +829,7 @@ #define SCSTR_ORIENTATION_TOPBOTTOM (STR_START + 110) #define SCSTR_ORIENTATION_BOTTOMTOP (STR_START + 111) #define SCSTR_ORIENTATION_STANDARD (STR_START + 112) -#define SCSTR_AUTHOR (STR_START + 113) +//free #define SCSTR_UNIT (STR_START + 114) // accessibility diff --git a/sc/source/ui/condformat/colorformat.cxx b/sc/source/ui/condformat/colorformat.cxx index f6e3cce92ffc..d6c824f90a06 100644 --- a/sc/source/ui/condformat/colorformat.cxx +++ b/sc/source/ui/condformat/colorformat.cxx @@ -13,6 +13,7 @@ #include "document.hxx" #include "sc.hrc" +#include <svx/colorbox.hxx> #include <svx/xtable.hxx> #include <svx/drawitem.hxx> #include <vcl/msgbox.hxx> @@ -66,16 +67,6 @@ void SetValue( ScDocument* pDoc, ScColorScaleEntry* pEntry, Edit& aEdit) aEdit.Disable(); } -void SelectColor(const Color& aColor, const OUString & aCustomName, ColorListBox& rLstBox) -{ - rLstBox.SelectEntry( aColor ); - if ( rLstBox.GetSelectEntryColor() != aColor ) - { - rLstBox.InsertEntry( aColor, aCustomName ); - rLstBox.SelectEntry( aColor ); - } -} - } ScDataBarSettingsDlg::ScDataBarSettingsDlg(vcl::Window* pWindow, const ScDataBarFormatData& rData, ScDocument* pDoc, const ScAddress& rPos): @@ -100,14 +91,13 @@ ScDataBarSettingsDlg::ScDataBarSettingsDlg(vcl::Window* pWindow, const ScDataBar get( mpCbOnlyBar, "only_bar"); maStrWarnSameValue = get<FixedText>("str_same_value")->GetText(); - maCustomColor = get<FixedText>("custom_color")->GetText(); Init(); - ::SelectColor( rData.maPositiveColor, maCustomColor, *mpLbPos); + mpLbPos->SelectEntry(rData.maPositiveColor); mpLbFillType->SelectEntryPos( rData.mbGradient ? 1 : 0 ); - if(rData.mpNegativeColor) - ::SelectColor( *rData.mpNegativeColor, maCustomColor, *mpLbNeg ); + if (rData.mpNegativeColor) + mpLbNeg->SelectEntry(*rData.mpNegativeColor); switch (rData.meAxisPosition) { @@ -160,42 +150,9 @@ void ScDataBarSettingsDlg::dispose() void ScDataBarSettingsDlg::Init() { - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - XColorListRef pColorTable; - - DBG_ASSERT( pDocSh, "DocShell not found!" ); - - if ( pDocSh ) - { - const SfxPoolItem* pItem = pDocSh->GetItem( SID_COLOR_TABLE ); - if ( pItem != nullptr ) - pColorTable = static_cast<const SvxColorListItem*>(pItem)->GetColorList(); - } - if ( pColorTable.is() ) - { - // filling the line color box - mpLbPos->SetUpdateMode( false ); - mpLbNeg->SetUpdateMode( false ); - mpLbAxisCol->SetUpdateMode( false ); - - for ( long i = 0; i < pColorTable->Count(); ++i ) - { - XColorEntry* pEntry = pColorTable->GetColor(i); - mpLbPos->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - mpLbNeg->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - mpLbAxisCol->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - - if(pEntry->GetColor() == Color(COL_LIGHTRED)) - mpLbNeg->SelectEntryPos(i); - if(pEntry->GetColor() == Color(COL_BLACK)) - mpLbAxisCol->SelectEntryPos(i); - if(pEntry->GetColor() == Color(COL_LIGHTBLUE)) - mpLbPos->SelectEntryPos(i); - } - mpLbPos->SetUpdateMode( true ); - mpLbNeg->SetUpdateMode( true ); - mpLbAxisCol->SetUpdateMode( true ); - } + mpLbNeg->SelectEntry(Color(COL_LIGHTRED)); + mpLbAxisCol->SelectEntry(Color(COL_BLACK)); + mpLbPos->SelectEntry(Color(COL_LIGHTBLUE)); mpBtnOk->SetClickHdl( LINK( this, ScDataBarSettingsDlg, OkBtnHdl ) ); mpLbTypeMin->SetSelectHdl( LINK( this, ScDataBarSettingsDlg, TypeSelectHdl ) ); diff --git a/sc/source/ui/condformat/condformatdlgentry.cxx b/sc/source/ui/condformat/condformatdlgentry.cxx index 3e3d7f18215f..2dc801c3536a 100644 --- a/sc/source/ui/condformat/condformatdlgentry.cxx +++ b/sc/source/ui/condformat/condformatdlgentry.cxx @@ -19,6 +19,7 @@ #include <sfx2/dispatch.hxx> #include <svl/stritem.hxx> #include <svl/intitem.hxx> +#include <svx/colorbox.hxx> #include <svx/xtable.hxx> #include <svx/drawitem.hxx> #include <vcl/msgbox.hxx> @@ -657,7 +658,7 @@ OUString convertNumberToString(double nVal, ScDocument* pDoc) return aText; } -void SetColorScaleEntryTypes( const ScColorScaleEntry& rEntry, ListBox& rLbType, Edit& rEdit, ColorListBox& rLbCol, ScDocument* pDoc ) +void SetColorScaleEntryTypes( const ScColorScaleEntry& rEntry, ListBox& rLbType, Edit& rEdit, SvxColorListBox& rLbCol, ScDocument* pDoc ) { // entry Automatic is not available for color scales sal_Int32 nIndex = static_cast<sal_Int32>(rEntry.GetType()); @@ -720,7 +721,7 @@ void SetColorScaleEntry( ScColorScaleEntry* pEntry, const ListBox& rType, const } } -ScColorScaleEntry* createColorScaleEntry( const ListBox& rType, const ColorListBox& rColor, const Edit& rValue, ScDocument* pDoc, const ScAddress& rPos ) +ScColorScaleEntry* createColorScaleEntry( const ListBox& rType, const SvxColorListBox& rColor, const Edit& rValue, ScDocument* pDoc, const ScAddress& rPos ) { ScColorScaleEntry* pEntry = new ScColorScaleEntry(); @@ -790,38 +791,8 @@ void ScColorScale2FrmtEntry::Init() { maLbEntryTypeMin->SetSelectHdl( LINK( this, ScColorScale2FrmtEntry, EntryTypeHdl ) ); maLbEntryTypeMax->SetSelectHdl( LINK( this, ScColorScale2FrmtEntry, EntryTypeHdl ) ); - - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - XColorListRef pColorTable; - - DBG_ASSERT( pDocSh, "DocShell not found!" ); - - if ( pDocSh ) - { - const SfxPoolItem* pItem = pDocSh->GetItem( SID_COLOR_TABLE ); - if ( pItem != nullptr ) - pColorTable = static_cast<const SvxColorListItem*>(pItem) ->GetColorList(); - } - if ( pColorTable.is() ) - { - // filling the line color box - maLbColMin->SetUpdateMode( false ); - maLbColMax->SetUpdateMode( false ); - - for ( long i = 0; i < pColorTable->Count(); ++i ) - { - XColorEntry* pEntry = pColorTable->GetColor(i); - maLbColMin->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - maLbColMax->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - - if(pEntry->GetColor() == Color(COL_LIGHTRED)) - maLbColMin->SelectEntryPos(i); - if(pEntry->GetColor() == Color(COL_LIGHTBLUE)) - maLbColMax->SelectEntryPos(i); - } - maLbColMin->SetUpdateMode( true ); - maLbColMax->SetUpdateMode( true ); - } + maLbColMin->SelectEntry(Color(COL_LIGHTRED)); + maLbColMax->SelectEntry(Color(COL_LIGHTBLUE)); } ScFormatEntry* ScColorScale2FrmtEntry::createColorscaleEntry() const @@ -970,43 +941,9 @@ void ScColorScale3FrmtEntry::Init() maLbEntryTypeMin->SetSelectHdl( LINK( this, ScColorScale3FrmtEntry, EntryTypeHdl ) ); maLbEntryTypeMax->SetSelectHdl( LINK( this, ScColorScale3FrmtEntry, EntryTypeHdl ) ); maLbEntryTypeMiddle->SetSelectHdl( LINK( this, ScColorScale3FrmtEntry, EntryTypeHdl ) ); - - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - XColorListRef pColorTable; - - DBG_ASSERT( pDocSh, "DocShell not found!" ); - - if ( pDocSh ) - { - const SfxPoolItem* pItem = pDocSh->GetItem( SID_COLOR_TABLE ); - if ( pItem != nullptr ) - pColorTable = static_cast<const SvxColorListItem*>(pItem)->GetColorList(); - } - if ( pColorTable.is() ) - { - // filling the line color box - maLbColMin->SetUpdateMode( false ); - maLbColMiddle->SetUpdateMode( false ); - maLbColMax->SetUpdateMode( false ); - - for ( long i = 0; i < pColorTable->Count(); ++i ) - { - XColorEntry* pEntry = pColorTable->GetColor(i); - maLbColMin->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - maLbColMiddle->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - maLbColMax->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - - if(pEntry->GetColor() == Color(COL_LIGHTRED)) - maLbColMin->SelectEntryPos(i); - if(pEntry->GetColor() == Color(COL_YELLOW)) - maLbColMiddle->SelectEntryPos(i); - if(pEntry->GetColor() == Color(0x00CC00)) // Green 3 - maLbColMax->SelectEntryPos(i); - } - maLbColMin->SetUpdateMode( true ); - maLbColMiddle->SetUpdateMode( true ); - maLbColMax->SetUpdateMode( true ); - } + maLbColMin->SelectEntry(Color(COL_LIGHTRED)); + maLbColMiddle->SelectEntry(Color(COL_YELLOW)); + maLbColMax->SelectEntry(Color(0x00CC00)); } ScFormatEntry* ScColorScale3FrmtEntry::createColorscaleEntry() const diff --git a/sc/source/ui/dbgui/scendlg.cxx b/sc/source/ui/dbgui/scendlg.cxx index 5e6f8a15e018..2db2832e0f18 100644 --- a/sc/source/ui/dbgui/scendlg.cxx +++ b/sc/source/ui/dbgui/scendlg.cxx @@ -21,6 +21,7 @@ #include "scitems.hxx" #include <comphelper/string.hxx> +#include <svx/colorbox.hxx> #include <svx/drawitem.hxx> #include <svx/xtable.hxx> #include <sfx2/objsh.hxx> @@ -58,27 +59,6 @@ ScNewScenarioDlg::ScNewScenarioDlg( vcl::Window* pParent, const OUString& rName, if (bIsEdit) SetText(get<FixedText>("alttitle")->GetText()); - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - if ( pDocSh ) - { - const SfxPoolItem* pItem = pDocSh->GetItem( SID_COLOR_TABLE ); - if ( pItem ) - { - XColorListRef pColorList = static_cast<const SvxColorListItem*>(pItem)->GetColorList(); - if (pColorList.is()) - { - m_pLbColor->SetUpdateMode( false ); - long nCount = pColorList->Count(); - for ( long n=0; n<nCount; n++ ) - { - XColorEntry* pEntry = pColorList->GetColor(n); - m_pLbColor->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - } - m_pLbColor->SetUpdateMode( true ); - } - } - } - SvtUserOptions aUserOpt; OUString sCreatedBy(get<FixedText>("createdft")->GetText()); diff --git a/sc/source/ui/drawfunc/drawsh4.cxx b/sc/source/ui/drawfunc/drawsh4.cxx index 9e620e5099b4..01d2576c7a61 100644 --- a/sc/source/ui/drawfunc/drawsh4.cxx +++ b/sc/source/ui/drawfunc/drawsh4.cxx @@ -34,17 +34,8 @@ void ScDrawShell::GetFormTextState(SfxItemSet& rSet) { const SdrObject* pObj = nullptr; - SvxFontWorkDialog* pDlg = nullptr; ScDrawView* pDrView = pViewData->GetScDrawView(); const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList(); - sal_uInt16 nId = SvxFontWorkChildWindow::GetChildWindowId(); - - SfxViewFrame* pViewFrm = pViewData->GetViewShell()->GetViewFrame(); - if (pViewFrm->HasChildWindow(nId)) - { - SfxChildWindow* pWnd = pViewFrm->GetChildWindow(nId); - pDlg = pWnd ? static_cast<SvxFontWorkDialog*>(pWnd->GetWindow()) : nullptr; - } if ( rMarkList.GetMarkCount() == 1 ) pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); @@ -72,22 +63,6 @@ void ScDrawShell::GetFormTextState(SfxItemSet& rSet) } else { - if ( pDlg ) - { - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - - if ( pDocSh ) - { - const SfxPoolItem* pItem = pDocSh->GetItem( SID_COLOR_TABLE ); - XColorListRef pColorList; - - if ( pItem ) - pColorList = static_cast<const SvxColorListItem*>(pItem)->GetColorList(); - - if ( pColorList.is() ) - pDlg->SetColorList( pColorList ); - } - } SfxItemSet aViewAttr(pDrView->GetModel()->GetItemPool()); pDrView->GetAttributes(aViewAttr); rSet.Set(aViewAttr); diff --git a/sc/source/ui/drawfunc/drtxtob2.cxx b/sc/source/ui/drawfunc/drtxtob2.cxx index e16ffd716dd2..74c2712ad173 100644 --- a/sc/source/ui/drawfunc/drtxtob2.cxx +++ b/sc/source/ui/drawfunc/drtxtob2.cxx @@ -203,17 +203,8 @@ void ScDrawTextObjectBar::ExecFormText(SfxRequest& rReq) void ScDrawTextObjectBar::GetFormTextState(SfxItemSet& rSet) { const SdrObject* pObj = nullptr; - SvxFontWorkDialog* pDlg = nullptr; ScDrawView* pDrView = pViewData->GetView()->GetScDrawView(); const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList(); - sal_uInt16 nId = SvxFontWorkChildWindow::GetChildWindowId(); - - SfxViewFrame* pViewFrm = pViewData->GetViewShell()->GetViewFrame(); - if (pViewFrm->HasChildWindow(nId)) - { - SfxChildWindow* pWnd = pViewFrm->GetChildWindow(nId); - pDlg = pWnd ? static_cast<SvxFontWorkDialog*>(pWnd->GetWindow()) : nullptr; - } if ( rMarkList.GetMarkCount() == 1 ) pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); @@ -241,22 +232,6 @@ void ScDrawTextObjectBar::GetFormTextState(SfxItemSet& rSet) } else { - if ( pDlg ) - { - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - - if ( pDocSh ) - { - const SfxPoolItem* pItem = pDocSh->GetItem( SID_COLOR_TABLE ); - XColorListRef pColorList; - - if ( pItem ) - pColorList = static_cast<const SvxColorListItem*>(pItem)->GetColorList(); - - if ( pColorList.is() ) - pDlg->SetColorList( pColorList ); - } - } SfxItemSet aViewAttr(pDrView->GetModel()->GetItemPool()); pDrView->GetAttributes(aViewAttr); rSet.Set(aViewAttr); diff --git a/sc/source/ui/inc/colorformat.hxx b/sc/source/ui/inc/colorformat.hxx index 95239429f072..fae8489340f3 100644 --- a/sc/source/ui/inc/colorformat.hxx +++ b/sc/source/ui/inc/colorformat.hxx @@ -19,6 +19,7 @@ struct ScDataBarFormatData; class ScDocument; +class SvxColorListBox; class ScDataBarSettingsDlg : public ModalDialog { @@ -26,9 +27,9 @@ private: VclPtr<OKButton> mpBtnOk; VclPtr<CancelButton> mpBtnCancel; - VclPtr<ColorListBox> mpLbPos; - VclPtr<ColorListBox> mpLbNeg; - VclPtr<ColorListBox> mpLbAxisCol; + VclPtr<SvxColorListBox> mpLbPos; + VclPtr<SvxColorListBox> mpLbNeg; + VclPtr<SvxColorListBox> mpLbAxisCol; VclPtr<ListBox> mpLbFillType; VclPtr<ListBox> mpLbTypeMin; @@ -43,7 +44,6 @@ private: VclPtr<CheckBox> mpCbOnlyBar; OUString maStrWarnSameValue; - OUString maCustomColor; SvNumberFormatter* mpNumberFormatter; ScDocument* mpDoc; diff --git a/sc/source/ui/inc/condformatdlgentry.hxx b/sc/source/ui/inc/condformatdlgentry.hxx index 4ca6a9f1a38c..4686f5386557 100644 --- a/sc/source/ui/inc/condformatdlgentry.hxx +++ b/sc/source/ui/inc/condformatdlgentry.hxx @@ -18,6 +18,7 @@ class ScIconSetFrmtDataEntry; class ScCondFormatDlg; +class SvxColorListBox; namespace condformat { @@ -168,8 +169,8 @@ class ScColorScale2FrmtEntry : public ScCondFrmtEntry VclPtr<Edit> maEdMin; VclPtr<Edit> maEdMax; - VclPtr<ColorListBox> maLbColMin; - VclPtr<ColorListBox> maLbColMax; + VclPtr<SvxColorListBox> maLbColMin; + VclPtr<SvxColorListBox> maLbColMax; ScFormatEntry* createColorscaleEntry() const; @@ -202,9 +203,9 @@ class ScColorScale3FrmtEntry : public ScCondFrmtEntry VclPtr<Edit> maEdMiddle; VclPtr<Edit> maEdMax; - VclPtr<ColorListBox> maLbColMin; - VclPtr<ColorListBox> maLbColMiddle; - VclPtr<ColorListBox> maLbColMax; + VclPtr<SvxColorListBox> maLbColMin; + VclPtr<SvxColorListBox> maLbColMiddle; + VclPtr<SvxColorListBox> maLbColMax; ScFormatEntry* createColorscaleEntry() const; diff --git a/sc/source/ui/inc/opredlin.hxx b/sc/source/ui/inc/opredlin.hxx index a6b67d2029fc..63a3ded24fc1 100644 --- a/sc/source/ui/inc/opredlin.hxx +++ b/sc/source/ui/inc/opredlin.hxx @@ -36,11 +36,10 @@ class ScRedlineOptionsTabPage : public SfxTabPage { - VclPtr<ColorListBox> m_pContentColorLB; - VclPtr<ColorListBox> m_pRemoveColorLB; - VclPtr<ColorListBox> m_pInsertColorLB; - VclPtr<ColorListBox> m_pMoveColorLB; - OUString aAuthorStr; + VclPtr<SvxColorListBox> m_pContentColorLB; + VclPtr<SvxColorListBox> m_pRemoveColorLB; + VclPtr<SvxColorListBox> m_pInsertColorLB; + VclPtr<SvxColorListBox> m_pMoveColorLB; public: diff --git a/sc/source/ui/inc/scendlg.hxx b/sc/source/ui/inc/scendlg.hxx index 15a9f2c144fd..8b43bbee3ec6 100644 --- a/sc/source/ui/inc/scendlg.hxx +++ b/sc/source/ui/inc/scendlg.hxx @@ -27,6 +27,8 @@ #include <svtools/svmedit.hxx> #include <svtools/ctrlbox.hxx> +class SvxColorListBox; + class ScNewScenarioDlg : public ModalDialog { public: @@ -43,7 +45,7 @@ private: VclPtr<Edit> m_pEdName; VclPtr<VclMultiLineEdit> m_pEdComment; VclPtr<CheckBox> m_pCbShowFrame; - VclPtr<ColorListBox> m_pLbColor; + VclPtr<SvxColorListBox> m_pLbColor; VclPtr<CheckBox> m_pCbTwoWay; VclPtr<CheckBox> m_pCbCopyAll; VclPtr<CheckBox> m_pCbProtect; diff --git a/sc/source/ui/inc/tpview.hxx b/sc/source/ui/inc/tpview.hxx index 2af7b8f22d54..948005e25f32 100644 --- a/sc/source/ui/inc/tpview.hxx +++ b/sc/source/ui/inc/tpview.hxx @@ -28,13 +28,14 @@ #include <svx/strarray.hxx> class ScViewOptions; +class SvxColorListBox; class ScTpContentOptions : public SfxTabPage { friend class VclPtr<ScTpContentOptions>; VclPtr<ListBox> pGridLB; VclPtr<FixedText> pColorFT; - VclPtr<ColorListBox> pColorLB; + VclPtr<SvxColorListBox> pColorLB; VclPtr<CheckBox> pBreakCB; VclPtr<CheckBox> pGuideLineCB; diff --git a/sc/source/ui/optdlg/opredlin.cxx b/sc/source/ui/optdlg/opredlin.cxx index 5322adf821b5..8a769ad24dab 100644 --- a/sc/source/ui/optdlg/opredlin.cxx +++ b/sc/source/ui/optdlg/opredlin.cxx @@ -19,6 +19,7 @@ #undef SC_DLLIMPLEMENTATION +#include <svx/colorbox.hxx> #include <svx/dlgutil.hxx> #include <svx/drawitem.hxx> #include <svx/xtable.hxx> @@ -40,13 +41,16 @@ ScRedlineOptionsTabPage::ScRedlineOptionsTabPage( vcl::Window* pParent, const SfxItemSet& rSet ) - : SfxTabPage(pParent,"OptChangesPage", "modules/scalc/ui/optchangespage.ui", &rSet), - aAuthorStr (ScResId(SCSTR_AUTHOR)) + : SfxTabPage(pParent,"OptChangesPage", "modules/scalc/ui/optchangespage.ui", &rSet) { get(m_pContentColorLB, "changes"); + m_pContentColorLB->SetSlotId(SID_AUTHOR_COLOR); get(m_pRemoveColorLB, "deletions"); + m_pRemoveColorLB->SetSlotId(SID_AUTHOR_COLOR); get(m_pInsertColorLB, "entries"); + m_pInsertColorLB->SetSlotId(SID_AUTHOR_COLOR); get(m_pMoveColorLB, "insertions"); + m_pMoveColorLB->SetSlotId(SID_AUTHOR_COLOR); } ScRedlineOptionsTabPage::~ScRedlineOptionsTabPage() @@ -72,53 +76,17 @@ bool ScRedlineOptionsTabPage::FillItemSet( SfxItemSet* /* rSet */ ) { ScAppOptions aAppOptions=SC_MOD()->GetAppOptions(); - sal_uLong nNew=0; - sal_Int32 nPos=0; - - nPos = m_pContentColorLB->GetSelectEntryPos(); - if (nPos != LISTBOX_ENTRY_NOTFOUND) - { - if (nPos!=0) - nNew= m_pContentColorLB->GetEntryColor(nPos).GetColor(); - else - nNew= COL_TRANSPARENT; - - aAppOptions.SetTrackContentColor(nNew); - - } - nPos = m_pMoveColorLB->GetSelectEntryPos(); - if (nPos != LISTBOX_ENTRY_NOTFOUND) - { - if (nPos!=0) - nNew= m_pMoveColorLB->GetEntryColor(nPos).GetColor(); - else - nNew= COL_TRANSPARENT; - - aAppOptions.SetTrackMoveColor(nNew); - - } - nPos = m_pInsertColorLB->GetSelectEntryPos(); - if (nPos != LISTBOX_ENTRY_NOTFOUND) - { - if (nPos!=0) - nNew= m_pInsertColorLB->GetEntryColor(nPos).GetColor(); - else - nNew= COL_TRANSPARENT; - - aAppOptions.SetTrackInsertColor(nNew); - - } - nPos = m_pRemoveColorLB->GetSelectEntryPos(); - if (nPos != LISTBOX_ENTRY_NOTFOUND) - { - if (nPos!=0) - nNew= m_pRemoveColorLB->GetEntryColor(nPos).GetColor(); - else - nNew= COL_TRANSPARENT; - - aAppOptions.SetTrackDeleteColor(nNew); - - } + sal_uLong nNew = m_pContentColorLB->GetSelectEntryColor().GetColor(); + aAppOptions.SetTrackContentColor(nNew); + + nNew = m_pMoveColorLB->GetSelectEntryColor().GetColor(); + aAppOptions.SetTrackMoveColor(nNew); + + nNew = m_pInsertColorLB->GetSelectEntryColor().GetColor(); + aAppOptions.SetTrackInsertColor(nNew); + + nNew = m_pRemoveColorLB->GetSelectEntryColor().GetColor(); + aAppOptions.SetTrackDeleteColor(nNew); SC_MOD()->SetAppOptions(aAppOptions); @@ -133,59 +101,19 @@ bool ScRedlineOptionsTabPage::FillItemSet( SfxItemSet* /* rSet */ ) void ScRedlineOptionsTabPage::Reset( const SfxItemSet* /* rSet */ ) { - m_pContentColorLB->InsertEntry(aAuthorStr); - m_pMoveColorLB->InsertEntry(aAuthorStr); - m_pInsertColorLB->InsertEntry(aAuthorStr); - m_pRemoveColorLB->InsertEntry(aAuthorStr); - - m_pContentColorLB->SetUpdateMode( false); - m_pMoveColorLB->SetUpdateMode( false); - m_pInsertColorLB->SetUpdateMode( false); - m_pRemoveColorLB->SetUpdateMode( false); - - XColorListRef xColorLst = XColorList::GetStdColorList(); - for( long i = 0; i < xColorLst->Count(); ++i ) - { - XColorEntry* pEntry = xColorLst->GetColor( i ); - Color aColor = pEntry->GetColor(); - OUString sName = pEntry->GetName(); - - m_pContentColorLB->InsertEntry( aColor, sName ); - m_pMoveColorLB->InsertEntry( aColor, sName ); - m_pInsertColorLB->InsertEntry( aColor, sName ); - m_pRemoveColorLB->InsertEntry( aColor, sName ); - } - m_pContentColorLB->SetUpdateMode( true ); - m_pMoveColorLB->SetUpdateMode( true ); - m_pInsertColorLB->SetUpdateMode( true ); - m_pRemoveColorLB->SetUpdateMode( true ); - ScAppOptions aAppOptions=SC_MOD()->GetAppOptions(); sal_uLong nColor = aAppOptions.GetTrackContentColor(); - if (nColor == COL_TRANSPARENT) - m_pContentColorLB->SelectEntryPos(0); - else - m_pContentColorLB->SelectEntry(Color(nColor)); + m_pContentColorLB->SelectEntry(Color(nColor)); nColor = aAppOptions.GetTrackMoveColor(); - if (nColor == COL_TRANSPARENT) - m_pMoveColorLB->SelectEntryPos(0); - else - m_pMoveColorLB->SelectEntry(Color(nColor)); + m_pMoveColorLB->SelectEntry(Color(nColor)); nColor = aAppOptions.GetTrackInsertColor(); - if (nColor == COL_TRANSPARENT) - m_pInsertColorLB->SelectEntryPos(0); - else - m_pInsertColorLB->SelectEntry(Color(nColor)); + m_pInsertColorLB->SelectEntry(Color(nColor)); nColor = aAppOptions.GetTrackDeleteColor(); - if (nColor == COL_TRANSPARENT) - m_pRemoveColorLB->SelectEntryPos(0); - else - m_pRemoveColorLB->SelectEntry(Color(nColor)); - + m_pRemoveColorLB->SelectEntry(Color(nColor)); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/optdlg/tpview.cxx b/sc/source/ui/optdlg/tpview.cxx index 110cb3038c06..15f7ebf0836e 100644 --- a/sc/source/ui/optdlg/tpview.cxx +++ b/sc/source/ui/optdlg/tpview.cxx @@ -31,6 +31,7 @@ #include "globstr.hrc" #include <appoptio.hxx> #include <scmod.hxx> +#include <svx/colorbox.hxx> #include <svx/dlgutil.hxx> #include <svx/drawitem.hxx> #include <svx/xtable.hxx> @@ -151,8 +152,8 @@ bool ScTpContentOptions::FillItemSet( SfxItemSet* rCoreSet ) pBreakCB ->IsValueChangedFromSaved() || pGuideLineCB ->IsValueChangedFromSaved()) { - pLocalOptions->SetGridColor( pColorLB->GetSelectEntryColor(), - pColorLB->GetSelectEntry() ); + NamedColor aNamedColor = pColorLB->GetSelectEntry(); + pLocalOptions->SetGridColor(aNamedColor.first, aNamedColor.second); rCoreSet->Put(ScTpViewItem(SID_SCVIEWOPTIONS, *pLocalOptions)); bRet = true; } @@ -302,58 +303,14 @@ void ScTpContentOptions::InitGridOpt() pGridLB->SelectEntryPos (nSelPos); - if ( pColorLB->GetEntryCount() == 0 ) - { - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - // there might be another DocShell here - pDocSh = dynamic_cast<ScDocShell*>( pDocSh ); - - XColorListRef pColorList; - if ( pDocSh ) - { - const SfxPoolItem* pItem = pDocSh->GetItem( SID_COLOR_TABLE ); - if ( pItem ) - pColorList = static_cast<const SvxColorListItem*>(pItem)->GetColorList(); - } - else - pColorList = XColorList::GetStdColorList(); - - if ( !pColorList.is() ) - return; - - pColorLB->SetUpdateMode( false ); - - // items from ColorTable - - long nCount = pColorList->Count(); - for ( long n=0; n<nCount; n++ ) - { - XColorEntry* pEntry = pColorList->GetColor(n); - pColorLB->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - } - - // default GridColor - - Color aStdCol( SC_STD_GRIDCOLOR ); // same default as in ScViewOptions - if ( LISTBOX_ENTRY_NOTFOUND == - pColorLB->GetEntryPos( aStdCol ) ) - pColorLB->InsertEntry( aStdCol, ScGlobal::GetRscString( STR_GRIDCOLOR ) ); - - pColorLB->SetUpdateMode( true ); - - Invalidate(); - } - - // also select grid color entry on subsequent calls - + // select grid color entry OUString aName; Color aCol = pLocalOptions->GetGridColor( &aName ); - nSelPos = pColorLB->GetEntryPos( aCol ); - if ( LISTBOX_ENTRY_NOTFOUND != nSelPos ) - pColorLB->SelectEntryPos( nSelPos ); - else - pColorLB->SelectEntryPos( pColorLB->InsertEntry( aCol, aName ) ); + if (aName.trim().isEmpty() && aCol == Color(SC_STD_GRIDCOLOR)) + aName = ScGlobal::GetRscString(STR_GRIDCOLOR); + + pColorLB->SelectEntry(std::make_pair(aCol, aName)); } IMPL_LINK_TYPED( ScTpContentOptions, GridHdl, ListBox&, rLb, void ) diff --git a/sc/source/ui/src/scstring.src b/sc/source/ui/src/scstring.src index 092362472ede..28d1c2410a52 100644 --- a/sc/source/ui/src/scstring.src +++ b/sc/source/ui/src/scstring.src @@ -765,11 +765,6 @@ String SCSTR_ROW_LABEL Text [ en-US ] = "Range contains ~row labels" ; }; -String SCSTR_AUTHOR -{ - Text [ en-US ] = "By author" ; -}; - StringArray SCSTR_UNIT { ItemList [ en-US ] = diff --git a/sc/uiconfig/scalc/ui/databaroptions.ui b/sc/uiconfig/scalc/ui/databaroptions.ui index c2a4ae233281..0624e8b55e2c 100644 --- a/sc/uiconfig/scalc/ui/databaroptions.ui +++ b/sc/uiconfig/scalc/ui/databaroptions.ui @@ -241,7 +241,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="positive_colour"> + <object class="svxlo-SvxColorListBox" id="positive_colour"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> @@ -252,7 +252,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="negative_colour"> + <object class="svxlo-SvxColorListBox" id="negative_colour"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> @@ -374,7 +374,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="axis_colour"> + <object class="svxlo-SvxColorListBox" id="axis_colour"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> @@ -523,17 +523,6 @@ <property name="position">5</property> </packing> </child> - <child> - <object class="GtkLabel" id="custom_color"> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Custom</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">6</property> - </packing> - </child> </object> <packing> <property name="expand">False</property> diff --git a/sc/uiconfig/scalc/ui/optchangespage.ui b/sc/uiconfig/scalc/ui/optchangespage.ui index df83ce92437f..7d4bba5bded0 100644 --- a/sc/uiconfig/scalc/ui/optchangespage.ui +++ b/sc/uiconfig/scalc/ui/optchangespage.ui @@ -87,7 +87,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="changes"> + <object class="svxlo-SvxColorListBox" id="changes"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -97,7 +97,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="deletions"> + <object class="svxlo-SvxColorListBox" id="deletions"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -107,7 +107,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="entries"> + <object class="svxlo-SvxColorListBox" id="entries"> <property name="visible">True</property> <property name="can_focus">False</property> </object> @@ -117,7 +117,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="insertions"> + <object class="svxlo-SvxColorListBox" id="insertions"> <property name="visible">True</property> <property name="can_focus">False</property> </object> diff --git a/sc/uiconfig/scalc/ui/scenariodialog.ui b/sc/uiconfig/scalc/ui/scenariodialog.ui index 846c05e4691f..ece0490e4b48 100644 --- a/sc/uiconfig/scalc/ui/scenariodialog.ui +++ b/sc/uiconfig/scalc/ui/scenariodialog.ui @@ -253,7 +253,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="bordercolor"> + <object class="svxlo-SvxColorListBox" id="bordercolor"> <property name="visible">True</property> <property name="can_focus">False</property> <accessibility> diff --git a/sc/uiconfig/scalc/ui/tpviewpage.ui b/sc/uiconfig/scalc/ui/tpviewpage.ui index 1e39a39f2ea0..9d1591ec3966 100644 --- a/sc/uiconfig/scalc/ui/tpviewpage.ui +++ b/sc/uiconfig/scalc/ui/tpviewpage.ui @@ -345,7 +345,7 @@ <property name="row_spacing">6</property> <property name="column_spacing">12</property> <child> - <object class="svxlo-ColorLB" id="color"> + <object class="svxlo-SvxColorListBox" id="color"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> diff --git a/sd/inc/sdabstdlg.hxx b/sd/inc/sdabstdlg.hxx index 702ba605d8a1..68b423b29337 100644 --- a/sd/inc/sdabstdlg.hxx +++ b/sd/inc/sdabstdlg.hxx @@ -166,7 +166,7 @@ public: static SdAbstractDialogFactory* Create(); virtual VclAbstractDialog* CreateBreakDlg(vcl::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount ) = 0; - virtual AbstractCopyDlg* CreateCopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs, const rtl::Reference<XColorList> &pColTab, ::sd::View* pView ) = 0; + virtual AbstractCopyDlg* CreateCopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs, ::sd::View* pView ) = 0; virtual AbstractSdCustomShowDlg* CreateSdCustomShowDlg(vcl::Window* pWindow, SdDrawDocument& rDrawDoc) = 0; virtual SfxAbstractTabDialog* CreateSdTabCharDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell) = 0; virtual SfxAbstractTabDialog* CreateSdTabPageDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage = true) = 0; diff --git a/sd/source/ui/animations/CustomAnimationDialog.cxx b/sd/source/ui/animations/CustomAnimationDialog.cxx index 1d91489e5a0c..901034d5f1ef 100644 --- a/sd/source/ui/animations/CustomAnimationDialog.cxx +++ b/sd/source/ui/animations/CustomAnimationDialog.cxx @@ -62,6 +62,7 @@ #include <editeng/flstitem.hxx> #include <svx/drawitem.hxx> +#include <svx/colorbox.hxx> #include <svx/xtable.hxx> #include <svx/gallery.hxx> @@ -193,43 +194,23 @@ public: private: VclPtr<ColorListBox> mpControl; - DECL_LINK_TYPED(OnSelect, ListBox&, void); + DECL_LINK_TYPED(OnSelect, SvxColorListBox&, void); Link<LinkParamNone*,void> maModifyLink; }; ColorPropertyBox::ColorPropertyBox( sal_Int32 nControlType, vcl::Window* pParent, const Any& rValue, const Link<LinkParamNone*,void>& rModifyHdl ) : PropertySubControl( nControlType ), maModifyLink(rModifyHdl) { - mpControl = VclPtr<ColorListBox>::Create( pParent, WB_BORDER|WB_TABSTOP|WB_DROPDOWN ); - mpControl->SetDropDownLineCount( 10 ); - mpControl->set_hexpand(true); + mpControl = VclPtr<SvxColorListBox>::Create(pParent); mpControl->SetSelectHdl( LINK(this, ColorPropertyBox, OnSelect) ); mpControl->SetHelpId( HID_SD_CUSTOMANIMATIONPANE_COLORPROPERTYBOX ); - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - DBG_ASSERT( pDocSh, "DocShell not found!" ); - XColorListRef pColorList; - const SfxPoolItem* pItem = nullptr; - - if ( pDocSh && ( ( pItem = pDocSh->GetItem( SID_COLOR_TABLE ) ) != nullptr) ) - pColorList = static_cast<const SvxColorListItem*>(pItem)->GetColorList(); - - if ( !pColorList.is() ) - pColorList = XColorList::CreateStdColorList(); - sal_Int32 nColor = 0; rValue >>= nColor; - - for ( long i = 0; i < pColorList->Count(); i++ ) - { - XColorEntry* pEntry = pColorList->GetColor(i); - sal_Int32 nPos = mpControl->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - if( pEntry->GetColor().GetRGBColor() == (sal_uInt32)nColor ) - mpControl->SelectEntryPos( nPos ); - } + mpControl->SelectEntry(static_cast<Color>(nColor)); } -IMPL_LINK_NOARG_TYPED(ColorPropertyBox, OnSelect, ListBox&, void) +IMPL_LINK_NOARG_TYPED(ColorPropertyBox, OnSelect, SvxColorListBox&, void) { maModifyLink.Call(nullptr); } @@ -247,7 +228,7 @@ void ColorPropertyBox::setValue( const Any& rValue, const OUString& ) rValue >>= nColor; mpControl->SetNoSelection(); - mpControl->SelectEntryPos( mpControl->GetEntryPos( static_cast<Color>(nColor) ) ); + mpControl->SelectEntry(static_cast<Color>(nColor)); } } @@ -1044,7 +1025,7 @@ private: VclPtr<FixedText> mpFTAfterEffect; VclPtr<ListBox> mpLBAfterEffect; VclPtr<FixedText> mpFTDimColor; - VclPtr<ColorListBox> mpCLBDimColor; + VclPtr<SvxColorListBox> mpCLBDimColor; VclPtr<FixedText> mpFTTextAnim; VclPtr<ListBox> mpLBTextAnim; VclPtr<MetricField> mpMFTextDelay; @@ -1069,6 +1050,7 @@ CustomAnimationEffectTabPage::CustomAnimationEffectTabPage( vcl::Window* pParent get(mpLBAfterEffect, "aeffect_list" ); get(mpFTDimColor, "dim_color_label" ); get(mpCLBDimColor, "dim_color_list" ); + mpCLBDimColor->SelectEntry(Color(COL_BLACK)); get(mpFTTextAnim, "text_animation_label" ); get(mpLBTextAnim, "text_animation_list" ); get(mpMFTextDelay,"text_delay" ); @@ -1081,28 +1063,6 @@ CustomAnimationEffectTabPage::CustomAnimationEffectTabPage( vcl::Window* pParent mpPBSoundPreview->SetClickHdl( LINK( this, CustomAnimationEffectTabPage, implClickHdl ) ); - // fill the color box - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - DBG_ASSERT( pDocSh, "DocShell not found!" ); - XColorListRef pColorList; - const SfxPoolItem* pItem = nullptr; - - if ( pDocSh && ( (pItem = pDocSh->GetItem( SID_COLOR_TABLE ) ) != nullptr ) ) - pColorList = static_cast<const SvxColorListItem*>(pItem)->GetColorList(); - - if ( !pColorList.is() ) - pColorList = XColorList::CreateStdColorList(); - - mpCLBDimColor->SetUpdateMode( false ); - - for ( long i = 0; i < pColorList->Count(); i++ ) - { - XColorEntry* pEntry = pColorList->GetColor(i); - mpCLBDimColor->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - } - - mpCLBDimColor->SetUpdateMode( true ); - // only show settings if all selected effects have the same preset-id if( pSet->getPropertyState( nHandlePresetId ) != STLPropertyState_AMBIGUOUS ) { @@ -1178,13 +1138,8 @@ CustomAnimationEffectTabPage::CustomAnimationEffectTabPage( vcl::Window* pParent { sal_Int32 nColor = 0; aDimColor >>= nColor; - Color aColor( nColor ); - sal_Int32 nColorPos = mpCLBDimColor->GetEntryPos( aColor ); - if ( LISTBOX_ENTRY_NOTFOUND != nColorPos ) - mpCLBDimColor->SelectEntryPos( nColorPos ); - else - mpCLBDimColor->SelectEntryPos( - mpCLBDimColor->InsertEntry( aColor, SVX_RESSTR(RID_SVXSTR_COLOR_USER) ) ); + Color aColor(nColor); + mpCLBDimColor->SelectEntry(aColor); } else { @@ -1336,16 +1291,7 @@ IMPL_LINK_TYPED( CustomAnimationEffectTabPage, implSelectHdl, ListBox&, rListBox void CustomAnimationEffectTabPage::implHdl(Control* pControl ) { - if( pControl == mpLBAfterEffect ) - { - sal_Int32 nPos = static_cast<ListBox*>( mpLBAfterEffect )->GetSelectEntryPos(); - if( nPos == 1 ) - { - if( mpCLBDimColor->GetSelectEntryPos() == LISTBOX_ENTRY_NOTFOUND ) - mpCLBDimColor->SelectEntryPos(0); - } - } - else if( pControl == mpLBTextAnim ) + if( pControl == mpLBTextAnim ) { if( mpMFTextDelay->GetValue() == 0 ) mpMFTextDelay->SetValue( 100 ); @@ -1424,10 +1370,7 @@ void CustomAnimationEffectTabPage::update( STLPropertySet* pSet ) Any aDimColor; if( nPos == 1 ) { - Color aSelectedColor; - if ( mpCLBDimColor->GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND ) - aSelectedColor = mpCLBDimColor->GetSelectEntryColor(); - + Color aSelectedColor = mpCLBDimColor->GetSelectEntryColor(); aDimColor = makeAny( (sal_Int32)aSelectedColor.GetRGBColor() ); } diff --git a/sd/source/ui/dlg/copydlg.cxx b/sd/source/ui/dlg/copydlg.cxx index 48cefcdff007..b66ff25884d1 100644 --- a/sd/source/ui/dlg/copydlg.cxx +++ b/sd/source/ui/dlg/copydlg.cxx @@ -19,6 +19,7 @@ #include "copydlg.hxx" #include <comphelper/string.hxx> +#include <svx/colorbox.hxx> #include <svx/dlgutil.hxx> #include <sfx2/module.hxx> #include <svx/xcolit.hxx> @@ -40,11 +41,9 @@ namespace sd { #define TOKEN ';' -CopyDlg::CopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs, - const XColorListRef &pColList, ::sd::View* pInView) +CopyDlg::CopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs, ::sd::View* pInView) : SfxModalDialog(pWindow, "DuplicateDialog", "modules/sdraw/ui/copydlg.ui") , mrOutAttrs(rInAttrs) - , mpColorList(pColList) , maUIScale(pInView->GetDoc().GetUIScale()) , mpView(pInView) { @@ -63,11 +62,6 @@ CopyDlg::CopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs, // Set up the view data button (image and accessible name). m_pBtnSetViewData->SetAccessibleName (m_pBtnSetViewData->GetQuickHelpText()); - // color tables - DBG_ASSERT( mpColorList.is(), "No colortable available !" ); - m_pLbStartColor->Fill( mpColorList ); - m_pLbEndColor->CopyEntries( *m_pLbStartColor ); - m_pLbStartColor->SetSelectHdl( LINK( this, CopyDlg, SelectColorHdl ) ); m_pBtnSetViewData->SetClickHdl( LINK( this, CopyDlg, SetViewData ) ); m_pBtnSetDefault->SetClickHdl( LINK( this, CopyDlg, SetDefault ) ); @@ -204,31 +198,22 @@ void CopyDlg::GetAttr( SfxItemSet& rOutAttrs ) rOutAttrs.Put( SfxInt32Item( ATTR_COPY_WIDTH, nWidth ) ); rOutAttrs.Put( SfxInt32Item( ATTR_COPY_HEIGHT, nHeight ) ); - if( m_pLbStartColor->GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND ) - { - XColorItem aXColorItem( ATTR_COPY_START_COLOR, m_pLbStartColor->GetSelectEntry(), - m_pLbStartColor->GetSelectEntryColor() ); - rOutAttrs.Put( aXColorItem ); - } - if( m_pLbEndColor->GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND ) - { - XColorItem aXColorItem( ATTR_COPY_END_COLOR, m_pLbEndColor->GetSelectEntry(), - m_pLbEndColor->GetSelectEntryColor() ); - rOutAttrs.Put( aXColorItem ); - } + NamedColor aColor = m_pLbStartColor->GetSelectEntry(); + rOutAttrs.Put(XColorItem(ATTR_COPY_START_COLOR, aColor.second, aColor.first)); + aColor = m_pLbEndColor->GetSelectEntry(); + rOutAttrs.Put(XColorItem(ATTR_COPY_END_COLOR, aColor.second, aColor.first)); } /** * enables and selects end color LB */ -IMPL_LINK_NOARG_TYPED(CopyDlg, SelectColorHdl, ListBox&, void) +IMPL_LINK_NOARG_TYPED(CopyDlg, SelectColorHdl, SvxColorListBox&, void) { - sal_Int32 nPos = m_pLbStartColor->GetSelectEntryPos(); + const Color aColor = m_pLbStartColor->GetSelectEntryColor(); - if( nPos != LISTBOX_ENTRY_NOTFOUND && - !m_pLbEndColor->IsEnabled() ) + if (!m_pLbEndColor->IsEnabled()) { - m_pLbEndColor->SelectEntryPos( nPos ); + m_pLbEndColor->SelectEntry(aColor); m_pLbEndColor->Enable(); m_pFtEndColor->Enable(); } diff --git a/sd/source/ui/dlg/sddlgfact.cxx b/sd/source/ui/dlg/sddlgfact.cxx index b3e15bf108e2..959502d74a44 100644 --- a/sd/source/ui/dlg/sddlgfact.cxx +++ b/sd/source/ui/dlg/sddlgfact.cxx @@ -358,10 +358,9 @@ VclAbstractDialog * SdAbstractDialogFactory_Impl::CreateBreakDlg( AbstractCopyDlg * SdAbstractDialogFactory_Impl::CreateCopyDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, - const rtl::Reference<XColorList> &pColTab, ::sd::View* pView ) { - return new AbstractCopyDlg_Impl( VclPtr< ::sd::CopyDlg>::Create( pParent, rInAttrs, pColTab, pView ) ); + return new AbstractCopyDlg_Impl( VclPtr< ::sd::CopyDlg>::Create( pParent, rInAttrs, pView ) ); } AbstractSdCustomShowDlg * SdAbstractDialogFactory_Impl::CreateSdCustomShowDlg(vcl::Window* pParent, SdDrawDocument& rDrawDoc ) diff --git a/sd/source/ui/dlg/sddlgfact.hxx b/sd/source/ui/dlg/sddlgfact.hxx index cf7cf462b9a7..92b706dcb790 100644 --- a/sd/source/ui/dlg/sddlgfact.hxx +++ b/sd/source/ui/dlg/sddlgfact.hxx @@ -227,7 +227,7 @@ public: virtual ~SdAbstractDialogFactory_Impl() {} virtual VclAbstractDialog* CreateBreakDlg(vcl::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount) override; - virtual AbstractCopyDlg* CreateCopyDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, const rtl::Reference<XColorList> &pColTab, ::sd::View* pView) override; + virtual AbstractCopyDlg* CreateCopyDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView) override; virtual AbstractSdCustomShowDlg* CreateSdCustomShowDlg(vcl::Window* pParent, SdDrawDocument& rDrawDoc) override; virtual SfxAbstractTabDialog* CreateSdTabCharDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell) override; virtual SfxAbstractTabDialog* CreateSdTabPageDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage = true) override; diff --git a/sd/source/ui/func/fucopy.cxx b/sd/source/ui/func/fucopy.cxx index d6bab1ad174c..82fb25ac78da 100644 --- a/sd/source/ui/func/fucopy.cxx +++ b/sd/source/ui/func/fucopy.cxx @@ -102,7 +102,7 @@ void FuCopy::DoExecute( SfxRequest& rReq ) SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create(); if( pFact ) { - std::unique_ptr<AbstractCopyDlg> pDlg(pFact->CreateCopyDlg(mpViewShell->GetActiveWindow(), aSet, mpDoc->GetColorList(), mpView )); + std::unique_ptr<AbstractCopyDlg> pDlg(pFact->CreateCopyDlg(mpViewShell->GetActiveWindow(), aSet, mpView )); if (!pDlg) return; diff --git a/sd/source/ui/inc/copydlg.hxx b/sd/source/ui/inc/copydlg.hxx index f3398cc75cb2..56a72af19ce6 100644 --- a/sd/source/ui/inc/copydlg.hxx +++ b/sd/source/ui/inc/copydlg.hxx @@ -28,6 +28,8 @@ #include <sfx2/basedlgs.hxx> #include <tools/fract.hxx> +class SvxColorListBox; + namespace sd { class View; @@ -40,7 +42,7 @@ class CopyDlg { public: CopyDlg( vcl::Window* pWindow, const SfxItemSet& rInAttrs, - const XColorListRef &pColList, ::sd::View* pView ); + ::sd::View* pView ); virtual ~CopyDlg(); virtual void dispose() override; @@ -58,18 +60,17 @@ private: VclPtr<MetricField> m_pMtrFldWidth; VclPtr<MetricField> m_pMtrFldHeight; - VclPtr<ColorLB> m_pLbStartColor; + VclPtr<SvxColorListBox> m_pLbStartColor; VclPtr<FixedText> m_pFtEndColor; - VclPtr<ColorLB> m_pLbEndColor; + VclPtr<SvxColorListBox> m_pLbEndColor; VclPtr<PushButton> m_pBtnSetDefault; const SfxItemSet& mrOutAttrs; - XColorListRef mpColorList; Fraction maUIScale; ::sd::View* mpView; - DECL_LINK_TYPED( SelectColorHdl, ListBox&, void ); + DECL_LINK_TYPED( SelectColorHdl, SvxColorListBox&, void ); DECL_LINK_TYPED( SetViewData, Button*, void ); DECL_LINK_TYPED( SetDefault, Button*, void ); }; diff --git a/sd/source/ui/sidebar/SlideBackground.cxx b/sd/source/ui/sidebar/SlideBackground.cxx index 473cd9414380..6b7869aed5bf 100644 --- a/sd/source/ui/sidebar/SlideBackground.cxx +++ b/sd/source/ui/sidebar/SlideBackground.cxx @@ -38,6 +38,7 @@ #include <com/sun/star/beans/XPropertySet.hpp> #include "sdresid.hxx" #include <svtools/controldims.hrc> +#include <svx/colorbox.hxx> #include <svx/gallery.hxx> #include <svx/drawitem.hxx> #include <unotools/pathoptions.hxx> @@ -234,48 +235,21 @@ void SlideBackground::Update() mpFillAttr->Hide(); mpFillGrad->Hide(); mpFillLB->Show(); - mpFillLB->Clear(); - const SvxColorListItem aItem( *static_cast<const SvxColorListItem*>(pSh->GetItem(SID_COLOR_TABLE))); - mpFillLB->Fill(aItem.GetColorList()); - const Color aColor = GetColorSetOrDefault(); - mpFillLB->SelectEntry( aColor ); - - if(mpFillLB->GetSelectEntryCount() == 0) - { - mpFillLB->InsertEntry(aColor, OUString()); - mpFillLB->SelectEntry(aColor); - } + mpFillLB->SelectEntry(aColor); } break; case drawing::FillStyle_GRADIENT: { mpFillLB->Show(); - const SvxColorListItem aItem(*static_cast<const SvxColorListItem*>(pSh->GetItem(SID_COLOR_TABLE))); mpFillAttr->Hide(); mpFillGrad->Show(); - mpFillLB->Clear(); - mpFillGrad->Clear(); - mpFillLB->Fill(aItem.GetColorList()); - mpFillGrad->Fill(aItem.GetColorList()); const XGradient xGradient = GetGradientSetOrDefault(); const Color aStartColor = xGradient.GetStartColor(); + mpFillLB->SelectEntry(aStartColor); const Color aEndColor = xGradient.GetEndColor(); - mpFillLB->SelectEntry( aStartColor ); - mpFillGrad->SelectEntry( aEndColor ); - - if(mpFillLB->GetSelectEntryCount() == 0) - { - mpFillLB->InsertEntry(aStartColor, OUString()); - mpFillLB->SelectEntry(aStartColor); - } - - if(mpFillGrad->GetSelectEntryCount() == 0) - { - mpFillGrad->InsertEntry(aEndColor, OUString()); - mpFillGrad->SelectEntry(aEndColor); - } + mpFillGrad->SelectEntry(aEndColor); } break; @@ -767,7 +741,7 @@ IMPL_LINK_NOARG_TYPED(SlideBackground, PaperSizeModifyHdl, ListBox&, void) GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_SIZE, SfxCallMode::RECORD, { &aSizeItem }); } -IMPL_LINK_NOARG_TYPED(SlideBackground, FillColorHdl, ListBox&, void) +IMPL_LINK_NOARG_TYPED(SlideBackground, FillColorHdl, SvxColorListBox&, void) { const drawing::FillStyle eXFS = (drawing::FillStyle)mpFillStyle->GetSelectEntryPos(); switch(eXFS) diff --git a/sd/source/ui/sidebar/SlideBackground.hxx b/sd/source/ui/sidebar/SlideBackground.hxx index 1c0a23cb2346..4a4f975a4a07 100644 --- a/sd/source/ui/sidebar/SlideBackground.hxx +++ b/sd/source/ui/sidebar/SlideBackground.hxx @@ -44,6 +44,8 @@ #include "EventMultiplexer.hxx" #include <sfx2/sidebar/IContextChangeReceiver.hxx> +class SvxColorListBox; + namespace sd { namespace sidebar { class SlideBackground : @@ -78,9 +80,9 @@ private: VclPtr<ListBox> mpPaperOrientation; VclPtr<ListBox> mpMasterSlide; VclPtr<SvxFillTypeBox> mpFillStyle; - VclPtr<ColorLB> mpFillLB; + VclPtr<SvxColorListBox> mpFillLB; VclPtr<SvxFillAttrBox> mpFillAttr; - VclPtr<ColorLB> mpFillGrad; + VclPtr<SvxColorListBox> mpFillGrad; VclPtr<CheckBox> mpDspMasterBackground; VclPtr<CheckBox> mpDspMasterObjects; @@ -112,7 +114,7 @@ private: DECL_LINK_TYPED(FillBackgroundHdl, ListBox&, void); DECL_LINK_TYPED(FillStyleModifyHdl, ListBox&, void); DECL_LINK_TYPED(PaperSizeModifyHdl, ListBox&, void); - DECL_LINK_TYPED(FillColorHdl, ListBox&, void); + DECL_LINK_TYPED(FillColorHdl, SvxColorListBox&, void); DECL_LINK_TYPED(AssignMasterPage, ListBox&, void); DECL_LINK_TYPED(DspBackground, Button*, void); DECL_LINK_TYPED(DspObjects, Button*, void); diff --git a/sd/source/ui/view/drviews6.cxx b/sd/source/ui/view/drviews6.cxx index d34b08ffb694..7fa40d53e97e 100644 --- a/sd/source/ui/view/drviews6.cxx +++ b/sd/source/ui/view/drviews6.cxx @@ -87,15 +87,6 @@ void DrawViewShell::GetFormTextState(SfxItemSet& rSet) { const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); const SdrObject* pObj = nullptr; - SvxFontWorkDialog* pDlg = nullptr; - - sal_uInt16 nId = SvxFontWorkChildWindow::GetChildWindowId(); - - if (GetViewFrame()->HasChildWindow(nId)) - { - SfxChildWindow* pWnd = GetViewFrame()->GetChildWindow(nId); - pDlg = pWnd ? static_cast<SvxFontWorkDialog*>(pWnd->GetWindow()) : nullptr; - } if ( rMarkList.GetMarkCount() == 1 ) pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); @@ -125,9 +116,6 @@ void DrawViewShell::GetFormTextState(SfxItemSet& rSet) } else { - if ( pDlg ) - pDlg->SetColorList(GetDoc()->GetColorList()); - SfxItemSet aSet( GetDoc()->GetPool() ); mpDrawView->GetAttributes( aSet ); rSet.Set( aSet ); @@ -341,17 +329,8 @@ void DrawViewShell::GetBmpMaskState( SfxItemSet& rSet ) { const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); const SdrObject* pObj = nullptr; - sal_uInt16 nId = SvxBmpMaskChildWindow::GetChildWindowId(); bool bEnable = false; - if ( GetViewFrame()->HasChildWindow( nId ) ) - { - SfxChildWindow* pWnd = GetViewFrame()->GetChildWindow(nId); - SvxBmpMask* pDlg = pWnd ? static_cast<SvxBmpMask*>(pWnd->GetWindow()) : nullptr; - if (pDlg && pDlg->NeedsColorList()) - pDlg->SetColorList(GetDoc()->GetColorList()); - } - if ( rMarkList.GetMarkCount() == 1 ) pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); diff --git a/sd/source/ui/view/drviewsi.cxx b/sd/source/ui/view/drviewsi.cxx index a2fe62bb2d36..4236050fe3b3 100644 --- a/sd/source/ui/view/drviewsi.cxx +++ b/sd/source/ui/view/drviewsi.cxx @@ -72,7 +72,7 @@ void DrawViewShell::ExecEffectWin( SfxRequest& rReq ) { Svx3DWin* p3DWin = static_cast<Svx3DWin*>( pWindow->GetWindow() ); if( p3DWin ) - p3DWin->InitColorLB( GetDoc() ); + p3DWin->InitColorLB(); } } break; diff --git a/sd/uiconfig/sdraw/ui/copydlg.ui b/sd/uiconfig/sdraw/ui/copydlg.ui index 56382a41f71d..c84f76529f66 100644 --- a/sd/uiconfig/sdraw/ui/copydlg.ui +++ b/sd/uiconfig/sdraw/ui/copydlg.ui @@ -443,7 +443,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="start"> + <object class="svxlo-SvxColorListBox" id="start"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> @@ -454,7 +454,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="end"> + <object class="svxlo-SvxColorListBox" id="end"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> diff --git a/sd/uiconfig/simpress/ui/customanimationeffecttab.ui b/sd/uiconfig/simpress/ui/customanimationeffecttab.ui index fffceb744ec9..758845856e8c 100644 --- a/sd/uiconfig/simpress/ui/customanimationeffecttab.ui +++ b/sd/uiconfig/simpress/ui/customanimationeffecttab.ui @@ -254,7 +254,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="dim_color_list"> + <object class="svxlo-SvxColorListBox" id="dim_color_list"> <property name="visible">True</property> <property name="can_focus">False</property> </object> diff --git a/sd/uiconfig/simpress/ui/sidebarslidebackground.ui b/sd/uiconfig/simpress/ui/sidebarslidebackground.ui index 6e53847a191d..f6c4d7ae7ba6 100644 --- a/sd/uiconfig/simpress/ui/sidebarslidebackground.ui +++ b/sd/uiconfig/simpress/ui/sidebarslidebackground.ui @@ -67,7 +67,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="fillattr"> + <object class="svxlo-SvxColorListBox" id="fillattr"> <property name="can_focus">False</property> <property name="has_tooltip">True</property> </object> @@ -151,7 +151,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="fillattr2"> + <object class="svxlo-SvxColorListBox" id="fillattr2"> <property name="visible">True</property> <property name="can_focus">False</property> </object> diff --git a/sfx2/source/dialog/itemconnect.cxx b/sfx2/source/dialog/itemconnect.cxx index 3335f78d9080..7a0dded6cef4 100644 --- a/sfx2/source/dialog/itemconnect.cxx +++ b/sfx2/source/dialog/itemconnect.cxx @@ -129,34 +129,6 @@ void CheckBoxWrapper::SetControlValue( bool bValue ) } -ColorListBoxWrapper::ColorListBoxWrapper(ColorListBox & rListBox): - SingleControlWrapper< ColorListBox, Color >(rListBox) -{} - -ColorListBoxWrapper::~ColorListBoxWrapper() -{} - -bool ColorListBoxWrapper::IsControlDontKnow() const -{ - return GetControl().GetSelectEntryCount() == 0; -} - -void ColorListBoxWrapper::SetControlDontKnow( bool bSet ) -{ - if( bSet ) GetControl().SetNoSelection(); -} - -Color ColorListBoxWrapper::GetControlValue() const -{ - return GetControl().GetSelectEntryColor(); -} - -void ColorListBoxWrapper::SetControlValue( Color aColor ) -{ - GetControl().SelectEntry( aColor ); -} - - // Multi control wrappers diff --git a/svtools/source/control/ctrlbox.cxx b/svtools/source/control/ctrlbox.cxx index 3b17faa6546d..79e18138537e 100644 --- a/svtools/source/control/ctrlbox.cxx +++ b/svtools/source/control/ctrlbox.cxx @@ -100,18 +100,6 @@ ColorListBox::ColorListBox( vcl::Window* pParent, const ResId& rResId ) : SetEdgeBlending(true); } -VCL_BUILDER_DECL_FACTORY(ColorListBox) -{ - bool bDropdown = VclBuilder::extractDropdown(rMap); - WinBits nWinBits = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_TABSTOP; - if (bDropdown) - nWinBits |= WB_DROPDOWN; - VclPtrInstance<ColorListBox> pListBox(pParent, nWinBits); - if (bDropdown) - pListBox->EnableAutoSize(true); - rRet = pListBox; -} - ColorListBox::~ColorListBox() { disposeOnce(); diff --git a/svx/source/dialog/_bmpmask.cxx b/svx/source/dialog/_bmpmask.cxx index e9a7e4c0f229..7b4ba3ce2aa6 100644 --- a/svx/source/dialog/_bmpmask.cxx +++ b/svx/source/dialog/_bmpmask.cxx @@ -25,6 +25,7 @@ #include <sfx2/dispatch.hxx> #include <svtools/colrdlg.hxx> +#include <svx/colorbox.hxx> #include <svx/dialmgr.hxx> #include <svx/bmpmask.hxx> #include <svx/dialogs.hrc> @@ -34,7 +35,6 @@ #include "helpid.hrc" #define BMP_RESID(nId) ResId(nId, DIALOG_MGR()) -#define TRANSP_COL (Color( 252, 252, 252 )) #define OWN_CALLMODE SfxCallMode::ASYNCHRON | SfxCallMode::RECORD @@ -293,7 +293,7 @@ IMPL_LINK_TYPED( MaskData, CbxTransHdl, Button*, pButton, void ) IMPL_LINK_TYPED( MaskData, FocusLbHdl, Control&, rControl, void ) { - ColorLB* pLb = static_cast<ColorLB*>(&rControl); + SvxColorListBox* pLb = static_cast<SvxColorListBox*>(&rControl); // MT: bFireFox as API parameter is ugly, find better solution???? pMask->m_pQSet1->SelectItem( pLb == pMask->m_pLbColor1 ? 1 : 0 /* , false */ ); pMask->m_pQSet2->SelectItem( pLb == pMask->m_pLbColor2 ? 1 : 0 /* , false */ ); @@ -373,6 +373,7 @@ SvxBmpMask::SvxBmpMask(SfxBindings *pBindinx, SfxChildWindow *pCW, vcl::Window* m_pQSet1->Show(); get(m_pSp1, "tol1"); get(m_pLbColor1, "color1"); + m_pLbColor1->SetSlotId(SID_BMPMASK_COLOR); get(m_pCbx2, "cbx2"); m_pQSet2 = VclPtr<MaskSet>::Create(this, pGrid); m_pQSet2->set_grid_left_attach(1); @@ -380,6 +381,7 @@ SvxBmpMask::SvxBmpMask(SfxBindings *pBindinx, SfxChildWindow *pCW, vcl::Window* m_pQSet2->Show(); get(m_pSp2, "tol2"); get(m_pLbColor2, "color2"); + m_pLbColor2->SetSlotId(SID_BMPMASK_COLOR); get(m_pCbx3, "cbx3"); m_pQSet3 = VclPtr<MaskSet>::Create(this, pGrid); m_pQSet3->set_grid_left_attach(1); @@ -387,6 +389,7 @@ SvxBmpMask::SvxBmpMask(SfxBindings *pBindinx, SfxChildWindow *pCW, vcl::Window* m_pQSet3->Show(); get(m_pSp3, "tol3"); get(m_pLbColor3, "color3"); + m_pLbColor3->SetSlotId(SID_BMPMASK_COLOR); get(m_pCbx4, "cbx4"); m_pQSet4 = VclPtr<MaskSet>::Create(this, pGrid); m_pQSet4->set_grid_left_attach(1); @@ -394,14 +397,15 @@ SvxBmpMask::SvxBmpMask(SfxBindings *pBindinx, SfxChildWindow *pCW, vcl::Window* m_pQSet4->Show(); get(m_pSp4, "tol4"); get(m_pLbColor4, "color4"); + m_pLbColor4->SetSlotId(SID_BMPMASK_COLOR); get(m_pCbxTrans, "cbx5"); get(m_pLbColorTrans, "color5"); - //temp fill it to get optimal size - m_pLbColor1->Fill(XColorList::GetStdColorList()); - m_pLbColor1->set_width_request(m_pLbColor1->get_preferred_size().Width()); - m_pLbColor1->Clear(); - //clear again + m_pLbColorTrans->SelectEntry(Color(COL_BLACK)); + m_pLbColor1->SelectEntry(Color(COL_TRANSPARENT)); + m_pLbColor2->SelectEntry(Color(COL_TRANSPARENT)); + m_pLbColor3->SelectEntry(Color(COL_TRANSPARENT)); + m_pLbColor4->SelectEntry(Color(COL_TRANSPARENT)); m_pTbxPipette->SetSelectHdl( LINK( pData, MaskData, PipetteHdl ) ); m_pBtnExec->SetClickHdl( LINK( pData, MaskData, ExecHdl ) ); @@ -520,40 +524,6 @@ bool SvxBmpMask::Close() return SfxDockingWindow::Close(); } -bool SvxBmpMask::NeedsColorList() const -{ - return ( m_pLbColor1->GetEntryCount() == 0 ); -} - -void SvxBmpMask::SetColorList( const XColorListRef &pList ) -{ - if ( pList.is() && ( pList != pColLst ) ) - { - const OUString aTransp(BMP_RESID(RID_SVXDLG_BMPMASK_STR_TRANSP).toString()); - - pColLst = pList; - - m_pLbColorTrans->Fill( pColLst ); - m_pLbColorTrans->SelectEntryPos( 0 ); - - m_pLbColor1->Fill( pColLst ); - m_pLbColor1->InsertEntry( TRANSP_COL, aTransp, 0 ); - m_pLbColor1->SelectEntryPos( 0 ); - - m_pLbColor2->Fill( pColLst ); - m_pLbColor2->InsertEntry( TRANSP_COL, aTransp, 0 ); - m_pLbColor2->SelectEntryPos( 0 ); - - m_pLbColor3->Fill( pColLst ); - m_pLbColor3->InsertEntry( TRANSP_COL, aTransp, 0 ); - m_pLbColor3->SelectEntryPos( 0 ); - - m_pLbColor4->Fill( pColLst ); - m_pLbColor4->InsertEntry( TRANSP_COL, aTransp, 0 ); - m_pLbColor4->SelectEntryPos( 0 ); - } -} - void SvxBmpMask::SetColor( const Color& rColor ) { aPipetteColor = rColor; @@ -737,7 +707,7 @@ GDIMetaFile SvxBmpMask::ImpMask( const GDIMetaFile& rMtf ) pMinB[i] = std::max( nVal - nTol, 0L ); pMaxB[i] = std::min( nVal + nTol, 255L ); - pTrans[ i ] = ( pDstCols[ i ] == TRANSP_COL ); + pTrans[ i ] = (pDstCols[ i ] == COL_TRANSPARENT); } // Investigate actions and if necessary replace colors @@ -1053,7 +1023,7 @@ Graphic SvxBmpMask::Mask( const Graphic& rGraphic ) for( sal_uInt16 i = 0; i < nCount; i++ ) { // Do we have a transparent color? - if( pDstCols[i] == TRANSP_COL ) + if (pDstCols[i] == COL_TRANSPARENT) { BitmapEx aBmpEx( ImpMaskTransparent( aGraphic.GetBitmapEx(), pSrcCols[ i ], pTols[ i ] ) ); diff --git a/svx/source/dialog/bmpmask.hrc b/svx/source/dialog/bmpmask.hrc index 3fa3f8332e78..5a6703a1415c 100644 --- a/svx/source/dialog/bmpmask.hrc +++ b/svx/source/dialog/bmpmask.hrc @@ -16,7 +16,6 @@ * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#define RID_SVXDLG_BMPMASK_STR_TRANSP (RID_SVX_BMPMASK_START + 1) #define RID_SVXDLG_BMPMASK_STR_SOURCECOLOR (RID_SVX_BMPMASK_START + 2) #define RID_SVXDLG_BMPMASK_STR_PALETTE (RID_SVX_BMPMASK_START + 3) #define RID_SVXDLG_BMPMASK_STR_TOLERANCE (RID_SVX_BMPMASK_START + 4) diff --git a/svx/source/dialog/bmpmask.src b/svx/source/dialog/bmpmask.src index a6c6a405cf4a..a7a462b637ed 100644 --- a/svx/source/dialog/bmpmask.src +++ b/svx/source/dialog/bmpmask.src @@ -22,10 +22,6 @@ #include "bmpmask.hrc" #include "helpid.hrc" -String RID_SVXDLG_BMPMASK_STR_TRANSP -{ - Text [ en-US ] = "Transparent"; -}; String RID_SVXDLG_BMPMASK_STR_SOURCECOLOR { diff --git a/svx/source/dialog/fontwork.cxx b/svx/source/dialog/fontwork.cxx index e317efdb5dd9..3ba45449c234 100644 --- a/svx/source/dialog/fontwork.cxx +++ b/svx/source/dialog/fontwork.cxx @@ -20,6 +20,7 @@ #include <sfx2/module.hxx> #include <sfx2/dispatch.hxx> +#include <svx/colorbox.hxx> #include <svx/svdobj.hxx> #include <svx/svdopath.hxx> #include <svx/svdview.hxx> @@ -791,23 +792,13 @@ IMPL_LINK_NOARG_TYPED(SvxFontWorkDialog, InputTimoutHdl_Impl, Timer *, void) { &aDistItem, &aStartItem, &aShadowXItem, &aShadowYItem }); } -IMPL_LINK_NOARG_TYPED(SvxFontWorkDialog, ColorSelectHdl_Impl, ListBox&, void) +IMPL_LINK_NOARG_TYPED(SvxFontWorkDialog, ColorSelectHdl_Impl, SvxColorListBox&, void) { XFormTextShadowColorItem aItem( "", m_pShadowColorLB->GetSelectEntryColor() ); GetBindings().GetDispatcher()->ExecuteList(SID_FORMTEXT_SHDWCOLOR, SfxCallMode::RECORD, { &aItem }); } -void SvxFontWorkDialog::SetColorList(const XColorListRef &pList) -{ - if ( pList.is() && pList != pColorList ) - { - pColorList = pList; - m_pShadowColorLB->Clear(); - m_pShadowColorLB->Fill(pColorList); - } -} - void SvxFontWorkDialog::ApplyImageList() { if (nLastShadowTbxId == nShadowSlantId) diff --git a/svx/source/engine3d/float3d.cxx b/svx/source/engine3d/float3d.cxx index bd103da8e1d0..06d4a75497f7 100644 --- a/svx/source/engine3d/float3d.cxx +++ b/svx/source/engine3d/float3d.cxx @@ -24,6 +24,7 @@ #include <svtools/colrdlg.hxx> #include <vcl/msgbox.hxx> #include <sfx2/viewsh.hxx> +#include <svx/colorbox.hxx> #include <svx/xflclit.hxx> #include <svx/svdmodel.hxx> #include <svx/globl3d.hxx> @@ -274,19 +275,20 @@ Svx3DWin::Svx3DWin(SfxBindings* pInBindings, SfxChildWindow *pCW, vcl::Window* p Link<ListBox&,void> aLink2 = LINK( this, Svx3DWin, SelectHdl ); + Link<SvxColorListBox&,void> aLink4 = LINK( this, Svx3DWin, SelectColorHdl ); m_pLbMatFavorites->SetSelectHdl( aLink2 ); - m_pLbMatColor->SetSelectHdl( aLink2 ); - m_pLbMatEmission->SetSelectHdl( aLink2 ); - m_pLbMatSpecular->SetSelectHdl( aLink2 ); - m_pLbLight1->SetSelectHdl( aLink2 ); - m_pLbLight2->SetSelectHdl( aLink2 ); - m_pLbLight3->SetSelectHdl( aLink2 ); - m_pLbLight4->SetSelectHdl( aLink2 ); - m_pLbLight5->SetSelectHdl( aLink2 ); - m_pLbLight6->SetSelectHdl( aLink2 ); - m_pLbLight7->SetSelectHdl( aLink2 ); - m_pLbLight8->SetSelectHdl( aLink2 ); - m_pLbAmbientlight->SetSelectHdl( aLink2 ); + m_pLbMatColor->SetSelectHdl( aLink4 ); + m_pLbMatEmission->SetSelectHdl( aLink4 ); + m_pLbMatSpecular->SetSelectHdl( aLink4 ); + m_pLbLight1->SetSelectHdl( aLink4 ); + m_pLbLight2->SetSelectHdl( aLink4 ); + m_pLbLight3->SetSelectHdl( aLink4 ); + m_pLbLight4->SetSelectHdl( aLink4 ); + m_pLbLight5->SetSelectHdl( aLink4 ); + m_pLbLight6->SetSelectHdl( aLink4 ); + m_pLbLight7->SetSelectHdl( aLink4 ); + m_pLbLight8->SetSelectHdl( aLink4 ); + m_pLbAmbientlight->SetSelectHdl( aLink4 ); m_pLbShademode->SetSelectHdl( aLink2 ); Link<Edit&,void> aLink3 = LINK( this, Svx3DWin, ModifyHdl ); @@ -866,7 +868,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) if( eState != SfxItemState::DONTCARE ) { aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_1)).GetValue(); - ColorLB* pLb = m_pLbLight1; + SvxColorListBox* pLb = m_pLbLight1; if( aColor != pLb->GetSelectEntryColor() ) { LBSelectColor( pLb, aColor ); @@ -875,7 +877,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) } else { - if( m_pLbLight1->GetSelectEntryCount() != 0 ) + if (!m_pLbLight1->IsNoSelection()) { m_pLbLight1->SetNoSelection(); bUpdate = true; @@ -915,7 +917,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) if( eState != SfxItemState::DONTCARE ) { aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_2)).GetValue(); - ColorLB* pLb = m_pLbLight2; + SvxColorListBox* pLb = m_pLbLight2; if( aColor != pLb->GetSelectEntryColor() ) { LBSelectColor( pLb, aColor ); @@ -924,7 +926,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) } else { - if( m_pLbLight2->GetSelectEntryCount() != 0 ) + if (!m_pLbLight2->IsNoSelection()) { m_pLbLight2->SetNoSelection(); bUpdate = true; @@ -964,7 +966,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) if( eState != SfxItemState::DONTCARE ) { aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_3)).GetValue(); - ColorLB* pLb = m_pLbLight3; + SvxColorListBox* pLb = m_pLbLight3; if( aColor != pLb->GetSelectEntryColor() ) { LBSelectColor( pLb, aColor ); @@ -973,7 +975,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) } else { - if( m_pLbLight3->GetSelectEntryCount() != 0 ) + if (!m_pLbLight3->IsNoSelection()) { m_pLbLight3->SetNoSelection(); bUpdate = true; @@ -1013,7 +1015,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) if( eState != SfxItemState::DONTCARE ) { aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_4)).GetValue(); - ColorLB* pLb = m_pLbLight4; + SvxColorListBox* pLb = m_pLbLight4; if( aColor != pLb->GetSelectEntryColor() ) { LBSelectColor( pLb, aColor ); @@ -1022,7 +1024,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) } else { - if( m_pLbLight4->GetSelectEntryCount() != 0 ) + if (!m_pLbLight4->IsNoSelection()) { m_pLbLight4->SetNoSelection(); bUpdate = true; @@ -1062,7 +1064,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) if( eState != SfxItemState::DONTCARE ) { aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_5)).GetValue(); - ColorLB* pLb = m_pLbLight5; + SvxColorListBox* pLb = m_pLbLight5; if( aColor != pLb->GetSelectEntryColor() ) { LBSelectColor( pLb, aColor ); @@ -1071,7 +1073,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) } else { - if( m_pLbLight5->GetSelectEntryCount() != 0 ) + if (!m_pLbLight5->IsNoSelection()) { m_pLbLight5->SetNoSelection(); bUpdate = true; @@ -1111,7 +1113,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) if( eState != SfxItemState::DONTCARE ) { aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_6)).GetValue(); - ColorLB* pLb = m_pLbLight6; + SvxColorListBox* pLb = m_pLbLight6; if( aColor != pLb->GetSelectEntryColor() ) { LBSelectColor( pLb, aColor ); @@ -1120,7 +1122,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) } else { - if( m_pLbLight6->GetSelectEntryCount() != 0 ) + if (!m_pLbLight6->IsNoSelection()) { m_pLbLight6->SetNoSelection(); bUpdate = true; @@ -1160,7 +1162,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) if( eState != SfxItemState::DONTCARE ) { aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_7)).GetValue(); - ColorLB* pLb = m_pLbLight7; + SvxColorListBox* pLb = m_pLbLight7; if( aColor != pLb->GetSelectEntryColor() ) { LBSelectColor( pLb, aColor ); @@ -1169,7 +1171,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) } else { - if( m_pLbLight7->GetSelectEntryCount() != 0 ) + if (!m_pLbLight7->IsNoSelection()) { m_pLbLight7->SetNoSelection(); bUpdate = true; @@ -1209,7 +1211,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) if( eState != SfxItemState::DONTCARE ) { aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_8)).GetValue(); - ColorLB* pLb = m_pLbLight8; + SvxColorListBox* pLb = m_pLbLight8; if( aColor != pLb->GetSelectEntryColor() ) { LBSelectColor( pLb, aColor ); @@ -1218,7 +1220,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) } else { - if( m_pLbLight8->GetSelectEntryCount() != 0 ) + if (!m_pLbLight8->IsNoSelection()) { m_pLbLight8->SetNoSelection(); bUpdate = true; @@ -1258,7 +1260,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) if( eState != SfxItemState::DONTCARE ) { aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_AMBIENTCOLOR)).GetValue(); - ColorLB* pLb = m_pLbAmbientlight; + SvxColorListBox* pLb = m_pLbAmbientlight; if( aColor != pLb->GetSelectEntryColor() ) { LBSelectColor( pLb, aColor ); @@ -1267,7 +1269,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) } else { - if( m_pLbAmbientlight->GetSelectEntryCount() != 0 ) + if (!m_pLbAmbientlight->IsNoSelection()) { m_pLbAmbientlight->SetNoSelection(); bUpdate = true; @@ -1418,7 +1420,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) if( eState != SfxItemState::DONTCARE ) { aColor = static_cast<const XFillColorItem&>(rAttrs.Get(XATTR_FILLCOLOR)).GetColorValue(); - ColorLB* pLb = m_pLbMatColor; + SvxColorListBox* pLb = m_pLbMatColor; if( aColor != pLb->GetSelectEntryColor() ) { LBSelectColor( pLb, aColor ); @@ -1427,7 +1429,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) } else { - if( m_pLbMatColor->GetSelectEntryCount() != 0 ) + if (!m_pLbMatColor->IsNoSelection()) { m_pLbMatColor->SetNoSelection(); bUpdate = true; @@ -1439,7 +1441,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) if( eState != SfxItemState::DONTCARE ) { aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DOBJ_MAT_EMISSION)).GetValue(); - ColorLB* pLb = m_pLbMatEmission; + SvxColorListBox* pLb = m_pLbMatEmission; if( aColor != pLb->GetSelectEntryColor() ) { LBSelectColor( pLb, aColor ); @@ -1448,7 +1450,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) } else { - if( m_pLbMatEmission->GetSelectEntryCount() != 0 ) + if (!m_pLbMatEmission->IsNoSelection()) { m_pLbMatEmission->SetNoSelection(); bUpdate = true; @@ -1460,7 +1462,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) if( eState != SfxItemState::DONTCARE ) { aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DOBJ_MAT_SPECULAR)).GetValue(); - ColorLB* pLb = m_pLbMatSpecular; + SvxColorListBox* pLb = m_pLbMatSpecular; if( aColor != pLb->GetSelectEntryColor() ) { LBSelectColor( pLb, aColor ); @@ -1469,7 +1471,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs ) } else { - if( m_pLbMatSpecular->GetSelectEntryCount() != 0 ) + if (!m_pLbMatSpecular->IsNoSelection()) { m_pLbMatSpecular->SetNoSelection(); bUpdate = true; @@ -1780,7 +1782,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs ) const SfxItemSet aLightItemSet(m_pCtlLightPreview->GetSvx3DLightControl().Get3DAttributes()); // Light 1 color - if( m_pLbLight1->GetSelectEntryCount() ) + if (!m_pLbLight1->IsNoSelection()) { aColor = m_pLbLight1->GetSelectEntryColor(); rAttrs.Put(makeSvx3DLightcolor1Item(aColor)); @@ -1805,7 +1807,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs ) // Light 2 color - if( m_pLbLight2->GetSelectEntryCount() ) + if (!m_pLbLight2->IsNoSelection()) { aColor = m_pLbLight2->GetSelectEntryColor(); rAttrs.Put(makeSvx3DLightcolor2Item(aColor)); @@ -1829,7 +1831,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs ) rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_2); // Light 3 color - if( m_pLbLight3->GetSelectEntryCount() ) + if (!m_pLbLight3->IsNoSelection()) { aColor = m_pLbLight3->GetSelectEntryColor(); rAttrs.Put(makeSvx3DLightcolor3Item(aColor)); @@ -1853,7 +1855,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs ) rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_3); // Light 4 color - if( m_pLbLight4->GetSelectEntryCount() ) + if (!m_pLbLight4->IsNoSelection()) { aColor = m_pLbLight4->GetSelectEntryColor(); rAttrs.Put(makeSvx3DLightcolor4Item(aColor)); @@ -1877,7 +1879,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs ) rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_4); // Light 5 color - if( m_pLbLight5->GetSelectEntryCount() ) + if (!m_pLbLight5->IsNoSelection()) { aColor = m_pLbLight5->GetSelectEntryColor(); rAttrs.Put(makeSvx3DLightcolor5Item(aColor)); @@ -1901,7 +1903,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs ) rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_5); // Light 6 color - if( m_pLbLight6->GetSelectEntryCount() ) + if (!m_pLbLight6->IsNoSelection()) { aColor = m_pLbLight6->GetSelectEntryColor(); rAttrs.Put(makeSvx3DLightcolor6Item(aColor)); @@ -1925,7 +1927,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs ) rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_6); // Light 7 color - if( m_pLbLight7->GetSelectEntryCount() ) + if (!m_pLbLight7->IsNoSelection()) { aColor = m_pLbLight7->GetSelectEntryColor(); rAttrs.Put(makeSvx3DLightcolor7Item(aColor)); @@ -1949,7 +1951,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs ) rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_7); // Light 8 color - if( m_pLbLight8->GetSelectEntryCount() ) + if (!m_pLbLight8->IsNoSelection()) { aColor = m_pLbLight8->GetSelectEntryColor(); rAttrs.Put(makeSvx3DLightcolor8Item(aColor)); @@ -1973,7 +1975,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs ) rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_8); // Ambient light - if( m_pLbAmbientlight->GetSelectEntryCount() ) + if (!m_pLbAmbientlight->IsNoSelection()) { aColor = m_pLbAmbientlight->GetSelectEntryColor(); rAttrs.Put(makeSvx3DAmbientcolorItem(aColor)); @@ -2049,7 +2051,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs ) // Material // Object color - if( m_pLbMatColor->GetSelectEntryCount() ) + if (!m_pLbMatColor->IsNoSelection()) { aColor = m_pLbMatColor->GetSelectEntryColor(); rAttrs.Put( XFillColorItem( "", aColor) ); @@ -2060,7 +2062,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs ) } // luminous color - if( m_pLbMatEmission->GetSelectEntryCount() ) + if (!m_pLbMatEmission->IsNoSelection()) { aColor = m_pLbMatEmission->GetSelectEntryColor(); rAttrs.Put(makeSvx3DMaterialEmissionItem(aColor)); @@ -2069,7 +2071,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs ) rAttrs.InvalidateItem(SDRATTR_3DOBJ_MAT_EMISSION); // Specular - if( m_pLbMatSpecular->GetSelectEntryCount() ) + if (!m_pLbMatSpecular->IsNoSelection()) { aColor = m_pLbMatSpecular->GetSelectEntryColor(); rAttrs.Put(makeSvx3DMaterialSpecularItem(aColor)); @@ -2230,7 +2232,7 @@ IMPL_LINK_TYPED( Svx3DWin, ClickViewTypeHdl, Button*, pBtn, void ) { m_pFLLight->Show(); - ColorLB* pLb = GetLbByButton(); + SvxColorListBox* pLb = GetLbByButton(); if( pLb ) pLb->Show(); @@ -2316,7 +2318,7 @@ IMPL_LINK_TYPED( Svx3DWin, ClickHdl, Button *, pButton, void ) pBtn == m_pBtnLight8 ) { // Lighting - ColorLB* pLb = GetLbByButton( pBtn ); + SvxColorListBox* pLb = GetLbByButton( pBtn ); pLb->Show(); if( pBtn->IsChecked() ) @@ -2441,7 +2443,7 @@ IMPL_LINK_TYPED( Svx3DWin, ClickHdl, Button *, pButton, void ) IMPL_LINK_TYPED( Svx3DWin, ClickColorHdl, Button *, pBtn, void) { SvColorDialog aColorDlg( this ); - ColorLB* pLb; + SvxColorListBox* pLb; if( pBtn == m_pBtnLightColor ) pLb = GetLbByButton(); @@ -2460,8 +2462,8 @@ IMPL_LINK_TYPED( Svx3DWin, ClickColorHdl, Button *, pBtn, void) if( aColorDlg.Execute() == RET_OK ) { aColor = aColorDlg.GetColor(); - if( LBSelectColor( pLb, aColor ) ) - SelectHdl( *pLb ); + LBSelectColor(pLb, aColor); + SelectColorHdl(*pLb); } } @@ -2532,9 +2534,20 @@ IMPL_LINK_TYPED( Svx3DWin, SelectHdl, ListBox&, rListBox, void ) bUpdatePreview = true; } - else if( &rListBox == m_pLbMatColor || - &rListBox == m_pLbMatEmission || - &rListBox == m_pLbMatSpecular ) + else if (&rListBox == m_pLbShademode) + bUpdatePreview = true; + + if( bUpdatePreview ) + UpdatePreview(); +} + +IMPL_LINK( Svx3DWin, SelectColorHdl, SvxColorListBox&, rListBox, void ) +{ + bool bUpdatePreview = false; + + if( &rListBox == m_pLbMatColor || + &rListBox == m_pLbMatEmission || + &rListBox == m_pLbMatSpecular ) { m_pLbMatFavorites->SelectEntryPos( 0 ); bUpdatePreview = true; @@ -2555,8 +2568,6 @@ IMPL_LINK_TYPED( Svx3DWin, SelectHdl, ListBox&, rListBox, void ) { bUpdatePreview = true; } - else if (&rListBox == m_pLbShademode) - bUpdatePreview = true; if( bUpdatePreview ) UpdatePreview(); @@ -2593,7 +2604,7 @@ IMPL_LINK_TYPED( Svx3DWin, ModifyHdl, Edit&, rField, void ) void Svx3DWin::ClickLight(PushButton& rBtn) { sal_uInt16 nLightSource = GetLightSource( &rBtn ); - ColorLB* pLb = GetLbByButton( &rBtn ); + SvxColorListBox* pLb = GetLbByButton( &rBtn ); Color aColor( pLb->GetSelectEntryColor() ); SfxItemSet aLightItemSet(m_pCtlLightPreview->GetSvx3DLightControl().Get3DAttributes()); const bool bOnOff(GetUILightState( static_cast<const ImageButton&>(rBtn) )); @@ -2684,36 +2695,29 @@ IMPL_LINK_NOARG_TYPED(Svx3DWin, ChangeSelectionCallbackHdl, SvxLightCtl3D*, void } } +namespace +{ + OUString lcl_makeColorName(const Color& rColor) + { + OUString aStr = SVX_RESSTR(RID_SVXFLOAT3D_FIX_R) + + OUString::number(rColor.GetRed()) + + " " + + SVX_RESSTR(RID_SVXFLOAT3D_FIX_G) + + OUString::number(rColor.GetGreen()) + + " " + + SVX_RESSTR(RID_SVXFLOAT3D_FIX_B) + + OUString::number(rColor.GetBlue()); + return aStr; + } +} // Method to ensure that the LB is also associated with a color -// returns true if color was added - -bool Svx3DWin::LBSelectColor( ColorLB* pLb, const Color& rColor ) +void Svx3DWin::LBSelectColor( SvxColorListBox* pLb, const Color& rColor ) { - bool bRet = false; - pLb->SetNoSelection(); - pLb->SelectEntry( rColor ); - if( pLb->GetSelectEntryCount() == 0 ) - { - OUString aStr(SVX_RESSTR(RID_SVXFLOAT3D_FIX_R)); - - aStr += OUString::number((sal_Int32)rColor.GetRed()); - aStr += " "; - aStr += SVX_RESSTR(RID_SVXFLOAT3D_FIX_G); - aStr += OUString::number((sal_Int32)rColor.GetGreen()); - aStr += " "; - aStr += SVX_RESSTR(RID_SVXFLOAT3D_FIX_B); - aStr += OUString::number((sal_Int32)rColor.GetBlue()); - - const sal_Int32 nPos = pLb->InsertEntry( rColor, aStr ); - pLb->SelectEntryPos( nPos ); - bRet = true; - } - return bRet; + pLb->SelectEntry(std::make_pair(rColor, lcl_makeColorName(rColor))); } - void Svx3DWin::UpdatePreview() { if( pModel == nullptr ) @@ -2750,22 +2754,8 @@ void Svx3DWin::DocumentReload() mpRemember2DAttributes = nullptr; } - -void Svx3DWin::InitColorLB( const SdrModel* pDoc ) +void Svx3DWin::InitColorLB() { - m_pLbLight1->Fill( pDoc->GetColorList() ); - m_pLbLight2->CopyEntries( *m_pLbLight1 ); - m_pLbLight3->CopyEntries( *m_pLbLight1 ); - m_pLbLight4->CopyEntries( *m_pLbLight1 ); - m_pLbLight5->CopyEntries( *m_pLbLight1 ); - m_pLbLight6->CopyEntries( *m_pLbLight1 ); - m_pLbLight7->CopyEntries( *m_pLbLight1 ); - m_pLbLight8->CopyEntries( *m_pLbLight1 ); - m_pLbAmbientlight->CopyEntries( *m_pLbLight1 ); - m_pLbMatColor->CopyEntries( *m_pLbLight1 ); - m_pLbMatEmission->CopyEntries( *m_pLbLight1 ); - m_pLbMatSpecular->CopyEntries( *m_pLbLight1 ); - // First... Color aColWhite( COL_WHITE ); Color aColBlack( COL_BLACK ); @@ -2830,9 +2820,9 @@ sal_uInt16 Svx3DWin::GetLightSource( const PushButton* pBtn ) }; -ColorLB* Svx3DWin::GetLbByButton( const PushButton* pBtn ) +SvxColorListBox* Svx3DWin::GetLbByButton( const PushButton* pBtn ) { - ColorLB* pLb = nullptr; + SvxColorListBox* pLb = nullptr; if( pBtn == nullptr ) { diff --git a/svx/source/engine3d/float3d.src b/svx/source/engine3d/float3d.src index 3a3451e25f07..5298ded111ca 100644 --- a/svx/source/engine3d/float3d.src +++ b/svx/source/engine3d/float3d.src @@ -72,21 +72,6 @@ String RID_SVXFLOAT3D_FAVORITE Text [ en-US ] = "Favorite"; }; -String RID_SVXFLOAT3D_FIX_X -{ - Text [ en-US ] = "X"; -}; - -String RID_SVXFLOAT3D_FIX_Y -{ - Text [ en-US ] = "Y"; -}; - -String RID_SVXFLOAT3D_FIX_Z -{ - Text [ en-US ] = "Z"; -}; - String RID_SVXFLOAT3D_FIX_R { Text [ en-US ] = "R:"; diff --git a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx index ee63cd9da451..c9e0f1343ce6 100644 --- a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx +++ b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx @@ -156,10 +156,11 @@ void AreaPropertyPanelBase::Initialize() mpLbFillType->SetSelectHdl( 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( aLink ); - mpLbFillGradTo->SetSelectHdl( aLink ); + mpLbFillGradFrom->SetSelectHdl( aLink3 ); + mpLbFillGradTo->SetSelectHdl( aLink3 ); mpLBTransType->SetSelectHdl(LINK(this, AreaPropertyPanelBase, ChangeTrgrTypeHdl_Impl)); @@ -256,7 +257,7 @@ IMPL_LINK_NOARG_TYPED(AreaPropertyPanelBase, SelectFillTypeHdl, ListBox&, void) mpLbFillGradFrom->AdaptDropDownLineCountToMaximum(); mpLbFillGradTo->AdaptDropDownLineCountToMaximum(); - if(LISTBOX_ENTRY_NOTFOUND != mnLastPosGradient) + if(mnLastPosGradient < aItem.GetGradientList()->Count()) { const SvxGradientListItem aItem(*static_cast<const SvxGradientListItem*>(pSh->GetItem(SID_GRADIENT_LIST))); @@ -287,13 +288,6 @@ IMPL_LINK_NOARG_TYPED(AreaPropertyPanelBase, SelectFillTypeHdl, ListBox&, void) } } } - else - { - mpLbFillGradFrom->Disable(); - mpLbFillGradTo->Disable(); - mpMTRAngle->Disable(); - mpGradientStyle->Disable(); - } break; } case drawing::FillStyle_HATCH: @@ -391,6 +385,11 @@ IMPL_LINK_NOARG_TYPED(AreaPropertyPanelBase, SelectFillTypeHdl, ListBox&, void) } } +IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillColorHdl, SvxColorListBox&, void) +{ + SelectFillAttrHdl_Impl(); +} + IMPL_LINK_NOARG_TYPED(AreaPropertyPanelBase, SelectFillAttrHdl, ListBox&, void) { const drawing::FillStyle eXFS = (drawing::FillStyle)mpLbFillType->GetSelectEntryPos(); @@ -1005,28 +1004,15 @@ void AreaPropertyPanelBase::Update() mpLbFillAttr->Enable(); mpLbFillAttr->Clear(); mpLbFillAttr->Fill(aItem.GetGradientList()); - const SvxColorListItem aColorItem(*static_cast<const SvxColorListItem*>(pSh->GetItem(SID_COLOR_TABLE))); - mpLbFillGradFrom->Fill(aColorItem.GetColorList()); - mpLbFillGradTo->Fill(aColorItem.GetColorList()); mpLbFillGradTo->SetNoSelection(); mpLbFillGradFrom->SetNoSelection(); - if(mpFillGradientItem) + if (mpFillGradientItem) { const OUString aString(mpFillGradientItem->GetName()); mpLbFillAttr->SelectEntry(aString); const XGradient aGradient = mpFillGradientItem->GetGradientValue(); mpLbFillGradFrom->SelectEntry(aGradient.GetStartColor()); - if(mpLbFillGradFrom->GetSelectEntryCount() == 0) - { - mpLbFillGradFrom->InsertEntry(aGradient.GetStartColor(), OUString()); - mpLbFillGradFrom->SelectEntry(aGradient.GetStartColor()); - } mpLbFillGradTo->SelectEntry(aGradient.GetEndColor()); - if(mpLbFillGradTo->GetSelectEntryCount() == 0) - { - mpLbFillGradTo->InsertEntry(aGradient.GetEndColor(), OUString()); - mpLbFillGradTo->SelectEntry(aGradient.GetEndColor()); - } mpGradientStyle->SelectEntryPos(sal::static_int_cast< sal_Int32 >( aGradient.GetGradientStyle() )); if(mpGradientStyle->GetSelectEntryPos() == GradientStyle_RADIAL) mpMTRAngle->Disable(); diff --git a/svx/source/sidebar/shadow/ShadowPropertyPanel.cxx b/svx/source/sidebar/shadow/ShadowPropertyPanel.cxx index 2dd26e6c2935..70588e8c3a49 100644 --- a/svx/source/sidebar/shadow/ShadowPropertyPanel.cxx +++ b/svx/source/sidebar/shadow/ShadowPropertyPanel.cxx @@ -10,6 +10,7 @@ #include <comphelper/string.hxx> #include <sfx2/sidebar/ControlFactory.hxx> #include <sfx2/sidebar/ResourceDefinitions.hrc> +#include <svx/colorbox.hxx> #include <svx/dialogs.hrc> #include <svx/dialmgr.hxx> #include <sfx2/objsh.hxx> @@ -122,24 +123,18 @@ void ShadowPropertyPanel::dispose() void ShadowPropertyPanel::Initialize() { - SfxObjectShell* pSh = SfxObjectShell::Current(); - - const SvxColorListItem* pColorListItem = static_cast<const SvxColorListItem*>(pSh ? pSh->GetItem(SID_COLOR_TABLE) : nullptr); - if (pColorListItem) - { - mpLBShadowColor->Fill(pColorListItem->GetColorList()); - mpShowShadow->SetState( TRISTATE_FALSE ); - mpShowShadow->SetClickHdl( LINK(this, ShadowPropertyPanel, ClickShadowHdl ) ); - mpShadowTransMetric->SetModifyHdl( LINK(this, ShadowPropertyPanel, ModifyShadowTransMetricHdl) ); - mpLBShadowColor->SetSelectHdl( LINK( this, ShadowPropertyPanel, ModifyShadowColorHdl ) ); - mpShadowAngle->SetModifyHdl( LINK(this, ShadowPropertyPanel, ModifyShadowDistanceHdl) ); - mpShadowDistance->SetModifyHdl( LINK(this, ShadowPropertyPanel, ModifyShadowDistanceHdl) ); - mpShadowTransSlider->SetRange(Range(0,100)); - mpShadowTransSlider->SetUpdateMode(true); - mpShadowTransSlider->SetSlideHdl( LINK(this, ShadowPropertyPanel, ModifyShadowTransSliderHdl) ); - InsertDistanceValues(); - InsertAngleValues(); - } + mpShowShadow->SetState( TRISTATE_FALSE ); + mpShowShadow->SetClickHdl( LINK(this, ShadowPropertyPanel, ClickShadowHdl ) ); + mpShadowTransMetric->SetModifyHdl( LINK(this, ShadowPropertyPanel, ModifyShadowTransMetricHdl) ); + mpLBShadowColor->SetSelectHdl( LINK( this, ShadowPropertyPanel, ModifyShadowColorHdl ) ); + mpShadowAngle->SetModifyHdl( LINK(this, ShadowPropertyPanel, ModifyShadowDistanceHdl) ); + mpShadowDistance->SetModifyHdl( LINK(this, ShadowPropertyPanel, ModifyShadowDistanceHdl) ); + mpShadowTransSlider->SetRange(Range(0,100)); + mpShadowTransSlider->SetUpdateMode(true); + mpShadowTransSlider->SetSlideHdl( LINK(this, ShadowPropertyPanel, ModifyShadowTransSliderHdl) ); + for(sal_uInt16 i = 0; i <= 20 ; i++) + mpShadowDistance->InsertValue(i*2,FUNIT_POINT); + InsertAngleValues(); } IMPL_LINK_NOARG_TYPED(ShadowPropertyPanel, ClickShadowHdl, Button*, void) @@ -158,7 +153,7 @@ IMPL_LINK_NOARG_TYPED(ShadowPropertyPanel, ClickShadowHdl, Button*, void) } } -IMPL_LINK_NOARG_TYPED(ShadowPropertyPanel, ModifyShadowColorHdl, ListBox&, void) +IMPL_LINK_NOARG_TYPED(ShadowPropertyPanel, ModifyShadowColorHdl, SvxColorListBox&, void) { XColorItem aItem(makeSdrShadowColorItem(mpLBShadowColor->GetSelectEntryColor())); GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_SHADOW_COLOR, @@ -325,9 +320,6 @@ void ShadowPropertyPanel::NotifyItemUpdate( { mpLBShadowColor->SelectEntry(pColorItem->GetColorValue()); } - else - { - } } } break; diff --git a/svx/source/sidebar/shadow/ShadowPropertyPanel.hxx b/svx/source/sidebar/shadow/ShadowPropertyPanel.hxx index 23f5cbaae7d1..112704ebb2e6 100644 --- a/svx/source/sidebar/shadow/ShadowPropertyPanel.hxx +++ b/svx/source/sidebar/shadow/ShadowPropertyPanel.hxx @@ -25,6 +25,7 @@ #include <sfx2/request.hxx> #include <svx/dlgctrl.hxx> +class SvxColorListBox; namespace svx { namespace sidebar { @@ -60,10 +61,10 @@ public: SfxBindings* pBindings); private: - VclPtr<CheckBox> mpShowShadow; - VclPtr<MetricBox> mpShadowDistance; - VclPtr<ColorLB> mpLBShadowColor; - VclPtr<MetricBox> mpShadowAngle; + VclPtr<CheckBox> mpShowShadow; + VclPtr<MetricBox> mpShadowDistance; + VclPtr<SvxColorListBox> mpLBShadowColor; + VclPtr<MetricBox> mpShadowAngle; VclPtr<FixedText> mpFTAngle; VclPtr<FixedText> mpFTDistance; VclPtr<FixedText> mpFTTransparency; @@ -85,7 +86,7 @@ private: void SetTransparencyValue(long); void UpdateControls(); DECL_LINK_TYPED(ClickShadowHdl, Button*, void); - DECL_LINK_TYPED(ModifyShadowColorHdl, ListBox&, void); + DECL_LINK_TYPED(ModifyShadowColorHdl, SvxColorListBox&, void); DECL_LINK_TYPED(ModifyShadowTransMetricHdl, Edit&, void); DECL_LINK_TYPED(ModifyShadowDistanceHdl, Edit&, void); DECL_LINK_TYPED(ModifyShadowTransSliderHdl, Slider*, void); diff --git a/svx/source/tbxctrls/PaletteManager.cxx b/svx/source/tbxctrls/PaletteManager.cxx index a2b54996b7b2..3e8ef608a51e 100644 --- a/svx/source/tbxctrls/PaletteManager.cxx +++ b/svx/source/tbxctrls/PaletteManager.cxx @@ -17,6 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <memory> #include <svx/PaletteManager.hxx> #include <osl/file.hxx> #include <unotools/pathoptions.hxx> @@ -33,6 +34,7 @@ #include <cppu/unotype.hxx> #include <officecfg/Office/Common.hxx> + PaletteManager::PaletteManager() : mnMaxRecentColors(Application::GetSettings().GetStyleSettings().GetColorValueSetColumnCount()), mnNumOfPalettes(2), @@ -54,6 +56,7 @@ PaletteManager::PaletteManager() : pColorList = XColorList::CreateStdColorList(); LoadPalettes(); mnNumOfPalettes += m_Palettes.size(); + } PaletteManager::~PaletteManager() @@ -118,29 +121,30 @@ void PaletteManager::LoadPalettes() void PaletteManager::ReloadColorSet(SvxColorValueSet &rColorSet) { - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - if( mnCurrentPalette == 0) { rColorSet.Clear(); css::uno::Sequence< sal_Int32 > CustomColorList( officecfg::Office::Common::UserColors::CustomColor::get() ); css::uno::Sequence< OUString > CustomColorNameList( officecfg::Office::Common::UserColors::CustomColorName::get() ); int nIx = 1; - for( int i = 0;i < CustomColorList.getLength();i++ ) + for (int i = 0; i < CustomColorList.getLength(); ++i) { - Color aColor( CustomColorList[i] ); - OUString aColorName( CustomColorNameList[i] ); - rColorSet.InsertItem( nIx, aColor, aColorName ); + Color aColor(CustomColorList[i]); + rColorSet.InsertItem(nIx, aColor, CustomColorNameList[i]); ++nIx; } } else if( mnCurrentPalette == mnNumOfPalettes - 1 ) { // Add doc colors to palette - std::set<Color> aColors = pDocSh->GetDocColors(); - mnColorCount = aColors.size(); - rColorSet.Clear(); - rColorSet.addEntriesForColorSet(aColors, SVX_RESSTR( RID_SVXSTR_DOC_COLOR_PREFIX ) + " " ); + SfxObjectShell* pDocSh = SfxObjectShell::Current(); + if (pDocSh) + { + std::set<Color> aColors = pDocSh->GetDocColors(); + mnColorCount = aColors.size(); + rColorSet.Clear(); + rColorSet.addEntriesForColorSet(aColors, SVX_RESSTR( RID_SVXSTR_DOC_COLOR_PREFIX ) + " " ); + } } else { @@ -152,18 +156,17 @@ void PaletteManager::ReloadColorSet(SvxColorValueSet &rColorSet) void PaletteManager::ReloadRecentColorSet(SvxColorValueSet& rColorSet) { maRecentColors.clear(); - css::uno::Sequence< sal_Int32 > Colorlist(officecfg::Office::Common::UserColors::RecentColor::get()); - for(int i = 0;i < Colorlist.getLength();i++) - { - Color aColor( Colorlist[i] ); - maRecentColors.push_back( aColor ); - } rColorSet.Clear(); + css::uno::Sequence< sal_Int32 > Colorlist(officecfg::Office::Common::UserColors::RecentColor::get()); + css::uno::Sequence< OUString > ColorNamelist(officecfg::Office::Common::UserColors::RecentColorName::get()); int nIx = 1; - for(std::deque<Color>::const_iterator it = maRecentColors.begin(); - it != maRecentColors.end(); ++it) + const bool bHasColorNames = Colorlist.getLength() == ColorNamelist.getLength(); + for (int i = 0; i < Colorlist.getLength(); ++i) { - rColorSet.InsertItem(nIx, *it, ""); + Color aColor(Colorlist[i]); + OUString sColorName = bHasColorNames ? ColorNamelist[i] : ("#" + aColor.AsRGBHexString().toAsciiUpperCase()); + maRecentColors.emplace_back(aColor, sColorName); + rColorSet.InsertItem(nIx, aColor, sColorName); ++nIx; } } @@ -202,9 +205,13 @@ void PaletteManager::SetPalette( sal_Int32 nPos ) } } } - std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create(m_context)); - officecfg::Office::Common::UserColors::PaletteName::set(GetPaletteName(), batch); - batch->commit(); + OUString aPaletteName(officecfg::Office::Common::UserColors::PaletteName::get()); + if (aPaletteName != GetPaletteName()) + { + std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create(m_context)); + officecfg::Office::Common::UserColors::PaletteName::set(GetPaletteName(), batch); + batch->commit(); + } } sal_Int32 PaletteManager::GetPalette() @@ -256,55 +263,66 @@ void PaletteManager::SetLastColor(const Color& rLastColor) mLastColor = rLastColor; } -void PaletteManager::AddRecentColor(const Color& rRecentColor) +void PaletteManager::AddRecentColor(const Color& rRecentColor, const OUString& rName, bool bFront) { - std::deque<Color>::iterator itColor = - std::find(maRecentColors.begin(), maRecentColors.end(), rRecentColor); + auto itColor = std::find_if(maRecentColors.begin(), + maRecentColors.end(), + [rRecentColor] (const NamedColor &a) { return a.first == rRecentColor; }); // if recent color to be added is already in list, remove it if( itColor != maRecentColors.end() ) maRecentColors.erase( itColor ); - maRecentColors.push_front( rRecentColor ); - if( maRecentColors.size() > mnMaxRecentColors ) + if (maRecentColors.size() == mnMaxRecentColors) maRecentColors.pop_back(); + if (bFront) + maRecentColors.push_front(std::make_pair(rRecentColor, rName)); + else + maRecentColors.emplace_back(rRecentColor, rName); css::uno::Sequence< sal_Int32 > aColorList(maRecentColors.size()); - for(std::deque<Color>::size_type i = 0;i < maRecentColors.size();i++) + css::uno::Sequence< OUString > aColorNameList(maRecentColors.size()); + for (size_t i = 0; i < maRecentColors.size(); ++i) { - aColorList[i] = static_cast<sal_Int32>(maRecentColors[i].GetColor()); + aColorList[i] = static_cast<sal_Int32>(maRecentColors[i].first.GetColor()); + aColorNameList[i] = maRecentColors[i].second; } std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create(m_context)); officecfg::Office::Common::UserColors::RecentColor::set(aColorList, batch); + officecfg::Office::Common::UserColors::RecentColorName::set(aColorNameList, batch); batch->commit(); } void PaletteManager::SetBtnUpdater(svx::ToolboxButtonColorUpdater* pBtnUpdater) { mpBtnUpdater = pBtnUpdater; + if (mpBtnUpdater) + mLastColor = mpBtnUpdater->GetCurrentColor(); } -void PaletteManager::SetColorSelectFunction(const std::function<void(const OUString&, const Color&)>& aColorSelectFunction) +void PaletteManager::SetColorSelectFunction(const std::function<void(const OUString&, const NamedColor&)>& aColorSelectFunction) { maColorSelectFunction = aColorSelectFunction; } -void PaletteManager::PopupColorPicker(const OUString& aCommand) +void PaletteManager::PopupColorPicker(vcl::Window* pParent, const OUString& aCommand, const Color& rInitialColor) { // The calling object goes away during aColorDlg.Execute(), so we must copy this OUString aCommandCopy = aCommand; - SvColorDialog aColorDlg( nullptr ); - aColorDlg.SetColor ( mLastColor ); - aColorDlg.SetMode( svtools::ColorPickerMode_MODIFY ); + SvColorDialog aColorDlg(pParent); + aColorDlg.SetColor(rInitialColor); + aColorDlg.SetMode(svtools::ColorPickerMode_MODIFY); if( aColorDlg.Execute() == RET_OK ) { if (mpBtnUpdater) mpBtnUpdater->Update( aColorDlg.GetColor() ); mLastColor = aColorDlg.GetColor(); - AddRecentColor( mLastColor ); - maColorSelectFunction(aCommandCopy, mLastColor); + OUString sColorName = ("#" + mLastColor.AsRGBHexString().toAsciiUpperCase()); + NamedColor aNamedColor = std::make_pair(mLastColor, sColorName); + AddRecentColor(mLastColor, sColorName); + maColorSelectFunction(aCommandCopy, aNamedColor); } } -void PaletteManager::DispatchColorCommand(const OUString& aCommand, const Color& rColor) +void PaletteManager::DispatchColorCommand(const OUString& aCommand, const NamedColor& rColor) { using namespace css::uno; using namespace css::frame; @@ -313,14 +331,15 @@ void PaletteManager::DispatchColorCommand(const OUString& aCommand, const Color& Reference<XComponentContext> xContext(comphelper::getProcessComponentContext()); Reference<XDesktop2> xDesktop = Desktop::create(xContext); - Reference<XDispatchProvider> xDispatchProvider(xDesktop->getCurrentFrame(), UNO_QUERY ); + Reference<XFrame> xFrame(xDesktop->getCurrentFrame()); + Reference<XDispatchProvider> xDispatchProvider(xFrame, UNO_QUERY); if (xDispatchProvider.is()) { INetURLObject aObj( aCommand ); Sequence<PropertyValue> aArgs(1); aArgs[0].Name = aObj.GetURLPath(); - aArgs[0].Value = makeAny(sal_Int32(rColor.GetColor())); + aArgs[0].Value <<= sal_Int32(rColor.first.GetColor()); URL aTargetURL; aTargetURL.Complete = aCommand; @@ -329,7 +348,11 @@ void PaletteManager::DispatchColorCommand(const OUString& aCommand, const Color& Reference<XDispatch> xDispatch = xDispatchProvider->queryDispatch(aTargetURL, OUString(), 0); if (xDispatch.is()) + { xDispatch->dispatch(aTargetURL, aArgs); + if (xFrame->getContainerWindow().is()) + xFrame->getContainerWindow()->setFocus(); + } } } diff --git a/svx/source/tbxctrls/extrusioncontrols.cxx b/svx/source/tbxctrls/extrusioncontrols.cxx index 87521a9c402b..b108d58662f7 100644 --- a/svx/source/tbxctrls/extrusioncontrols.cxx +++ b/svx/source/tbxctrls/extrusioncontrols.cxx @@ -41,7 +41,7 @@ #include "helpid.hrc" #include "extrusioncontrols.hxx" #include "extrusioncontrols.hrc" -#include "colorwindow.hxx" +#include <svx/colorwindow.hxx> #include "extrusiondepthdialog.hxx" using namespace ::com::sun::star::uno; diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx index a544fa8491e0..38c71cc2e6b1 100644 --- a/svx/source/tbxctrls/tbcontrl.cxx +++ b/svx/source/tbxctrls/tbcontrl.cxx @@ -46,6 +46,7 @@ #include <sfx2/childwin.hxx> #include <sfx2/viewfrm.hxx> #include <unotools/fontoptions.hxx> +#include <vcl/builderfactory.hxx> #include <vcl/mnemonic.hxx> #include <vcl/svapp.hxx> #include <vcl/settings.hxx> @@ -83,7 +84,8 @@ #include <svx/tbcontrl.hxx> #include "svx/dlgutil.hxx" #include <svx/dialmgr.hxx> -#include "colorwindow.hxx" +#include <svx/colorwindow.hxx> +#include <svx/colorbox.hxx> #include <memory> #include <svx/framelink.hxx> @@ -1252,21 +1254,20 @@ SvxColorWindow::SvxColorWindow( const OUString& rCommand, BorderColorStatus& rBorderColorStatus, sal_uInt16 nSlotId, const Reference< XFrame >& rFrame, - const OUString& rWndTitle, vcl::Window* pParentWindow, - std::function<void(const OUString&, const Color&)> aFunction): - - SfxPopupWindow( nSlotId, pParentWindow, - "palette_popup_window", "svx/ui/colorwindow.ui", - rFrame ), + std::function<void(const OUString&, const NamedColor&)> const aFunction): + ToolbarPopup( nSlotId, pParentWindow, + "palette_popup_window", "svx/ui/colorwindow.ui"), theSlotId( nSlotId ), maCommand( rCommand ), + mxParentWindow( pParentWindow ), mrPaletteManager( rPaletteManager ), mrBorderColorStatus( rBorderColorStatus ), maColorSelectFunction(aFunction) { get(mpPaletteListBox, "palette_listbox"); get(mpButtonAutoColor, "auto_color_button"); + get(mpButtonNoneColor, "none_color_button"); get(mpButtonPicker, "color_picker_button"); get(mpColorSet, "colorset"); get(mpRecentColorSet, "recent_colorset"); @@ -1281,6 +1282,16 @@ SvxColorWindow::SvxColorWindow( const OUString& rCommand, case SID_BACKGROUND_COLOR: case SID_ATTR_CHAR_BACK_COLOR: { + mpButtonAutoColor->SetText( SVX_RESSTR( RID_SVXSTR_NOFILL ) ); + break; + } + case SID_AUTHOR_COLOR: + { + mpButtonAutoColor->SetText( SVX_RESSTR( RID_SVXSTR_BY_AUTHOR ) ); + break; + } + case SID_BMPMASK_COLOR: + { mpButtonAutoColor->SetText( SVX_RESSTR( RID_SVXSTR_TRANSPARENT ) ); mpColorSet->SetAccessibleName( SVX_RESSTR( RID_SVXSTR_BACKGROUND ) ); break; @@ -1339,13 +1350,13 @@ SvxColorWindow::SvxColorWindow( const OUString& rCommand, SelectPaletteHdl( *mpPaletteListBox ); mpButtonAutoColor->SetClickHdl( LINK( this, SvxColorWindow, AutoColorClickHdl ) ); + mpButtonNoneColor->SetClickHdl( LINK( this, SvxColorWindow, AutoColorClickHdl ) ); mpButtonPicker->SetClickHdl( LINK( this, SvxColorWindow, OpenPickerClickHdl ) ); mpColorSet->SetSelectHdl( LINK( this, SvxColorWindow, SelectHdl ) ); mpRecentColorSet->SetSelectHdl( LINK( this, SvxColorWindow, SelectHdl ) ); SetHelpId( HID_POPUP_COLOR ); mpColorSet->SetHelpId( HID_POPUP_COLOR_CTRL ); - SetText( rWndTitle ); mrPaletteManager.ReloadColorSet(*mpColorSet); mpColorSet->layoutToGivenHeight(mpColorSet->GetSizePixel().Height(), mrPaletteManager.GetColorCount()); @@ -1365,6 +1376,11 @@ SvxColorWindow::SvxColorWindow( const OUString& rCommand, } } +void SvxColorWindow::ShowNoneButton() +{ + mpButtonNoneColor->Show(); +} + SvxColorWindow::~SvxColorWindow() { disposeOnce(); @@ -1376,9 +1392,29 @@ void SvxColorWindow::dispose() mpRecentColorSet.clear(); mpPaletteListBox.clear(); mpButtonAutoColor.clear(); + mpButtonNoneColor.clear(); mpButtonPicker.clear(); mpAutomaticSeparator.clear(); - SfxPopupWindow::dispose(); + mxParentWindow.clear(); + ToolbarPopup::dispose(); +} + +NamedColor SvxColorWindow::GetSelectEntryColor(ValueSet* pColorSet) +{ + Color aColor = pColorSet->GetItemColor(pColorSet->GetSelectItemId()); + OUString sColorName = pColorSet->GetItemText(pColorSet->GetSelectItemId()); + return std::make_pair(aColor, sColorName); +} + +NamedColor SvxColorWindow::GetSelectEntryColor() const +{ + if (!mpColorSet->IsNoSelection()) + return GetSelectEntryColor(mpColorSet); + if (!mpRecentColorSet->IsNoSelection()) + return GetSelectEntryColor(mpRecentColorSet); + if (mpButtonNoneColor->GetStyle() & WB_DEFBUTTON) + return GetNoneColor(); + return GetAutoColor(); } void SvxColorWindow::KeyInput( const KeyEvent& rKEvt ) @@ -1390,7 +1426,7 @@ IMPL_LINK_TYPED(SvxColorWindow, SelectHdl, ValueSet*, pColorSet, void) { VclPtr<SvxColorWindow> xThis(this); - Color aColor = pColorSet->GetItemColor( pColorSet->GetSelectItemId() ); + NamedColor aNamedColor = GetSelectEntryColor(pColorSet); /* #i33380# DR 2004-09-03 Moved the following line above the Dispatch() calls. This instance may be deleted in the meantime (i.e. when a dialog is opened while in Dispatch()), accessing members will crash in this case. */ @@ -1398,7 +1434,7 @@ IMPL_LINK_TYPED(SvxColorWindow, SelectHdl, ValueSet*, pColorSet, void) if ( pColorSet != mpRecentColorSet ) { - mrPaletteManager.AddRecentColor( aColor ); + mrPaletteManager.AddRecentColor(aNamedColor.first, aNamedColor.second); if ( !IsInPopupMode() ) mrPaletteManager.ReloadRecentColorSet( *mpRecentColorSet ); } @@ -1406,9 +1442,9 @@ IMPL_LINK_TYPED(SvxColorWindow, SelectHdl, ValueSet*, pColorSet, void) if ( IsInPopupMode() ) EndPopupMode(); - maSelectedLink.Call(aColor); + maSelectedLink.Call(aNamedColor); - maColorSelectFunction(maCommand, aColor); + maColorSelectFunction(maCommand, aNamedColor); } IMPL_LINK_NOARG_TYPED(SvxColorWindow, SelectPaletteHdl, ListBox&, void) @@ -1419,37 +1455,67 @@ IMPL_LINK_NOARG_TYPED(SvxColorWindow, SelectPaletteHdl, ListBox&, void) mpColorSet->layoutToGivenHeight(mpColorSet->GetSizePixel().Height(), mrPaletteManager.GetColorCount()); } -IMPL_LINK_NOARG_TYPED(SvxColorWindow, AutoColorClickHdl, Button*, void) + +NamedColor SvxColorWindow::GetNoneColor() const { - VclPtr<SvxColorWindow> xThis(this); + Color aColor; + OUString sColorName; + if (theSlotId == SID_AUTHOR_COLOR) + { + aColor = COL_NONE_COLOR; + sColorName = SVX_RESSTR(RID_SVXSTR_NONE); + } + + return std::make_pair(aColor, sColorName); +} +NamedColor SvxColorWindow::GetAutoColor() const +{ Color aColor; + OUString sColorName; switch ( theSlotId ) { case SID_ATTR_CHAR_COLOR_BACKGROUND: case SID_BACKGROUND_COLOR: case SID_ATTR_CHAR_BACK_COLOR: - { aColor = COL_TRANSPARENT; + sColorName = SVX_RESSTR(RID_SVXSTR_NOFILL); + break; + case SID_AUTHOR_COLOR: + aColor = COL_TRANSPARENT; + sColorName = SVX_RESSTR(RID_SVXSTR_BY_AUTHOR); + break; + case SID_BMPMASK_COLOR: + aColor = COL_TRANSPARENT; + sColorName = SVX_RESSTR(RID_SVXSTR_TRANSPARENT); break; - } case SID_ATTR_CHAR_COLOR: case SID_ATTR_CHAR_COLOR2: case SID_EXTRUSION_3D_COLOR: { aColor = COL_AUTO; + sColorName = SVX_RESSTR(RID_SVXSTR_AUTOMATIC); break; } } + return std::make_pair(aColor, sColorName); +} + +IMPL_LINK_TYPED(SvxColorWindow, AutoColorClickHdl, Button*, pButton, void) +{ + VclPtr<SvxColorWindow> xThis(this); + + NamedColor aNamedColor = pButton == mpButtonAutoColor ? GetAutoColor() : GetNoneColor(); + mpRecentColorSet->SetNoSelection(); if ( IsInPopupMode() ) EndPopupMode(); - maSelectedLink.Call(aColor); + maSelectedLink.Call(aNamedColor); - maColorSelectFunction(maCommand, aColor); + maColorSelectFunction(maCommand, aNamedColor); } IMPL_LINK_NOARG_TYPED(SvxColorWindow, OpenPickerClickHdl, Button*, void) @@ -1461,8 +1527,22 @@ IMPL_LINK_NOARG_TYPED(SvxColorWindow, OpenPickerClickHdl, Button*, void) mrPaletteManager.PopupColorPicker(maCommand); } -void SvxColorWindow::Resize() + +void SvxColorWindow::SetNoSelection() { + mpColorSet->SetNoSelection(); + mpRecentColorSet->SetNoSelection(); + mpButtonAutoColor->set_property("has-default", "false"); + mpButtonNoneColor->set_property("has-default", "false"); +} + +bool SvxColorWindow::IsNoSelection() const +{ + if (!mpColorSet->IsNoSelection()) + return false; + if (!mpRecentColorSet->IsNoSelection()) + return false; + return !mpButtonAutoColor->IsVisible() && !mpButtonNoneColor->IsVisible(); } void SvxColorWindow::StartSelection() @@ -1477,53 +1557,89 @@ bool SvxColorWindow::Close() void SvxColorWindow::StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) { - if ( nSID == SID_COLOR_TABLE ) + if ( rEvent.IsEnabled && rEvent.FeatureURL.Complete == ".uno:ColorTableState" + && mrPaletteManager.GetPalette() == 0) { - if ( SfxItemState::DEFAULT == eState && mrPaletteManager.GetPalette() == 0 ) - { - mrPaletteManager.ReloadColorSet(*mpColorSet); - mpColorSet->layoutToGivenHeight(mpColorSet->GetSizePixel().Height(), mrPaletteManager.GetColorCount()); - } + mrPaletteManager.ReloadColorSet(*mpColorSet); + mpColorSet->layoutToGivenHeight(mpColorSet->GetSizePixel().Height(), mrPaletteManager.GetColorCount()); } else { - mpColorSet->SetNoSelection(); - Color aColor( COL_TRANSPARENT ); + Color aColor(COL_TRANSPARENT); - if ( nSID == SID_FRAME_LINECOLOR - || nSID == SID_ATTR_BORDER_DIAG_TLBR - || nSID == SID_ATTR_BORDER_DIAG_BLTR ) + if (mrBorderColorStatus.statusChanged(rEvent)) { - mrBorderColorStatus.StateChanged( nSID, eState, pState ); aColor = mrBorderColorStatus.GetColor(); } - else if ( SfxItemState::DEFAULT <= eState && pState ) + else if (rEvent.IsEnabled) { - if ( dynamic_cast<const SvxColorItem*>( pState) != nullptr ) - aColor = static_cast<const SvxColorItem*>(pState)->GetValue(); - else if ( dynamic_cast<const XLineColorItem*>( pState) != nullptr ) - aColor = static_cast<const XLineColorItem*>(pState)->GetColorValue(); - else if ( dynamic_cast<const XFillColorItem*>( pState) != nullptr ) - aColor = static_cast<const XFillColorItem*>(pState)->GetColorValue(); - else if ( dynamic_cast<const SvxBackgroundColorItem*>( pState) != nullptr ) - aColor = static_cast<const SvxBackgroundColorItem*>(pState)->GetValue(); + sal_Int32 nValue; + if (rEvent.State >>= nValue) + aColor = nValue; } - if ( aColor == COL_TRANSPARENT ) - return; + SelectEntry(aColor); + } +} - for ( size_t i = 1; i <= mpColorSet->GetItemCount(); ++i ) +bool SvxColorWindow::SelectValueSetEntry(SvxColorValueSet* pColorSet, const Color& rColor) +{ + for (size_t i = 1; i <= pColorSet->GetItemCount(); ++i) + { + if (rColor == pColorSet->GetItemColor(i)) { - if ( aColor == mpColorSet->GetItemColor(i) ) - { - mpColorSet->SelectItem(i); - break; - } + pColorSet->SelectItem(i); + return true; } } + return false; +} + + +void SvxColorWindow::SelectEntry(const NamedColor& rNamedColor) +{ + SetNoSelection(); + + const Color &rColor = rNamedColor.first; + + if (rColor == COL_TRANSPARENT || rColor == COL_AUTO) + { + mpButtonAutoColor->set_property("has-default", "true"); + return; + } + + if (mpButtonNoneColor->IsVisible() && rColor == COL_NONE_COLOR) + { + mpButtonNoneColor->set_property("has-default", "true"); + return; + } + + // try current palette + bool bFoundColor = SelectValueSetEntry(mpColorSet, rColor); + // try recently used + if (!bFoundColor) + bFoundColor = SelectValueSetEntry(mpRecentColorSet, rColor); + // if its not there, add it there now to the end of the recently used + // so its available somewhere handy, but not without trashing the + // whole recently used + if (!bFoundColor) + { + const OUString& rColorName = rNamedColor.second; + mrPaletteManager.AddRecentColor(rColor, rColorName, false); + mrPaletteManager.ReloadRecentColorSet(*mpRecentColorSet); + SelectValueSetEntry(mpRecentColorSet, rColor); + } +} + + +void SvxColorWindow::SelectEntry(const Color& rColor) +{ + OUString sColorName = ("#" + rColor.AsRGBHexString().toAsciiUpperCase()); + SvxColorWindow::SelectEntry(std::make_pair(rColor, sColorName)); } + BorderColorStatus::BorderColorStatus() : maColor( COL_TRANSPARENT ), maTLBRColor( COL_TRANSPARENT ), @@ -2654,37 +2770,37 @@ SvxColorToolBoxControl::SvxColorToolBoxControl( { case SID_ATTR_CHAR_COLOR: addStatusListener( ".uno:Color"); - mPaletteManager.SetLastColor( COL_RED ); + mrPaletteManager.SetLastColor( COL_RED ); bSidebarType = false; break; case SID_ATTR_CHAR_COLOR2: addStatusListener( ".uno:CharColorExt"); - mPaletteManager.SetLastColor( COL_RED ); + mrPaletteManager.SetLastColor( COL_RED ); bSidebarType = false; break; case SID_BACKGROUND_COLOR: addStatusListener( ".uno:BackgroundColor"); - mPaletteManager.SetLastColor( COL_YELLOW ); + mrPaletteManager.SetLastColor( COL_YELLOW ); break; case SID_ATTR_CHAR_COLOR_BACKGROUND: addStatusListener( ".uno:CharBackgroundExt"); - mPaletteManager.SetLastColor( COL_YELLOW ); + mrPaletteManager.SetLastColor( COL_YELLOW ); bSidebarType = false; break; case SID_ATTR_CHAR_BACK_COLOR: addStatusListener( ".uno:CharBackColor"); - mPaletteManager.SetLastColor( COL_YELLOW ); + mrPaletteManager.SetLastColor( COL_YELLOW ); break; case SID_FRAME_LINECOLOR: addStatusListener( ".uno:FrameLineColor"); addStatusListener( ".uno:BorderTLBR"); addStatusListener( ".uno:BorderBLTR"); - mPaletteManager.SetLastColor( COL_BLUE ); + mrPaletteManager.SetLastColor( COL_BLUE ); break; case SID_EXTRUSION_3D_COLOR: @@ -2693,12 +2809,12 @@ SvxColorToolBoxControl::SvxColorToolBoxControl( case SID_ATTR_LINE_COLOR: addStatusListener( ".uno:XLineColor"); - mPaletteManager.SetLastColor( COL_BLACK ); + mrPaletteManager.SetLastColor( COL_BLACK ); break; case SID_ATTR_FILL_COLOR: addStatusListener( ".uno:FillColor"); - mPaletteManager.SetLastColor( COL_DEFAULT_SHAPE_FILLING ); + mrPaletteManager.SetLastColor( COL_DEFAULT_SHAPE_FILLING ); break; } @@ -2708,7 +2824,7 @@ SvxColorToolBoxControl::SvxColorToolBoxControl( rTbx.SetItemBits( nId, ToolBoxItemBits::DROPDOWN | rTbx.GetItemBits( nId ) ); m_xBtnUpdater.reset( new svx::ToolboxButtonColorUpdater( nSlotId, nId, &GetToolBox() ) ); - mPaletteManager.SetBtnUpdater( m_xBtnUpdater.get() ); + mrPaletteManager.SetBtnUpdater( m_xBtnUpdater.get() ); } SvxColorToolBoxControl::~SvxColorToolBoxControl() @@ -2718,20 +2834,18 @@ SvxColorToolBoxControl::~SvxColorToolBoxControl() void SvxColorToolBoxControl::setColorSelectFunction(const ColorSelectFunction& aColorSelectFunction) { maColorSelectFunction = aColorSelectFunction; - mPaletteManager.SetColorSelectFunction(aColorSelectFunction); + mrPaletteManager.SetColorSelectFunction(aColorSelectFunction); } VclPtr<SfxPopupWindow> SvxColorToolBoxControl::CreatePopupWindow() { - SvxColorWindow* pColorWin = + VclPtr<SvxColorWindow> pColorWin = VclPtr<SvxColorWindow>::Create( - m_aCommandURL, - mPaletteManager, + mrPaletteManager, maBorderColorStatus, GetSlotId(), m_xFrame, - SVX_RESSTR( RID_SVXITEMS_EXTRAS_CHARCOLOR ), &GetToolBox(), maColorSelectFunction); @@ -2763,19 +2877,16 @@ VclPtr<SfxPopupWindow> SvxColorToolBoxControl::CreatePopupWindow() break; } - pColorWin->StartPopupMode( &GetToolBox(), - FloatWinPopupFlags::AllowTearOff|FloatWinPopupFlags::NoAppFocusClose ); pColorWin->StartSelection(); - SetPopupWindow( pColorWin ); if ( !bSidebarType ) pColorWin->SetSelectedHdl( LINK( this, SvxColorToolBoxControl, SelectedHdl ) ); return pColorWin; } -IMPL_LINK_TYPED(SvxColorToolBoxControl, SelectedHdl, const Color&, rColor, void) +IMPL_LINK_TYPED(SvxColorToolBoxControl, SelectedHdl, const NamedColor&, rColor, void) { - m_xBtnUpdater->Update( rColor ); - mPaletteManager.SetLastColor( rColor ); + m_xBtnUpdater->Update( rColor.first ); + mrPaletteManager.SetLastColor( rColor.first ); } void SvxColorToolBoxControl::StateChanged( @@ -2804,7 +2915,7 @@ void SvxColorToolBoxControl::StateChanged( aColor = static_cast< const XFillColorItem* >(pState)->GetColorValue(); } m_xBtnUpdater->Update( aColor ); - mPaletteManager.SetLastColor(aColor); + mrPaletteManager.SetLastColor(aColor); } } @@ -2872,7 +2983,7 @@ void SvxColorToolBoxControl::Select(sal_uInt16 /*nSelectModifier*/) Sequence< PropertyValue > aArgs( 1 ); aArgs[0].Name = aParamName; - aArgs[0].Value = makeAny( (sal_uInt32)( mPaletteManager.GetLastColor().GetColor() )); + aArgs[0].Value = makeAny( (sal_uInt32)( mrPaletteManager.GetLastColor().GetColor() )); Dispatch( aCommand, aArgs ); } @@ -2892,7 +3003,7 @@ void SvxColorToolBoxControl::updateImage() if ( !!aImage ) { GetToolBox().SetItemImage( GetId(), aImage ); - m_xBtnUpdater->Update( mPaletteManager.GetLastColor(), true ); + m_xBtnUpdater->Update( mrPaletteManager.GetLastColor(), true ); } } @@ -3184,4 +3295,198 @@ void SvxCurrencyToolBoxControl::GetCurrencySymbols( std::vector<OUString>& rList } } +SvxListBoxColorWrapper::SvxListBoxColorWrapper(SvxColorListBox* pControl) + : mxControl(pControl) +{ +} + +void SvxListBoxColorWrapper::operator()(const OUString& /*rCommand*/, const NamedColor& rColor) +{ + mxControl->Selected(rColor); +} + +SvxColorListBox::SvxColorListBox(vcl::Window* pParent) + : MenuButton(pParent) + , m_aColorWrapper(this) + , m_aAutoDisplayColor(Application::GetSettings().GetStyleSettings().GetDialogColor()) + , m_nSlotId(0) + , m_bShowNoneButton(false) +{ + LockWidthRequest(); + m_aPaletteManager.SetColorSelectFunction(m_aColorWrapper); + SetActivateHdl(LINK(this, SvxColorListBox, MenuActivateHdl)); + SetNoSelection(); +} + +void SvxColorListBox::SetSlotId(sal_uInt16 nSlotId, bool bShowNoneButton) +{ + m_nSlotId = nSlotId; + m_bShowNoneButton = bShowNoneButton; + m_xColorWindow.disposeAndClear(); + createColorWindow(); +} + +//to avoid the box resizing every time the color is changed to +//the optimal size of the individual color, get the longest +//standard color and stick with that as the size for all +void SvxColorListBox::LockWidthRequest() +{ + if (get_width_request() != -1) + return; + NamedColor aLongestColor; + long nMaxStandardColorTextWidth = 0; + XColorListRef const xColorTable = XColorList::CreateStdColorList(); + for (sal_Int32 i = 0; i != xColorTable->Count(); ++i) + { + XColorEntry& rEntry = *xColorTable->GetColor(i); + long nColorTextWidth = GetTextWidth(rEntry.GetName()); + if (nColorTextWidth > nMaxStandardColorTextWidth) + { + nMaxStandardColorTextWidth = nColorTextWidth; + aLongestColor.second = rEntry.GetName(); + } + } + ShowPreview(aLongestColor); + set_width_request(get_preferred_size().Width()); +} + +void SvxColorListBox::ShowPreview(const NamedColor &rColor) +{ + const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings(); + Size aImageSize(rStyleSettings.GetListBoxPreviewDefaultPixelSize()); + + VclPtr<VirtualDevice> xDevice = VclPtr<VirtualDevice>::Create(); + xDevice->SetOutputSize(aImageSize); + const Rectangle aRect(Point(0, 0), aImageSize); + if (m_bShowNoneButton && rColor.first == COL_NONE_COLOR) + xDevice->SetFillColor(COL_BLACK); + else if (rColor.first == COL_AUTO) + xDevice->SetFillColor(m_aAutoDisplayColor); + else + xDevice->SetFillColor(rColor.first); + xDevice->SetLineColor(rStyleSettings.GetDisableColor()); + xDevice->DrawRect(aRect); + + Bitmap aBitmap(xDevice->GetBitmap(Point(0, 0), xDevice->GetOutputSize())); + SetImageAlign(ImageAlign::Left); + SetModeImage(Image(aBitmap)); + SetText(rColor.second); +} + +IMPL_LINK_TYPED(SvxColorListBox, MenuActivateHdl, MenuButton *, pBtn, void) +{ + (void)pBtn; + if (!m_xColorWindow || m_xColorWindow->isDisposed()) + createColorWindow(); +} + +void SvxColorListBox::createColorWindow() +{ + const SfxViewFrame* pViewFrame = SfxViewFrame::Current(); + const SfxFrame* pFrame = pViewFrame ? &pViewFrame->GetFrame() : nullptr; + css::uno::Reference<css::frame::XFrame> xFrame(pFrame ? pFrame->GetFrameInterface() : uno::Reference<css::frame::XFrame>()); + + m_xColorWindow = VclPtr<SvxColorWindow>::Create( + OUString() /*m_aCommandURL*/, + m_aPaletteManager, + m_aBorderColorStatus, + m_nSlotId, + xFrame, + this, + m_aColorWrapper); + if (m_bShowNoneButton) + m_xColorWindow->ShowNoneButton(); + m_xColorWindow->SelectEntry(m_aSelectedColor); + SetPopover(m_xColorWindow); +} + +void SvxColorListBox::Selected(const NamedColor& rColor) +{ + ShowPreview(rColor); + m_aPaletteManager.SetLastColor(rColor.first); + m_aSelectedColor = rColor; + if (m_aSelectedLink.IsSet()) + m_aSelectedLink.Call(*this); +} + +VCL_BUILDER_FACTORY(SvxColorListBox) + +SvxColorListBox::~SvxColorListBox() +{ + disposeOnce(); +} + +void SvxColorListBox::dispose() +{ + m_xColorWindow.disposeAndClear(); + MenuButton::dispose(); +} + +VclPtr<SvxColorWindow> SvxColorListBox::getColorWindow() const +{ + if (!m_xColorWindow || m_xColorWindow->isDisposed()) + const_cast<SvxColorListBox*>(this)->createColorWindow(); + return m_xColorWindow; +} + +void SvxColorListBox::SelectEntry(const NamedColor& rColor) +{ + if (rColor.second.trim().isEmpty()) + { + SelectEntry(rColor.first); + return; + } + VclPtr<SvxColorWindow> xColorWindow = getColorWindow(); + xColorWindow->SelectEntry(rColor); + m_aSelectedColor = xColorWindow->GetSelectEntryColor(); + ShowPreview(m_aSelectedColor); +} + +void SvxColorListBox::SelectEntry(const Color& rColor) +{ + VclPtr<SvxColorWindow> xColorWindow = getColorWindow(); + xColorWindow->SelectEntry(rColor); + m_aSelectedColor = xColorWindow->GetSelectEntryColor(); + ShowPreview(m_aSelectedColor); +} + +Color SvxColorListBox::GetSelectEntryColor() const +{ + return m_aSelectedColor.first; +} + +NamedColor SvxColorListBox::GetSelectEntry() const +{ + return m_aSelectedColor; +} + +SvxColorListBoxWrapper::SvxColorListBoxWrapper(SvxColorListBox& rListBox) + : sfx::SingleControlWrapper<SvxColorListBox, Color>(rListBox) +{ +} + +SvxColorListBoxWrapper::~SvxColorListBoxWrapper() +{ +} + +bool SvxColorListBoxWrapper::IsControlDontKnow() const +{ + return GetControl().IsNoSelection(); +} + +void SvxColorListBoxWrapper::SetControlDontKnow( bool bSet ) +{ + if( bSet ) GetControl().SetNoSelection(); +} + +Color SvxColorListBoxWrapper::GetControlValue() const +{ + return GetControl().GetSelectEntryColor(); +} + +void SvxColorListBoxWrapper::SetControlValue( Color aColor ) +{ + GetControl().SelectEntry( aColor ); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/tbxctrls/tbcontrl.src b/svx/source/tbxctrls/tbcontrl.src index b867c9da0660..438d9ed13913 100644 --- a/svx/source/tbxctrls/tbcontrl.src +++ b/svx/source/tbxctrls/tbcontrl.src @@ -46,11 +46,16 @@ ImageList RID_SVXIL_FRAME MASKCOLOR }; -String RID_SVXSTR_TRANSPARENT +String RID_SVXSTR_NOFILL { Text [ en-US ] = "No Fill" ; }; +String RID_SVXSTR_TRANSPARENT +{ + Text [ en-US ] = "Transparent"; +}; + String RID_SVXSTR_FILLPATTERN { Text [ en-US ] = "Pattern" ; @@ -135,6 +140,11 @@ String RID_SVXSTR_AUTOMATIC Text [ en-US ] = "Automatic"; }; +String RID_SVXSTR_BY_AUTHOR +{ + Text [ en-US ] = "By author"; +}; + String RID_SVXSTR_PAGES { Text [ en-US ] = "Pages"; diff --git a/svx/uiconfig/ui/colorwindow.ui b/svx/uiconfig/ui/colorwindow.ui index 9482562f83a6..444797ff9714 100644 --- a/svx/uiconfig/ui/colorwindow.ui +++ b/svx/uiconfig/ui/colorwindow.ui @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.20.0 --> <interface> <requires lib="gtk+" version="3.10"/> <requires lib="LibreOffice" version="1.0"/> @@ -13,9 +13,14 @@ <property name="can_focus">False</property> <property name="margin_right">6</property> <property name="xalign">0</property> - <property name="pixbuf">cmd/sc_colorsettings.png</property> + <property name="pixbuf">cmd/sc_square_unfilled.png</property> <property name="icon_size">1</property> </object> + <object class="GtkImage" id="none_icon"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="pixbuf">cmd/sc_square_unfilled.png</property> + </object> <object class="GtkWindow" id="palette_popup_window"> <property name="can_focus">False</property> <property name="hexpand">True</property> @@ -25,7 +30,6 @@ <property name="destroy_with_parent">True</property> <property name="type_hint">popup-menu</property> <property name="skip_pager_hint">True</property> - <property name="decorated">False</property> <property name="deletable">False</property> <child> <object class="GtkBox" id="box1"> @@ -33,13 +37,41 @@ <property name="can_focus">False</property> <property name="orientation">vertical</property> <child> - <object class="GtkButton" id="auto_color_button"> + <object class="GtkBox"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="image">auto_icon</property> - <property name="relief">none</property> - <property name="xalign">0</property> + <property name="can_focus">False</property> + <property name="spacing">6</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkButton" id="auto_color_button"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="image">auto_icon</property> + <property name="relief">none</property> + <property name="xalign">0</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="none_color_button"> + <property name="label" translatable="yes">None</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="image">none_icon</property> + <property name="relief">none</property> + <property name="xalign">0</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> </object> <packing> <property name="expand">False</property> diff --git a/svx/uiconfig/ui/docking3deffects.ui b/svx/uiconfig/ui/docking3deffects.ui index e3856ffbd3ca..fad6d1ca9d19 100644 --- a/svx/uiconfig/ui/docking3deffects.ui +++ b/svx/uiconfig/ui/docking3deffects.ui @@ -1089,7 +1089,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="ambientcolor"> + <object class="svxlo-SvxColorListBox" id="ambientcolor"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="valign">center</property> @@ -1250,7 +1250,7 @@ <property name="can_focus">False</property> <property name="orientation">vertical</property> <child> - <object class="svxlo-ColorLB" id="lightcolor1"> + <object class="svxlo-SvxColorListBox" id="lightcolor1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="valign">start</property> @@ -1263,7 +1263,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="lightcolor2"> + <object class="svxlo-SvxColorListBox" id="lightcolor2"> <property name="can_focus">False</property> <property name="no_show_all">True</property> <property name="valign">start</property> @@ -1276,7 +1276,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="lightcolor3"> + <object class="svxlo-SvxColorListBox" id="lightcolor3"> <property name="can_focus">False</property> <property name="no_show_all">True</property> <property name="valign">start</property> @@ -1289,7 +1289,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="lightcolor4"> + <object class="svxlo-SvxColorListBox" id="lightcolor4"> <property name="can_focus">False</property> <property name="no_show_all">True</property> <property name="valign">start</property> @@ -1302,7 +1302,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="lightcolor5"> + <object class="svxlo-SvxColorListBox" id="lightcolor5"> <property name="can_focus">False</property> <property name="no_show_all">True</property> <property name="valign">start</property> @@ -1315,7 +1315,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="lightcolor6"> + <object class="svxlo-SvxColorListBox" id="lightcolor6"> <property name="can_focus">False</property> <property name="no_show_all">True</property> <property name="valign">start</property> @@ -1328,7 +1328,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="lightcolor7"> + <object class="svxlo-SvxColorListBox" id="lightcolor7"> <property name="can_focus">False</property> <property name="no_show_all">True</property> <property name="valign">start</property> @@ -1341,7 +1341,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="lightcolor8"> + <object class="svxlo-SvxColorListBox" id="lightcolor8"> <property name="can_focus">False</property> <property name="no_show_all">True</property> <property name="valign">start</property> @@ -1721,7 +1721,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="objcolor"> + <object class="svxlo-SvxColorListBox" id="objcolor"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="valign">center</property> @@ -1733,7 +1733,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="illumcolor"> + <object class="svxlo-SvxColorListBox" id="illumcolor"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="valign">center</property> @@ -1856,7 +1856,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="speccolor"> + <object class="svxlo-SvxColorListBox" id="speccolor"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="valign">center</property> diff --git a/svx/uiconfig/ui/dockingcolorreplace.ui b/svx/uiconfig/ui/dockingcolorreplace.ui index e9536129bf86..2f105922e752 100644 --- a/svx/uiconfig/ui/dockingcolorreplace.ui +++ b/svx/uiconfig/ui/dockingcolorreplace.ui @@ -223,7 +223,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="color1"> + <object class="svxlo-SvxColorListBox" id="color1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> @@ -236,7 +236,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="color2"> + <object class="svxlo-SvxColorListBox" id="color2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> @@ -249,7 +249,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="color3"> + <object class="svxlo-SvxColorListBox" id="color3"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> @@ -262,7 +262,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="color4"> + <object class="svxlo-SvxColorListBox" id="color4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> @@ -275,7 +275,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="color5"> + <object class="svxlo-SvxColorListBox" id="color5"> <property name="visible">True</property> <property name="can_focus">False</property> </object> diff --git a/svx/uiconfig/ui/dockingfontwork.ui b/svx/uiconfig/ui/dockingfontwork.ui index 0c729be1b10e..01e74c377e79 100644 --- a/svx/uiconfig/ui/dockingfontwork.ui +++ b/svx/uiconfig/ui/dockingfontwork.ui @@ -437,7 +437,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="color"> + <object class="svxlo-SvxColorListBox" id="color"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Shadow Color</property> diff --git a/svx/uiconfig/ui/sidebararea.ui b/svx/uiconfig/ui/sidebararea.ui index b762d6d6d757..0c4c18a4da35 100644 --- a/svx/uiconfig/ui/sidebararea.ui +++ b/svx/uiconfig/ui/sidebararea.ui @@ -101,7 +101,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="fillgrad1"> + <object class="svxlo-SvxColorListBox" id="fillgrad1"> <property name="can_focus">False</property> <property name="has_tooltip">True</property> <property name="tooltip_markup" translatable="yes">Fill gradient from.</property> @@ -217,7 +217,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="fillgrad2"> + <object class="svxlo-SvxColorListBox" id="fillgrad2"> <property name="can_focus">False</property> <property name="has_tooltip">True</property> <property name="tooltip_markup" translatable="yes">Fill gradient to.</property> diff --git a/svx/uiconfig/ui/sidebarshadow.ui b/svx/uiconfig/ui/sidebarshadow.ui index 0b2e8cf6d48b..356b6ff46933 100644 --- a/svx/uiconfig/ui/sidebarshadow.ui +++ b/svx/uiconfig/ui/sidebarshadow.ui @@ -184,7 +184,7 @@ </packing> </child> <child> - <object class="svxlo-ColorLB" id="LB_SHADOW_COLOR"> + <object class="svxlo-SvxColorListBox" id="LB_SHADOW_COLOR"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">end</property> diff --git a/sw/inc/authratr.hxx b/sw/inc/authratr.hxx index 188da163ac90..85873104a7e6 100644 --- a/sw/inc/authratr.hxx +++ b/sw/inc/authratr.hxx @@ -24,8 +24,6 @@ #include <tools/color.hxx> #include "swdllapi.h" -#define COL_NONE_COLOR TRGB_COLORDATA( 0x80, 0xFF, 0xFF, 0xFF ) - class SW_DLLPUBLIC AuthorCharAttr { public: diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx index e8b502a31fc9..12d4bb7c62c2 100644 --- a/sw/source/core/access/accpara.cxx +++ b/sw/source/core/access/accpara.cxx @@ -88,6 +88,7 @@ #include <com/sun/star/text/TextMarkupType.hpp> #include <comphelper/servicehelper.hxx> #include <cppuhelper/supportsservice.hxx> +#include <svx/colorwindow.hxx> #include <reffld.hxx> #include <expfld.hxx> diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx index 84c3cf26df57..02725490bc6b 100644 --- a/sw/source/ui/config/optpage.cxx +++ b/sw/source/ui/config/optpage.cxx @@ -1737,20 +1737,22 @@ SwRedlineOptionsTabPage::SwRedlineOptionsTabPage( vcl::Window* pParent, const SfxItemSet& rSet ) : SfxTabPage(pParent, "OptRedLinePage", "modules/swriter/ui/optredlinepage.ui" , &rSet) - , sNone(SW_RESSTR(SW_STR_NONE)) { Size aPreviewSize(getPreviewOptionsSize(this)); get(pInsertLB,"insert"); get(pInsertColorLB,"insertcolor"); + pInsertColorLB->SetSlotId(SID_AUTHOR_COLOR, true); get(pInsertedPreviewWN,"insertedpreview"); get(pDeletedLB,"deleted"); get(pDeletedColorLB,"deletedcolor"); + pDeletedColorLB->SetSlotId(SID_AUTHOR_COLOR, true); get(pDeletedPreviewWN,"deletedpreview"); get(pChangedLB,"changed"); get(pChangedColorLB,"changedcolor"); + pChangedColorLB->SetSlotId(SID_AUTHOR_COLOR, true); get(pChangedPreviewWN,"changedpreview"); get(pMarkPosLB,"markpos"); @@ -1767,8 +1769,6 @@ SwRedlineOptionsTabPage::SwRedlineOptionsTabPage( vcl::Window* pParent, pChangedPreviewWN->set_width_request(aPreviewSize.Width()); pMarkPreviewWN->set_width_request(aPreviewSize.Width()); - sAuthor = get<vcl::Window>("byauthor")->GetText(); - for (sal_Int32 i = 0; i < pInsertLB->GetEntryCount(); ++i) { const OUString sEntry(pInsertLB->GetEntry(i)); @@ -1788,20 +1788,13 @@ SwRedlineOptionsTabPage::SwRedlineOptionsTabPage( vcl::Window* pParent, pDeletedLB->SetSelectHdl( aLk ); pChangedLB->SetSelectHdl( aLk ); - aLk = LINK(this, SwRedlineOptionsTabPage, ColorHdl); - pInsertColorLB->SetSelectHdl( aLk ); - pDeletedColorLB->SetSelectHdl( aLk ); - pChangedColorLB->SetSelectHdl( aLk ); + Link<SvxColorListBox&,void> aLk2 = LINK(this, SwRedlineOptionsTabPage, ColorHdl); + pInsertColorLB->SetSelectHdl( aLk2 ); + pDeletedColorLB->SetSelectHdl( aLk2 ); + pChangedColorLB->SetSelectHdl( aLk2 ); - aLk = LINK(this, SwRedlineOptionsTabPage, ChangedMaskPrevHdl); - pMarkPosLB->SetSelectHdl( aLk ); - pMarkColorLB->SetSelectHdl( aLk ); -/* - //solution: set different accessible name of four color box - pInsertColorLB->SetAccessibleName(OUString( aInsertFT.GetDisplayText()) + OUString(aInsertColorFT.GetDisplayText())); - pDeletedColorLB->SetAccessibleName(OUString( aDeletedFT.GetDisplayText()) + OUString( aDeletedColorFT.GetDisplayText())); - pChangedColorLB->SetAccessibleName(OUString( aChangedFT.GetDisplayText()) + OUString( aChangedColorFT.GetDisplayText())); - pMarkColorLB->SetAccessibleName(OUString( aMarkPosFT.GetDisplayText()) + OUString( aMarkColorFT.GetDisplayText()));*/ + pMarkPosLB->SetSelectHdl(LINK(this, SwRedlineOptionsTabPage, ChangedMaskPrevHdl)); + pMarkColorLB->SetSelectHdl(LINK(this, SwRedlineOptionsTabPage, ChangedMaskColorPrevHdl)); } SwRedlineOptionsTabPage::~SwRedlineOptionsTabPage() @@ -1853,23 +1846,7 @@ bool SwRedlineOptionsTabPage::FillItemSet( SfxItemSet* ) pAttr = static_cast<CharAttr *>(pInsertLB->GetEntryData(nPos)); aInsertedAttr.nItemId = pAttr->nItemId; aInsertedAttr.nAttr = pAttr->nAttr; - - nPos = pInsertColorLB->GetSelectEntryPos(); - - switch (nPos) - { - case 0: - aInsertedAttr.nColor = COL_NONE_COLOR; - break; - case 1: - case LISTBOX_ENTRY_NOTFOUND: - aInsertedAttr.nColor = COL_TRANSPARENT; - break; - default: - aInsertedAttr.nColor = pInsertColorLB->GetEntryColor(nPos).GetColor(); - break; - } - + aInsertedAttr.nColor = pInsertColorLB->GetSelectEntryColor().GetColor(); pOpt->SetInsertAuthorAttr(aInsertedAttr); } @@ -1879,23 +1856,7 @@ bool SwRedlineOptionsTabPage::FillItemSet( SfxItemSet* ) pAttr = static_cast<CharAttr *>(pDeletedLB->GetEntryData(nPos)); aDeletedAttr.nItemId = pAttr->nItemId; aDeletedAttr.nAttr = pAttr->nAttr; - - nPos = pDeletedColorLB->GetSelectEntryPos(); - - switch (nPos) - { - case 0: - aDeletedAttr.nColor = COL_NONE_COLOR; - break; - case 1: - case LISTBOX_ENTRY_NOTFOUND: - aDeletedAttr.nColor = COL_TRANSPARENT; - break; - default: - aDeletedAttr.nColor = pDeletedColorLB->GetEntryColor(nPos).GetColor(); - break; - } - + aDeletedAttr.nColor = pDeletedColorLB->GetSelectEntryColor().GetColor(); pOpt->SetDeletedAuthorAttr(aDeletedAttr); } @@ -1905,23 +1866,7 @@ bool SwRedlineOptionsTabPage::FillItemSet( SfxItemSet* ) pAttr = static_cast<CharAttr *>(pChangedLB->GetEntryData(nPos)); aChangedAttr.nItemId = pAttr->nItemId; aChangedAttr.nAttr = pAttr->nAttr; - - nPos = pChangedColorLB->GetSelectEntryPos(); - - switch (nPos) - { - case 0: - aChangedAttr.nColor = COL_NONE_COLOR; - break; - case 1: - case LISTBOX_ENTRY_NOTFOUND: - aChangedAttr.nColor = COL_TRANSPARENT; - break; - default: - aChangedAttr.nColor = pChangedColorLB->GetEntryColor(nPos).GetColor(); - break; - } - + aChangedAttr.nColor = pChangedColorLB->GetSelectEntryColor().GetColor(); pOpt->SetFormatAuthorAttr(aChangedAttr); } @@ -1970,77 +1915,14 @@ void SwRedlineOptionsTabPage::Reset( const SfxItemSet* ) InitFontStyle(*pDeletedPreviewWN); InitFontStyle(*pChangedPreviewWN); - // initialise colour list box - pInsertColorLB->SetUpdateMode(false); - pDeletedColorLB->SetUpdateMode(false); - pChangedColorLB->SetUpdateMode(false); - pMarkColorLB->SetUpdateMode(false); - pInsertColorLB->InsertEntry(sNone); - pDeletedColorLB->InsertEntry(sNone); - pChangedColorLB->InsertEntry(sNone); - - pInsertColorLB->InsertEntry(sAuthor); - pDeletedColorLB->InsertEntry(sAuthor); - pChangedColorLB->InsertEntry(sAuthor); - - XColorListRef pColorLst = XColorList::GetStdColorList(); - for( long i = 0; i < pColorLst->Count(); ++i ) - { - XColorEntry* pEntry = pColorLst->GetColor( i ); - Color aColor = pEntry->GetColor(); - const OUString sName = pEntry->GetName(); - - pInsertColorLB->InsertEntry( aColor, sName ); - pDeletedColorLB->InsertEntry( aColor, sName ); - pChangedColorLB->InsertEntry( aColor, sName ); - pMarkColorLB->InsertEntry( aColor, sName ); - } - pInsertColorLB->SetUpdateMode( true ); - pDeletedColorLB->SetUpdateMode( true ); - pChangedColorLB->SetUpdateMode( true ); - pMarkColorLB->SetUpdateMode( true ); - ColorData nColor = rInsertAttr.nColor; - - switch (nColor) - { - case COL_TRANSPARENT: - pInsertColorLB->SelectEntryPos(1); - break; - case COL_NONE_COLOR: - pInsertColorLB->SelectEntryPos(0); - break; - default: - pInsertColorLB->SelectEntry(Color(nColor)); - } + pInsertColorLB->SelectEntry(Color(nColor)); nColor = rDeletedAttr.nColor; - - switch (nColor) - { - case COL_TRANSPARENT: - pDeletedColorLB->SelectEntryPos(1); - break; - case COL_NONE_COLOR: - pDeletedColorLB->SelectEntryPos(0); - break; - default: - pDeletedColorLB->SelectEntry(Color(nColor)); - } + pDeletedColorLB->SelectEntry(Color(nColor)); nColor = rChangedAttr.nColor; - - switch (nColor) - { - case COL_TRANSPARENT: - pChangedColorLB->SelectEntryPos(1); - break; - case COL_NONE_COLOR: - pChangedColorLB->SelectEntryPos(0); - break; - default: - pChangedColorLB->SelectEntry(Color(nColor)); - } + pChangedColorLB->SelectEntry(Color(nColor)); pMarkColorLB->SelectEntry(pOpt->GetMarkAlignColor()); @@ -2071,13 +1953,13 @@ void SwRedlineOptionsTabPage::Reset( const SfxItemSet* ) AttribHdl(*pChangedLB); ColorHdl(*pChangedColorLB); - ChangedMaskPrevHdl(*pMarkPosLB); + ChangedMaskPrev(); } IMPL_LINK_TYPED( SwRedlineOptionsTabPage, AttribHdl, ListBox&, rLB, void ) { SvxFontPrevWindow *pPrev = nullptr; - ColorListBox *pColorLB; + SvxColorListBox *pColorLB; if (&rLB == pInsertLB) { @@ -2109,26 +1991,25 @@ IMPL_LINK_TYPED( SwRedlineOptionsTabPage, AttribHdl, ListBox&, rLB, void ) rFont.SetCaseMap(SVX_CASEMAP_NOT_MAPPED); rCJKFont.SetCaseMap(SVX_CASEMAP_NOT_MAPPED); - sal_Int32 nPos = pColorLB->GetSelectEntryPos(); + Color aColor = pColorLB->GetSelectEntryColor(); - switch( nPos ) + if (aColor == COL_NONE_COLOR) { - case 0: - rFont.SetColor( Color( COL_BLACK ) ); - rCJKFont.SetColor( Color( COL_BLACK ) ); - break; - case 1: - case LISTBOX_ENTRY_NOTFOUND: - rFont.SetColor( Color( COL_RED ) ); - rCJKFont.SetColor( Color( COL_RED ) ); - break; - default: - rFont.SetColor( pColorLB->GetEntryColor( nPos ) ); - rCJKFont.SetColor( pColorLB->GetEntryColor( nPos ) ); - break; + rFont.SetColor( Color( COL_BLACK ) ); + rCJKFont.SetColor( Color( COL_BLACK ) ); + } + else if (aColor == COL_TRANSPARENT) + { + rFont.SetColor( Color( COL_RED ) ); + rCJKFont.SetColor( Color( COL_RED ) ); + } + else + { + rFont.SetColor(aColor); + rCJKFont.SetColor(aColor); } - nPos = rLB.GetSelectEntryPos(); + sal_Int32 nPos = rLB.GetSelectEntryPos(); if( nPos == LISTBOX_ENTRY_NOTFOUND ) nPos = 0; @@ -2164,12 +2045,11 @@ IMPL_LINK_TYPED( SwRedlineOptionsTabPage, AttribHdl, ListBox&, rLB, void ) case SID_ATTR_BRUSH: { - nPos = pColorLB->GetSelectEntryPos(); - if( nPos ) - pPrev->SetColor( pColorLB->GetSelectEntryColor() ); + Color aBgColor = pColorLB->GetSelectEntryColor(); + if (aBgColor != COL_NONE_COLOR) + pPrev->SetColor(aBgColor); else - pPrev->SetColor( Color( COL_LIGHTGRAY ) ); - + pPrev->SetColor(Color(COL_LIGHTGRAY)); rFont.SetColor( Color( COL_BLACK ) ); rCJKFont.SetColor( Color( COL_BLACK ) ); } @@ -2179,9 +2059,9 @@ IMPL_LINK_TYPED( SwRedlineOptionsTabPage, AttribHdl, ListBox&, rLB, void ) pPrev->Invalidate(); } -IMPL_LINK_TYPED( SwRedlineOptionsTabPage, ColorHdl, ListBox&, rListBox, void ) +IMPL_LINK_TYPED( SwRedlineOptionsTabPage, ColorHdl, SvxColorListBox&, rListBox, void ) { - ColorListBox* pColorLB = static_cast<ColorListBox*>(&rListBox); + SvxColorListBox* pColorLB = &rListBox; SvxFontPrevWindow *pPrev = nullptr; ListBox* pLB; @@ -2213,38 +2093,38 @@ IMPL_LINK_TYPED( SwRedlineOptionsTabPage, ColorHdl, ListBox&, rListBox, void ) { rFont.SetColor( Color( COL_BLACK ) ); rCJKFont.SetColor( Color( COL_BLACK ) ); - nPos = pColorLB->GetSelectEntryPos(); - if( nPos && nPos != LISTBOX_ENTRY_NOTFOUND ) - pPrev->SetColor( pColorLB->GetSelectEntryColor() ); + + Color aBgColor = pColorLB->GetSelectEntryColor(); + if (aBgColor != COL_NONE_COLOR) + pPrev->SetColor(aBgColor); else - pPrev->SetColor( Color( COL_LIGHTGRAY ) ); + pPrev->SetColor(Color(COL_LIGHTGRAY)); } else { - nPos = pColorLB->GetSelectEntryPos(); + Color aColor = pColorLB->GetSelectEntryColor(); - switch( nPos ) + if (aColor == COL_NONE_COLOR) { - case 0: - rFont.SetColor( Color( COL_BLACK ) ); - rCJKFont.SetColor( Color( COL_BLACK ) ); - break; - case 1: - case LISTBOX_ENTRY_NOTFOUND: - rFont.SetColor( Color( COL_RED ) ); - rCJKFont.SetColor( Color( COL_RED ) ); - break; - default: - rFont.SetColor( pColorLB->GetEntryColor( nPos ) ); - rCJKFont.SetColor( pColorLB->GetEntryColor( nPos ) ); - break; + rFont.SetColor( Color( COL_BLACK ) ); + rCJKFont.SetColor( Color( COL_BLACK ) ); + } + else if (aColor == COL_TRANSPARENT) + { + rFont.SetColor( Color( COL_RED ) ); + rCJKFont.SetColor( Color( COL_RED ) ); + } + else + { + rFont.SetColor(aColor); + rCJKFont.SetColor(aColor); } } pPrev->Invalidate(); } -IMPL_LINK_NOARG_TYPED(SwRedlineOptionsTabPage, ChangedMaskPrevHdl, ListBox&, void) +void SwRedlineOptionsTabPage::ChangedMaskPrev() { pMarkPreviewWN->SetMarkPos(pMarkPosLB->GetSelectEntryPos()); pMarkPreviewWN->SetColor(pMarkColorLB->GetSelectEntryColor().GetColor()); @@ -2252,6 +2132,16 @@ IMPL_LINK_NOARG_TYPED(SwRedlineOptionsTabPage, ChangedMaskPrevHdl, ListBox&, voi pMarkPreviewWN->Invalidate(); } +IMPL_LINK_NOARG(SwRedlineOptionsTabPage, ChangedMaskPrevHdl, ListBox&, void) +{ + ChangedMaskPrev(); +} + +IMPL_LINK_NOARG(SwRedlineOptionsTabPage, ChangedMaskColorPrevHdl, SvxColorListBox&, void) +{ + ChangedMaskPrev(); +} + void SwRedlineOptionsTabPage::InitFontStyle(SvxFontPrevWindow& rExampleWin) { const AllSettings& rAllSettings = Application::GetSettings(); diff --git a/sw/source/ui/frmdlg/column.cxx b/sw/source/ui/frmdlg/column.cxx index 6a55d0fb1b66..e869c27c1cae 100644 --- a/sw/source/ui/frmdlg/column.cxx +++ b/sw/source/ui/frmdlg/column.cxx @@ -25,6 +25,7 @@ #include <svx/dialogs.hrc> #include <svx/dialmgr.hxx> #include <sfx2/htmlmode.hxx> +#include <svx/colorbox.hxx> #include <svx/xtable.hxx> #include <svx/drawitem.hxx> #include <editeng/borderline.hxx> @@ -500,12 +501,11 @@ SwColumnPage::SwColumnPage(vcl::Window *pParent, const SfxItemSet &rSet) m_pAutoWidthBox->SetClickHdl(LINK(this, SwColumnPage, AutoWidthHdl)); aLk = LINK( this, SwColumnPage, UpdateColMgr ); - Link<ListBox&,void> aLk2 = LINK( this, SwColumnPage, UpdateColMgrListBox ); - m_pLineTypeDLB->SetSelectHdl( aLk2 ); + m_pLineTypeDLB->SetSelectHdl(LINK(this, SwColumnPage, UpdateColMgrListBox)); m_pLineWidthEdit->SetModifyHdl( aLk ); - m_pLineColorDLB->SetSelectHdl( aLk2 ); + m_pLineColorDLB->SetSelectHdl(LINK( this, SwColumnPage, UpdateColMgrColorBox)); m_pLineHeightEdit->SetModifyHdl( aLk ); - m_pLinePosDLB->SetSelectHdl( aLk2 ); + m_pLinePosDLB->SetSelectHdl(LINK(this, SwColumnPage, UpdateColMgrListBox)); // Separator line m_pLineTypeDLB->SetUnit( FUNIT_POINT ); @@ -528,29 +528,7 @@ SwColumnPage::SwColumnPage(vcl::Window *pParent, const SfxItemSet &rSet) m_pLineWidthEdit->GetDecimalDigits( ), m_pLineWidthEdit->GetUnit(), MAP_TWIP )); m_pLineTypeDLB->SetWidth( nLineWidth ); - - // Fill the color listbox - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - XColorListRef pColorList; - if ( pDocSh ) - { - const SfxPoolItem* pItem = pDocSh->GetItem( SID_COLOR_TABLE ); - if ( pItem != nullptr ) - pColorList = static_cast<const SvxColorListItem*>(pItem)->GetColorList(); - } - - if ( pColorList.is() ) - { - m_pLineColorDLB->SetUpdateMode( false ); - - for (long i = 0; i < pColorList->Count(); ++i ) - { - XColorEntry* pEntry = pColorList->GetColor(i); - m_pLineColorDLB->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - } - m_pLineColorDLB->SetUpdateMode( true ); - } - m_pLineColorDLB->SelectEntryPos( 0 ); + m_pLineColorDLB->SelectEntry(COL_BLACK); } SwColumnPage::~SwColumnPage() @@ -703,10 +681,18 @@ IMPL_LINK_NOARG_TYPED( SwColumnPage, UpdateColMgrListBox, ListBox&, void ) { UpdateColMgr(*m_pLineWidthEdit); } + +IMPL_LINK_NOARG_TYPED( SwColumnPage, UpdateColMgrColorBox, SvxColorListBox&, void ) +{ + UpdateColMgr(*m_pLineWidthEdit); +} + IMPL_LINK_NOARG_TYPED( SwColumnPage, UpdateColMgr, Edit&, void ) { - long nGutterWidth = pColMgr->GetGutterWidth(); - if(nCols > 1) + if (!m_pColMgr) + return; + long nGutterWidth = m_pColMgr->GetGutterWidth(); + if (nCols > 1) { // Determine whether the most narrow column is too narrow // for the adjusted column gap diff --git a/sw/source/ui/misc/pgfnote.cxx b/sw/source/ui/misc/pgfnote.cxx index 2ab8e3cd5b83..a7ee91cb21a0 100644 --- a/sw/source/ui/misc/pgfnote.cxx +++ b/sw/source/ui/misc/pgfnote.cxx @@ -93,9 +93,9 @@ IMPL_LINK_NOARG_TYPED(SwFootNotePage, LineWidthChanged_Impl, Edit&, void) m_pLineTypeBox->SetWidth( nVal ); } -IMPL_LINK_NOARG_TYPED(SwFootNotePage, LineColorSelected_Impl, ListBox&, void) +IMPL_LINK_TYPED(SwFootNotePage, LineColorSelected_Impl, SvxColorListBox&, rColorBox, void) { - m_pLineTypeBox->SetColor( m_pLineColorBox->GetSelectEntryColor() ); + m_pLineTypeBox->SetColor(rColorBox.GetSelectEntryColor()); } SwFootNotePage::SwFootNotePage(vcl::Window *pParent, const SfxItemSet &rSet) @@ -211,41 +211,9 @@ void SwFootNotePage::Reset(const SfxItemSet *rSet) m_pLineTypeBox->SelectEntry( pFootnoteInfo->GetLineStyle() ); // Separator Color - SfxObjectShell* pDocSh = SfxObjectShell::Current(); - XColorListRef pColorList; - - OSL_ENSURE( pDocSh, "DocShell not found!" ); - - if ( pDocSh ) - { - const SfxPoolItem* pColorItem = pDocSh->GetItem( SID_COLOR_TABLE ); - if ( pColorItem != nullptr ) - pColorList = static_cast<const SvxColorListItem*>(pColorItem)->GetColorList(); - } - - OSL_ENSURE( pColorList.is(), "ColorTable not found!" ); - - if ( pColorList.is() ) - { - m_pLineColorBox->SetUpdateMode( false ); - - for ( long i = 0; i < pColorList->Count(); ++i ) - { - XColorEntry* pEntry = pColorList->GetColor(i); - m_pLineColorBox->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); - } - m_pLineColorBox->SetUpdateMode( true ); - } - - // select color in the list or add it as a user color - sal_Int32 nSelPos = m_pLineColorBox->GetEntryPos( pFootnoteInfo->GetLineColor() ); - if( nSelPos == LISTBOX_ENTRY_NOTFOUND ) - nSelPos = m_pLineColorBox->InsertEntry( pFootnoteInfo->GetLineColor(), - SVX_RESSTR(RID_SVXSTR_COLOR_USER) ); - - m_pLineColorBox->SetSelectHdl( LINK( this, SwFootNotePage, LineColorSelected_Impl ) ); - m_pLineColorBox->SelectEntryPos( nSelPos ); - m_pLineTypeBox->SetColor( pFootnoteInfo->GetLineColor() ); + m_pLineColorBox->SelectEntry(pFootnoteInfo->GetLineColor()); + m_pLineColorBox->SetSelectHdl(LINK(this, SwFootNotePage, LineColorSelected_Impl)); + m_pLineTypeBox->SetColor(pFootnoteInfo->GetLineColor()); // position m_pLinePosBox->SelectEntryPos( static_cast< sal_Int32 >(pFootnoteInfo->GetAdj()) ); diff --git a/sw/source/ui/misc/pggrid.cxx b/sw/source/ui/misc/pggrid.cxx index 1ce914db8290..2a720c597b88 100644 --- a/sw/source/ui/misc/pggrid.cxx +++ b/sw/source/ui/misc/pggrid.cxx @@ -23,6 +23,7 @@ #include <hintids.hxx> #include <swtypes.hxx> #include <globals.hrc> +#include <svx/colorbox.hxx> #include <svx/xtable.hxx> #include <uitool.hxx> #include <editeng/sizeitem.hxx> @@ -102,23 +103,12 @@ SwTextGridPage::SwTextGridPage(vcl::Window *pParent, const SfxItemSet &rSet) : m_pLinesGridRB->SetClickHdl(aGridTypeHdl); m_pCharsGridRB->SetClickHdl(aGridTypeHdl); - m_pColorLB->SetSelectHdl(LINK(this, SwTextGridPage, GridModifyHdl)); + m_pColorLB->SetSelectHdl(LINK(this, SwTextGridPage, ColorModifyHdl)); m_pPrintCB->SetClickHdl(LINK(this, SwTextGridPage, GridModifyClickHdl)); m_pRubyBelowCB->SetClickHdl(LINK(this, SwTextGridPage, GridModifyClickHdl)); m_pDisplayCB->SetClickHdl(LINK(this, SwTextGridPage, DisplayGridHdl)); - XColorListRef pColorLst = XColorList::GetStdColorList(); - m_pColorLB->InsertAutomaticEntryColor( Color( COL_AUTO ) ); - const long nCount = pColorLst->Count(); - for( long i = 0; i < nCount; ++i ) - { - XColorEntry* pEntry = pColorLst->GetColor( i ); - Color aColor = pEntry->GetColor(); - OUString sName = pEntry->GetName(); - m_pColorLB->InsertEntry( aColor, sName ); - } - m_pColorLB->SetUpdateMode( true ); //Get the default paper mode SwView *pView = ::GetActiveView(); if( pView ) @@ -434,7 +424,7 @@ IMPL_LINK_TYPED(SwTextGridPage, CharorLineChangedHdl, SpinField&, rField, void) SetLinesOrCharsRanges( *m_pCharsRangeFT , m_pCharsPerLineNF->GetMax() ); } } - GridModifyHdl(*m_pColorLB); + GridModifyHdl(); } IMPL_LINK_TYPED(SwTextGridPage, TextSizeLoseFocusHdl, Control&, rControl, void) @@ -489,7 +479,7 @@ IMPL_LINK_TYPED(SwTextGridPage, TextSizeChangedHdl, SpinField&, rField, void) } //rubySize is disabled } - GridModifyHdl(*m_pColorLB); + GridModifyHdl(); } IMPL_LINK_TYPED(SwTextGridPage, GridTypeHdl, Button*, pButton, void) @@ -515,7 +505,7 @@ IMPL_LINK_TYPED(SwTextGridPage, GridTypeHdl, Button*, pButton, void) m_pCharWidthMF->Enable(false); } - GridModifyHdl(*m_pColorLB); + GridModifyHdl(); } IMPL_LINK_NOARG_TYPED(SwTextGridPage, DisplayGridHdl, Button*, void) @@ -527,9 +517,15 @@ IMPL_LINK_NOARG_TYPED(SwTextGridPage, DisplayGridHdl, Button*, void) IMPL_LINK_NOARG_TYPED(SwTextGridPage, GridModifyClickHdl, Button*, void) { - GridModifyHdl(*m_pColorLB); + GridModifyHdl(); +} + +IMPL_LINK_NOARG_TYPED(SwTextGridPage, ColorModifyHdl, SvxColorListBox&, void) +{ + GridModifyHdl(); } -IMPL_LINK_NOARG_TYPED(SwTextGridPage, GridModifyHdl, ListBox&, void) + +void SwTextGridPage::GridModifyHdl() { const SfxItemSet& rOldSet = GetItemSet(); SfxItemSet aSet(rOldSet); diff --git a/sw/source/uibase/app/swmodul1.cxx b/sw/source/uibase/app/swmodul1.cxx index c30b361db2a6..24a21a5ed818 100644 --- a/sw/source/uibase/app/swmodul1.cxx +++ b/sw/source/uibase/app/swmodul1.cxx @@ -27,6 +27,7 @@ #include <cppuhelper/weak.hxx> #include <com/sun/star/frame/FrameSearchFlag.hpp> #include <com/sun/star/view/XSelectionSupplier.hpp> +#include <svx/colorwindow.hxx> #include <svx/dataaccessdescriptor.hxx> #include <editeng/wghtitem.hxx> #include <editeng/postitem.hxx> diff --git a/sw/source/uibase/inc/column.hxx b/sw/source/uibase/inc/column.hxx index 85664d41b9b5..d1ede333f3a5 100644 --- a/sw/source/uibase/inc/column.hxx +++ b/sw/source/uibase/inc/column.hxx @@ -31,6 +31,7 @@ #include <svtools/valueset.hxx> #include <sfx2/basedlgs.hxx> #include <sfx2/tabdlg.hxx> +#include <svx/colorbox.hxx> #include <fmtclbl.hxx> #include <colex.hxx> #include <prcntfld.hxx> @@ -105,7 +106,7 @@ class SwColumnPage : public SfxTabPage VclPtr<FixedText> m_pLineWidthLbl; VclPtr<MetricField> m_pLineWidthEdit; VclPtr<FixedText> m_pLineColorLbl; - VclPtr<ColorListBox> m_pLineColorDLB; + VclPtr<SvxColorListBox> m_pLineColorDLB; VclPtr<FixedText> m_pLineHeightLbl; VclPtr<MetricField> m_pLineHeightEdit; VclPtr<FixedText> m_pLinePosLbl; @@ -146,6 +147,7 @@ class SwColumnPage : public SfxTabPage DECL_LINK_TYPED( Down, Button *, void ); DECL_LINK_TYPED( UpdateColMgr, Edit&, void ); DECL_LINK_TYPED( UpdateColMgrListBox, ListBox&, void ); + DECL_LINK_TYPED( UpdateColMgrColorBox, SvxColorListBox&, void ); void Timeout(); void Update(MetricField *pInteractiveField); diff --git a/sw/source/uibase/inc/optpage.hxx b/sw/source/uibase/inc/optpage.hxx index 03d65cdfff5d..1ce029de7683 100644 --- a/sw/source/uibase/inc/optpage.hxx +++ b/sw/source/uibase/inc/optpage.hxx @@ -30,6 +30,7 @@ #include <vcl/fixed.hxx> #include <svtools/ctrlbox.hxx> +#include <svx/colorbox.hxx> #include <svx/fntctrl.hxx> #include <fontcfg.hxx> class SfxPrinter; @@ -322,24 +323,24 @@ public: class SwRedlineOptionsTabPage : public SfxTabPage { VclPtr<ListBox> pInsertLB; - VclPtr<ColorListBox> pInsertColorLB; + VclPtr<SvxColorListBox> pInsertColorLB; VclPtr<SvxFontPrevWindow> pInsertedPreviewWN; VclPtr<ListBox> pDeletedLB; - VclPtr<ColorListBox> pDeletedColorLB; + VclPtr<SvxColorListBox> pDeletedColorLB; VclPtr<SvxFontPrevWindow> pDeletedPreviewWN; VclPtr<ListBox> pChangedLB; - VclPtr<ColorListBox> pChangedColorLB; + VclPtr<SvxColorListBox> pChangedColorLB; VclPtr<SvxFontPrevWindow> pChangedPreviewWN; VclPtr<ListBox> pMarkPosLB; - VclPtr<ColorListBox> pMarkColorLB; + VclPtr<SvxColorListBox> pMarkColorLB; VclPtr<SwMarkPreview> pMarkPreviewWN; OUString sAuthor; OUString sNone; - + void ChangedMaskPrev(); DECL_LINK_TYPED(AttribHdl, ListBox&, void); DECL_LINK_TYPED(ChangedMaskPrevHdl, ListBox&, void); DECL_LINK_TYPED(ColorHdl, ListBox&, void); diff --git a/sw/source/uibase/inc/pgfnote.hxx b/sw/source/uibase/inc/pgfnote.hxx index fcb35a1a4eb4..0494d9349e07 100644 --- a/sw/source/uibase/inc/pgfnote.hxx +++ b/sw/source/uibase/inc/pgfnote.hxx @@ -27,6 +27,7 @@ #include <vcl/group.hxx> #include <svtools/ctrlbox.hxx> +#include <svx/colorbox.hxx> // footnote settings TabPage class SwFootNotePage: public SfxTabPage @@ -53,7 +54,7 @@ private: VclPtr<ListBox> m_pLinePosBox; VclPtr<LineListBox> m_pLineTypeBox; VclPtr<MetricField> m_pLineWidthEdit; - VclPtr<ColorListBox> m_pLineColorBox; + VclPtr<SvxColorListBox> m_pLineColorBox; VclPtr<MetricField> m_pLineLengthEdit; VclPtr<MetricField> m_pLineDistEdit; @@ -61,7 +62,7 @@ private: DECL_LINK_TYPED( HeightMetric, Button*, void ); DECL_LINK_TYPED( HeightModify, Control&, void ); DECL_LINK_TYPED( LineWidthChanged_Impl, Edit&, void ); - DECL_LINK_TYPED( LineColorSelected_Impl, ListBox&, void ); + DECL_LINK_TYPED( LineColorSelected_Impl, SvxColorListBox&, void ); long lMaxHeight; diff --git a/sw/source/uibase/inc/pggrid.hxx b/sw/source/uibase/inc/pggrid.hxx index d57c3f2bd5a0..1ad74afdd089 100644 --- a/sw/source/uibase/inc/pggrid.hxx +++ b/sw/source/uibase/inc/pggrid.hxx @@ -24,6 +24,7 @@ #include <vcl/field.hxx> #include <vcl/fixed.hxx> #include <svtools/ctrlbox.hxx> +#include <svx/colorbox.hxx> // TabPage Format/(Styles/)Page/Text grid class SwTextGridPage: public SfxTabPage @@ -57,7 +58,7 @@ class SwTextGridPage: public SfxTabPage VclPtr<CheckBox> m_pDisplayCB; VclPtr<CheckBox> m_pPrintCB; - VclPtr<ColorListBox> m_pColorLB; + VclPtr<SvxColorListBox> m_pColorLB; sal_Int32 m_nRubyUserValue; bool m_bRubyUserValue; @@ -76,7 +77,7 @@ class SwTextGridPage: public SfxTabPage DECL_LINK_TYPED(CharorLineLoseFocusdHdl, Control&, void); DECL_LINK_TYPED(TextSizeChangedHdl, SpinField&, void); DECL_LINK_TYPED(TextSizeLoseFocusHdl, Control&, void); - DECL_LINK_TYPED(GridModifyHdl, ListBox&, void); + DECL_LINK_TYPED(ColorModifyHdl, SvxColorListBox&, void); DECL_LINK_TYPED(GridModifyClickHdl, Button*, void); DECL_LINK_TYPED(DisplayGridHdl, Button*, void); diff --git a/sw/source/uibase/shells/drawsh.cxx b/sw/source/uibase/shells/drawsh.cxx index 332497da5c35..0fa0ca9d8a18 100644 --- a/sw/source/uibase/shells/drawsh.cxx +++ b/sw/source/uibase/shells/drawsh.cxx @@ -579,16 +579,6 @@ void SwDrawShell::GetFormTextState(SfxItemSet& rSet) SdrView* pDrView = rSh.GetDrawView(); const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList(); const SdrObject* pObj = nullptr; - SvxFontWorkDialog* pDlg = nullptr; - - const sal_uInt16 nId = SvxFontWorkChildWindow::GetChildWindowId(); - - SfxViewFrame* pVFrame = GetView().GetViewFrame(); - if ( pVFrame->HasChildWindow(nId) ) - { - SfxChildWindow *pChildWindow = pVFrame->GetChildWindow(nId); - pDlg = pChildWindow ? static_cast<SvxFontWorkDialog*>(pChildWindow->GetWindow()) : nullptr; - } if ( rMarkList.GetMarkCount() == 1 ) pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); @@ -616,9 +606,6 @@ void SwDrawShell::GetFormTextState(SfxItemSet& rSet) } else { - if ( pDlg ) - pDlg->SetColorList(XColorList::GetStdColorList()); - pDrView->GetAttributes( rSet ); } } diff --git a/sw/source/uibase/shells/drwtxtsh.cxx b/sw/source/uibase/shells/drwtxtsh.cxx index 15fb8fb11aa2..1e0e89857d6a 100644 --- a/sw/source/uibase/shells/drwtxtsh.cxx +++ b/sw/source/uibase/shells/drwtxtsh.cxx @@ -238,16 +238,6 @@ void SwDrawTextShell::GetFormTextState(SfxItemSet& rSet) SdrView* pDrView = rSh.GetDrawView(); const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList(); const SdrObject* pObj = nullptr; - SvxFontWorkDialog* pDlg = nullptr; - - const sal_uInt16 nId = SvxFontWorkChildWindow::GetChildWindowId(); - - SfxViewFrame* pVFrame = GetView().GetViewFrame(); - if (pVFrame->HasChildWindow(nId)) - { - SfxChildWindow* pWnd = pVFrame->GetChildWindow(nId); - pDlg = pWnd ? static_cast<SvxFontWorkDialog*>(pWnd->GetWindow()) : nullptr; - } if ( rMarkList.GetMarkCount() == 1 ) pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); @@ -275,9 +265,6 @@ void SwDrawTextShell::GetFormTextState(SfxItemSet& rSet) } else { - if ( pDlg ) - pDlg->SetColorList(XColorList::GetStdColorList()); - pDrView->GetAttributes( rSet ); } } diff --git a/sw/uiconfig/swriter/ui/columnpage.ui b/sw/uiconfig/swriter/ui/columnpage.ui index 782f1f655c26..4d5fd3528346 100644 --- a/sw/uiconfig/swriter/ui/columnpage.ui +++ b/sw/uiconfig/swriter/ui/columnpage.ui @@ -535,7 +535,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="colorlb"> + <object class="svxlo-SvxColorListBox" id="colorlb"> <property name="visible">True</property> <property name="dropdown">True</property> <property name="can_focus">False</property> diff --git a/sw/uiconfig/swriter/ui/footnoteareapage.ui b/sw/uiconfig/swriter/ui/footnoteareapage.ui index 1a921ee6f380..c5a046e43002 100644 --- a/sw/uiconfig/swriter/ui/footnoteareapage.ui +++ b/sw/uiconfig/swriter/ui/footnoteareapage.ui @@ -342,7 +342,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="color"> + <object class="svxlo-SvxColorListBox" id="color"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">start</property> diff --git a/sw/uiconfig/swriter/ui/optredlinepage.ui b/sw/uiconfig/swriter/ui/optredlinepage.ui index a099aa3e014c..0032524d4d78 100644 --- a/sw/uiconfig/swriter/ui/optredlinepage.ui +++ b/sw/uiconfig/swriter/ui/optredlinepage.ui @@ -91,7 +91,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="insertcolor"> + <object class="svxlo-SvxColorListBox" id="insertcolor"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="valign">center</property> @@ -208,7 +208,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="deletedcolor"> + <object class="svxlo-SvxColorListBox" id="deletedcolor"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="valign">center</property> @@ -325,7 +325,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="changedcolor"> + <object class="svxlo-SvxColorListBox" id="changedcolor"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="valign">center</property> @@ -397,7 +397,7 @@ <property name="row_spacing">6</property> <property name="column_spacing">12</property> <child> - <object class="svtlo-ColorListBox" id="markcolor"> + <object class="svxlo-SvxColorListBox" id="markcolor"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="valign">center</property> diff --git a/sw/uiconfig/swriter/ui/textgridpage.ui b/sw/uiconfig/swriter/ui/textgridpage.ui index d95343da6f12..70ecde4b9d86 100644 --- a/sw/uiconfig/swriter/ui/textgridpage.ui +++ b/sw/uiconfig/swriter/ui/textgridpage.ui @@ -476,7 +476,7 @@ </packing> </child> <child> - <object class="svtlo-ColorListBox" id="listLB_COLOR"> + <object class="svxlo-SvxColorListBox" id="listLB_COLOR"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">start</property> |