summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2016-11-05 13:28:17 -0500
committerNorbert Thiebaud <nthiebaud@gmail.com>2016-11-05 13:42:40 -0500
commitdb380aab1063e8a5e40111c40ee9f7921aa82601 (patch)
treef5057dfb205a7d7409251742888dfeaf4bfbee61
parentadd LENB test case (diff)
downloadcore-db380aab1063e8a5e40111c40ee9f7921aa82601.tar.gz
core-db380aab1063e8a5e40111c40ee9f7921aa82601.zip
Reverts a commit series that cripple windows ci.
Revert "SvxShadowTabPage::Construct was removed" f9a2c1c12ecad833c63b894c89d6008907477eb5. Revert "replace OColorPopup with SvxColorWindow" f300754bb1c6a347c92bb9548be7a65237176542. Revert "drop AutoColorInvalid/SID_ATTR_AUTO_COLOR_INVALID" 347c2c334589b18cc62af292674bb3df1dd54b71. Revert "replace last ColorLB use with a listbox of colors" 604b35bf55351751a396e34dcca3f85e75860fd5. Revert "simplify, its just a vector of colors" 351a97ce6bda3075677b59fa1387ba3d1ab17d7a. Revert "replace user draw with an Image of the color" df738e0f8ceedb4bad756960be14d9c41adc165d. Revert "strip down to the used pieces" commit 08d6cd788f2584ce10ab8fa10665245e953c59d9. Revert "move now combined ColorLB to location of last user" a19b18ad7c9eb0197c10e6d7e451ec4542e4bc9e. Revert "fold ColorListBox and ColorLB together" a989a0b1f2b425f05b58d0e44ce2de31c842ed65. Revert "move ColorListBox beside sole thing that uses it" 760a198e697f3070a5e0e029e4eff7be220eb9cd. Revert "extensions leaks out details of Color Selector, patch it up" 8bea644d6117a49405e6426dc97214220fc869d1. Revert "inherit FillAttrLB from ListBox not ColorListBox" d2ce812f1d3a7a2aad89ca0bd11948b63d2db7b0. Revert "unify color selectors" 43bc3031483d172eccd72c3804e2d4fc2ef37de4.
-rw-r--r--chart2/source/controller/dialogs/dlg_View3D.cxx4
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx30
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx11
-rw-r--r--chart2/source/controller/inc/dlg_View3D.hxx3
-rw-r--r--chart2/source/controller/main/ChartController_Properties.cxx2
-rw-r--r--chart2/source/controller/sidebar/ChartColorWrapper.cxx4
-rw-r--r--chart2/source/controller/sidebar/ChartColorWrapper.hxx3
-rw-r--r--chart2/uiconfig/ui/tp_3D_SceneIllumination.ui4
-rw-r--r--cui/source/inc/border.hxx7
-rw-r--r--cui/source/inc/chardlg.hxx11
-rw-r--r--cui/source/inc/cuires.hrc1
-rw-r--r--cui/source/inc/cuitabarea.hxx24
-rw-r--r--cui/source/inc/cuitabline.hxx5
-rw-r--r--cui/source/inc/numpages.hxx6
-rw-r--r--cui/source/options/optchart.cxx107
-rw-r--r--cui/source/options/optchart.hxx15
-rw-r--r--cui/source/options/optcolor.cxx93
-rw-r--r--cui/source/tabpages/backgrnd.cxx2
-rw-r--r--cui/source/tabpages/border.cxx58
-rw-r--r--cui/source/tabpages/borderconn.cxx13
-rw-r--r--cui/source/tabpages/borderconn.hxx4
-rw-r--r--cui/source/tabpages/chardlg.cxx166
-rw-r--r--cui/source/tabpages/numpages.cxx32
-rw-r--r--cui/source/tabpages/strings.src4
-rw-r--r--cui/source/tabpages/tabarea.cxx1
-rw-r--r--cui/source/tabpages/tabline.cxx1
-rw-r--r--cui/source/tabpages/tpgradnt.cxx56
-rw-r--r--cui/source/tabpages/tphatch.cxx55
-rw-r--r--cui/source/tabpages/tpline.cxx30
-rw-r--r--cui/source/tabpages/tppattern.cxx58
-rw-r--r--cui/source/tabpages/tpshadow.cxx36
-rw-r--r--cui/uiconfig/ui/borderpage.ui4
-rw-r--r--cui/uiconfig/ui/colorconfigwin.ui92
-rw-r--r--cui/uiconfig/ui/effectspage.ui6
-rw-r--r--cui/uiconfig/ui/gradientpage.ui4
-rw-r--r--cui/uiconfig/ui/hatchpage.ui4
-rw-r--r--cui/uiconfig/ui/linetabpage.ui2
-rw-r--r--cui/uiconfig/ui/numberingoptionspage.ui2
-rw-r--r--cui/uiconfig/ui/optchartcolorspage.ui3
-rw-r--r--cui/uiconfig/ui/patterntabpage.ui4
-rw-r--r--cui/uiconfig/ui/shadowtabpage.ui2
-rw-r--r--extensions/source/propctrlr/commoncontrol.cxx5
-rw-r--r--extensions/source/propctrlr/commoncontrol.hxx19
-rw-r--r--extensions/source/propctrlr/standardcontrol.cxx109
-rw-r--r--extensions/source/propctrlr/standardcontrol.hxx24
-rw-r--r--extras/source/glade/libreoffice-catalog.xml.in22
-rw-r--r--include/sfx2/controlwrapper.hxx22
-rw-r--r--include/svtools/ctrlbox.hxx82
-rw-r--r--include/svtools/svtools.hrc2
-rw-r--r--include/svx/PaletteManager.hxx11
-rw-r--r--include/svx/bmpmask.hxx15
-rw-r--r--include/svx/colorbox.hxx94
-rw-r--r--include/svx/colorwindow.hxx48
-rw-r--r--include/svx/dialogs.hrc7
-rw-r--r--include/svx/dlgctrl.hxx16
-rw-r--r--include/svx/float3d.hxx34
-rw-r--r--include/svx/fontwork.hxx9
-rw-r--r--include/svx/sidebar/AreaPropertyPanelBase.hxx6
-rw-r--r--include/svx/svxids.hrc6
-rw-r--r--include/svx/tbcontrl.hxx16
-rw-r--r--reportdesign/inc/RptResId.hrc4
-rw-r--r--reportdesign/inc/helpids.hrc1
-rw-r--r--reportdesign/source/ui/dlg/CondFormat.src16
-rw-r--r--reportdesign/source/ui/dlg/Condition.cxx174
-rw-r--r--reportdesign/source/ui/dlg/Condition.hxx18
-rw-r--r--sc/inc/sc.hrc2
-rw-r--r--sc/source/ui/condformat/colorformat.cxx57
-rw-r--r--sc/source/ui/condformat/condformatdlgentry.cxx79
-rw-r--r--sc/source/ui/dbgui/scendlg.cxx22
-rw-r--r--sc/source/ui/drawfunc/drawsh4.cxx25
-rw-r--r--sc/source/ui/drawfunc/drtxtob2.cxx25
-rw-r--r--sc/source/ui/inc/colorformat.hxx8
-rw-r--r--sc/source/ui/inc/condformatdlgentry.hxx11
-rw-r--r--sc/source/ui/inc/opredlin.hxx9
-rw-r--r--sc/source/ui/inc/scendlg.hxx4
-rw-r--r--sc/source/ui/inc/tpview.hxx3
-rw-r--r--sc/source/ui/optdlg/opredlin.cxx114
-rw-r--r--sc/source/ui/optdlg/tpview.cxx59
-rw-r--r--sc/source/ui/src/scstring.src5
-rw-r--r--sc/uiconfig/scalc/ui/conditionalentry.ui6
-rw-r--r--sc/uiconfig/scalc/ui/databaroptions.ui17
-rw-r--r--sc/uiconfig/scalc/ui/optchangespage.ui8
-rw-r--r--sc/uiconfig/scalc/ui/scenariodialog.ui2
-rw-r--r--sc/uiconfig/scalc/ui/tpviewpage.ui2
-rw-r--r--sd/inc/sdabstdlg.hxx2
-rw-r--r--sd/qa/unit/dialogs-test.cxx6
-rw-r--r--sd/source/ui/animations/CustomAnimationDialog.cxx82
-rw-r--r--sd/source/ui/dlg/copydlg.cxx35
-rw-r--r--sd/source/ui/dlg/sddlgfact.cxx3
-rw-r--r--sd/source/ui/dlg/sddlgfact.hxx2
-rw-r--r--sd/source/ui/func/fucopy.cxx2
-rw-r--r--sd/source/ui/inc/copydlg.hxx12
-rw-r--r--sd/source/ui/sidebar/SlideBackground.cxx36
-rw-r--r--sd/source/ui/sidebar/SlideBackground.hxx8
-rw-r--r--sd/source/ui/view/drviews6.cxx21
-rw-r--r--sd/source/ui/view/drviewsi.cxx2
-rw-r--r--sd/uiconfig/sdraw/ui/copydlg.ui4
-rw-r--r--sd/uiconfig/simpress/ui/customanimationeffecttab.ui2
-rw-r--r--sd/uiconfig/simpress/ui/sidebarslidebackground.ui4
-rw-r--r--sfx2/source/dialog/itemconnect.cxx28
-rw-r--r--svtools/source/control/ctrlbox.cxx224
-rw-r--r--svtools/source/control/ctrlbox.src5
-rw-r--r--svx/sdi/svx.sdi19
-rw-r--r--svx/source/dialog/_bmpmask.cxx56
-rw-r--r--svx/source/dialog/bmpmask.hrc2
-rw-r--r--svx/source/dialog/bmpmask.src5
-rw-r--r--svx/source/dialog/dlgctrl.cxx48
-rw-r--r--svx/source/dialog/fontwork.cxx13
-rw-r--r--svx/source/engine3d/float3d.cxx191
-rw-r--r--svx/source/engine3d/float3d.src15
-rw-r--r--svx/source/sidebar/area/AreaPropertyPanelBase.cxx97
-rw-r--r--svx/source/sidebar/shadow/ShadowPropertyPanel.cxx37
-rw-r--r--svx/source/sidebar/shadow/ShadowPropertyPanel.hxx11
-rw-r--r--svx/source/tbxctrls/PaletteManager.cxx23
-rw-r--r--svx/source/tbxctrls/tbcontrl.cxx411
-rw-r--r--svx/source/tbxctrls/tbcontrl.src12
-rw-r--r--svx/uiconfig/ui/colorwindow.ui50
-rw-r--r--svx/uiconfig/ui/docking3deffects.ui24
-rw-r--r--svx/uiconfig/ui/dockingcolorreplace.ui10
-rw-r--r--svx/uiconfig/ui/dockingfontwork.ui2
-rw-r--r--svx/uiconfig/ui/sidebararea.ui4
-rw-r--r--svx/uiconfig/ui/sidebarshadow.ui2
-rw-r--r--sw/inc/authratr.hxx2
-rw-r--r--sw/source/core/access/accpara.cxx1
-rw-r--r--sw/source/ui/config/optpage.cxx240
-rw-r--r--sw/source/ui/frmdlg/column.cxx42
-rw-r--r--sw/source/ui/misc/pgfnote.cxx42
-rw-r--r--sw/source/ui/misc/pggrid.cxx30
-rw-r--r--sw/source/uibase/app/swmodul1.cxx1
-rw-r--r--sw/source/uibase/inc/column.hxx4
-rw-r--r--sw/source/uibase/inc/optpage.hxx16
-rw-r--r--sw/source/uibase/inc/pgfnote.hxx5
-rw-r--r--sw/source/uibase/inc/pggrid.hxx7
-rw-r--r--sw/source/uibase/shells/drawsh.cxx13
-rw-r--r--sw/source/uibase/shells/drwtxtsh.cxx13
-rw-r--r--sw/source/uibase/sidebar/PageStylesPanel.cxx62
-rw-r--r--sw/source/uibase/sidebar/PageStylesPanel.hxx8
-rw-r--r--sw/uiconfig/swriter/ui/columnpage.ui2
-rw-r--r--sw/uiconfig/swriter/ui/footnoteareapage.ui2
-rw-r--r--sw/uiconfig/swriter/ui/optredlinepage.ui20
-rw-r--r--sw/uiconfig/swriter/ui/pagestylespanel.ui4
-rw-r--r--sw/uiconfig/swriter/ui/textgridpage.ui2
142 files changed, 2725 insertions, 1488 deletions
diff --git a/chart2/source/controller/dialogs/dlg_View3D.cxx b/chart2/source/controller/dialogs/dlg_View3D.cxx
index 7cfd50f41fd1..eb0150b1ad7a 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)
+View3DDialog::View3DDialog(vcl::Window* pParent, const uno::Reference< frame::XModel > & xChartModel, const XColorListRef &pColorTable )
: 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);
+ m_pIllumination = VclPtr<ThreeD_SceneIllumination_TabPage>::Create(m_pTabControl,xSceneProperties,xChartModel,pColorTable);
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 40f2857859bb..bdd53ff10d21 100644
--- a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
+++ b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
@@ -22,7 +22,6 @@
#include "Bitmaps.hrc"
#include "CommonConverters.hxx"
-#include <svx/colorbox.hxx>
#include "svx/dialogs.hrc"
#include <svx/dialmgr.hxx>
#include <rtl/math.hxx>
@@ -104,7 +103,7 @@ void LightSourceInfo::initButtonFromSource()
namespace
{
- OUString lcl_makeColorName(const Color& rColor)
+ OUString lcl_makeColorName( Color rColor )
{
OUString aStr = SVX_RESSTR(RID_SVXFLOAT3D_FIX_R) +
OUString::number(rColor.GetRed()) +
@@ -116,11 +115,15 @@ namespace
OUString::number(rColor.GetBlue());
return aStr;
}
-
- void lcl_selectColor(SvxColorListBox& rListBox, const Color& rColor)
+ void lcl_selectColor( ColorListBox& rListBox, const Color& rColor )
{
rListBox.SetNoSelection();
- rListBox.SelectEntry(std::make_pair(rColor, lcl_makeColorName(rColor)));
+ rListBox.SelectEntry( rColor );
+ if( rListBox.GetSelectEntryCount() == 0 )
+ {
+ const sal_Int32 nPos = rListBox.InsertEntry( rColor, lcl_makeColorName( rColor ) );
+ rListBox.SelectEntryPos( nPos );
+ }
}
::chart::LightSource lcl_getLightSourceFromProperties(
@@ -212,7 +215,8 @@ namespace
ThreeD_SceneIllumination_TabPage::ThreeD_SceneIllumination_TabPage( vcl::Window* pWindow
, const uno::Reference< beans::XPropertySet > & xSceneProperties
- , const uno::Reference< frame::XModel >& xChartModel )
+ , const uno::Reference< frame::XModel >& xChartModel
+ , const XColorListRef & pColorTable )
: TabPage ( pWindow
,"tp_3D_SceneIllumination"
,"modules/schart/ui/tp_3D_SceneIllumination.ui")
@@ -238,6 +242,14 @@ 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;
@@ -396,7 +408,7 @@ IMPL_LINK_NOARG(ThreeD_SceneIllumination_TabPage, PreviewSelectHdl, SvxLightCtl3
IMPL_LINK( ThreeD_SceneIllumination_TabPage, ColorDialogHdl, Button*, pButton, void )
{
bool bIsAmbientLight = (pButton==m_pBtn_AmbientLight_Color);
- SvxColorListBox* pListBox = ( bIsAmbientLight ? m_pLB_AmbientLight : m_pLB_LightSource);
+ ColorLB* pListBox = ( bIsAmbientLight ? m_pLB_AmbientLight : m_pLB_LightSource);
SvColorDialog aColorDlg( this );
aColorDlg.SetColor( pListBox->GetSelectEntryColor() );
@@ -429,9 +441,9 @@ IMPL_LINK( ThreeD_SceneIllumination_TabPage, ColorDialogHdl, Button*, pButton, v
}
}
-IMPL_LINK( ThreeD_SceneIllumination_TabPage, SelectColorHdl, SvxColorListBox&, rBox, void )
+IMPL_LINK( ThreeD_SceneIllumination_TabPage, SelectColorHdl, ListBox&, rBox, void )
{
- SvxColorListBox* pListBox = &rBox;
+ ColorLB* pListBox = static_cast<ColorLB*>(&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 42517359f6fc..515ace16b8e4 100644
--- a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx
+++ b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx
@@ -29,8 +29,6 @@
#include <svx/dlgctrl.hxx>
#include <svx/dlgctl3d.hxx>
-class SvxColorListBox;
-
namespace chart
{
@@ -54,13 +52,14 @@ public:
ThreeD_SceneIllumination_TabPage(
vcl::Window* pWindow,
const css::uno::Reference< css::beans::XPropertySet > & xSceneProperties,
- const css::uno::Reference< css::frame::XModel >& xChartModel );
+ const css::uno::Reference< css::frame::XModel >& xChartModel,
+ const XColorListRef &pColorTable );
virtual ~ThreeD_SceneIllumination_TabPage() override;
virtual void dispose() override;
private:
DECL_LINK( ClickLightSourceButtonHdl, Button*, void );
- DECL_LINK( SelectColorHdl, SvxColorListBox&, void );
+ DECL_LINK( SelectColorHdl, ListBox&, void );
DECL_LINK( ColorDialogHdl, Button*, void );
DECL_LINK( PreviewChangeHdl, SvxLightCtl3D*, void );
DECL_LINK( PreviewSelectHdl, SvxLightCtl3D*, void );
@@ -82,10 +81,10 @@ private:
VclPtr<LightButton> m_pBtn_Light7;
VclPtr<LightButton> m_pBtn_Light8;
- VclPtr<SvxColorListBox> m_pLB_LightSource;
+ VclPtr<ColorLB> m_pLB_LightSource;
VclPtr<PushButton> m_pBtn_LightSource_Color;
- VclPtr<SvxColorListBox> m_pLB_AmbientLight;
+ VclPtr<ColorLB> 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 a5646ab535bc..b63ece7bea10 100644
--- a/chart2/source/controller/inc/dlg_View3D.hxx
+++ b/chart2/source/controller/inc/dlg_View3D.hxx
@@ -38,7 +38,8 @@ class View3DDialog : public TabDialog
{
public:
View3DDialog( vcl::Window* pWindow,
- const css::uno::Reference< css::frame::XModel > & xChartModel );
+ const css::uno::Reference< css::frame::XModel > & xChartModel,
+ const XColorListRef &pColorTable );
virtual ~View3DDialog() override;
virtual void dispose() override;
diff --git a/chart2/source/controller/main/ChartController_Properties.cxx b/chart2/source/controller/main/ChartController_Properties.cxx
index 7636aa982176..00e7294f824a 100644
--- a/chart2/source/controller/main/ChartController_Properties.cxx
+++ b/chart2/source/controller/main/ChartController_Properties.cxx
@@ -823,7 +823,7 @@ void ChartController::executeDispatch_View3D()
//open dialog
SolarMutexGuard aSolarGuard;
- ScopedVclPtrInstance< View3DDialog > aDlg(m_pChartWindow, getModel());
+ ScopedVclPtrInstance< View3DDialog > aDlg( m_pChartWindow, getModel(), m_pDrawModelWrapper->GetColorList() );
if( aDlg->Execute() == RET_OK )
aUndoGuard.commit();
}
diff --git a/chart2/source/controller/sidebar/ChartColorWrapper.cxx b/chart2/source/controller/sidebar/ChartColorWrapper.cxx
index ee931d06503f..b2ff6196916d 100644
--- a/chart2/source/controller/sidebar/ChartColorWrapper.cxx
+++ b/chart2/source/controller/sidebar/ChartColorWrapper.cxx
@@ -67,12 +67,12 @@ ChartColorWrapper::ChartColorWrapper(
{
}
-void ChartColorWrapper::operator()(const OUString& , const NamedColor& rColor)
+void ChartColorWrapper::operator()(const OUString& , const Color& rColor)
{
css::uno::Reference<css::beans::XPropertySet> xPropSet = getPropSet(mxModel);
assert(xPropSet.is());
- xPropSet->setPropertyValue(maPropertyName, css::uno::makeAny(rColor.first.GetColor()));
+ xPropSet->setPropertyValue(maPropertyName, css::uno::makeAny(rColor.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 b98750312c16..68fb5141b564 100644
--- a/chart2/source/controller/sidebar/ChartColorWrapper.hxx
+++ b/chart2/source/controller/sidebar/ChartColorWrapper.hxx
@@ -12,7 +12,6 @@
#include <com/sun/star/frame/XFramesSupplier.hpp>
#include <tools/color.hxx>
-#include <svx/Palette.hxx>
class SvxColorToolBoxControl;
@@ -27,7 +26,7 @@ public:
SvxColorToolBoxControl* pControl,
const OUString& rPropertyName);
- void operator()(const OUString& rCommand, const NamedColor& rColor);
+ void operator()(const OUString& rCommand, const Color& 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 e445660771bd..7ff9fbf4d097 100644
--- a/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui
+++ b/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui
@@ -236,7 +236,7 @@
<property name="can_focus">False</property>
<property name="spacing">12</property>
<child>
- <object class="svxlo-SvxColorListBox" id="LB_LIGHTSOURCE">
+ <object class="svxlo-ColorLB" id="LB_LIGHTSOURCE">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -310,7 +310,7 @@
<property name="can_focus">False</property>
<property name="spacing">12</property>
<child>
- <object class="svxlo-SvxColorListBox" id="LB_AMBIENTLIGHT">
+ <object class="svxlo-ColorLB" 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 915debae2dfc..9675b1029a94 100644
--- a/cui/source/inc/border.hxx
+++ b/cui/source/inc/border.hxx
@@ -25,7 +25,6 @@
#include <vcl/fixed.hxx>
#include <svtools/valueset.hxx>
#include <sfx2/tabdlg.hxx>
-#include <svx/colorbox.hxx>
#include <svx/frmsel.hxx>
#include <svx/flagsdef.hxx>
@@ -73,7 +72,7 @@ private:
VclPtr<svx::FrameSelector> m_pFrameSel;
VclPtr<LineListBox> m_pLbLineStyle;
- VclPtr<SvxColorListBox> m_pLbLineColor;
+ VclPtr<ColorListBox> m_pLbLineColor;
VclPtr<MetricField> m_pLineWidthMF;
VclPtr<VclContainer> m_pSpacingFrame;
@@ -92,7 +91,7 @@ private:
VclPtr<FixedText> m_pFtShadowSize;
VclPtr<MetricField> m_pEdShadowSize;
VclPtr<FixedText> m_pFtShadowColor;
- VclPtr<SvxColorListBox> m_pLbShadowColor;
+ VclPtr<ColorListBox> m_pLbShadowColor;
VclPtr<VclContainer> m_pPropertiesFrame;///< properties - "Merge with next paragraph" in Writer
@@ -121,7 +120,7 @@ private:
// Handler
DECL_LINK( SelStyleHdl_Impl, ListBox&, void );
- DECL_LINK( SelColHdl_Impl, SvxColorListBox&, void );
+ DECL_LINK( SelColHdl_Impl, ListBox&, void );
DECL_LINK( SelPreHdl_Impl, ValueSet*, void );
DECL_LINK( SelSdwHdl_Impl, ValueSet*, void );
DECL_LINK( LinesChanged_Impl, LinkParamNone*, void );
diff --git a/cui/source/inc/chardlg.hxx b/cui/source/inc/chardlg.hxx
index 484897d93afe..bea73e4f253e 100644
--- a/cui/source/inc/chardlg.hxx
+++ b/cui/source/inc/chardlg.hxx
@@ -23,7 +23,6 @@
#include <sfx2/tabdlg.hxx>
#include <svx/fntctrl.hxx>
#include <svx/checklbx.hxx>
-#include <svx/colorbox.hxx>
#include <svx/langbox.hxx>
#include <vcl/layout.hxx>
#include <memory>
@@ -176,7 +175,7 @@ class SvxCharEffectsPage : public SvxCharBasePage
private:
static const sal_uInt16 pEffectsRanges[];
VclPtr<FixedText> m_pFontColorFT;
- VclPtr<SvxColorListBox> m_pFontColorLB;
+ VclPtr<ColorListBox> m_pFontColorLB;
VclPtr<FixedText> m_pEffectsFT;
VclPtr<ListBox> m_pEffectsLB;
@@ -191,13 +190,13 @@ private:
VclPtr<ListBox> m_pOverlineLB;
VclPtr<FixedText> m_pOverlineColorFT;
- VclPtr<SvxColorListBox> m_pOverlineColorLB;
+ VclPtr<ColorListBox> m_pOverlineColorLB;
VclPtr<ListBox> m_pStrikeoutLB;
VclPtr<ListBox> m_pUnderlineLB;
VclPtr<FixedText> m_pUnderlineColorFT;
- VclPtr<SvxColorListBox> m_pUnderlineColorLB;
+ VclPtr<ColorListBox> m_pUnderlineColorLB;
VclPtr<CheckBox> m_pIndividualWordsBtn;
@@ -211,6 +210,8 @@ private:
sal_uInt16 m_nHtmlMode;
+ OUString m_aTransparentColorName;
+
SvxCharEffectsPage( vcl::Window* pParent, const SfxItemSet& rSet );
void Initialize();
@@ -224,7 +225,7 @@ private:
DECL_LINK(CbClickHdl_Impl, Button*, void);
DECL_LINK(TristClickHdl_Impl, Button*, void);
DECL_LINK(UpdatePreview_Impl, ListBox&, void);
- DECL_LINK(ColorBoxSelectHdl_Impl, SvxColorListBox&, void);
+ DECL_LINK(ColorBoxSelectHdl_Impl, ListBox&, void);
public:
virtual ~SvxCharEffectsPage() override;
diff --git a/cui/source/inc/cuires.hrc b/cui/source/inc/cuires.hrc
index 33f5ea39e1a1..0f57cf68ef32 100644
--- a/cui/source/inc/cuires.hrc
+++ b/cui/source/inc/cuires.hrc
@@ -85,6 +85,7 @@
#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 362777aa0e02..52d4fce87273 100644
--- a/cui/source/inc/cuitabarea.hxx
+++ b/cui/source/inc/cuitabarea.hxx
@@ -39,7 +39,6 @@
class SdrModel;
class SvxBitmapCtl;
-class SvxColorListBox;
/************************************************************************/
class ButtonBox
@@ -322,7 +321,7 @@ private:
VclPtr<VclGrid> m_pGridShadow;
VclPtr<SvxRectCtl> m_pCtlPosition;
VclPtr<MetricField> m_pMtrDistance;
- VclPtr<SvxColorListBox> m_pLbShadowColor;
+ VclPtr<ColorLB> m_pLbShadowColor;
VclPtr<MetricField> m_pMtrTransparent;
VclPtr<SvxXShadowPreview> m_pCtlXRectPreview;
@@ -341,13 +340,14 @@ private:
DECL_LINK( ClickShadowHdl_Impl, Button*, void );
DECL_LINK( ModifyShadowHdl_Impl, Edit&, void );
- DECL_LINK( SelectShadowHdl_Impl, SvxColorListBox&, void );
+ DECL_LINK( SelectShadowHdl_Impl, ListBox&, void );
public:
SvxShadowTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
virtual ~SvxShadowTabPage() override;
virtual void dispose() override;
+ void Construct();
static VclPtr<SfxTabPage> Create( vcl::Window*, const SfxItemSet* );
static const sal_uInt16* GetRanges() { return pShadowRanges; }
@@ -381,9 +381,9 @@ private:
VclPtr<MetricField> m_pMtrAngle;
VclPtr<MetricField> m_pMtrBorder;
VclPtr<Slider> m_pSliderBorder;
- VclPtr<SvxColorListBox> m_pLbColorFrom;
+ VclPtr<ColorLB> m_pLbColorFrom;
VclPtr<MetricField> m_pMtrColorFrom;
- VclPtr<SvxColorListBox> m_pLbColorTo;
+ VclPtr<ColorLB> m_pLbColorTo;
VclPtr<MetricField> m_pMtrColorTo;
VclPtr<SvxPresetListBox> m_pGradientLB;
VclPtr<NumericField> m_pMtrIncrement;
@@ -413,7 +413,6 @@ private:
DECL_LINK( ClickRenameHdl_Impl, SvxPresetListBox*, void );
DECL_LINK( ClickDeleteHdl_Impl, SvxPresetListBox*, void );
DECL_LINK( ModifiedEditHdl_Impl, Edit&, void );
- DECL_LINK( ModifiedColorListBoxHdl_Impl, SvxColorListBox&, void );
DECL_LINK( ModifiedListBoxHdl_Impl, ListBox&, void );
DECL_LINK( ChangeAutoStepHdl_Impl, CheckBox&, void );
DECL_LINK( ModifiedSliderHdl_Impl, Slider*, void );
@@ -456,9 +455,9 @@ private:
VclPtr<MetricField> m_pMtrAngle;
VclPtr<Slider> m_pSliderAngle;
VclPtr<ListBox> m_pLbLineType;
- VclPtr<SvxColorListBox> m_pLbLineColor;
+ VclPtr<ColorLB> m_pLbLineColor;
VclPtr<CheckBox> m_pCbBackgroundColor;
- VclPtr<SvxColorListBox> m_pLbBackgroundColor;
+ VclPtr<ColorLB> m_pLbBackgroundColor;
VclPtr<SvxPresetListBox> m_pHatchLB;
VclPtr<SvxXRectPreview> m_pCtlPreview;
VclPtr<PushButton> m_pBtnAdd;
@@ -484,9 +483,8 @@ private:
void ChangeHatchHdl_Impl();
DECL_LINK( ModifiedEditHdl_Impl, Edit&, void );
DECL_LINK( ModifiedListBoxHdl_Impl, ListBox&, void );
- DECL_LINK( ModifiedColorListBoxHdl_Impl, SvxColorListBox&, void );
DECL_LINK( ToggleHatchBackgroundColor_Impl, CheckBox&, void );
- DECL_LINK( ModifiedBackgroundHdl_Impl, SvxColorListBox&, void );
+ DECL_LINK( ModifiedBackgroundHdl_Impl, ListBox&, void );
DECL_LINK( ModifiedSliderHdl_Impl, Slider*, void );
void ModifiedHdl_Impl(void*);
DECL_LINK( ClickAddHdl_Impl, Button*, void );
@@ -615,8 +613,8 @@ class SvxPatternTabPage : public SvxTabPage
private:
VclPtr<VclBox> m_pBxPixelEditor;
VclPtr<SvxPixelCtl> m_pCtlPixel;
- VclPtr<SvxColorListBox> m_pLbColor;
- VclPtr<SvxColorListBox> m_pLbBackgroundColor;
+ VclPtr<ColorLB> m_pLbColor;
+ VclPtr<ColorLB> m_pLbBackgroundColor;
VclPtr<SvxPresetListBox> m_pPatternLB;
VclPtr<SvxXRectPreview> m_pCtlPreview;
VclPtr<PushButton> m_pBtnAdd;
@@ -644,7 +642,7 @@ private:
DECL_LINK( ClickAddHdl_Impl, Button*, void );
DECL_LINK( ClickModifyHdl_Impl, Button*, void );
DECL_LINK( ChangePatternHdl_Impl, ValueSet*, void );
- DECL_LINK( ChangeColorHdl_Impl, SvxColorListBox&, void );
+ DECL_LINK( ChangeColorHdl_Impl, ListBox&, void );
DECL_LINK( ClickRenameHdl_Impl, SvxPresetListBox*, void );
DECL_LINK( ClickDeleteHdl_Impl, SvxPresetListBox*, void );
diff --git a/cui/source/inc/cuitabline.hxx b/cui/source/inc/cuitabline.hxx
index 39e7498e5fdb..957b421ecd2f 100644
--- a/cui/source/inc/cuitabline.hxx
+++ b/cui/source/inc/cuitabline.hxx
@@ -25,7 +25,6 @@
#include <svx/tabarea.hxx>
enum class PageType;
-class SvxColorListBox;
class SvxLineTabDialog : public SfxTabDialog
{
@@ -93,7 +92,7 @@ class SvxLineTabPage : public SvxTabPage
private:
VclPtr<VclBox> m_pBoxColor;
VclPtr<LineLB> m_pLbLineStyle;
- VclPtr<SvxColorListBox> m_pLbColor;
+ VclPtr<ColorLB> m_pLbColor;
VclPtr<VclBox> m_pBoxWidth;
VclPtr<MetricField> m_pMtrLineWidth;
VclPtr<VclBox> m_pBoxTransparency;
@@ -183,7 +182,7 @@ private:
DECL_LINK( ChangeEndModifyHdl_Impl, Edit&, void );
DECL_LINK( ChangeEndClickHdl_Impl, Button*, void );
void ChangeEndHdl_Impl(void*);
- DECL_LINK( ChangePreviewListBoxHdl_Impl, SvxColorListBox&, void );
+ DECL_LINK( ChangePreviewListBoxHdl_Impl, ListBox&, void );
DECL_LINK( ChangePreviewModifyHdl_Impl, Edit&, void );
void ChangePreviewHdl_Impl(void*);
DECL_LINK( ChangeTransparentHdl_Impl, Edit&, void );
diff --git a/cui/source/inc/numpages.hxx b/cui/source/inc/numpages.hxx
index afaaf1e61ba1..7f65cbf65511 100644
--- a/cui/source/inc/numpages.hxx
+++ b/cui/source/inc/numpages.hxx
@@ -23,7 +23,6 @@
#include <memory>
#include <sfx2/tabdlg.hxx>
-#include <svx/Palette.hxx>
#include <vcl/group.hxx>
#include <vcl/fixed.hxx>
#include <vcl/menubtn.hxx>
@@ -34,7 +33,6 @@
#include <svtools/ctrlbox.hxx>
#include <vcl/dialog.hxx>
-class SvxColorListBox;
class SvxNumRule;
class SvxBmpNumValueSet;
class SvxNumValueSet;
@@ -256,7 +254,7 @@ class SvxNumOptionsTabPage : public SfxTabPage
VclPtr<FixedText> m_pCharFmtFT;
VclPtr<ListBox> m_pCharFmtLB;
VclPtr<FixedText> m_pBulColorFT;
- VclPtr<SvxColorListBox> m_pBulColLB;
+ VclPtr<ColorListBox> m_pBulColLB;
VclPtr<FixedText> m_pBulRelSizeFT;
VclPtr<MetricField> m_pBulRelSizeMF;
VclPtr<FixedText> m_pAllLevelFT;
@@ -329,7 +327,7 @@ class SvxNumOptionsTabPage : public SfxTabPage
DECL_LINK( AllLevelHdl_Impl, Edit&, void );
DECL_LINK( OrientHdl_Impl, ListBox&, void );
DECL_LINK( SameLevelHdl_Impl, Button*, void );
- DECL_LINK( BulColorHdl_Impl, SvxColorListBox&, void );
+ DECL_LINK( BulColorHdl_Impl, ListBox&, void );
DECL_LINK( BulRelSizeHdl_Impl, Edit&, void);
DECL_LINK( PreviewInvalidateHdl_Impl, Timer *, void);
void EditModifyHdl_Impl(Edit*);
diff --git a/cui/source/options/optchart.cxx b/cui/source/options/optchart.cxx
index 060d3b0b6587..3d95da759c74 100644
--- a/cui/source/options/optchart.cxx
+++ b/cui/source/options/optchart.cxx
@@ -21,99 +21,24 @@
#include <cuires.hrc>
#include "optchart.hxx"
#include <dialmgr.hxx>
-#include <vcl/builderfactory.hxx>
#include <vcl/msgbox.hxx>
-#include <vcl/svapp.hxx>
#include <svx/svxids.hrc>
-Color SvxDefaultColorOptPage::GetSelectEntryColor() const
+namespace
{
- sal_Int32 nPos = m_pLbChartColors->GetSelectEntryPos();
- Color aColor;
- if (nPos != LISTBOX_ENTRY_NOTFOUND)
- aColor = GetEntryColor(nPos);
- return aColor;
-}
-
-void SvxDefaultColorOptPage::InsertColorEntry(const XColorEntry& rEntry, sal_Int32 nPos)
-{
- const Color& rColor = rEntry.GetColor();
- const OUString& rStr = rEntry.GetName();
-
- 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);
- xDevice->SetFillColor(rColor);
- xDevice->SetLineColor(rStyleSettings.GetDisableColor());
- xDevice->DrawRect(aRect);
- Bitmap aBitmap(xDevice->GetBitmap(Point(0, 0), xDevice->GetOutputSize()));
-
- nPos = m_pLbChartColors->InsertEntry(rStr, Image(aBitmap), nPos);
-
- if (nPos != LISTBOX_ERROR)
+ void FillBoxChartColorLB(ColorLB *pLB, const SvxChartColorTable & rTab)
{
- if ( static_cast<size_t>(nPos) < aColorList.size() )
+ pLB->SetUpdateMode(false);
+ pLB->Clear();
+ long nCount = rTab.size();
+ for(long i = 0; i < nCount; ++i)
{
- ImpColorList::iterator it = aColorList.begin();
- ::std::advance( it, nPos );
- aColorList.insert( it, rColor );
- }
- else
- {
- aColorList.push_back( rColor );
- nPos = aColorList.size() - 1;
+ pLB->Append(rTab[i]);
}
+ pLB->SetUpdateMode(true);
}
}
-void SvxDefaultColorOptPage::RemoveColorEntry(sal_Int32 nPos)
-{
- m_pLbChartColors->RemoveEntry(nPos);
- if ( 0 <= nPos && static_cast<size_t>(nPos) < aColorList.size() )
- {
- ImpColorList::iterator it = aColorList.begin();
- std::advance(it, nPos);
- aColorList.erase(it);
- }
-}
-
-void SvxDefaultColorOptPage::ClearColorEntries()
-{
- aColorList.clear();
- m_pLbChartColors->Clear();
-}
-
-Color SvxDefaultColorOptPage::GetEntryColor(sal_Int32 nPos) const
-{
- Color aColor;
- if (0 <= nPos && static_cast<size_t>(nPos) < aColorList.size())
- aColor = aColorList[nPos];
- return aColor;
-}
-
-void SvxDefaultColorOptPage::ModifyColorEntry(const XColorEntry& rEntry, sal_Int32 nPos)
-{
- RemoveColorEntry(nPos);
- InsertColorEntry(rEntry, nPos);
-}
-
-void SvxDefaultColorOptPage::FillBoxChartColorLB()
-{
- if (!pColorConfig)
- return;
-
- const SvxChartColorTable & rTab = pColorConfig->GetColorList();
- m_pLbChartColors->SetUpdateMode(false);
- ClearColorEntries();
- long nCount = rTab.size();
- for (long i = 0; i < nCount; ++i)
- InsertColorEntry(rTab[i]);
- m_pLbChartColors->SetUpdateMode(true);
-}
-
SvxDefaultColorOptPage::SvxDefaultColorOptPage(vcl::Window* pParent, const SfxItemSet& rInAttrs)
: SfxTabPage(pParent, "OptChartColorsPage","cui/ui/optchartcolorspage.ui", &rInAttrs)
{
@@ -184,7 +109,9 @@ void SvxDefaultColorOptPage::dispose()
void SvxDefaultColorOptPage::Construct()
{
- FillBoxChartColorLB();
+ if( pColorConfig )
+ FillBoxChartColorLB(m_pLbChartColors, pColorConfig->GetColorList());
+
FillColorBox();
m_pLbChartColors->SelectEntryPos( 0 );
@@ -257,7 +184,7 @@ IMPL_LINK_NOARG(SvxDefaultColorOptPage, ResetToDefaults, Button*, void)
{
pColorConfig->GetColorList().useDefault();
- FillBoxChartColorLB();
+ FillBoxChartColorLB(m_pLbChartColors, pColorConfig->GetColorList());
m_pLbChartColors->GetFocus();
m_pLbChartColors->SelectEntryPos( 0 );
@@ -276,7 +203,7 @@ IMPL_LINK_NOARG(SvxDefaultColorOptPage, AddChartColor, Button*, void)
pColorConfig->GetColorList().append (XColorEntry ( black, pColorConfig->GetColorList().getDefaultName(pColorConfig->GetColorList().size())));
- FillBoxChartColorLB();
+ FillBoxChartColorLB(m_pLbChartColors, pColorConfig->GetColorList());
m_pLbChartColors->GetFocus();
m_pLbChartColors->SelectEntryPos( pColorConfig->GetColorList().size() - 1 );
@@ -304,7 +231,7 @@ IMPL_LINK( SvxDefaultColorOptPage, RemoveChartColor, Button*, pButton, void )
{
pColorConfig->GetColorList().remove( nIndex );
- FillBoxChartColorLB();
+ FillBoxChartColorLB(m_pLbChartColors, pColorConfig->GetColorList());
m_pLbChartColors->GetFocus();
@@ -318,9 +245,9 @@ IMPL_LINK( SvxDefaultColorOptPage, RemoveChartColor, Button*, pButton, void )
}
}
-IMPL_LINK_NOARG( SvxDefaultColorOptPage, ListClickedHdl, ListBox&, void )
+IMPL_LINK( SvxDefaultColorOptPage, ListClickedHdl, ListBox&, _rBox, void )
{
- Color aCol = GetSelectEntryColor();
+ Color aCol = static_cast<ColorLB&>(_rBox).GetSelectEntryColor();
long nIndex = GetColorIndex( aCol );
@@ -337,7 +264,7 @@ IMPL_LINK_NOARG(SvxDefaultColorOptPage, BoxClickedHdl, ValueSet*, void)
{
const XColorEntry aEntry( m_pValSetColorBox->GetItemColor( m_pValSetColorBox->GetSelectItemId() ), m_pLbChartColors->GetSelectEntry() );
- ModifyColorEntry(aEntry, nIdx);
+ m_pLbChartColors->Modify( aEntry, nIdx );
pColorConfig->ReplaceColorByIndex( nIdx, aEntry );
m_pLbChartColors->SelectEntryPos( nIdx ); // reselect entry
diff --git a/cui/source/options/optchart.hxx b/cui/source/options/optchart.hxx
index 79af3c1dd8b8..34cd2113f2a3 100644
--- a/cui/source/options/optchart.hxx
+++ b/cui/source/options/optchart.hxx
@@ -29,12 +29,11 @@
#include "cfgchart.hxx"
-typedef std::vector<Color> ImpColorList;
-
class SvxDefaultColorOptPage : public SfxTabPage
{
+
private:
- VclPtr<ListBox> m_pLbChartColors;
+ VclPtr<ColorLB> m_pLbChartColors;
VclPtr<ValueSet> m_pValSetColorBox;
VclPtr<PushButton> m_pPBDefault;
VclPtr<PushButton> m_pPBAdd;
@@ -43,7 +42,6 @@ private:
SvxChartOptions* pChartOptions;
SvxChartColorTableItem* pColorConfig;
XColorListRef pColorList;
- ImpColorList aColorList;
DECL_LINK( ResetToDefaults, Button *, void );
DECL_LINK( AddChartColor, Button *, void );
@@ -54,15 +52,6 @@ private:
void FillColorBox();
long GetColorIndex( const Color& rCol );
-private:
- void InsertColorEntry(const XColorEntry& rEntry, sal_Int32 nPos = LISTBOX_APPEND);
- void RemoveColorEntry(sal_Int32 nPos);
- void ModifyColorEntry(const XColorEntry& rEntry, sal_Int32 nPos);
- void ClearColorEntries();
- void FillBoxChartColorLB();
- Color GetEntryColor(sal_Int32 nPos) const;
- Color GetSelectEntryColor() const;
-
public:
SvxDefaultColorOptPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
virtual ~SvxDefaultColorOptPage() override;
diff --git a/cui/source/options/optcolor.cxx b/cui/source/options/optcolor.cxx
index 1d962bddbd3b..43f76b4b6884 100644
--- a/cui/source/options/optcolor.cxx
+++ b/cui/source/options/optcolor.cxx
@@ -21,13 +21,11 @@
#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>
@@ -179,12 +177,12 @@ public:
virtual void dispose() override;
public:
- void SetLinks (Link<Button*,void> const&, Link<SvxColorListBox&,void> const&, Link<Control&,void> const&);
+ void SetLinks (Link<Button*,void> const&, Link<ListBox&,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*, SvxColorListBox*);
+ void ColorHdl (EditableColorConfig*, EditableExtendedColorConfig*, ColorListBox*);
void Init(ScrollBar *pVScroll, HeaderBar *m_pHeaderHB);
void AdjustScrollBar();
void AdjustHeaderBar();
@@ -216,10 +214,10 @@ private:
public:
void Show ();
void Hide ();
- void SetAppearance(Wallpaper const& rTextWall);
+ void SetAppearance(Wallpaper const& aTextWall, ColorListBox const& aSampleList);
void SetTextColor (Color C) { m_pText->SetTextColor(C); }
public:
- void SetLinks (Link<Button*,void> const&, Link<SvxColorListBox&,void> const&, Link<Control&,void> const&);
+ void SetLinks (Link<Button*,void> const&, Link<ListBox&,void> const&, Link<Control&,void> const&);
void Update (ColorConfigEntry, ColorConfigValue const&);
void Update (ExtendedColorConfigValue const&);
void ColorChanged (ColorConfigEntry, ColorConfigValue&);
@@ -229,7 +227,7 @@ private:
unsigned GetHeight () const { return m_pColorList->GetSizePixel().Height(); }
public:
bool Is (CheckBox* pBox) const { return m_pText == pBox; }
- bool Is (SvxColorListBox* pBox) const { return m_pColorList == pBox; }
+ bool Is (ColorListBox* pBox) const { return m_pColorList == pBox; }
void dispose()
{
m_pText.disposeAndClear();
@@ -241,7 +239,7 @@ private:
// checkbox (CheckBox) or simple text (FixedText)
VclPtr<Control> m_pText;
// color list box
- VclPtr<SvxColorListBox> m_pColorList;
+ VclPtr<ColorListBox> m_pColorList;
// color preview box
VclPtr<vcl::Window> m_pPreview;
// default color
@@ -352,7 +350,9 @@ ColorConfigWindow_Impl::Entry::Entry( vcl::Window *pGrid, unsigned nYPos,
m_pText->set_margin_left(6 + nCheckBoxLabelOffset);
m_pText->SetText(rColorEntry.getDisplayName());
- m_pColorList = VclPtr<SvxColorListBox>::Create(pGrid);
+ 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->set_grid_left_attach(1);
m_pColorList->set_grid_top_attach(nYPos);
@@ -390,22 +390,24 @@ void ColorConfigWindow_Impl::Entry::Hide()
// SetAppearance()
// iEntry: which entry is this?
-// rTextWall: background of the text (transparent)
+// aTextWall: background of the text (transparent)
// aSampleList: sample color listbox (to copy from)
-void ColorConfigWindow_Impl::Entry::SetAppearance(Wallpaper const& rTextWall)
+void ColorConfigWindow_Impl::Entry::SetAppearance(
+ Wallpaper const& aTextWall,
+ ColorListBox const& aSampleList)
{
// text (and optionally checkbox)
- m_pText->SetBackground(rTextWall);
+ m_pText->SetBackground(aTextWall);
// preview
m_pPreview->SetBorderStyle(WindowBorderStyle::MONO);
// color list
- m_pColorList->SetSlotId(SID_ATTR_CHAR_COLOR);
- m_pColorList->SetAutoDisplayColor(m_aDefaultColor);
+ m_pColorList->CopyEntries(aSampleList);
+ m_pColorList->InsertAutomaticEntryColor(m_aDefaultColor);
}
// SetLinks()
void ColorConfigWindow_Impl::Entry::SetLinks(
- Link<Button*,void> const& aCheckLink, Link<SvxColorListBox&,void> const& aColorLink,
+ Link<Button*,void> const& aCheckLink, Link<ListBox&,void> const& aColorLink,
Link<Control&,void> const& aGetFocusLink)
{
m_pColorList->SetSelectHdl(aColorLink);
@@ -421,10 +423,17 @@ void ColorConfigWindow_Impl::Entry::SetLinks(
void ColorConfigWindow_Impl::Entry::Update (
ColorConfigEntry aColorEntry, ColorConfigValue const& rValue
) {
- Color aColor(rValue.nColor);
- m_pColorList->SelectEntry(aColor);
- if (aColor.GetColor() == COL_AUTO)
+ Color aColor;
+ if ((unsigned)rValue.nColor == 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);
@@ -436,7 +445,7 @@ void ColorConfigWindow_Impl::Entry::Update (
) {
Color aColor(rValue.getColor());
if (rValue.getColor() == rValue.getDefaultColor())
- m_pColorList->SelectEntry(Color(COL_AUTO));
+ m_pColorList->SelectEntryPos(0);
else
m_pColorList->SelectEntry(aColor);
SetColor(aColor);
@@ -447,10 +456,17 @@ void ColorConfigWindow_Impl::Entry::ColorChanged (
ColorConfigEntry aColorEntry,
ColorConfigValue& rValue
) {
- Color aColor = m_pColorList->GetSelectEntryColor();
- rValue.nColor = aColor.GetColor();
- if (aColor.GetColor() == COL_AUTO)
+ Color aColor;
+ if (m_pColorList->IsAutomaticSelected())
+ {
aColor = ColorConfig::GetDefaultColor(aColorEntry);
+ rValue.nColor = COL_AUTO;
+ }
+ else
+ {
+ aColor = m_pColorList->GetSelectEntryColor();
+ rValue.nColor = aColor.GetColor();
+ }
SetColor(aColor);
}
@@ -460,7 +476,8 @@ void ColorConfigWindow_Impl::Entry::ColorChanged (
) {
Color aColor = m_pColorList->GetSelectEntryColor();
rValue.setColor(aColor.GetColor());
- if (aColor.GetColor() == COL_AUTO)
+ // automatic?
+ if (m_pColorList->GetSelectEntryPos() == 0)
{
rValue.setColor(rValue.getDefaultColor());
aColor.SetColor(rValue.getColor());
@@ -611,11 +628,22 @@ 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);
+ vEntries[i]->SetAppearance(aTransparentWall, *aSampleColorList.get());
}
}
@@ -653,7 +681,7 @@ void ColorConfigWindow_Impl::Init(ScrollBar *pVScroll, HeaderBar *pHeaderHB)
// SetLinks()
void ColorConfigWindow_Impl::SetLinks (
- Link<Button*,void> const& aCheckLink, Link<SvxColorListBox&,void> const& aColorLink, Link<Control&,void> const& aGetFocusLink
+ Link<Button*,void> const& aCheckLink, Link<ListBox&,void> const& aColorLink, Link<Control&,void> const& aGetFocusLink
) {
for (unsigned i = 0; i != vEntries.size(); ++i)
vEntries[i]->SetLinks(aCheckLink, aColorLink, aGetFocusLink);
@@ -714,10 +742,10 @@ void ColorConfigWindow_Impl::ClickHdl (EditableColorConfig* pConfig, CheckBox* p
}
// ColorHdl()
-void ColorConfigWindow_Impl::ColorHdl(
+void ColorConfigWindow_Impl::ColorHdl (
EditableColorConfig* pConfig, EditableExtendedColorConfig* pExtConfig,
- SvxColorListBox* pBox)
-{
+ ColorListBox* pBox
+) {
unsigned i = 0;
// default entries
@@ -810,7 +838,7 @@ class ColorConfigCtrl_Impl : public VclVBox
DECL_LINK(ScrollHdl, ScrollBar*, void);
DECL_LINK(ClickHdl, Button*, void);
- DECL_LINK(ColorHdl, SvxColorListBox&, void);
+ DECL_LINK(ColorHdl, ListBox&, void);
DECL_LINK(ControlFocusHdl, Control&, void);
virtual bool PreNotify (NotifyEvent& rNEvt) override;
@@ -864,7 +892,7 @@ ColorConfigCtrl_Impl::ColorConfigCtrl_Impl(vcl::Window* pParent)
m_pVScroll->SetEndScrollHdl(aScrollLink);
Link<Button*,void> aCheckLink = LINK(this, ColorConfigCtrl_Impl, ClickHdl);
- Link<SvxColorListBox&,void> aColorLink = LINK(this, ColorConfigCtrl_Impl, ColorHdl);
+ Link<ListBox&,void> aColorLink = LINK(this, ColorConfigCtrl_Impl, ColorHdl);
Link<Control&,void> aGetFocusLink = LINK(this, ColorConfigCtrl_Impl, ControlFocusHdl);
m_pScrollWindow->SetLinks(aCheckLink, aColorLink, aGetFocusLink);
@@ -970,12 +998,11 @@ IMPL_LINK(ColorConfigCtrl_Impl, ClickHdl, Button*, pBox, void)
}
// a color list has changed
-IMPL_LINK(ColorConfigCtrl_Impl, ColorHdl, SvxColorListBox&, rBox, void)
+IMPL_LINK(ColorConfigCtrl_Impl, ColorHdl, ListBox&, rBox, void)
{
DBG_ASSERT(pColorConfig, "Configuration not set" );
- m_pScrollWindow->ColorHdl(pColorConfig, pExtColorConfig, &rBox);
+ m_pScrollWindow->ColorHdl(pColorConfig, pExtColorConfig, static_cast<ColorListBox*>(&rBox));
}
-
IMPL_LINK(ColorConfigCtrl_Impl, ControlFocusHdl, Control&, rCtrl, void)
{
// determine whether a control is completely visible
diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx
index 41e525d2d358..ce9948c6c79f 100644
--- a/cui/source/tabpages/backgrnd.cxx
+++ b/cui/source/tabpages/backgrnd.cxx
@@ -381,7 +381,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_NOFILL));
+ m_pBackgroundColorSet->SetText(SVX_RESSTR(RID_SVXSTR_TRANSPARENT));
}
SvxBackgroundTabPage::~SvxBackgroundTabPage()
diff --git a/cui/source/tabpages/border.cxx b/cui/source/tabpages/border.cxx
index f989a7ce7af6..d74ae35b723a 100644
--- a/cui/source/tabpages/border.cxx
+++ b/cui/source/tabpages/border.cxx
@@ -284,13 +284,45 @@ 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 )
+ {
+ const 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 ) );
@@ -312,8 +344,7 @@ SvxBorderTabPage::SvxBorderTabPage(vcl::Window* pParent, const SfxItemSet& rCore
AddItemConnection( new sfx::CheckBoxConnection( SID_SW_COLLAPSING_BORDERS, *m_pMergeAdjacentBordersCB, ItemConnFlags::NONE ) );
m_pMergeAdjacentBordersCB->Hide();
- SfxObjectShell* pDocSh = SfxObjectShell::Current();
- if (pDocSh)
+ if( pDocSh )
{
Reference< XServiceInfo > xSI( pDocSh->GetModel(), UNO_QUERY );
if ( xSI.is() )
@@ -533,8 +564,12 @@ void SvxBorderTabPage::Reset( const SfxItemSet* rSet )
if( !bColorEq )
aColor.SetColor( COL_BLACK );
- m_pLbLineColor->SelectEntry(aColor);
- m_pLbLineStyle->SetColor(aColor);
+ 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 );
// Select all visible lines, if they are all equal.
if( bWidthEq && bColorEq )
@@ -542,6 +577,7 @@ 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 ;
@@ -832,6 +868,7 @@ IMPL_LINK_NOARG(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).
@@ -851,11 +888,16 @@ IMPL_LINK_NOARG(SvxBorderTabPage, SelSdwHdl_Impl, ValueSet*, void)
m_pLbShadowColor->Enable(bEnable);
}
-IMPL_LINK(SvxBorderTabPage, SelColHdl_Impl, SvxColorListBox&, rColorBox, void)
+
+IMPL_LINK( SvxBorderTabPage, SelColHdl_Impl, ListBox&, rLb, void )
{
- Color aColor = rColorBox.GetSelectEntryColor();
- m_pFrameSel->SetColorToSelection(aColor);
- m_pLbLineStyle->SetColor(aColor);
+ ColorListBox* pColLb = static_cast<ColorListBox*>(&rLb);
+
+ if (&rLb == m_pLbLineColor)
+ {
+ m_pFrameSel->SetColorToSelection( pColLb->GetSelectEntryColor() );
+ m_pLbLineStyle->SetColor( pColLb->GetSelectEntryColor() );
+ }
}
IMPL_LINK_NOARG(SvxBorderTabPage, ModifyWidthHdl_Impl, Edit&, void)
diff --git a/cui/source/tabpages/borderconn.cxx b/cui/source/tabpages/borderconn.cxx
index 70243d055a47..5aec14626802 100644
--- a/cui/source/tabpages/borderconn.cxx
+++ b/cui/source/tabpages/borderconn.cxx
@@ -22,7 +22,6 @@
#include "editeng/lineitem.hxx"
#include <editeng/boxitem.hxx>
#include <svx/algitem.hxx>
-#include <svx/colorbox.hxx>
#include <editeng/shaditem.hxx>
namespace svx {
@@ -204,7 +203,7 @@ static const ShadowPosWrapper::MapEntryType s_pShadowPosMap[] =
class ShadowControlsWrapper : public sfx::MultiControlWrapper< SvxShadowItem >
{
public:
- explicit ShadowControlsWrapper( ValueSet& rVsPos, MetricField& rMfSize, SvxColorListBox& rLbColor );
+ explicit ShadowControlsWrapper( ValueSet& rVsPos, MetricField& rMfSize, ColorListBox& rLbColor );
virtual SvxShadowItem GetControlValue() const override;
virtual void SetControlValue( SvxShadowItem aItem ) override;
@@ -212,11 +211,11 @@ public:
private:
ShadowPosWrapper maPosWrp;
sfx::MetricFieldWrapper<sal_uInt16> maSizeWrp;
- SvxColorListBoxWrapper maColorWrp;
+ sfx::ColorListBoxWrapper maColorWrp;
};
ShadowControlsWrapper::ShadowControlsWrapper(
- ValueSet& rVsPos, MetricField& rMfSize, SvxColorListBox& rLbColor ) :
+ ValueSet& rVsPos, MetricField& rMfSize, ColorListBox& rLbColor ) :
maPosWrp( rVsPos, s_pShadowPosMap ),
maSizeWrp( rMfSize, FUNIT_TWIP ),
maColorWrp( rLbColor )
@@ -251,11 +250,11 @@ class ShadowConnection : public sfx::ItemControlConnection< ShadowItemWrapper, S
{
public:
explicit ShadowConnection( const SfxItemSet& rItemSet,
- ValueSet& rVsPos, MetricField& rMfSize, SvxColorListBox& rLbColor );
+ ValueSet& rVsPos, MetricField& rMfSize, ColorListBox& rLbColor );
};
ShadowConnection::ShadowConnection( const SfxItemSet& rItemSet,
- ValueSet& rVsPos, MetricField& rMfSize, SvxColorListBox& rLbColor ) :
+ ValueSet& rVsPos, MetricField& rMfSize, ColorListBox& rLbColor ) :
ItemControlConnectionType( SID_ATTR_BORDER_SHADOW, new ShadowControlsWrapper( rVsPos, rMfSize, rLbColor ), ItemConnFlags::NONE )
{
mxCtrlWrp->SetDefaultValue( maItemWrp.GetDefaultItem( rItemSet ) );
@@ -276,7 +275,7 @@ sfx::ItemConnectionBase* CreateMarginConnection( const SfxItemSet& rItemSet,
}
sfx::ItemConnectionBase* CreateShadowConnection( const SfxItemSet& rItemSet,
- ValueSet& rVsPos, MetricField& rMfSize, SvxColorListBox& rLbColor )
+ ValueSet& rVsPos, MetricField& rMfSize, ColorListBox& rLbColor )
{
return new ShadowConnection( rItemSet, rVsPos, rMfSize, rLbColor );
}
diff --git a/cui/source/tabpages/borderconn.hxx b/cui/source/tabpages/borderconn.hxx
index b04d4a8b0c1f..17343d80025f 100644
--- a/cui/source/tabpages/borderconn.hxx
+++ b/cui/source/tabpages/borderconn.hxx
@@ -26,7 +26,7 @@
class SfxItemSet;
class MetricField;
class ValueSet;
-class SvxColorListBox;
+class ColorListBox;
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, SvxColorListBox& rLbColor );
+ ValueSet& rVsPos, MetricField& rMfSize, ColorListBox& rLbColor );
}
diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx
index 15a1020591e5..d1b7b8b50c28 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,12 +1363,10 @@ 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");
@@ -1433,14 +1431,55 @@ void SvxCharEffectsPage::Initialize()
}
}
- m_pFontColorLB->SetSelectHdl(LINK(this, SvxCharEffectsPage, ColorBoxSelectHdl_Impl));
+ // 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++ )
+ {
+ const 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 ) );
// handler
Link<ListBox&,void> aLink = LINK( this, SvxCharEffectsPage, SelectListBoxHdl_Impl );
m_pUnderlineLB->SetSelectHdl( aLink );
- m_pUnderlineColorLB->SetSelectHdl(LINK(this, SvxCharEffectsPage, ColorBoxSelectHdl_Impl));
+ m_pUnderlineColorLB->SetSelectHdl( aLink );
m_pOverlineLB->SetSelectHdl( aLink );
- m_pOverlineColorLB->SetSelectHdl(LINK(this, SvxCharEffectsPage, ColorBoxSelectHdl_Impl));
+ m_pOverlineColorLB->SetSelectHdl( aLink );
m_pStrikeoutLB->SetSelectHdl( aLink );
m_pEmphasisLB->SetSelectHdl( aLink );
m_pPositionLB->SetSelectHdl( aLink );
@@ -1448,7 +1487,9 @@ 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 );
@@ -1479,11 +1520,6 @@ 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();
@@ -1511,7 +1547,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 );
@@ -1595,38 +1631,71 @@ 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 );
- m_pFontColorLB->SelectEntry(aColor);
+ 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 ) ) ) );
+ }
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 = m_pFontColorLB->GetSelectEntryColor();
+ Color aSelectedColor;
+ if ( m_pFontColorLB->GetSelectEntry() == m_aTransparentColorName )
+ aSelectedColor = Color( COL_TRANSPARENT );
+ else
+ aSelectedColor = m_pFontColorLB->GetSelectEntryColor();
- if (pOld && pOld->GetValue() == aSelectedColor)
+ if ( pOld && pOld->GetValue() == aSelectedColor )
bChanged = false;
- if (bChanged)
+ 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 )
+ {
rSet.Put( SvxColorItem( aSelectedColor, nWhich ) );
+ bModified = true;
+ }
else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
CLEARTITEM;
- return bChanged;
+ return bModified;
}
+
IMPL_LINK( SvxCharEffectsPage, SelectListBoxHdl_Impl, ListBox&, rBox, void )
{
SelectHdl_Impl(&rBox);
}
-
void SvxCharEffectsPage::SelectHdl_Impl( ListBox* pBox )
{
if ( m_pEmphasisLB == pBox )
@@ -1682,11 +1751,26 @@ IMPL_LINK_NOARG(SvxCharEffectsPage, TristClickHdl_Impl, Button*, void)
}
-IMPL_LINK_NOARG(SvxCharEffectsPage, ColorBoxSelectHdl_Impl, SvxColorListBox&, void)
+IMPL_LINK( SvxCharEffectsPage, ColorBoxSelectHdl_Impl, ListBox&, rListBox, void )
{
- UpdatePreview_Impl();
+ 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();
}
+
DeactivateRC SvxCharEffectsPage::DeactivatePage( SfxItemSet* _pSet )
{
if ( _pSet )
@@ -1743,11 +1827,24 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet )
}
Color aColor = rItem.GetColor();
- m_pUnderlineColorLB->SelectEntry(aColor);
+ 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 ) ) ) );
+ }
}
else
{
- m_pUnderlineColorLB->SelectEntry(Color(COL_AUTO));
+ m_pUnderlineColorLB->SelectEntry( Color( COL_AUTO ));
m_pUnderlineColorLB->Disable();
}
}
@@ -1787,11 +1884,24 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet )
}
Color aColor = rItem.GetColor();
- m_pOverlineColorLB->SelectEntry(aColor);
+ 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 ) ) ) );
+ }
}
else
{
- m_pOverlineColorLB->SelectEntry(Color(COL_AUTO));
+ m_pOverlineColorLB->SelectEntry( Color( COL_AUTO ));
m_pOverlineColorLB->Disable();
}
}
@@ -2104,10 +2214,12 @@ 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();
@@ -2119,8 +2231,10 @@ void SvxCharEffectsPage::ChangesApplied()
m_pBlinkingBtn->SaveValue();
m_pHiddenBtn->SaveValue();
m_pFontColorLB->SaveValue();
+
}
+
bool SvxCharEffectsPage::FillItemSet( SfxItemSet* rSet )
{
const SfxPoolItem* pOld = nullptr;
@@ -2191,7 +2305,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 88720242fb84..5846d9ea4f65 100644
--- a/cui/source/tabpages/numpages.cxx
+++ b/cui/source/tabpages/numpages.cxx
@@ -31,7 +31,6 @@
#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>
@@ -1110,7 +1109,6 @@ 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");
@@ -1376,6 +1374,31 @@ 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++ )
+ {
+ const 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()) &&
@@ -1905,9 +1928,10 @@ IMPL_LINK( SvxNumOptionsTabPage, SameLevelHdl_Impl, Button*, pBox, void )
InitControls();
}
-IMPL_LINK(SvxNumOptionsTabPage, BulColorHdl_Impl, SvxColorListBox&, rColorBox, void)
+IMPL_LINK( SvxNumOptionsTabPage, BulColorHdl_Impl, ListBox&, rListBox, void )
{
- Color nSetColor = rColorBox.GetSelectEntryColor();
+ ColorListBox* pBox = static_cast<ColorListBox*>(&rListBox);
+ Color nSetColor = pBox->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 0b296d647f89..2bf8809c0d97 100644
--- a/cui/source/tabpages/strings.src
+++ b/cui/source/tabpages/strings.src
@@ -87,6 +87,10 @@ 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/tabarea.cxx b/cui/source/tabpages/tabarea.cxx
index 72538f070da7..6acbf08a03d7 100644
--- a/cui/source/tabpages/tabarea.cxx
+++ b/cui/source/tabpages/tabarea.cxx
@@ -266,6 +266,7 @@ void SvxAreaTabDialog::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
{
static_cast<SvxShadowTabPage&>(rPage).SetColorList( mpColorList );
static_cast<SvxShadowTabPage&>(rPage).SetColorChgd( &mnColorListState );
+ static_cast<SvxShadowTabPage&>(rPage).Construct();
}
else if (nId == m_nTransparenceTabPage)
{
diff --git a/cui/source/tabpages/tabline.cxx b/cui/source/tabpages/tabline.cxx
index e8d080e3a812..b9efb53c7850 100644
--- a/cui/source/tabpages/tabline.cxx
+++ b/cui/source/tabpages/tabline.cxx
@@ -235,6 +235,7 @@ void SvxLineTabDialog::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
static_cast<SvxShadowTabPage&>(rPage).SetDlgType( 0 );
static_cast<SvxShadowTabPage&>(rPage).SetAreaTP( &mbAreaTP );
static_cast<SvxShadowTabPage&>(rPage).SetColorChgd( &mnColorListState );
+ static_cast<SvxShadowTabPage&>(rPage).Construct();
}
}
diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx
index 7aac0c7fc14c..e28e17791d56 100644
--- a/cui/source/tabpages/tpgradnt.cxx
+++ b/cui/source/tabpages/tpgradnt.cxx
@@ -28,7 +28,6 @@
#include <cuires.hrc>
#include "helpid.hrc"
-#include <svx/colorbox.hxx>
#include "svx/xattr.hxx"
#include <svx/xtable.hxx>
#include <svx/xpool.hxx>
@@ -125,10 +124,9 @@ SvxGradientTabPage::SvxGradientTabPage
m_pMtrBorder->SetModifyHdl( aLink );
m_pSliderBorder->SetSlideHdl( LINK( this, SvxGradientTabPage, ModifiedSliderHdl_Impl ) );
m_pMtrColorFrom->SetModifyHdl( aLink );
- Link<SvxColorListBox&,void> aLink3 = LINK( this, SvxGradientTabPage, ModifiedColorListBoxHdl_Impl );
- m_pLbColorFrom->SetSelectHdl( aLink3 );
+ m_pLbColorFrom->SetSelectHdl( aLink2 );
m_pMtrColorTo->SetModifyHdl( aLink );
- m_pLbColorTo->SetSelectHdl( aLink3 );
+ m_pLbColorTo->SetSelectHdl( aLink2 );
// #i76307# always paint the preview in LTR, because this is what the document does
m_pCtlPreview->EnableRTL( false );
@@ -165,13 +163,21 @@ void SvxGradientTabPage::dispose()
SfxTabPage::dispose();
}
+
void SvxGradientTabPage::Construct()
{
+ m_pLbColorFrom->Fill( m_pColorList );
+ m_pLbColorTo->CopyEntries( *m_pLbColorFrom );
+
m_pGradientLB->FillPresetListBox( *m_pGradientList );
}
+
void SvxGradientTabPage::ActivatePage( const SfxItemSet& rSet )
{
+ sal_Int32 nPos;
+ sal_Int32 nCount;
+
if( m_pColorList.is() )
{
// ColorList
@@ -183,6 +189,30 @@ void SvxGradientTabPage::ActivatePage( const SfxItemSet& rSet )
if (pArea)
m_pColorList = pArea->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 );
}
@@ -280,12 +310,8 @@ VclPtr<SfxTabPage> SvxGradientTabPage::Create( vcl::Window* pWindow,
return VclPtr<SvxGradientTabPage>::Create( pWindow, *rOutAttrs );
}
-IMPL_LINK( SvxGradientTabPage, ModifiedListBoxHdl_Impl, ListBox&, rListBox, void )
-{
- ModifiedHdl_Impl(&rListBox);
-}
-IMPL_LINK( SvxGradientTabPage, ModifiedColorListBoxHdl_Impl, SvxColorListBox&, rListBox, void )
+IMPL_LINK( SvxGradientTabPage, ModifiedListBoxHdl_Impl, ListBox&, rListBox, void )
{
ModifiedHdl_Impl(&rListBox);
}
@@ -591,9 +617,21 @@ void SvxGradientTabPage::ChangeGradientHdl_Impl()
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_pSliderBorder->SetThumbPos( pGradient->GetBorder() );
diff --git a/cui/source/tabpages/tphatch.cxx b/cui/source/tabpages/tphatch.cxx
index 31efad7ad521..1f4fa526d9da 100644
--- a/cui/source/tabpages/tphatch.cxx
+++ b/cui/source/tabpages/tphatch.cxx
@@ -29,7 +29,6 @@
#include <cuires.hrc>
#include "helpid.hrc"
-#include <svx/colorbox.hxx>
#include "svx/xattr.hxx"
#include <svx/xpool.hxx>
#include <svx/xtable.hxx>
@@ -119,8 +118,7 @@ SvxHatchTabPage::SvxHatchTabPage
m_pMtrAngle->SetModifyHdl( aLink );
m_pSliderAngle->SetSlideHdl( LINK( this, SvxHatchTabPage, ModifiedSliderHdl_Impl ) );
m_pLbLineType->SetSelectHdl( aLink2 );
- Link<SvxColorListBox&,void> aLink3 = LINK( this, SvxHatchTabPage, ModifiedColorListBoxHdl_Impl );
- m_pLbLineColor->SetSelectHdl( aLink3 );
+ m_pLbLineColor->SetSelectHdl( aLink2 );
m_pCbBackgroundColor->SetToggleHdl( LINK( this, SvxHatchTabPage, ToggleHatchBackgroundColor_Impl ) );
m_pLbBackgroundColor->SetSelectHdl( LINK( this, SvxHatchTabPage, ModifiedBackgroundHdl_Impl ) );
@@ -152,13 +150,20 @@ void SvxHatchTabPage::dispose()
SvxTabPage::dispose();
}
+
void SvxHatchTabPage::Construct()
{
+ m_pLbLineColor->Fill( m_pColorList );
+ m_pLbBackgroundColor->Fill( m_pColorList );
m_pHatchLB->FillPresetListBox(*m_pHatchingList);
}
+
void SvxHatchTabPage::ActivatePage( const SfxItemSet& rSet )
{
+ sal_Int32 nPos;
+ sal_Int32 nCount;
+
if( m_pColorList.is() )
{
// ColorList
@@ -170,6 +175,18 @@ void SvxHatchTabPage::ActivatePage( const SfxItemSet& rSet )
if (pArea)
m_pColorList = pArea->GetNewColorList();
+ // LbLineColor
+ nPos = m_pLbLineColor->GetSelectEntryPos();
+ m_pLbLineColor->Clear();
+ m_pLbLineColor->Fill( m_pColorList );
+ nCount = m_pLbLineColor->GetEntryCount();
+ if( nCount == 0 )
+ ; // this case should not occur
+ else if( nCount <= nPos )
+ m_pLbLineColor->SelectEntryPos( 0 );
+ else
+ m_pLbLineColor->SelectEntryPos( nPos );
+
ModifiedHdl_Impl( this );
}
@@ -211,6 +228,12 @@ void SvxHatchTabPage::ActivatePage( const SfxItemSet& rSet )
Color aColor(aColorItem.GetColorValue());
m_pLbBackgroundColor->Enable();
m_pLbBackgroundColor->SelectEntry(aColor);
+
+ if( m_pLbBackgroundColor->GetSelectEntryCount() == 0 )
+ {
+ m_pLbBackgroundColor->InsertEntry( aColor , OUString() );
+ m_pLbBackgroundColor->SelectEntry( aColor );
+ }
m_rXFSet.Put( aColorItem );
}
else
@@ -272,10 +295,15 @@ bool SvxHatchTabPage::FillItemSet( SfxItemSet* rSet )
rSet->Put( XFillStyleItem( drawing::FillStyle_HATCH ) );
rSet->Put( XFillHatchItem( aString, *pXHatch ) );
rSet->Put( XFillBackgroundItem( m_pCbBackgroundColor->IsChecked() ) );
- if (m_pCbBackgroundColor->IsChecked())
+ if(m_pCbBackgroundColor->IsChecked())
{
- NamedColor aColor = m_pLbBackgroundColor->GetSelectEntry();
- rSet->Put(XFillColorItem(aColor.second, aColor.first));
+ sal_uInt32 nPosBckColor = m_pLbBackgroundColor->GetSelectEntryPos();
+ OUString aBckColorString;
+ if( nPosBckColor != LISTBOX_ENTRY_NOTFOUND )
+ aBckColorString = m_pLbBackgroundColor->GetSelectEntry();
+ else
+ aBckColorString = OUString();
+ rSet->Put( XFillColorItem( aBckColorString, m_pLbBackgroundColor->GetSelectEntryColor() ) );
}
return true;
}
@@ -307,12 +335,8 @@ VclPtr<SfxTabPage> SvxHatchTabPage::Create( vcl::Window* pWindow,
return VclPtr<SvxHatchTabPage>::Create( pWindow, *rSet );
}
-IMPL_LINK( SvxHatchTabPage, ModifiedListBoxHdl_Impl, ListBox&, rListBox, void )
-{
- ModifiedHdl_Impl(&rListBox);
-}
-IMPL_LINK( SvxHatchTabPage, ModifiedColorListBoxHdl_Impl, SvxColorListBox&, rListBox, void )
+IMPL_LINK( SvxHatchTabPage, ModifiedListBoxHdl_Impl, ListBox&, rListBox, void )
{
ModifiedHdl_Impl(&rListBox);
}
@@ -327,7 +351,7 @@ IMPL_LINK_NOARG( SvxHatchTabPage, ToggleHatchBackgroundColor_Impl, CheckBox&, vo
ModifiedBackgroundHdl_Impl(*m_pLbBackgroundColor);
}
-IMPL_LINK_NOARG( SvxHatchTabPage, ModifiedBackgroundHdl_Impl, SvxColorListBox&, void )
+IMPL_LINK_NOARG( SvxHatchTabPage, ModifiedBackgroundHdl_Impl, ListBox&, void )
{
Color aColor(COL_TRANSPARENT);
if(m_pCbBackgroundColor->IsChecked())
@@ -405,8 +429,15 @@ void SvxHatchTabPage::ChangeHatchHdl_Impl()
{
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 );
long mHatchAngle = pHatch->GetAngle() / 10;
m_pMtrAngle->SetValue( mHatchAngle );
diff --git a/cui/source/tabpages/tpline.cxx b/cui/source/tabpages/tpline.cxx
index 3172081f1a2c..11ffd614387d 100644
--- a/cui/source/tabpages/tpline.cxx
+++ b/cui/source/tabpages/tpline.cxx
@@ -24,7 +24,6 @@
#include <sfx2/module.hxx>
#include <cuires.hrc>
-#include <svx/colorbox.hxx>
#include "svx/xattr.hxx"
#include <svx/xpool.hxx>
#include <svx/xtable.hxx>
@@ -269,6 +268,8 @@ void SvxLineTabPage::dispose()
void SvxLineTabPage::Construct()
{
+ // Color chart
+ m_pLbColor->Fill( m_pColorList );
FillListboxes();
}
@@ -640,6 +641,17 @@ 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 );
}
@@ -755,9 +767,9 @@ bool SvxLineTabPage::FillItemSet( SfxItemSet* rAttrs )
}
// Line color
+ if( m_pLbColor->IsValueChangedFromSaved() )
{
- NamedColor aColor = m_pLbColor->GetSelectEntry();
- XLineColorItem aItem(aColor.second, aColor.first);
+ XLineColorItem aItem( m_pLbColor->GetSelectEntry(), m_pLbColor->GetSelectEntryColor() );
pOld = GetOldItem( *rAttrs, XATTR_LINECOLOR );
if ( !pOld || !( *static_cast<const XLineColorItem*>(pOld) == aItem ) )
{
@@ -1058,8 +1070,7 @@ void SvxLineTabPage::FillXLSet_Impl()
m_rXLSet.Put( XLineEndWidthItem( GetCoreValue( *m_pMtrEndWidth, m_ePoolUnit ) ) );
m_rXLSet.Put( XLineWidthItem( GetCoreValue( *m_pMtrLineWidth, m_ePoolUnit ) ) );
- NamedColor aColor = m_pLbColor->GetSelectEntry();
- m_rXLSet.Put(XLineColorItem(aColor.second, aColor.first));
+ m_rXLSet.Put( XLineColorItem( m_pLbColor->GetSelectEntry(), m_pLbColor->GetSelectEntryColor() ) );
// Centered line end
if( m_pTsbCenterStart->GetState() == TRISTATE_TRUE )
@@ -1249,6 +1260,11 @@ 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
@@ -1482,11 +1498,11 @@ VclPtr<SfxTabPage> SvxLineTabPage::Create( vcl::Window* pWindow,
return VclPtr<SvxLineTabPage>::Create( pWindow, *rAttrs );
}
-IMPL_LINK( SvxLineTabPage, ChangePreviewListBoxHdl_Impl, SvxColorListBox&, rListBox, void )
+
+IMPL_LINK( SvxLineTabPage, ChangePreviewListBoxHdl_Impl, ListBox&, rListBox, void )
{
ChangePreviewHdl_Impl(&rListBox);
}
-
IMPL_LINK( SvxLineTabPage, ChangePreviewModifyHdl_Impl, Edit&, rEdit, void )
{
ChangePreviewHdl_Impl(&rEdit);
diff --git a/cui/source/tabpages/tppattern.cxx b/cui/source/tabpages/tppattern.cxx
index cb4c7a3d7b88..253b1984d478 100644
--- a/cui/source/tabpages/tppattern.cxx
+++ b/cui/source/tabpages/tppattern.cxx
@@ -27,7 +27,6 @@
#include <sfx2/filedlghelper.hxx>
#include <unotools/localfilehelper.hxx>
#include "com/sun/star/ui/dialogs/TemplateDescription.hpp"
-#include <svx/colorbox.hxx>
#include <svx/dialmgr.hxx>
#include <vcl/bitmapaccess.hxx>
#include <vcl/settings.hxx>
@@ -159,11 +158,17 @@ void SvxPatternTabPage::dispose()
void SvxPatternTabPage::Construct()
{
+ m_pLbColor->Fill( m_pColorList );
+ m_pLbBackgroundColor->CopyEntries( *m_pLbColor );
m_pPatternLB->FillPresetListBox( *m_pPatternList );
}
+
void SvxPatternTabPage::ActivatePage( const SfxItemSet& rSet )
{
+ sal_Int32 nPos;
+ sal_Int32 nCount;
+
if( m_pColorList.is() )
{
// ColorList
@@ -174,6 +179,30 @@ void SvxPatternTabPage::ActivatePage( const SfxItemSet& rSet )
dynamic_cast<SvxAreaTabDialog*>(GetParentDialog()) : nullptr;
if (pArea)
m_pColorList = pArea->GetNewColorList();
+
+ // LbColor
+ nPos = m_pLbColor->GetSelectEntryPos();
+ m_pLbColor->Clear();
+ m_pLbColor->Fill( m_pColorList );
+ nCount = m_pLbColor->GetEntryCount();
+ if( nCount == 0 )
+ ; // this case should not occur
+ else if( nCount <= nPos )
+ m_pLbColor->SelectEntryPos( 0 );
+ else
+ m_pLbColor->SelectEntryPos( nPos );
+
+ // LbColorBackground
+ nPos = m_pLbBackgroundColor->GetSelectEntryPos();
+ m_pLbBackgroundColor->Clear();
+ m_pLbBackgroundColor->CopyEntries( *m_pLbColor );
+ nCount = m_pLbBackgroundColor->GetEntryCount();
+ if( nCount == 0 )
+ ; // this case should not occur
+ else if( nCount <= nPos )
+ m_pLbBackgroundColor->SelectEntryPos( 0 );
+ else
+ m_pLbBackgroundColor->SelectEntryPos( nPos );
}
// determining (possibly cutting) the name and
@@ -324,9 +353,34 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ChangePatternHdl_Impl, ValueSet*, void)
Color aPixelColor = aFront;
Color aBackColor = aBack;
+ // #i123564# This causes the wrong color to be selected
+ // as foreground color when the 1st bitmap in the bitmap
+ // list is selected. I see no reason why this is done,
+ // thus I will take it out
+
+ //if( 0 == m_pLbBitmaps->GetSelectEntryPos() )
+ //{
+ // m_pLbColor->SelectEntry( Color( COL_BLACK ) );
+ // ChangePixelColorHdl_Impl( this );
+ //}
+ //else
+
m_pLbColor->SelectEntry( aPixelColor );
+
+ if( m_pLbColor->GetSelectEntryCount() == 0 )
+ {
+ m_pLbColor->InsertEntry( aPixelColor, OUString() );
+ m_pLbColor->SelectEntry( aPixelColor );
+ }
+
m_pLbBackgroundColor->SelectEntry( aBackColor );
+ if( m_pLbBackgroundColor->GetSelectEntryCount() == 0 )
+ {
+ m_pLbBackgroundColor->InsertEntry( aBackColor, OUString() );
+ m_pLbBackgroundColor->SelectEntry( aBackColor );
+ }
+
// update m_pBitmapCtl, rXFSet and m_pCtlPreview
m_pBitmapCtl->SetPixelColor( aPixelColor );
m_pBitmapCtl->SetBackgroundColor( aBackColor );
@@ -554,7 +608,7 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickDeleteHdl_Impl, SvxPresetListBox*, void)
}
}
-IMPL_LINK_NOARG(SvxPatternTabPage, ChangeColorHdl_Impl, SvxColorListBox&, void)
+IMPL_LINK_NOARG(SvxPatternTabPage, ChangeColorHdl_Impl, ListBox&, void)
{
ChangeColor_Impl();
}
diff --git a/cui/source/tabpages/tpshadow.cxx b/cui/source/tabpages/tpshadow.cxx
index 84179d24f7bb..d2b1dca3ce28 100644
--- a/cui/source/tabpages/tpshadow.cxx
+++ b/cui/source/tabpages/tpshadow.cxx
@@ -19,7 +19,6 @@
#include <sfx2/app.hxx>
#include <sfx2/module.hxx>
-#include <svx/colorbox.hxx>
#include <svx/dialogs.hrc>
#include "svx/xattr.hxx"
@@ -183,8 +182,17 @@ void SvxShadowTabPage::dispose()
SvxTabPage::dispose();
}
+void SvxShadowTabPage::Construct()
+{
+ m_pLbShadowColor->Fill( m_pColorList );
+}
+
+
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((PageType) pPageTypeItem->GetValue());
@@ -212,6 +220,18 @@ 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,
@@ -315,6 +335,9 @@ bool SvxShadowTabPage::FillItemSet( SfxItemSet* rAttrs )
}
// ShadowColor
+ sal_Int32 nPos = m_pLbShadowColor->GetSelectEntryPos();
+ if( nPos != LISTBOX_ENTRY_NOTFOUND &&
+ m_pLbShadowColor->IsValueChangedFromSaved() )
{
XColorItem aItem(makeSdrShadowColorItem(m_pLbShadowColor->GetSelectEntryColor()));
pOld = GetOldItem( *rAttrs, SDRATTR_SHADOWCOLOR );
@@ -465,11 +488,11 @@ IMPL_LINK_NOARG(SvxShadowTabPage, ClickShadowHdl_Impl, Button*, void)
ModifyShadowHdl_Impl( *m_pMtrTransparent );
}
-IMPL_LINK_NOARG(SvxShadowTabPage, SelectShadowHdl_Impl, SvxColorListBox&, void)
+
+IMPL_LINK_NOARG(SvxShadowTabPage, SelectShadowHdl_Impl, ListBox&, void)
{
ModifyShadowHdl_Impl(*m_pMtrTransparent);
}
-
IMPL_LINK_NOARG(SvxShadowTabPage, ModifyShadowHdl_Impl, Edit&, void)
{
if( m_pTsbShowShadow->GetState() == TRISTATE_TRUE )
@@ -477,7 +500,11 @@ IMPL_LINK_NOARG(SvxShadowTabPage, ModifyShadowHdl_Impl, Edit&, void)
else
m_rXFSet.Put( XFillStyleItem( drawing::FillStyle_NONE ) );
- m_rXFSet.Put( XFillColorItem( OUString(), m_pLbShadowColor->GetSelectEntryColor() ) );
+ sal_Int32 nPos = m_pLbShadowColor->GetSelectEntryPos();
+ if( nPos != LISTBOX_ENTRY_NOTFOUND )
+ {
+ m_rXFSet.Put( XFillColorItem( OUString(), m_pLbShadowColor->GetSelectEntryColor() ) );
+ }
sal_uInt16 nVal = (sal_uInt16)m_pMtrTransparent->GetValue();
XFillTransparenceItem aItem( nVal );
m_rXFSet.Put( XFillTransparenceItem( aItem ) );
@@ -526,6 +553,7 @@ void SvxShadowTabPage::PageCreated(const SfxAllItemSet& aSet)
SetPageType((PageType) pPageTypeItem->GetValue());
if (pDlgTypeItem)
SetDlgType(pDlgTypeItem->GetValue());
+ Construct();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/uiconfig/ui/borderpage.ui b/cui/uiconfig/ui/borderpage.ui
index 2a3265cde146..c783d268396a 100644
--- a/cui/uiconfig/ui/borderpage.ui
+++ b/cui/uiconfig/ui/borderpage.ui
@@ -233,7 +233,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="linecolorlb">
+ <object class="svtlo-ColorListBox" id="linecolorlb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -505,7 +505,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="shadowcolorlb">
+ <object class="svtlo-ColorListBox" 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 f4dd177a3c3d..d03daf7c34fd 100644
--- a/cui/uiconfig/ui/colorconfigwin.ui
+++ b/cui/uiconfig/ui/colorconfigwin.ui
@@ -38,7 +38,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="doccolor_lb">
+ <object class="svtlo-ColorListBox" id="doccolor_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -72,7 +72,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="docboundaries_lb">
+ <object class="svtlo-ColorListBox" id="docboundaries_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -98,7 +98,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="appback_lb">
+ <object class="svtlo-ColorListBox" id="appback_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -148,7 +148,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="objboundaries_lb">
+ <object class="svtlo-ColorListBox" id="objboundaries_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -185,7 +185,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="tblboundaries_lb">
+ <object class="svtlo-ColorListBox" id="tblboundaries_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -220,7 +220,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="font_lb">
+ <object class="svtlo-ColorListBox" id="font_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -257,7 +257,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="unvisitedlinks_lb">
+ <object class="svtlo-ColorListBox" id="unvisitedlinks_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -294,7 +294,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="visitedlinks_lb">
+ <object class="svtlo-ColorListBox" id="visitedlinks_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -354,7 +354,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="autospellcheck_lb">
+ <object class="svtlo-ColorListBox" id="autospellcheck_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -364,7 +364,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="shadows_lb">
+ <object class="svtlo-ColorListBox" id="shadows_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -374,7 +374,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="smarttags_lb">
+ <object class="svtlo-ColorListBox" id="smarttags_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -400,7 +400,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="writergrid_lb">
+ <object class="svtlo-ColorListBox" id="writergrid_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -435,7 +435,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="field_lb">
+ <object class="svtlo-ColorListBox" id="field_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -457,7 +457,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="index_lb">
+ <object class="svtlo-ColorListBox" id="index_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -479,7 +479,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="script_lb">
+ <object class="svtlo-ColorListBox" id="script_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -559,7 +559,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="section_lb">
+ <object class="svtlo-ColorListBox" id="section_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -581,7 +581,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="hdft_lb">
+ <object class="svtlo-ColorListBox" id="hdft_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -616,7 +616,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="pagebreak_lb">
+ <object class="svtlo-ColorListBox" id="pagebreak_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -651,7 +651,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="direct_lb">
+ <object class="svtlo-ColorListBox" id="direct_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -702,7 +702,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="sgml_lb">
+ <object class="svtlo-ColorListBox" id="sgml_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -737,7 +737,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="htmlcomment_lb">
+ <object class="svtlo-ColorListBox" id="htmlcomment_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -772,7 +772,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="htmlkeyword_lb">
+ <object class="svtlo-ColorListBox" id="htmlkeyword_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -807,7 +807,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="unknown_lb">
+ <object class="svtlo-ColorListBox" id="unknown_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -858,7 +858,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="calcgrid_lb">
+ <object class="svtlo-ColorListBox" id="calcgrid_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -893,7 +893,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="brk_lb">
+ <object class="svtlo-ColorListBox" id="brk_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -928,7 +928,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="brkmanual_lb">
+ <object class="svtlo-ColorListBox" id="brkmanual_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -963,7 +963,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="brkauto_lb">
+ <object class="svtlo-ColorListBox" id="brkauto_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -998,7 +998,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="det_lb">
+ <object class="svtlo-ColorListBox" id="det_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1033,7 +1033,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="deterror_lb">
+ <object class="svtlo-ColorListBox" id="deterror_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1068,7 +1068,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="ref_lb">
+ <object class="svtlo-ColorListBox" id="ref_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1103,7 +1103,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="notes_lb">
+ <object class="svtlo-ColorListBox" id="notes_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1154,7 +1154,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="drawgrid_lb">
+ <object class="svtlo-ColorListBox" id="drawgrid_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1205,7 +1205,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="basicid_lb">
+ <object class="svtlo-ColorListBox" id="basicid_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1240,7 +1240,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="basiccomment_lb">
+ <object class="svtlo-ColorListBox" id="basiccomment_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1275,7 +1275,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="basicnumber_lb">
+ <object class="svtlo-ColorListBox" id="basicnumber_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1310,7 +1310,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="basicstring_lb">
+ <object class="svtlo-ColorListBox" id="basicstring_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1345,7 +1345,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="basicop_lb">
+ <object class="svtlo-ColorListBox" id="basicop_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1380,7 +1380,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="basickeyword_lb">
+ <object class="svtlo-ColorListBox" id="basickeyword_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1415,7 +1415,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="error_lb">
+ <object class="svtlo-ColorListBox" id="error_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1466,7 +1466,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="sqlid_lb">
+ <object class="svtlo-ColorListBox" id="sqlid_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1501,7 +1501,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="sqlnumber_lb">
+ <object class="svtlo-ColorListBox" id="sqlnumber_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1536,7 +1536,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="sqlstring_lb">
+ <object class="svtlo-ColorListBox" id="sqlstring_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1571,7 +1571,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="sqlop_lb">
+ <object class="svtlo-ColorListBox" id="sqlop_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1606,7 +1606,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="sqlkeyword_lb">
+ <object class="svtlo-ColorListBox" id="sqlkeyword_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1641,7 +1641,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="sqlparam_lb">
+ <object class="svtlo-ColorListBox" id="sqlparam_lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -1676,7 +1676,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="sqlcomment_lb">
+ <object class="svtlo-ColorListBox" 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 46a42cd15e09..1e9171cae8ad 100644
--- a/cui/uiconfig/ui/effectspage.ui
+++ b/cui/uiconfig/ui/effectspage.ui
@@ -324,7 +324,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="fontcolorlb">
+ <object class="svtlo-ColorListBox" id="fontcolorlb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -389,7 +389,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="underlinecolorlb">
+ <object class="svtlo-ColorListBox" id="underlinecolorlb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -399,7 +399,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="overlinecolorlb">
+ <object class="svtlo-ColorListBox" 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 b36b8d7aa678..8ab982badffd 100644
--- a/cui/uiconfig/ui/gradientpage.ui
+++ b/cui/uiconfig/ui/gradientpage.ui
@@ -450,7 +450,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="colorfromlb">
+ <object class="svxlo-ColorLB" id="colorfromlb">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="entry_text_column">0</property>
@@ -496,7 +496,7 @@
<property name="row_spacing">3</property>
<property name="column_spacing">6</property>
<child>
- <object class="svxlo-SvxColorListBox" id="colortolb">
+ <object class="svxlo-ColorLB" 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 f3098001b63a..fd12b3e547f7 100644
--- a/cui/uiconfig/ui/hatchpage.ui
+++ b/cui/uiconfig/ui/hatchpage.ui
@@ -266,7 +266,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="linecolorlb">
+ <object class="svxlo-ColorLB" id="linecolorlb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -292,7 +292,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="backgroundcolorlb">
+ <object class="svxlo-ColorLB" id="backgroundcolorlb">
<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 a70a0ae7bed9..0060a6fef564 100644
--- a/cui/uiconfig/ui/linetabpage.ui
+++ b/cui/uiconfig/ui/linetabpage.ui
@@ -156,7 +156,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="LB_COLOR">
+ <object class="svxlo-ColorLB" 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 76b609fba613..71f392aab6df 100644
--- a/cui/uiconfig/ui/numberingoptionspage.ui
+++ b/cui/uiconfig/ui/numberingoptionspage.ui
@@ -485,7 +485,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="color">
+ <object class="svtlo-ColorListBox" id="color">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
diff --git a/cui/uiconfig/ui/optchartcolorspage.ui b/cui/uiconfig/ui/optchartcolorspage.ui
index 3d1fc1a40b83..3cadc55c6bec 100644
--- a/cui/uiconfig/ui/optchartcolorspage.ui
+++ b/cui/uiconfig/ui/optchartcolorspage.ui
@@ -26,7 +26,8 @@
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
- <object class="GtkTreeView" id="colors:border">
+ <object class="svxlo-ColorLB" id="colors:border">
+ <property name="dropdown">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
diff --git a/cui/uiconfig/ui/patterntabpage.ui b/cui/uiconfig/ui/patterntabpage.ui
index 07edfc9e1f22..03bfe52c374e 100644
--- a/cui/uiconfig/ui/patterntabpage.ui
+++ b/cui/uiconfig/ui/patterntabpage.ui
@@ -185,7 +185,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="LB_COLOR">
+ <object class="svxlo-ColorLB" id="LB_COLOR">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
@@ -223,7 +223,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="LB_BACKGROUND_COLOR">
+ <object class="svxlo-ColorLB" id="LB_BACKGROUND_COLOR">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
diff --git a/cui/uiconfig/ui/shadowtabpage.ui b/cui/uiconfig/ui/shadowtabpage.ui
index 74ad9de4df4a..de63629337d3 100644
--- a/cui/uiconfig/ui/shadowtabpage.ui
+++ b/cui/uiconfig/ui/shadowtabpage.ui
@@ -99,7 +99,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="LB_SHADOW_COLOR">
+ <object class="svxlo-ColorLB" id="LB_SHADOW_COLOR">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
diff --git a/extensions/source/propctrlr/commoncontrol.cxx b/extensions/source/propctrlr/commoncontrol.cxx
index 6e9cb6be093d..745880465b52 100644
--- a/extensions/source/propctrlr/commoncontrol.cxx
+++ b/extensions/source/propctrlr/commoncontrol.cxx
@@ -104,11 +104,6 @@ namespace pcr
setModified();
}
- IMPL_LINK_NOARG( CommonBehaviourControlHelper, ColorModifiedHdl, SvxColorListBox&, void )
- {
- setModified();
- }
-
IMPL_LINK_NOARG( CommonBehaviourControlHelper, GetFocusHdl, Control&, void )
{
try
diff --git a/extensions/source/propctrlr/commoncontrol.hxx b/extensions/source/propctrlr/commoncontrol.hxx
index 0d46aaa5bcce..05771dd061f3 100644
--- a/extensions/source/propctrlr/commoncontrol.hxx
+++ b/extensions/source/propctrlr/commoncontrol.hxx
@@ -32,7 +32,6 @@
class NotifyEvent;
class Control;
class ListBox;
-class SvxColorListBox;
class Edit;
namespace pcr
@@ -91,7 +90,6 @@ namespace pcr
/// may be used by derived classes, they forward the event to the PropCtrListener
DECL_LINK( ModifiedHdl, ListBox&, void );
- DECL_LINK( ColorModifiedHdl, SvxColorListBox&, void );
DECL_LINK( EditModifiedHdl, Edit&, void );
DECL_LINK( GetFocusHdl, Control&, void );
DECL_LINK( LoseFocusHdl, Control&, void );
@@ -152,9 +150,8 @@ namespace pcr
inline void impl_checkDisposed_throw();
private:
VclPtr<TControlWindow> m_pControlWindow;
- void implSetModifyHandler(const Edit&);
- void implSetModifyHandler(const ListBox&);
- void implSetModifyHandler(const SvxColorListBox&);
+ void implSetModifyHandler(std::true_type);
+ void implSetModifyHandler(std::false_type);
};
@@ -168,7 +165,7 @@ namespace pcr
{
if ( _bDoSetHandlers )
{
- implSetModifyHandler(*m_pControlWindow);
+ implSetModifyHandler(std::is_base_of<::Edit,TControlWindow>());
m_pControlWindow->SetGetFocusHdl( LINK( this, CommonBehaviourControlHelper, GetFocusHdl ) );
m_pControlWindow->SetLoseFocusHdl( LINK( this, CommonBehaviourControlHelper, LoseFocusHdl ) );
}
@@ -176,24 +173,18 @@ namespace pcr
}
template< class TControlInterface, class TControlWindow >
- inline void CommonBehaviourControl< TControlInterface, TControlWindow >::implSetModifyHandler(const Edit&)
+ inline void CommonBehaviourControl< TControlInterface, TControlWindow >::implSetModifyHandler(std::true_type)
{
m_pControlWindow->SetModifyHdl( LINK( this, CommonBehaviourControlHelper, EditModifiedHdl ) );
}
template< class TControlInterface, class TControlWindow >
- inline void CommonBehaviourControl< TControlInterface, TControlWindow >::implSetModifyHandler(const ListBox&)
+ inline void CommonBehaviourControl< TControlInterface, TControlWindow >::implSetModifyHandler(std::false_type)
{
m_pControlWindow->SetModifyHdl( LINK( this, CommonBehaviourControlHelper, ModifiedHdl ) );
}
template< class TControlInterface, class TControlWindow >
- inline void CommonBehaviourControl< TControlInterface, TControlWindow >::implSetModifyHandler(const SvxColorListBox&)
- {
- m_pControlWindow->SetModifyHdl( LINK( this, CommonBehaviourControlHelper, ColorModifiedHdl ) );
- }
-
- template< class TControlInterface, class TControlWindow >
inline void CommonBehaviourControl< TControlInterface, TControlWindow >::impl_checkDisposed_throw()
{
if ( ComponentBaseClass::rBHelper.bDisposed )
diff --git a/extensions/source/propctrlr/standardcontrol.cxx b/extensions/source/propctrlr/standardcontrol.cxx
index 7d422966aff4..ca2412f9dbad 100644
--- a/extensions/source/propctrlr/standardcontrol.cxx
+++ b/extensions/source/propctrlr/standardcontrol.cxx
@@ -657,50 +657,141 @@ namespace pcr
return aStr.makeStringAndClear();
}
+
OColorControl::OColorControl(vcl::Window* pParent, WinBits nWinStyle)
- : OColorControl_Base(PropertyControlType::ColorListBox, pParent, nWinStyle)
+ :OColorControl_Base( PropertyControlType::ColorListBox, pParent, nWinStyle )
{
+ // initialize the color listbox
+ XColorListRef pColorList;
+ SfxObjectShell* pDocSh = SfxObjectShell::Current();
+ const SfxPoolItem* pItem = pDocSh ? pDocSh->GetItem( SID_COLOR_TABLE ) : nullptr;
+ if ( pItem )
+ {
+ DBG_ASSERT(dynamic_cast< const SvxColorListItem* >(pItem) != nullptr, "OColorControl::OColorControl: invalid color item!");
+ pColorList = static_cast<const SvxColorListItem*>( pItem )->GetColorList();
+ }
+
+ if ( !pColorList.is() )
+ pColorList = XColorList::GetStdColorList();
+
+
+ DBG_ASSERT(pColorList.is(), "OColorControl::OColorControl: no color table!");
+
+ if ( pColorList.is() )
+ {
+ for (long i = 0; i < pColorList->Count(); ++i)
+ {
+ const XColorEntry* pEntry = pColorList->GetColor(i);
+ getTypedControlWindow()->InsertEntry( pEntry->GetColor(), pEntry->GetName() );
+ }
+ }
+
+ getTypedControlWindow()->SetDropDownLineCount( LB_DEFAULT_COUNT );
+ if ( ( nWinStyle & WB_READONLY ) != 0 )
+ {
+ getTypedControlWindow()->SetReadOnly();
+ getTypedControlWindow()->Enable();
+ }
}
+
void SAL_CALL OColorControl::setValue( const Any& _rValue ) throw (IllegalTypeException, RuntimeException, std::exception)
{
if ( _rValue.hasValue() )
{
css::util::Color nColor = COL_TRANSPARENT;
- _rValue >>= nColor;
- ::Color aRgbCol((ColorData)nColor);
- getTypedControlWindow()->SelectEntry(std::make_pair(aRgbCol, MakeHexStr(nColor, 8)));
+ if ( _rValue >>= nColor )
+ {
+ ::Color aRgbCol((ColorData)nColor);
+
+ getTypedControlWindow()->SelectEntry( aRgbCol );
+ if ( !getTypedControlWindow()->IsEntrySelected( aRgbCol ) )
+ { // the given color is not part of the list -> insert a new entry with the hex code of the color
+ OUString aStr("0x");
+ aStr += MakeHexStr(nColor,8);
+ getTypedControlWindow()->InsertEntry( aRgbCol, aStr );
+ getTypedControlWindow()->SelectEntry( aRgbCol );
+ }
+ }
+ else
+ {
+ OUString sNonColorValue;
+ if ( !( _rValue >>= sNonColorValue ) )
+ throw IllegalTypeException();
+ getTypedControlWindow()->SelectEntry( sNonColorValue );
+ if ( !getTypedControlWindow()->IsEntrySelected( sNonColorValue ) )
+ getTypedControlWindow()->SetNoSelection();
+ }
}
else
getTypedControlWindow()->SetNoSelection();
}
+
Any SAL_CALL OColorControl::getValue() throw (RuntimeException, std::exception)
{
Any aPropValue;
- if (!getTypedControlWindow()->IsNoSelection())
+ if ( getTypedControlWindow()->GetSelectEntryCount() > 0 )
{
- ::Color aRgbCol = getTypedControlWindow()->GetSelectEntryColor();
- aPropValue <<= (css::util::Color)aRgbCol.GetColor();
+ OUString sSelectedEntry = getTypedControlWindow()->GetSelectEntry();
+ if ( m_aNonColorEntries.find( sSelectedEntry ) != m_aNonColorEntries.end() )
+ aPropValue <<= sSelectedEntry;
+ else
+ {
+ ::Color aRgbCol = getTypedControlWindow()->GetSelectEntryColor();
+ aPropValue <<= (css::util::Color)aRgbCol.GetColor();
+ }
}
return aPropValue;
}
+
Type SAL_CALL OColorControl::getValueType() throw (RuntimeException, std::exception)
{
return ::cppu::UnoType<sal_Int32>::get();
}
+
+ void SAL_CALL OColorControl::clearList() throw (RuntimeException, std::exception)
+ {
+ getTypedControlWindow()->Clear();
+ }
+
+
+ void SAL_CALL OColorControl::prependListEntry( const OUString& NewEntry ) throw (RuntimeException, std::exception)
+ {
+ getTypedControlWindow()->InsertEntry( NewEntry, 0 );
+ m_aNonColorEntries.insert( NewEntry );
+ }
+
+
+ void SAL_CALL OColorControl::appendListEntry( const OUString& NewEntry ) throw (RuntimeException, std::exception)
+ {
+ getTypedControlWindow()->InsertEntry( NewEntry );
+ m_aNonColorEntries.insert( NewEntry );
+ }
+
+ Sequence< OUString > SAL_CALL OColorControl::getListEntries( ) throw (RuntimeException, std::exception)
+ {
+ if ( !m_aNonColorEntries.empty() )
+ return Sequence< OUString >(&(*m_aNonColorEntries.begin()),m_aNonColorEntries.size());
+ return Sequence< OUString >();
+ }
+
+
void OColorControl::setModified()
{
OColorControl_Base::setModified();
- // fire a commit
- notifyModifiedValue();
+ if ( !getTypedControlWindow()->IsTravelSelect() )
+ // fire a commit
+ notifyModifiedValue();
}
+
//= OListboxControl
+
OListboxControl::OListboxControl( vcl::Window* pParent, WinBits nWinStyle)
:OListboxControl_Base( PropertyControlType::ListBox, pParent, nWinStyle )
{
diff --git a/extensions/source/propctrlr/standardcontrol.hxx b/extensions/source/propctrlr/standardcontrol.hxx
index d3f64e703276..ab026d6e2ec4 100644
--- a/extensions/source/propctrlr/standardcontrol.hxx
+++ b/extensions/source/propctrlr/standardcontrol.hxx
@@ -34,7 +34,6 @@
#include <vcl/combobox.hxx>
#include <svtools/calendar.hxx>
#include <svtools/fmtfield.hxx>
-#include <svx/colorbox.hxx>
#include <set>
@@ -61,18 +60,18 @@ namespace pcr
TListboxWindow::SetSelectHdl( LINK(this, ListLikeControlWithModifyHandler, OnSelect) );
}
- void SetModifyHdl( const Link<TListboxWindow&,void>& _rLink ) { aModifyHdl = _rLink;; }
+ void SetModifyHdl( const Link<ListBox&,void>& _rLink ) { aModifyHdl = _rLink;; }
private:
- DECL_LINK(OnSelect, TListboxWindow&, void);
- Link<TListboxWindow&,void> aModifyHdl;
+ DECL_LINK(OnSelect, ListBox&, void);
+ Link<ListBox&,void> aModifyHdl;
};
template< class LISTBOX_WINDOW >
- void ListLikeControlWithModifyHandler< LISTBOX_WINDOW >::LinkStubOnSelect(void * instance, LISTBOX_WINDOW& data) {
+ void ListLikeControlWithModifyHandler< LISTBOX_WINDOW >::LinkStubOnSelect(void * instance, ListBox& data) {
return static_cast<ListLikeControlWithModifyHandler< LISTBOX_WINDOW > *>(instance)->OnSelect(data);
}
template< class LISTBOX_WINDOW >
- void ListLikeControlWithModifyHandler< LISTBOX_WINDOW >::OnSelect(LISTBOX_WINDOW& rListBox)
+ void ListLikeControlWithModifyHandler< LISTBOX_WINDOW >::OnSelect(ListBox& rListBox)
{
aModifyHdl.Call(rListBox);
}
@@ -261,11 +260,14 @@ namespace pcr
//= OColorControl
- typedef CommonBehaviourControl < css::inspection::XPropertyControl
- , ListLikeControlWithModifyHandler<SvxColorListBox>
+ typedef CommonBehaviourControl < css::inspection::XStringListControl
+ , ListLikeControlWithModifyHandler< ColorListBox >
> OColorControl_Base;
class OColorControl : public OColorControl_Base
{
+ private:
+ ::std::set< OUString > m_aNonColorEntries;
+
public:
OColorControl( vcl::Window* pParent, WinBits nWinStyle );
@@ -274,6 +276,12 @@ namespace pcr
virtual void SAL_CALL setValue( const css::uno::Any& _value ) throw (css::beans::IllegalTypeException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Type SAL_CALL getValueType() throw (css::uno::RuntimeException, std::exception) override;
+ // XStringListControl
+ virtual void SAL_CALL clearList( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL prependListEntry( const OUString& NewEntry ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL appendListEntry( const OUString& NewEntry ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getListEntries( ) throw (css::uno::RuntimeException, std::exception) override;
+
protected:
// CommonBehaviourControlHelper::setModified
virtual void setModified() override;
diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in
index 84a0558def61..b19f135e738d 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -94,11 +94,29 @@
</properties>
</glade-widget-class>
- <glade-widget-class title="Color ListBox" name="svxlo-ColorListBox"
- generic-name="Color ListBox" parent="GtkComboBox"
+ <glade-widget-class title="Svt Color ListBox" name="svtlo-ColorListBox"
+ generic-name="Svt 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 1e4a2c8f28f2..079258dbfc1a 100644
--- a/include/sfx2/controlwrapper.hxx
+++ b/include/sfx2/controlwrapper.hxx
@@ -115,7 +115,7 @@ private:
| +- DummyWindowWrapper [1]
| +- CheckBoxWrapper [1]
| +- EditWrapper [1]
- | +- SvxColorListBoxWrapper [1]
+ | +- ColorListBoxWrapper [1]
| |
| +- MetricFieldWrapper< ValueT > [1]
| | |
@@ -241,6 +241,26 @@ 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() override;
+
+ 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 MetricField.
Adds support for field units during accessing the control value. The
diff --git a/include/svtools/ctrlbox.hxx b/include/svtools/ctrlbox.hxx
index cb5e29d8ada3..c1ad071123eb 100644
--- a/include/svtools/ctrlbox.hxx
+++ b/include/svtools/ctrlbox.hxx
@@ -33,13 +33,26 @@
#include <o3tl/typed_flags_set.hxx>
class FontList;
+class ImplColorListData;
class ImpLineListData;
+typedef ::std::vector< ImplColorListData* > ImpColorList;
typedef ::std::vector< ImpLineListData* > ImpLineList;
typedef ::std::vector< FontMetric > ImplFontList;
/*************************************************************************
+Description
+============
+
+class ColorListBox
+
+Description
+
+Allows color selection
+
+--------------------------------------------------------------------------
+
class LineListBox
Description
@@ -128,6 +141,75 @@ FontList; FontNameBox; FontStyleBox; FontSizeMenu
*************************************************************************/
+class SVT_DLLPUBLIC ColorListBox : public ListBox
+{
+ ImpColorList* pColorList; // separate liste, in case of user data are required from outside
+ Size aImageSize;
+
+ using Window::ImplInit;
+ SVT_DLLPRIVATE void ImplInit();
+ SVT_DLLPRIVATE void ImplDestroyColorEntries();
+
+public:
+ ColorListBox( vcl::Window* pParent,
+ WinBits nWinStyle = WB_BORDER );
+ virtual ~ColorListBox() override;
+ virtual void dispose() override;
+
+ virtual void UserDraw( const UserDrawEvent& rUDEvt ) override;
+
+ using ListBox::InsertEntry;
+ sal_Int32 InsertEntry( const OUString& rStr,
+ sal_Int32 nPos = LISTBOX_APPEND );
+ sal_Int32 InsertEntry( const Color& rColor, const OUString& rStr,
+ sal_Int32 nPos = LISTBOX_APPEND );
+ void InsertAutomaticEntryColor(const Color &rAutoColorValue);
+ bool IsAutomaticSelected() { return !GetSelectEntryPos(); }
+ using ListBox::RemoveEntry;
+ void RemoveEntry( sal_Int32 nPos );
+ void Clear();
+ void CopyEntries( const ColorListBox& rBox );
+
+ using ListBox::GetEntryPos;
+ sal_Int32 GetEntryPos( const Color& rColor ) const;
+ Color GetEntryColor( sal_Int32 nPos ) const;
+
+ void SelectEntry( const OUString& rStr )
+ { ListBox::SelectEntry( rStr ); }
+ void SelectEntry( const Color& rColor );
+ Color GetSelectEntryColor() const;
+ using ListBox::IsEntrySelected;
+
+ bool IsEntrySelected(const Color& rColor) const
+ {
+ sal_Int32 nPos = GetEntryPos( rColor );
+ if ( nPos != LISTBOX_ENTRY_NOTFOUND )
+ return IsEntryPosSelected( nPos );
+ else
+ return false;
+ }
+
+private:
+ ColorListBox( const ColorListBox& ) = delete;
+ ColorListBox& operator =( const ColorListBox& ) = delete;
+};
+
+inline void ColorListBox::SelectEntry( const Color& rColor )
+{
+ sal_Int32 nPos = GetEntryPos( rColor );
+ if ( nPos != LISTBOX_ENTRY_NOTFOUND )
+ ListBox::SelectEntryPos( nPos );
+}
+
+inline Color ColorListBox::GetSelectEntryColor() const
+{
+ sal_Int32 nPos = GetSelectEntryPos();
+ Color aColor;
+ if ( nPos != LISTBOX_ENTRY_NOTFOUND )
+ aColor = GetEntryColor( nPos );
+ return aColor;
+}
+
/**
Class computing border widths shared between Line style listbox and the
SvxBorderLine implementation.
diff --git a/include/svtools/svtools.hrc b/include/svtools/svtools.hrc
index c149f8643c31..92cc8092ab7d 100644
--- a/include/svtools/svtools.hrc
+++ b/include/svtools/svtools.hrc
@@ -26,6 +26,8 @@
// various unsorted stuff
+#define STR_SVT_AUTOMATIC_COLOR (RID_SVTOOLS_START+16)
+
#define STR_SVT_FILEVIEW_COLUMN_TITLE (RID_SVTOOLS_START + 20)
#define STR_SVT_FILEVIEW_COLUMN_SIZE (RID_SVTOOLS_START + 21)
#define STR_SVT_FILEVIEW_COLUMN_DATE (RID_SVTOOLS_START + 22)
diff --git a/include/svx/PaletteManager.hxx b/include/svx/PaletteManager.hxx
index 2347f0f65ef5..c527b85f0f88 100644
--- a/include/svx/PaletteManager.hxx
+++ b/include/svx/PaletteManager.hxx
@@ -48,10 +48,11 @@ class SVX_DLLPUBLIC PaletteManager
XColorListRef pColorList;
Color mLastColor;
- std::deque<NamedColor> maRecentColors;
+ typedef std::pair<Color, OUString> color_and_name;
+ std::deque<color_and_name> maRecentColors;
std::vector<std::unique_ptr<Palette>> m_Palettes;
- std::function<void(const OUString&, const NamedColor&)> maColorSelectFunction;
+ std::function<void(const OUString&, const Color&)> maColorSelectFunction;
css::uno::Reference < css::uno::XComponentContext > m_context;
public:
PaletteManager();
@@ -73,14 +74,14 @@ public:
const Color& GetLastColor();
void SetLastColor(const Color& rLastColor);
- void AddRecentColor(const Color& rRecentColor, const OUString& rColorName, bool bFront = true);
+ void AddRecentColor(const Color& rRecentColor, const OUString& rColorName);
void SetBtnUpdater(svx::ToolboxButtonColorUpdater* pBtnUpdater);
void PopupColorPicker(const OUString& aCommand);
- void SetColorSelectFunction(const std::function<void(const OUString&, const NamedColor&)>& aColorSelectFunction);
+ void SetColorSelectFunction(const std::function<void(const OUString&, const Color&)>& aColorSelectFunction);
- static void DispatchColorCommand(const OUString& aCommand, const NamedColor& rColor);
+ static void DispatchColorCommand(const OUString& aCommand, const Color& rColor);
};
#endif // INCLUDED_SVX_PALETTEMANAGER_HXX
diff --git a/include/svx/bmpmask.hxx b/include/svx/bmpmask.hxx
index 6705b1c5fe5b..1f66ee5ef7b5 100644
--- a/include/svx/bmpmask.hxx
+++ b/include/svx/bmpmask.hxx
@@ -75,7 +75,6 @@ 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
{
@@ -89,27 +88,28 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxBmpMask : public SfxDockingWindow
VclPtr<CheckBox> m_pCbx1;
VclPtr<MaskSet> m_pQSet1;
VclPtr<MetricField> m_pSp1;
- VclPtr<SvxColorListBox> m_pLbColor1;
+ VclPtr<ColorLB> m_pLbColor1;
VclPtr<CheckBox> m_pCbx2;
VclPtr<MaskSet> m_pQSet2;
VclPtr<MetricField> m_pSp2;
- VclPtr<SvxColorListBox> m_pLbColor2;
+ VclPtr<ColorLB> m_pLbColor2;
VclPtr<CheckBox> m_pCbx3;
VclPtr<MaskSet> m_pQSet3;
VclPtr<MetricField> m_pSp3;
- VclPtr<SvxColorListBox> m_pLbColor3;
+ VclPtr<ColorLB> m_pLbColor3;
VclPtr<CheckBox> m_pCbx4;
VclPtr<MaskSet> m_pQSet4;
VclPtr<MetricField> m_pSp4;
- VclPtr<SvxColorListBox> m_pLbColor4;
+ VclPtr<ColorLB> m_pLbColor4;
MaskData* pData;
VclPtr<CheckBox> m_pCbxTrans;
- VclPtr<SvxColorListBox> m_pLbColorTrans;
+ VclPtr<ColorLB> m_pLbColorTrans;
+ XColorListRef pColLst;
Color aPipetteColor;
SvxBmpMaskSelectItem aSelItem;
@@ -140,6 +140,9 @@ 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
deleted file mode 100644
index 4b7f2513a984..000000000000
--- a/include/svx/colorbox.hxx
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#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);
- void dispose();
-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(MenuActivateHdl, MenuButton *, void);
- void Selected(const NamedColor& rNamedColor);
- void createColorWindow();
- void LockWidthRequest();
- VclPtr<SvxColorWindow> getColorWindow() const;
-public:
- SvxColorListBox(vcl::Window* pParent, WinBits nStyle = 0);
- 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/include/svx/colorwindow.hxx b/include/svx/colorwindow.hxx
index 1e417130effb..8b185d952de3 100644
--- a/include/svx/colorwindow.hxx
+++ b/include/svx/colorwindow.hxx
@@ -31,22 +31,8 @@
#include <functional>
-class SVX_DLLPUBLIC BorderColorStatus
-{
- Color maColor;
- Color maTLBRColor;
- Color maBLTRColor;
-public:
- BorderColorStatus();
- ~BorderColorStatus();
- bool statusChanged( const css::frame::FeatureStateEvent& rEvent );
- Color GetColor();
-};
-
+class BorderColorStatus;
class Button;
-typedef std::function<void(const OUString&, const NamedColor&)> ColorSelectFunction;
-
-#define COL_NONE_COLOR TRGB_COLORDATA(0x80, 0xFF, 0xFF, 0xFF)
class SVX_DLLPUBLIC SvxColorWindow : public SfxPopupWindow
{
@@ -57,49 +43,37 @@ private:
VclPtr<ListBox> mpPaletteListBox;
VclPtr<PushButton> mpButtonAutoColor;
- VclPtr<PushButton> mpButtonNoneColor;
VclPtr<PushButton> mpButtonPicker;
VclPtr<FixedLine> mpAutomaticSeparator;
OUString maCommand;
- Link<const NamedColor&, void> maSelectedLink;
+ Link<const Color&, void> maSelectedLink;
PaletteManager& mrPaletteManager;
BorderColorStatus& mrBorderColorStatus;
- ColorSelectFunction maColorSelectFunction;
+ std::function<void(const OUString&, const Color&)> maColorSelectFunction;
DECL_LINK( SelectHdl, ValueSet*, void );
DECL_LINK( SelectPaletteHdl, ListBox&, void);
DECL_LINK( AutoColorClickHdl, Button*, void );
DECL_LINK( OpenPickerClickHdl, Button*, void );
- 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,
- vcl::Window* pParentWindow,
- ColorSelectFunction const& rColorSelectFunction);
+ SvxColorWindow( const OUString& rCommand,
+ PaletteManager& rPaletteManager,
+ BorderColorStatus& rBorderColorStatus,
+ sal_uInt16 nSlotId,
+ const css::uno::Reference< css::frame::XFrame >& rFrame,
+ vcl::Window* pParentWindow,
+ std::function<void(const OUString&, const Color&)> const & maColorSelectFunction);
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 statusChanged( const css::frame::FeatureStateEvent& rEvent ) override;
- void SetSelectedHdl( const Link<const NamedColor&, void>& rLink ) { maSelectedLink = rLink; }
+ void SetSelectedHdl( const Link<const Color&, void>& rLink ) { maSelectedLink = rLink; }
};
#endif
diff --git a/include/svx/dialogs.hrc b/include/svx/dialogs.hrc
index 589b6a8a7413..3ccea55d2a4a 100644
--- a/include/svx/dialogs.hrc
+++ b/include/svx/dialogs.hrc
@@ -31,10 +31,8 @@
// some strings also used in CUI
#define RID_SVXERRCTX (RID_SVX_START + 351)
#define RID_SVXSTR_COLOR (RID_SVX_START + 179)
-#define RID_SVXSTR_NOFILL (RID_SVX_START + 190)
+#define RID_SVXSTR_TRANSPARENT (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)
@@ -149,6 +147,9 @@
#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/dlgctrl.hxx b/include/svx/dlgctrl.hxx
index 39cc688b4ded..fbf9369eb608 100644
--- a/include/svx/dlgctrl.hxx
+++ b/include/svx/dlgctrl.hxx
@@ -207,6 +207,20 @@ public:
/************************************************************************/
+class SAL_WARN_UNUSED SVX_DLLPUBLIC ColorLB : public ColorListBox
+{
+
+public:
+ ColorLB( vcl::Window* pParent, WinBits aWB ) : ColorListBox( pParent, aWB ) {}
+
+ void Fill( const XColorListRef &pTab );
+
+ void Append( const XColorEntry& rEntry );
+ void Modify( const XColorEntry& rEntry, sal_Int32 nPos );
+};
+
+/************************************************************************/
+
class SAL_WARN_UNUSED SVX_DLLPUBLIC HatchingLB : public ListBox
{
public:
@@ -231,7 +245,7 @@ public:
/************************************************************************/
-class SAL_WARN_UNUSED SVX_DLLPUBLIC FillAttrLB : public ListBox
+class SAL_WARN_UNUSED SVX_DLLPUBLIC FillAttrLB : public ColorListBox
{
private:
BitmapEx maBitmapEx;
diff --git a/include/svx/float3d.hxx b/include/svx/float3d.hxx
index 396d104a9f53..c9a9f957701c 100644
--- a/include/svx/float3d.hxx
+++ b/include/svx/float3d.hxx
@@ -41,13 +41,14 @@ enum class ViewType3D
Material
};
+class SdrModel;
class FmFormModel;
class VirtualDevice;
class E3dView;
class SdrPageView;
class Svx3DCtrlItem;
class SvxConvertTo3DItem;
-class SvxColorListBox;
+
struct Svx3DWinImpl;
@@ -112,16 +113,16 @@ private:
VclPtr<PushButton> m_pBtnLight6;
VclPtr<PushButton> m_pBtnLight7;
VclPtr<PushButton> m_pBtnLight8;
- 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<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<PushButton> m_pBtnLightColor;
- VclPtr<SvxColorListBox> m_pLbAmbientlight; // ListBox
+ VclPtr<ColorLB> m_pLbAmbientlight; // ListBox
VclPtr<PushButton> m_pBtnAmbientColor; // color button
// Textures
@@ -143,13 +144,13 @@ private:
// material editor
VclPtr<VclContainer> m_pFLMaterial;
VclPtr<ListBox> m_pLbMatFavorites;
- VclPtr<SvxColorListBox> m_pLbMatColor;
+ VclPtr<ColorLB> m_pLbMatColor;
VclPtr<PushButton> m_pBtnMatColor;
- VclPtr<SvxColorListBox> m_pLbMatEmission;
+ VclPtr<ColorLB> m_pLbMatEmission;
VclPtr<PushButton> m_pBtnEmissionColor;
VclPtr<VclContainer> m_pFLMatSpecular;
- VclPtr<SvxColorListBox> m_pLbMatSpecular;
+ VclPtr<ColorLB> m_pLbMatSpecular;
VclPtr<PushButton> m_pBtnSpecularColor;
VclPtr<MetricField> m_pMtrMatSpecularIntensity;
@@ -190,7 +191,6 @@ private:
DECL_LINK( ClickHdl, Button*, void );
DECL_LINK( ClickColorHdl, Button*, void );
DECL_LINK( SelectHdl, ListBox&, void );
- DECL_LINK( SelectColorHdl, SvxColorListBox&, void );
DECL_LINK( ModifyHdl, Edit&, void );
void ClickLight(PushButton &rBtn);
@@ -199,9 +199,9 @@ private:
SVX_DLLPRIVATE void Construct();
SVX_DLLPRIVATE void Reset();
- SVX_DLLPRIVATE static void LBSelectColor( SvxColorListBox* pLb, const Color& rColor );
+ SVX_DLLPRIVATE static bool LBSelectColor( ColorLB* pLb, const Color& rColor );
SVX_DLLPRIVATE sal_uInt16 GetLightSource( const PushButton* pBtn );
- SVX_DLLPRIVATE SvxColorListBox* GetLbByButton( const PushButton* pBtn = nullptr );
+ SVX_DLLPRIVATE ColorLB* GetLbByButton( const PushButton* pBtn = nullptr );
SVX_DLLPRIVATE bool GetUILightState( const PushButton& rBtn ) const;
SVX_DLLPRIVATE void SetUILightState( PushButton& aBtn, bool bState );
@@ -215,7 +215,7 @@ public:
virtual ~Svx3DWin() override;
virtual void dispose() override;
- void InitColorLB();
+ void InitColorLB( const SdrModel* pDoc );
bool IsUpdateMode() const { return bUpdate; }
void Update( SfxItemSet& rSet );
diff --git a/include/svx/fontwork.hxx b/include/svx/fontwork.hxx
index 83d1f3c11ec3..5fe6ad0f7eb3 100644
--- a/include/svx/fontwork.hxx
+++ b/include/svx/fontwork.hxx
@@ -35,7 +35,6 @@
class SdrView;
class SdrPageView;
class SdrObject;
-class SvxColorListBox;
class XFormTextAdjustItem;
class XFormTextDistanceItem;
@@ -108,7 +107,7 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxFontWorkDialog : public SfxDockingWindow
VclPtr<FixedImage> m_pFbShadowY;
VclPtr<MetricField> m_pMtrFldShadowY;
- VclPtr<SvxColorListBox> m_pShadowColorLB;
+ VclPtr<ColorLB> m_pShadowColorLB;
SfxBindings& rBindings;
Idle aInputIdle;
@@ -139,6 +138,8 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxFontWorkDialog : public SfxDockingWindow
long nSaveShadowAngle;
long nSaveShadowSize;
+ XColorListRef pColorList;
+
friend class SvxFontWorkChildWindow;
friend class SvxFontWorkControllerItem;
@@ -149,7 +150,7 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxFontWorkDialog : public SfxDockingWindow
DECL_LINK( ModifyInputHdl_Impl, Edit&, void );
DECL_LINK( InputTimoutHdl_Impl, Idle *, void );
- DECL_LINK( ColorSelectHdl_Impl, SvxColorListBox&, void );
+ DECL_LINK( ColorSelectHdl_Impl, ListBox&, void );
void SetStyle_Impl(const XFormTextStyleItem*);
void SetAdjust_Impl(const XFormTextAdjustItem*);
@@ -174,6 +175,8 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxFontWorkDialog : public SfxDockingWindow
vcl::Window* pParent);
virtual ~SvxFontWorkDialog() override;
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 372d216f68ba..9d7e62199f3e 100644
--- a/include/svx/sidebar/AreaPropertyPanelBase.hxx
+++ b/include/svx/sidebar/AreaPropertyPanelBase.hxx
@@ -25,7 +25,6 @@
#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>
@@ -125,8 +124,8 @@ protected:
VclPtr<FixedText> mpColorTextFT;
VclPtr<SvxFillTypeBox> mpLbFillType;
VclPtr<SvxFillAttrBox> mpLbFillAttr;
- VclPtr<SvxColorListBox> mpLbFillGradFrom;
- VclPtr<SvxColorListBox> mpLbFillGradTo;
+ VclPtr<ColorLB> mpLbFillGradFrom;
+ VclPtr<ColorLB> mpLbFillGradTo;
VclPtr<sfx2::sidebar::SidebarToolBox> mpToolBoxColor; // for new color picker
VclPtr<FixedText> mpTrspTextFT;
VclPtr<ListBox> mpLBTransType;
@@ -157,7 +156,6 @@ protected:
DECL_LINK(SelectFillTypeHdl, ListBox&, void );
DECL_LINK(SelectFillAttrHdl, ListBox&, void );
- DECL_LINK(SelectFillColorHdl, SvxColorListBox&, void);
DECL_LINK(ChangeGradientAngle, Edit&, void);
DECL_LINK(ChangeTrgrTypeHdl_Impl, ListBox&, void);
DECL_LINK(ModifyTransparentHdl_Impl, Edit&, void);
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index 8a7f7c5fc4c5..f2a301c63797 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -750,7 +750,7 @@
#define SID_READONLY_MODE ( SID_SVX_START + 930 )
#define SID_ATTR_ALIGN_HYPHENATION ( SID_SVX_START + 931 )
#define SID_ATTR_NUMBERFORMAT_SOURCE ( SID_SVX_START + 932 )
-
+#define SID_ATTR_AUTO_COLOR_INVALID ( SID_SVX_START + 933 )
#define SID_RULER_BORDER_DISTANCE ( SID_SVX_START + 935 )
#define SID_INSERT_DATEFIELD ( SID_SVX_START + 936 )
#define SID_INSERT_TIMEFIELD ( SID_SVX_START + 937 )
@@ -999,11 +999,9 @@
#define SID_LINE_ARROW_START ( SID_SVX_START + 1165 )
#define SID_LINE_ARROW_END ( SID_SVX_START + 1166 )
#define SID_DRAW_MEASURELINE ( SID_SVX_START + 1167 )
-#define SID_AUTHOR_COLOR ( SID_SVX_START + 1168 )
-#define SID_BMPMASK_COLOR ( SID_SVX_START + 1169 )
// IMPORTANT NOTE: adjust SID_SVX_FIRSTFREE, when adding new slot id
-#define SID_SVX_FIRSTFREE ( SID_BMPMASK_COLOR + 1 )
+#define SID_SVX_FIRSTFREE ( SID_DRAW_MEASURELINE + 1 )
// Overflow check for slot IDs
diff --git a/include/svx/tbcontrl.hxx b/include/svx/tbcontrl.hxx
index bf808381c6ac..dfa129a7c00b 100644
--- a/include/svx/tbcontrl.hxx
+++ b/include/svx/tbcontrl.hxx
@@ -136,7 +136,6 @@
#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>
@@ -204,8 +203,19 @@ friend class SfxStyleControllerItem_Impl;
SVX_DLLPRIVATE SfxStyleFamily GetActFamily();
};
-typedef std::function<void(const OUString&, const NamedColor&)> ColorSelectFunction;
+class BorderColorStatus
+{
+ Color maColor;
+ Color maTLBRColor;
+ Color maBLTRColor;
+public:
+ BorderColorStatus();
+ ~BorderColorStatus();
+ bool statusChanged( const css::frame::FeatureStateEvent& rEvent );
+ Color GetColor();
+};
+typedef std::function<void(const OUString&, const Color&)> ColorSelectFunction;
class SVX_DLLPUBLIC SvxColorToolBoxControl : public SfxToolBoxControl
{
std::unique_ptr<svx::ToolboxButtonColorUpdater> m_xBtnUpdater;
@@ -213,7 +223,7 @@ class SVX_DLLPUBLIC SvxColorToolBoxControl : public SfxToolBoxControl
BorderColorStatus m_aBorderColorStatus;
bool m_bSplitButton;
ColorSelectFunction m_aColorSelectFunction;
- DECL_LINK(SelectedHdl, const NamedColor&, void);
+ DECL_LINK(SelectedHdl, const Color&, void);
public:
SFX_DECL_TOOLBOX_CONTROL();
SvxColorToolBoxControl(sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rToolBox);
diff --git a/reportdesign/inc/RptResId.hrc b/reportdesign/inc/RptResId.hrc
index 38102f399e38..7e57bba1525a 100644
--- a/reportdesign/inc/RptResId.hrc
+++ b/reportdesign/inc/RptResId.hrc
@@ -108,6 +108,10 @@
#define STR_SHOW_RULER ( RID_STRING_START + 63 )
#define STR_SHOW_GRID ( RID_STRING_START + 64 )
+#define STR_COLOR_WHITE ( RID_STRING_START + 65 )
+#define STR_CHARCOLOR ( RID_STRING_START + 66 )
+#define STR_CHARBACKGROUND ( RID_STRING_START + 67 )
+#define STR_TRANSPARENT ( RID_STRING_START + 68 )
#define RID_STR_FIELDSELECTION ( RID_STRING_START + 69 )
#define RID_STR_UNDO_ADD_GROUP_HEADER ( RID_STRING_START + 70 )
diff --git a/reportdesign/inc/helpids.hrc b/reportdesign/inc/helpids.hrc
index aaa488316fe4..ed179679859c 100644
--- a/reportdesign/inc/helpids.hrc
+++ b/reportdesign/inc/helpids.hrc
@@ -31,6 +31,7 @@
#define HID_RPT_HORZ_SCROLLBAR "REPORTDESIGN_HID_RPT_HORZ_SCROLLBAR"
#define HID_RPT_VERT_SCROLLBAR "REPORTDESIGN_HID_RPT_VERT_SCROLLBAR"
#define HID_RPT_FIELDEXPRESSION "REPORTDESIGN_HID_RPT_FIELDEXPRESSION"
+#define HID_RPT_POPUP_COLOR_CTRL "REPORTDESIGN_HID_RPT_POPUP_COLOR_CTRL"
#define HID_RPT_POPUP_COLOR "REPORTDESIGN_HID_RPT_POPUP_COLOR"
#define HID_RPT_FIELD_SEL "REPORTDESIGN_HID_RPT_FIELD_SEL"
#define HID_RPT_FIELD_SEL_WIN "REPORTDESIGN_HID_RPT_FIELD_SEL_WIN"
diff --git a/reportdesign/source/ui/dlg/CondFormat.src b/reportdesign/source/ui/dlg/CondFormat.src
index ecf70cae59fd..e8f16c42975c 100644
--- a/reportdesign/source/ui/dlg/CondFormat.src
+++ b/reportdesign/source/ui/dlg/CondFormat.src
@@ -24,5 +24,21 @@ String STR_NUMBERED_CONDITION
{
Text [ en-US ] = "Condition $number$";
};
+String STR_COLOR_WHITE
+{
+ Text [ en-US ] = "White" ;
+};
+String STR_CHARCOLOR
+{
+ Text [ en-US ] = "Font color" ;
+};
+String STR_CHARBACKGROUND
+{
+ Text [ en-US ] = "Background";
+};
+String STR_TRANSPARENT
+{
+ Text [ en-US ] = "No Fill" ;
+};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/reportdesign/source/ui/dlg/Condition.cxx b/reportdesign/source/ui/dlg/Condition.cxx
index 4632306d7b5e..3a216d81ea84 100644
--- a/reportdesign/source/ui/dlg/Condition.cxx
+++ b/reportdesign/source/ui/dlg/Condition.cxx
@@ -84,34 +84,144 @@ IMPL_LINK( ConditionField, OnFormula, Button*, _pClickedButton, void )
}
}
-ConditionColorWrapper::ConditionColorWrapper(Condition* pControl)
- : mxControl(pControl)
- , mnSlotId(0)
+// TO-DO, this is yet another color selector, can it be replaced with SvxColorWindor/SvxColorToolBoxControl ?
+#ifndef WB_NO_DIRECTSELECT
+#define WB_NO_DIRECTSELECT ((WinBits)0x04000000)
+#endif
+
+#define PALETTE_X 10
+#define PALETTE_Y 10
+#define PALETTE_SIZE (PALETTE_X * PALETTE_Y)
+class OColorPopup : public FloatingWindow
{
+ DECL_LINK( SelectHdl, ValueSet*, void );
+ VclPtr<Condition> m_pCondition;
+ sal_uInt16 m_nSlotId;
+public:
+ OColorPopup(vcl::Window* _pParent,Condition* _pCondition);
+ virtual ~OColorPopup() override;
+ virtual void dispose() override;
+ VclPtr<ValueSet> m_aColorSet;
+
+ virtual void KeyInput( const KeyEvent& rKEvt ) override;
+ virtual void Resize() override;
+
+ void StartSelection();
+ void SetSlotId(sal_uInt16 _nSlotId);
+};
+
+OColorPopup::OColorPopup(vcl::Window* _pParent,Condition* _pCondition)
+:FloatingWindow(_pParent, WinBits( WB_BORDER | WB_STDFLOATWIN | WB_3DLOOK|WB_DIALOGCONTROL ))
+,m_pCondition(_pCondition)
+,m_nSlotId(0)
+,m_aColorSet( VclPtr<ValueSet>::Create(this, WinBits( WB_ITEMBORDER | WB_NAMEFIELD | WB_3DLOOK | WB_NO_DIRECTSELECT)) )
+{
+ m_aColorSet->SetHelpId( HID_RPT_POPUP_COLOR_CTRL );
+ SetHelpId( HID_RPT_POPUP_COLOR );
+ const Size aSize12( 13, 13 );
+ short i = 0;
+ XColorListRef pColorList( XColorList::CreateStdColorList() );
+ long nCount = pColorList->Count();
+ Color aColWhite( COL_WHITE );
+ OUString aStrWhite( ModuleRes(STR_COLOR_WHITE) );
+
+ if ( nCount > PALETTE_SIZE )
+ // Show scrollbar if more than PALLETTE_SIZE colors are available
+ m_aColorSet->SetStyle( m_aColorSet->GetStyle() | WB_VSCROLL );
+
+ for ( i = 0; i < nCount; i++ )
+ {
+ const XColorEntry* pEntry = pColorList->GetColor(i);
+ m_aColorSet->InsertItem( i+1, pEntry->GetColor(), pEntry->GetName() );
+ }
+
+ while ( i < PALETTE_SIZE )
+ {
+ // fill empty elements if less then PALLETTE_SIZE colors are available
+ m_aColorSet->InsertItem( i+1, aColWhite, aStrWhite );
+ i++;
+ }
+
+ m_aColorSet->SetSelectHdl( LINK( this, OColorPopup, SelectHdl ) );
+ m_aColorSet->SetColCount( PALETTE_X );
+ m_aColorSet->SetLineCount( PALETTE_Y );
+ Size aSize = m_aColorSet->CalcWindowSizePixel( aSize12 );
+ aSize.Width() += 4;
+ aSize.Height() += 4;
+ SetOutputSizePixel( aSize );
+ m_aColorSet->Show();
+}
+
+OColorPopup::~OColorPopup()
+{
+ disposeOnce();
+}
+
+void OColorPopup::dispose()
+{
+ disposeBuilder();
+ m_aColorSet.disposeAndClear();
+ m_pCondition.clear();
+ FloatingWindow::dispose();
+}
+
+void OColorPopup::KeyInput( const KeyEvent& rKEvt )
+{
+ m_aColorSet->KeyInput(rKEvt);
}
-void ConditionColorWrapper::dispose()
+void OColorPopup::Resize()
{
- mxControl.clear();
+ Size aSize = GetOutputSizePixel();
+ aSize.Width() -= 4;
+ aSize.Height() -= 4;
+ m_aColorSet->SetPosSizePixel( Point(2,2), aSize );
}
-void ConditionColorWrapper::operator()(const OUString& /*rCommand*/, const NamedColor& rNamedColor)
+void OColorPopup::StartSelection()
{
- mxControl->ApplyCommand(mnSlotId, rNamedColor.first);
+ m_aColorSet->StartSelection();
}
+void OColorPopup::SetSlotId(sal_uInt16 _nSlotId)
+{
+ m_nSlotId = _nSlotId;
+ if ( SID_ATTR_CHAR_COLOR_BACKGROUND == _nSlotId || SID_BACKGROUND_COLOR == _nSlotId )
+ {
+ m_aColorSet->SetStyle( m_aColorSet->GetStyle() | WB_NONEFIELD );
+ m_aColorSet->SetText( OUString(ModuleRes( STR_TRANSPARENT )) );
+ }
+}
+
+IMPL_LINK_NOARG(OColorPopup, SelectHdl, ValueSet*, void)
+{
+ sal_uInt16 nItemId = m_aColorSet->GetSelectItemId();
+ Color aColor( nItemId == 0 ? Color( COL_TRANSPARENT ) : m_aColorSet->GetItemColor( nItemId ) );
+
+ /* #i33380# 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. */
+ m_aColorSet->SetNoSelection();
+
+ if ( IsInPopupMode() )
+ EndPopupMode();
+
+ m_pCondition->ApplyCommand( m_nSlotId, aColor );
+}
+
+
// = Condition
Condition::Condition( vcl::Window* _pParent, IConditionalFormatAction& _rAction, ::rptui::OReportController& _rController )
- : VclHBox(_pParent)
- , m_aColorWrapper(this)
- , m_rController(_rController)
- , m_rAction(_rAction)
- , m_pBtnUpdaterFontColor(nullptr)
- , m_pBtnUpdaterBackgroundColor(nullptr)
- , m_nCondIndex(0)
- , m_bInDestruction(false)
+ :VclHBox(_pParent)
+ ,m_rController( _rController )
+ ,m_rAction( _rAction )
+ ,m_pColorFloat(nullptr)
+ ,m_pBtnUpdaterFontColor(nullptr)
+ ,m_pBtnUpdaterBackgroundColor(nullptr)
+ ,m_nCondIndex( 0 )
+ ,m_bInDestruction( false )
{
m_pUIBuilder = new VclBuilder(this, getUIRootDir(), "modules/dbreport/ui/conditionwin.ui");
@@ -218,27 +328,31 @@ void Condition::dispose()
m_pAddCondition.clear();
m_pRemoveCondition.clear();
m_pColorFloat.disposeAndClear();
- m_aColorWrapper.dispose();
disposeBuilder();
VclHBox::dispose();
}
-IMPL_LINK(Condition, DropdownClick, ToolBox*, pToolBox, void)
+IMPL_LINK_NOARG( Condition, DropdownClick, ToolBox*, void )
{
sal_uInt16 nId( m_pActions->GetCurItemId() );
- m_pColorFloat.disposeAndClear();
- sal_uInt16 nSlotId(mapToolbarItemToSlotId(nId));
- m_aColorWrapper.SetSlotId(nSlotId);
- m_pColorFloat = VclPtr<SvxColorWindow>::Create(
- OUString() /*m_aCommandURL*/,
- m_aPaletteManager,
- m_aBorderColorStatus,
- nSlotId,
- nullptr,
- pToolBox,
- m_aColorWrapper);
-
- m_pColorFloat->StartPopupMode(pToolBox, FloatWinPopupFlags::GrabFocus);
+ if ( !m_pColorFloat )
+ m_pColorFloat = VclPtr<OColorPopup>::Create(m_pActions,this);
+
+ sal_uInt16 nTextId = 0;
+ if (nId == m_nFontColorId)
+ {
+ nTextId = STR_CHARCOLOR;
+ }
+ else if (nId == m_nBackgroundColorId)
+ {
+ nTextId = STR_CHARBACKGROUND;
+ }
+ if ( nTextId )
+ m_pColorFloat->SetText(OUString(ModuleRes(nTextId)));
+ m_pColorFloat->SetSlotId(mapToolbarItemToSlotId(nId));
+ m_pColorFloat->SetPosPixel(m_pActions->GetItemPopupPosition(nId,m_pColorFloat->GetSizePixel()));
+ m_pColorFloat->StartPopupMode(m_pActions);
+ m_pColorFloat->StartSelection();
}
IMPL_LINK_NOARG( Condition, OnFormatAction, ToolBox*, void )
diff --git a/reportdesign/source/ui/dlg/Condition.hxx b/reportdesign/source/ui/dlg/Condition.hxx
index 6a6d64e19b9e..ab5194ade94c 100644
--- a/reportdesign/source/ui/dlg/Condition.hxx
+++ b/reportdesign/source/ui/dlg/Condition.hxx
@@ -26,7 +26,6 @@
#include <dbaccess/ToolBoxHelper.hxx>
-#include <svx/colorwindow.hxx>
#include <svx/fntctrl.hxx>
#include <vcl/fixed.hxx>
@@ -63,18 +62,6 @@ namespace rptui
OUString GetText() const { return m_pSubEdit->GetText(); }
};
- class ConditionColorWrapper
- {
- public:
- ConditionColorWrapper(Condition* pControl);
- void SetSlotId(sal_uInt16 nSlotId) { mnSlotId = nSlotId; }
- void operator()(const OUString& rCommand, const NamedColor& rColor);
- void dispose();
- private:
- VclPtr<Condition> mxControl;
- sal_uInt16 mnSlotId;
- };
-
//= Condition
class Condition :public VclHBox
@@ -87,9 +74,6 @@ namespace rptui
sal_uInt16 m_nBackgroundColorId;
sal_uInt16 m_nFontColorId;
sal_uInt16 m_nFontDialogId;
- PaletteManager m_aPaletteManager;
- BorderColorStatus m_aBorderColorStatus;
- ConditionColorWrapper m_aColorWrapper;
::rptui::OReportController& m_rController;
IConditionalFormatAction& m_rAction;
@@ -105,7 +89,7 @@ namespace rptui
VclPtr<PushButton> m_pMoveDown;
VclPtr<PushButton> m_pAddCondition;
VclPtr<PushButton> m_pRemoveCondition;
- VclPtr<SvxColorWindow> m_pColorFloat;
+ VclPtr<OColorPopup> m_pColorFloat;
svx::ToolboxButtonColorUpdater* m_pBtnUpdaterFontColor; // updates the color below the toolbar icon
svx::ToolboxButtonColorUpdater* m_pBtnUpdaterBackgroundColor;
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index 64ae387c84e3..26bd9e97885e 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -827,7 +827,7 @@
#define SCSTR_ORIENTATION_TOPBOTTOM (STR_START + 110)
#define SCSTR_ORIENTATION_BOTTOMTOP (STR_START + 111)
#define SCSTR_ORIENTATION_STANDARD (STR_START + 112)
-//free
+#define SCSTR_AUTHOR (STR_START + 113)
#define SCSTR_UNIT (STR_START + 114)
// print options
diff --git a/sc/source/ui/condformat/colorformat.cxx b/sc/source/ui/condformat/colorformat.cxx
index f6e9ebc4eb9d..ab2e08983b3f 100644
--- a/sc/source/ui/condformat/colorformat.cxx
+++ b/sc/source/ui/condformat/colorformat.cxx
@@ -13,7 +13,6 @@
#include "document.hxx"
#include "sc.hrc"
-#include <svx/colorbox.hxx>
#include <svx/xtable.hxx>
#include <svx/drawitem.hxx>
#include <vcl/msgbox.hxx>
@@ -67,6 +66,16 @@ 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):
@@ -91,13 +100,14 @@ 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();
- mpLbPos->SelectEntry(rData.maPositiveColor);
+ ::SelectColor( rData.maPositiveColor, maCustomColor, *mpLbPos);
mpLbFillType->SelectEntryPos( rData.mbGradient ? 1 : 0 );
- if (rData.mpNegativeColor)
- mpLbNeg->SelectEntry(*rData.mpNegativeColor);
+ if(rData.mpNegativeColor)
+ ::SelectColor( *rData.mpNegativeColor, maCustomColor, *mpLbNeg );
switch (rData.meAxisPosition)
{
@@ -150,9 +160,42 @@ void ScDataBarSettingsDlg::dispose()
void ScDataBarSettingsDlg::Init()
{
- mpLbNeg->SelectEntry(Color(COL_LIGHTRED));
- mpLbAxisCol->SelectEntry(Color(COL_BLACK));
- mpLbPos->SelectEntry(Color(COL_LIGHTBLUE));
+ 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 )
+ {
+ const 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 );
+ }
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 f4273992e9f4..415aa11274e5 100644
--- a/sc/source/ui/condformat/condformatdlgentry.cxx
+++ b/sc/source/ui/condformat/condformatdlgentry.cxx
@@ -18,7 +18,6 @@
#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>
@@ -664,7 +663,7 @@ OUString convertNumberToString(double nVal, ScDocument* pDoc)
return aText;
}
-void SetColorScaleEntryTypes( const ScColorScaleEntry& rEntry, ListBox& rLbType, Edit& rEdit, SvxColorListBox& rLbCol, ScDocument* pDoc )
+void SetColorScaleEntryTypes( const ScColorScaleEntry& rEntry, ListBox& rLbType, Edit& rEdit, ColorListBox& rLbCol, ScDocument* pDoc )
{
// entry Automatic is not available for color scales
sal_Int32 nIndex = static_cast<sal_Int32>(rEntry.GetType());
@@ -727,7 +726,7 @@ void SetColorScaleEntry( ScColorScaleEntry* pEntry, const ListBox& rType, const
}
}
-ScColorScaleEntry* createColorScaleEntry( const ListBox& rType, const SvxColorListBox& rColor, const Edit& rValue, ScDocument* pDoc, const ScAddress& rPos )
+ScColorScaleEntry* createColorScaleEntry( const ListBox& rType, const ColorListBox& rColor, const Edit& rValue, ScDocument* pDoc, const ScAddress& rPos )
{
ScColorScaleEntry* pEntry = new ScColorScaleEntry();
@@ -797,8 +796,38 @@ void ScColorScale2FrmtEntry::Init()
{
maLbEntryTypeMin->SetSelectHdl( LINK( this, ScColorScale2FrmtEntry, EntryTypeHdl ) );
maLbEntryTypeMax->SetSelectHdl( LINK( this, ScColorScale2FrmtEntry, EntryTypeHdl ) );
- maLbColMin->SelectEntry(Color(COL_LIGHTRED));
- maLbColMax->SelectEntry(Color(COL_LIGHTBLUE));
+
+ 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 )
+ {
+ const 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 );
+ }
}
ScFormatEntry* ScColorScale2FrmtEntry::createColorscaleEntry() const
@@ -947,9 +976,43 @@ void ScColorScale3FrmtEntry::Init()
maLbEntryTypeMin->SetSelectHdl( LINK( this, ScColorScale3FrmtEntry, EntryTypeHdl ) );
maLbEntryTypeMax->SetSelectHdl( LINK( this, ScColorScale3FrmtEntry, EntryTypeHdl ) );
maLbEntryTypeMiddle->SetSelectHdl( LINK( this, ScColorScale3FrmtEntry, EntryTypeHdl ) );
- maLbColMin->SelectEntry(Color(COL_LIGHTRED));
- maLbColMiddle->SelectEntry(Color(COL_YELLOW));
- maLbColMax->SelectEntry(Color(0x00CC00));
+
+ 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 )
+ {
+ const 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 );
+ }
}
ScFormatEntry* ScColorScale3FrmtEntry::createColorscaleEntry() const
diff --git a/sc/source/ui/dbgui/scendlg.cxx b/sc/source/ui/dbgui/scendlg.cxx
index efcd657caed7..3cd9044ca12d 100644
--- a/sc/source/ui/dbgui/scendlg.cxx
+++ b/sc/source/ui/dbgui/scendlg.cxx
@@ -21,7 +21,6 @@
#include "scitems.hxx"
#include <comphelper/string.hxx>
-#include <svx/colorbox.hxx>
#include <svx/drawitem.hxx>
#include <svx/xtable.hxx>
#include <sfx2/objsh.hxx>
@@ -59,6 +58,27 @@ 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++ )
+ {
+ const 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 01d2576c7a61..9e620e5099b4 100644
--- a/sc/source/ui/drawfunc/drawsh4.cxx
+++ b/sc/source/ui/drawfunc/drawsh4.cxx
@@ -34,8 +34,17 @@
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();
@@ -63,6 +72,22 @@ 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 a7eb77aea3e7..9a97a6aed7af 100644
--- a/sc/source/ui/drawfunc/drtxtob2.cxx
+++ b/sc/source/ui/drawfunc/drtxtob2.cxx
@@ -202,8 +202,17 @@ 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();
@@ -231,6 +240,22 @@ 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 8838418cfc18..682be33c87ad 100644
--- a/sc/source/ui/inc/colorformat.hxx
+++ b/sc/source/ui/inc/colorformat.hxx
@@ -19,7 +19,6 @@
struct ScDataBarFormatData;
class ScDocument;
-class SvxColorListBox;
class ScDataBarSettingsDlg : public ModalDialog
{
@@ -27,9 +26,9 @@ private:
VclPtr<OKButton> mpBtnOk;
VclPtr<CancelButton> mpBtnCancel;
- VclPtr<SvxColorListBox> mpLbPos;
- VclPtr<SvxColorListBox> mpLbNeg;
- VclPtr<SvxColorListBox> mpLbAxisCol;
+ VclPtr<ColorListBox> mpLbPos;
+ VclPtr<ColorListBox> mpLbNeg;
+ VclPtr<ColorListBox> mpLbAxisCol;
VclPtr<ListBox> mpLbFillType;
VclPtr<ListBox> mpLbTypeMin;
@@ -44,6 +43,7 @@ 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 f7d446ff474b..cba12245772f 100644
--- a/sc/source/ui/inc/condformatdlgentry.hxx
+++ b/sc/source/ui/inc/condformatdlgentry.hxx
@@ -18,7 +18,6 @@
class ScIconSetFrmtDataEntry;
class ScCondFormatDlg;
-class SvxColorListBox;
namespace condformat {
@@ -173,8 +172,8 @@ class ScColorScale2FrmtEntry : public ScCondFrmtEntry
VclPtr<Edit> maEdMin;
VclPtr<Edit> maEdMax;
- VclPtr<SvxColorListBox> maLbColMin;
- VclPtr<SvxColorListBox> maLbColMax;
+ VclPtr<ColorListBox> maLbColMin;
+ VclPtr<ColorListBox> maLbColMax;
ScFormatEntry* createColorscaleEntry() const;
@@ -207,9 +206,9 @@ class ScColorScale3FrmtEntry : public ScCondFrmtEntry
VclPtr<Edit> maEdMiddle;
VclPtr<Edit> maEdMax;
- VclPtr<SvxColorListBox> maLbColMin;
- VclPtr<SvxColorListBox> maLbColMiddle;
- VclPtr<SvxColorListBox> maLbColMax;
+ VclPtr<ColorListBox> maLbColMin;
+ VclPtr<ColorListBox> maLbColMiddle;
+ VclPtr<ColorListBox> maLbColMax;
ScFormatEntry* createColorscaleEntry() const;
diff --git a/sc/source/ui/inc/opredlin.hxx b/sc/source/ui/inc/opredlin.hxx
index 69d1bfb31db4..a0a3e765c3be 100644
--- a/sc/source/ui/inc/opredlin.hxx
+++ b/sc/source/ui/inc/opredlin.hxx
@@ -36,10 +36,11 @@
class ScRedlineOptionsTabPage : public SfxTabPage
{
- VclPtr<SvxColorListBox> m_pContentColorLB;
- VclPtr<SvxColorListBox> m_pRemoveColorLB;
- VclPtr<SvxColorListBox> m_pInsertColorLB;
- VclPtr<SvxColorListBox> m_pMoveColorLB;
+ VclPtr<ColorListBox> m_pContentColorLB;
+ VclPtr<ColorListBox> m_pRemoveColorLB;
+ VclPtr<ColorListBox> m_pInsertColorLB;
+ VclPtr<ColorListBox> m_pMoveColorLB;
+ OUString aAuthorStr;
public:
diff --git a/sc/source/ui/inc/scendlg.hxx b/sc/source/ui/inc/scendlg.hxx
index 3d5ecf4ce7e5..e20073c17882 100644
--- a/sc/source/ui/inc/scendlg.hxx
+++ b/sc/source/ui/inc/scendlg.hxx
@@ -29,8 +29,6 @@
enum class ScScenarioFlags;
-class SvxColorListBox;
-
class ScNewScenarioDlg : public ModalDialog
{
public:
@@ -47,7 +45,7 @@ private:
VclPtr<Edit> m_pEdName;
VclPtr<VclMultiLineEdit> m_pEdComment;
VclPtr<CheckBox> m_pCbShowFrame;
- VclPtr<SvxColorListBox> m_pLbColor;
+ VclPtr<ColorListBox> 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 480d82432442..359be4889d81 100644
--- a/sc/source/ui/inc/tpview.hxx
+++ b/sc/source/ui/inc/tpview.hxx
@@ -28,14 +28,13 @@
#include <svx/strarray.hxx>
class ScViewOptions;
-class SvxColorListBox;
class ScTpContentOptions : public SfxTabPage
{
friend class VclPtr<ScTpContentOptions>;
VclPtr<ListBox> pGridLB;
VclPtr<FixedText> pColorFT;
- VclPtr<SvxColorListBox> pColorLB;
+ VclPtr<ColorListBox> pColorLB;
VclPtr<CheckBox> pBreakCB;
VclPtr<CheckBox> pGuideLineCB;
diff --git a/sc/source/ui/optdlg/opredlin.cxx b/sc/source/ui/optdlg/opredlin.cxx
index 8a769ad24dab..f8fb21682a47 100644
--- a/sc/source/ui/optdlg/opredlin.cxx
+++ b/sc/source/ui/optdlg/opredlin.cxx
@@ -19,7 +19,6 @@
#undef SC_DLLIMPLEMENTATION
-#include <svx/colorbox.hxx>
#include <svx/dlgutil.hxx>
#include <svx/drawitem.hxx>
#include <svx/xtable.hxx>
@@ -41,16 +40,13 @@
ScRedlineOptionsTabPage::ScRedlineOptionsTabPage( vcl::Window* pParent,
const SfxItemSet& rSet )
- : SfxTabPage(pParent,"OptChangesPage", "modules/scalc/ui/optchangespage.ui", &rSet)
+ : SfxTabPage(pParent,"OptChangesPage", "modules/scalc/ui/optchangespage.ui", &rSet),
+ aAuthorStr (ScResId(SCSTR_AUTHOR))
{
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()
@@ -76,17 +72,53 @@ bool ScRedlineOptionsTabPage::FillItemSet( SfxItemSet* /* rSet */ )
{
ScAppOptions aAppOptions=SC_MOD()->GetAppOptions();
- 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);
+ 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);
+
+ }
SC_MOD()->SetAppOptions(aAppOptions);
@@ -101,19 +133,59 @@ 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 )
+ {
+ const 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();
- m_pContentColorLB->SelectEntry(Color(nColor));
+ if (nColor == COL_TRANSPARENT)
+ m_pContentColorLB->SelectEntryPos(0);
+ else
+ m_pContentColorLB->SelectEntry(Color(nColor));
nColor = aAppOptions.GetTrackMoveColor();
- m_pMoveColorLB->SelectEntry(Color(nColor));
+ if (nColor == COL_TRANSPARENT)
+ m_pMoveColorLB->SelectEntryPos(0);
+ else
+ m_pMoveColorLB->SelectEntry(Color(nColor));
nColor = aAppOptions.GetTrackInsertColor();
- m_pInsertColorLB->SelectEntry(Color(nColor));
+ if (nColor == COL_TRANSPARENT)
+ m_pInsertColorLB->SelectEntryPos(0);
+ else
+ m_pInsertColorLB->SelectEntry(Color(nColor));
nColor = aAppOptions.GetTrackDeleteColor();
- m_pRemoveColorLB->SelectEntry(Color(nColor));
+ if (nColor == COL_TRANSPARENT)
+ m_pRemoveColorLB->SelectEntryPos(0);
+ else
+ 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 0257ff228bc6..9e254fb83c93 100644
--- a/sc/source/ui/optdlg/tpview.cxx
+++ b/sc/source/ui/optdlg/tpview.cxx
@@ -31,7 +31,6 @@
#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>
@@ -152,8 +151,8 @@ bool ScTpContentOptions::FillItemSet( SfxItemSet* rCoreSet )
pBreakCB ->IsValueChangedFromSaved() ||
pGuideLineCB ->IsValueChangedFromSaved())
{
- NamedColor aNamedColor = pColorLB->GetSelectEntry();
- pLocalOptions->SetGridColor(aNamedColor.first, aNamedColor.second);
+ pLocalOptions->SetGridColor( pColorLB->GetSelectEntryColor(),
+ pColorLB->GetSelectEntry() );
rCoreSet->Put(ScTpViewItem(SID_SCVIEWOPTIONS, *pLocalOptions));
bRet = true;
}
@@ -303,14 +302,58 @@ void ScTpContentOptions::InitGridOpt()
pGridLB->SelectEntryPos (nSelPos);
- // select grid color entry
+ 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++ )
+ {
+ const 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
+
OUString aName;
Color aCol = pLocalOptions->GetGridColor( &aName );
+ nSelPos = pColorLB->GetEntryPos( aCol );
- if (aName.trim().isEmpty() && aCol == Color(SC_STD_GRIDCOLOR))
- aName = ScGlobal::GetRscString(STR_GRIDCOLOR);
-
- pColorLB->SelectEntry(std::make_pair(aCol, aName));
+ if ( LISTBOX_ENTRY_NOTFOUND != nSelPos )
+ pColorLB->SelectEntryPos( nSelPos );
+ else
+ pColorLB->SelectEntryPos( pColorLB->InsertEntry( aCol, aName ) );
}
IMPL_LINK( ScTpContentOptions, GridHdl, ListBox&, rLb, void )
diff --git a/sc/source/ui/src/scstring.src b/sc/source/ui/src/scstring.src
index e4e7e6ba9198..70dc4327beae 100644
--- a/sc/source/ui/src/scstring.src
+++ b/sc/source/ui/src/scstring.src
@@ -798,6 +798,11 @@ 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/conditionalentry.ui b/sc/uiconfig/scalc/ui/conditionalentry.ui
index a7f4f1402f20..86d18e199b5a 100644
--- a/sc/uiconfig/scalc/ui/conditionalentry.ui
+++ b/sc/uiconfig/scalc/ui/conditionalentry.ui
@@ -131,7 +131,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="lbcolmin">
+ <object class="svtlo-ColorListBox" id="lbcolmin">
<property name="can_focus">False</property>
</object>
<packing>
@@ -140,7 +140,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="lbcolmiddle">
+ <object class="svtlo-ColorListBox" id="lbcolmiddle">
<property name="can_focus">False</property>
</object>
<packing>
@@ -149,7 +149,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="lbcolmax">
+ <object class="svtlo-ColorListBox" id="lbcolmax">
<property name="can_focus">False</property>
</object>
<packing>
diff --git a/sc/uiconfig/scalc/ui/databaroptions.ui b/sc/uiconfig/scalc/ui/databaroptions.ui
index 0624e8b55e2c..c2a4ae233281 100644
--- a/sc/uiconfig/scalc/ui/databaroptions.ui
+++ b/sc/uiconfig/scalc/ui/databaroptions.ui
@@ -241,7 +241,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="positive_colour">
+ <object class="svtlo-ColorListBox" 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="svxlo-SvxColorListBox" id="negative_colour">
+ <object class="svtlo-ColorListBox" 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="svxlo-SvxColorListBox" id="axis_colour">
+ <object class="svtlo-ColorListBox" id="axis_colour">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
@@ -523,6 +523,17 @@
<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 7d4bba5bded0..df83ce92437f 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-SvxColorListBox" id="changes">
+ <object class="svxlo-ColorLB" id="changes">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -97,7 +97,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="deletions">
+ <object class="svxlo-ColorLB" id="deletions">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -107,7 +107,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="entries">
+ <object class="svxlo-ColorLB" id="entries">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -117,7 +117,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="insertions">
+ <object class="svxlo-ColorLB" 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 ece0490e4b48..846c05e4691f 100644
--- a/sc/uiconfig/scalc/ui/scenariodialog.ui
+++ b/sc/uiconfig/scalc/ui/scenariodialog.ui
@@ -253,7 +253,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="bordercolor">
+ <object class="svtlo-ColorListBox" 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 9d1591ec3966..1e39a39f2ea0 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-SvxColorListBox" id="color">
+ <object class="svxlo-ColorLB" 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 7f763c690346..e3269326c3c5 100644
--- a/sd/inc/sdabstdlg.hxx
+++ b/sd/inc/sdabstdlg.hxx
@@ -180,7 +180,7 @@ public:
SD_DLLPUBLIC static SdAbstractDialogFactory* Create();
virtual VclPtr<VclAbstractDialog> CreateBreakDlg(vcl::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount ) = 0;
- virtual VclPtr<AbstractCopyDlg> CreateCopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs, ::sd::View* pView ) = 0;
+ virtual VclPtr<AbstractCopyDlg> CreateCopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs, const rtl::Reference<XColorList> &pColTab, ::sd::View* pView ) = 0;
virtual VclPtr<AbstractSdCustomShowDlg> CreateSdCustomShowDlg(vcl::Window* pWindow, SdDrawDocument& rDrawDoc) = 0;
virtual VclPtr<SfxAbstractTabDialog> CreateSdTabCharDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell) = 0;
virtual VclPtr<SfxAbstractTabDialog> CreateSdTabPageDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage) = 0;
diff --git a/sd/qa/unit/dialogs-test.cxx b/sd/qa/unit/dialogs-test.cxx
index 3b10d337a3ca..4acc570ca599 100644
--- a/sd/qa/unit/dialogs-test.cxx
+++ b/sd/qa/unit/dialogs-test.cxx
@@ -292,10 +292,16 @@ VclAbstractDialog* SdDialogsTest::createDialogByID(sal_uInt32 nID)
}
case 2:
{
+ // CreateCopyDlg(const SfxItemSet& rInAttrs, const rtl::Reference<XColorList> &pColTab, ::sd::View* pView) override;
+ // works without XColorList (DropDowns will be empty), but
+ // it's easy to access, so use it
+ XColorListRef pColorList(XColorList::CreateStdColorList());
+
// needs an SfxItemSet, use the one from the 1st object
pRetval = getSdAbstractDialogFactory()->CreateCopyDlg(
getViewShell()->GetActiveWindow(),
getSfxItemSetFromSdrObject(),
+ pColorList,
getDrawView());
break;
}
diff --git a/sd/source/ui/animations/CustomAnimationDialog.cxx b/sd/source/ui/animations/CustomAnimationDialog.cxx
index 6726317d95ba..2ba3459164ee 100644
--- a/sd/source/ui/animations/CustomAnimationDialog.cxx
+++ b/sd/source/ui/animations/CustomAnimationDialog.cxx
@@ -62,7 +62,6 @@
#include <editeng/flstitem.hxx>
#include <svx/drawitem.hxx>
-#include <svx/colorbox.hxx>
#include <svx/xtable.hxx>
#include <svx/gallery.hxx>
@@ -192,24 +191,43 @@ public:
virtual Control* getControl() override;
private:
- VclPtr<SvxColorListBox> mpControl;
- DECL_LINK(OnSelect, SvxColorListBox&, void);
+ VclPtr<ColorListBox> mpControl;
+ DECL_LINK(OnSelect, ListBox&, 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<SvxColorListBox>::Create(pParent);
+ mpControl = VclPtr<ColorListBox>::Create( pParent, WB_BORDER|WB_TABSTOP|WB_DROPDOWN );
+ mpControl->SetDropDownLineCount( 10 );
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;
- mpControl->SelectEntry(static_cast<Color>(nColor));
+
+ for ( long i = 0; i < pColorList->Count(); i++ )
+ {
+ const XColorEntry* pEntry = pColorList->GetColor(i);
+ sal_Int32 nPos = mpControl->InsertEntry( pEntry->GetColor(), pEntry->GetName() );
+ if( pEntry->GetColor().GetRGBColor() == (sal_uInt32)nColor )
+ mpControl->SelectEntryPos( nPos );
+ }
}
-IMPL_LINK_NOARG(ColorPropertyBox, OnSelect, SvxColorListBox&, void)
+IMPL_LINK_NOARG(ColorPropertyBox, OnSelect, ListBox&, void)
{
maModifyLink.Call(nullptr);
}
@@ -227,7 +245,7 @@ void ColorPropertyBox::setValue( const Any& rValue, const OUString& )
rValue >>= nColor;
mpControl->SetNoSelection();
- mpControl->SelectEntry(static_cast<Color>(nColor));
+ mpControl->SelectEntryPos( mpControl->GetEntryPos( static_cast<Color>(nColor) ) );
}
}
@@ -1022,7 +1040,7 @@ private:
VclPtr<FixedText> mpFTAfterEffect;
VclPtr<ListBox> mpLBAfterEffect;
VclPtr<FixedText> mpFTDimColor;
- VclPtr<SvxColorListBox> mpCLBDimColor;
+ VclPtr<ColorListBox> mpCLBDimColor;
VclPtr<FixedText> mpFTTextAnim;
VclPtr<ListBox> mpLBTextAnim;
VclPtr<MetricField> mpMFTextDelay;
@@ -1047,7 +1065,6 @@ 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" );
@@ -1060,6 +1077,28 @@ 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++ )
+ {
+ const 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 )
{
@@ -1135,8 +1174,13 @@ CustomAnimationEffectTabPage::CustomAnimationEffectTabPage( vcl::Window* pParent
{
sal_Int32 nColor = 0;
aDimColor >>= nColor;
- Color aColor(nColor);
- mpCLBDimColor->SelectEntry(aColor);
+ 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) ) );
}
else
{
@@ -1288,7 +1332,16 @@ IMPL_LINK( CustomAnimationEffectTabPage, implSelectHdl, ListBox&, rListBox, void
void CustomAnimationEffectTabPage::implHdl(Control* pControl )
{
- if( pControl == mpLBTextAnim )
+ 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( mpMFTextDelay->GetValue() == 0 )
mpMFTextDelay->SetValue( 100 );
@@ -1367,7 +1420,10 @@ void CustomAnimationEffectTabPage::update( STLPropertySet* pSet )
Any aDimColor;
if( nPos == 1 )
{
- Color aSelectedColor = mpCLBDimColor->GetSelectEntryColor();
+ Color aSelectedColor;
+ if ( mpCLBDimColor->GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND )
+ 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 efcebc1442f1..f68e06c38293 100644
--- a/sd/source/ui/dlg/copydlg.cxx
+++ b/sd/source/ui/dlg/copydlg.cxx
@@ -19,7 +19,6 @@
#include "copydlg.hxx"
#include <comphelper/string.hxx>
-#include <svx/colorbox.hxx>
#include <svx/dlgutil.hxx>
#include <sfx2/module.hxx>
#include <svx/xcolit.hxx>
@@ -41,9 +40,11 @@ namespace sd {
#define TOKEN ';'
-CopyDlg::CopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs, ::sd::View* pInView)
+CopyDlg::CopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs,
+ const XColorListRef &pColList, ::sd::View* pInView)
: SfxModalDialog(pWindow, "DuplicateDialog", "modules/sdraw/ui/copydlg.ui")
, mrOutAttrs(rInAttrs)
+ , mpColorList(pColList)
, maUIScale(pInView->GetDoc().GetUIScale())
, mpView(pInView)
{
@@ -59,6 +60,11 @@ CopyDlg::CopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs, ::sd::View* p
get(m_pLbEndColor, "end");
get(m_pBtnSetDefault, "default");
+ // 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 ) );
@@ -195,22 +201,31 @@ void CopyDlg::GetAttr( SfxItemSet& rOutAttrs )
rOutAttrs.Put( SfxInt32Item( ATTR_COPY_WIDTH, nWidth ) );
rOutAttrs.Put( SfxInt32Item( ATTR_COPY_HEIGHT, nHeight ) );
- 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));
+ 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 );
+ }
}
/**
* enables and selects end color LB
*/
-IMPL_LINK_NOARG(CopyDlg, SelectColorHdl, SvxColorListBox&, void)
+IMPL_LINK_NOARG(CopyDlg, SelectColorHdl, ListBox&, void)
{
- const Color aColor = m_pLbStartColor->GetSelectEntryColor();
+ sal_Int32 nPos = m_pLbStartColor->GetSelectEntryPos();
- if (!m_pLbEndColor->IsEnabled())
+ if( nPos != LISTBOX_ENTRY_NOTFOUND &&
+ !m_pLbEndColor->IsEnabled() )
{
- m_pLbEndColor->SelectEntry(aColor);
+ m_pLbEndColor->SelectEntryPos( nPos );
m_pLbEndColor->Enable();
m_pFtEndColor->Enable();
}
diff --git a/sd/source/ui/dlg/sddlgfact.cxx b/sd/source/ui/dlg/sddlgfact.cxx
index 23289ab93810..d2041f2c7554 100644
--- a/sd/source/ui/dlg/sddlgfact.cxx
+++ b/sd/source/ui/dlg/sddlgfact.cxx
@@ -315,9 +315,10 @@ VclPtr<VclAbstractDialog> SdAbstractDialogFactory_Impl::CreateBreakDlg(
VclPtr<AbstractCopyDlg> SdAbstractDialogFactory_Impl::CreateCopyDlg(vcl::Window* pParent,
const SfxItemSet& rInAttrs,
+ const rtl::Reference<XColorList> &pColTab,
::sd::View* pView )
{
- return VclPtr<AbstractCopyDlg_Impl>::Create( VclPtr<::sd::CopyDlg>::Create( pParent, rInAttrs, pView ) );
+ return VclPtr<AbstractCopyDlg_Impl>::Create( VclPtr<::sd::CopyDlg>::Create( pParent, rInAttrs, pColTab, pView ) );
}
VclPtr<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 5eb076b09b11..f014c8763e27 100644
--- a/sd/source/ui/dlg/sddlgfact.hxx
+++ b/sd/source/ui/dlg/sddlgfact.hxx
@@ -215,7 +215,7 @@ public:
virtual ~SdAbstractDialogFactory_Impl() {}
virtual VclPtr<VclAbstractDialog> CreateBreakDlg(vcl::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount) override;
- virtual VclPtr<AbstractCopyDlg> CreateCopyDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView) override;
+ virtual VclPtr<AbstractCopyDlg> CreateCopyDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, const rtl::Reference<XColorList> &pColTab, ::sd::View* pView) override;
virtual VclPtr<AbstractSdCustomShowDlg> CreateSdCustomShowDlg(vcl::Window* pParent, SdDrawDocument& rDrawDoc) override;
virtual VclPtr<SfxAbstractTabDialog> CreateSdTabCharDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell) override;
virtual VclPtr<SfxAbstractTabDialog> CreateSdTabPageDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage) override;
diff --git a/sd/source/ui/func/fucopy.cxx b/sd/source/ui/func/fucopy.cxx
index 3fb2dc929646..a834258b78d2 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 )
{
- ScopedVclPtr<AbstractCopyDlg> pDlg(pFact->CreateCopyDlg(mpViewShell->GetActiveWindow(), aSet, mpView ));
+ ScopedVclPtr<AbstractCopyDlg> pDlg(pFact->CreateCopyDlg(mpViewShell->GetActiveWindow(), aSet, mpDoc->GetColorList(), mpView ));
if (!pDlg)
return;
diff --git a/sd/source/ui/inc/copydlg.hxx b/sd/source/ui/inc/copydlg.hxx
index 33a97c589943..98ac00ab7318 100644
--- a/sd/source/ui/inc/copydlg.hxx
+++ b/sd/source/ui/inc/copydlg.hxx
@@ -28,8 +28,6 @@
#include <sfx2/basedlgs.hxx>
#include <tools/fract.hxx>
-class SvxColorListBox;
-
namespace sd {
class View;
@@ -41,7 +39,8 @@ class CopyDlg
: public SfxModalDialog
{
public:
- CopyDlg(vcl::Window* pWindow, const SfxItemSet& rInAttrs, ::sd::View* pView);
+ CopyDlg( vcl::Window* pWindow, const SfxItemSet& rInAttrs,
+ const XColorListRef &pColList, ::sd::View* pView );
virtual ~CopyDlg() override;
virtual void dispose() override;
@@ -59,17 +58,18 @@ private:
VclPtr<MetricField> m_pMtrFldWidth;
VclPtr<MetricField> m_pMtrFldHeight;
- VclPtr<SvxColorListBox> m_pLbStartColor;
+ VclPtr<ColorLB> m_pLbStartColor;
VclPtr<FixedText> m_pFtEndColor;
- VclPtr<SvxColorListBox> m_pLbEndColor;
+ VclPtr<ColorLB> m_pLbEndColor;
VclPtr<PushButton> m_pBtnSetDefault;
const SfxItemSet& mrOutAttrs;
+ XColorListRef mpColorList;
Fraction maUIScale;
::sd::View* mpView;
- DECL_LINK( SelectColorHdl, SvxColorListBox&, void );
+ DECL_LINK( SelectColorHdl, ListBox&, void );
DECL_LINK( SetViewData, Button*, void );
DECL_LINK( SetDefault, Button*, void );
};
diff --git a/sd/source/ui/sidebar/SlideBackground.cxx b/sd/source/ui/sidebar/SlideBackground.cxx
index 3957fbafbd0d..89587c52282d 100644
--- a/sd/source/ui/sidebar/SlideBackground.cxx
+++ b/sd/source/ui/sidebar/SlideBackground.cxx
@@ -38,7 +38,6 @@
#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>
@@ -212,21 +211,48 @@ 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);
+ mpFillLB->SelectEntry( aColor );
+
+ if(mpFillLB->GetSelectEntryCount() == 0)
+ {
+ mpFillLB->InsertEntry(aColor, OUString());
+ mpFillLB->SelectEntry(aColor);
+ }
}
break;
case 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();
- mpFillGrad->SelectEntry(aEndColor);
+ 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);
+ }
}
break;
@@ -805,7 +831,7 @@ IMPL_LINK_NOARG(SlideBackground, PaperSizeModifyHdl, ListBox&, void)
GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_SIZE, SfxCallMode::RECORD, { &aSizeItem, mpPageItem.get() });
}
-IMPL_LINK_NOARG(SlideBackground, FillColorHdl, SvxColorListBox&, void)
+IMPL_LINK_NOARG(SlideBackground, FillColorHdl, ListBox&, 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 fbbe7016b8aa..deb9a3b8118a 100644
--- a/sd/source/ui/sidebar/SlideBackground.hxx
+++ b/sd/source/ui/sidebar/SlideBackground.hxx
@@ -45,8 +45,6 @@
#include "EventMultiplexer.hxx"
#include <sfx2/sidebar/IContextChangeReceiver.hxx>
-class SvxColorListBox;
-
namespace sd { namespace sidebar {
class SlideBackground :
@@ -81,9 +79,9 @@ private:
VclPtr<ListBox> mpPaperOrientation;
VclPtr<ListBox> mpMasterSlide;
VclPtr<SvxFillTypeBox> mpFillStyle;
- VclPtr<SvxColorListBox> mpFillLB;
+ VclPtr<ColorLB> mpFillLB;
VclPtr<SvxFillAttrBox> mpFillAttr;
- VclPtr<SvxColorListBox> mpFillGrad;
+ VclPtr<ColorLB> mpFillGrad;
VclPtr<CheckBox> mpDspMasterBackground;
VclPtr<CheckBox> mpDspMasterObjects;
VclPtr<Button> mpCloseMaster;
@@ -122,7 +120,7 @@ private:
DECL_LINK(FillBackgroundHdl, ListBox&, void);
DECL_LINK(FillStyleModifyHdl, ListBox&, void);
DECL_LINK(PaperSizeModifyHdl, ListBox&, void);
- DECL_LINK(FillColorHdl, SvxColorListBox&, void);
+ DECL_LINK(FillColorHdl, ListBox&, void);
DECL_LINK(AssignMasterPage, ListBox&, void);
DECL_LINK(DspBackground, Button*, void);
DECL_LINK(DspObjects, Button*, void);
diff --git a/sd/source/ui/view/drviews6.cxx b/sd/source/ui/view/drviews6.cxx
index 7fa40d53e97e..d34b08ffb694 100644
--- a/sd/source/ui/view/drviews6.cxx
+++ b/sd/source/ui/view/drviews6.cxx
@@ -87,6 +87,15 @@ 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();
@@ -116,6 +125,9 @@ void DrawViewShell::GetFormTextState(SfxItemSet& rSet)
}
else
{
+ if ( pDlg )
+ pDlg->SetColorList(GetDoc()->GetColorList());
+
SfxItemSet aSet( GetDoc()->GetPool() );
mpDrawView->GetAttributes( aSet );
rSet.Set( aSet );
@@ -329,8 +341,17 @@ 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 4236050fe3b3..a2fe62bb2d36 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();
+ p3DWin->InitColorLB( GetDoc() );
}
}
break;
diff --git a/sd/uiconfig/sdraw/ui/copydlg.ui b/sd/uiconfig/sdraw/ui/copydlg.ui
index 451c854ea7b3..2ae2610b38c5 100644
--- a/sd/uiconfig/sdraw/ui/copydlg.ui
+++ b/sd/uiconfig/sdraw/ui/copydlg.ui
@@ -448,7 +448,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="start">
+ <object class="svxlo-ColorLB" id="start">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
@@ -459,7 +459,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="end">
+ <object class="svxlo-ColorLB" 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 758845856e8c..fffceb744ec9 100644
--- a/sd/uiconfig/simpress/ui/customanimationeffecttab.ui
+++ b/sd/uiconfig/simpress/ui/customanimationeffecttab.ui
@@ -254,7 +254,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="dim_color_list">
+ <object class="svtlo-ColorListBox" 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 0ab82e1086de..9b5d24a435e3 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-SvxColorListBox" id="fillattr">
+ <object class="svxlo-ColorLB" id="fillattr">
<property name="width_request">150</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
@@ -140,7 +140,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="fillattr2">
+ <object class="svxlo-ColorLB" id="fillattr2">
<property name="width_request">150</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
diff --git a/sfx2/source/dialog/itemconnect.cxx b/sfx2/source/dialog/itemconnect.cxx
index e793ef7879ce..f07e55131814 100644
--- a/sfx2/source/dialog/itemconnect.cxx
+++ b/sfx2/source/dialog/itemconnect.cxx
@@ -129,6 +129,34 @@ 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 ce7234810d16..4c6b107b1025 100644
--- a/svtools/source/control/ctrlbox.cxx
+++ b/svtools/source/control/ctrlbox.cxx
@@ -59,6 +59,230 @@
#define FONTNAMEBOXMRUENTRIESFILE "/user/config/fontnameboxmruentries"
+class ImplColorListData
+{
+public:
+ Color aColor;
+ bool bColor;
+
+ ImplColorListData() : aColor( COL_BLACK ) { bColor = false; }
+ explicit ImplColorListData( const Color& rColor ) : aColor( rColor ) { bColor = true; }
+};
+
+void ColorListBox::ImplInit()
+{
+ pColorList = new ImpColorList();
+
+ const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
+ aImageSize = rStyleSettings.GetListBoxPreviewDefaultPixelSize();
+ EnableUserDraw( true );
+ SetUserItemSize( aImageSize );
+}
+
+void ColorListBox::ImplDestroyColorEntries()
+{
+ for ( size_t n = pColorList->size(); n; )
+ delete (*pColorList)[ --n ];
+ pColorList->clear();
+}
+
+ColorListBox::ColorListBox( vcl::Window* pParent, WinBits nWinStyle ) :
+ ListBox( pParent, nWinStyle )
+{
+ ImplInit();
+ 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();
+}
+
+void ColorListBox::dispose()
+{
+ if ( pColorList )
+ {
+ ImplDestroyColorEntries();
+ delete pColorList;
+ pColorList = nullptr;
+ }
+ ListBox::dispose();
+}
+
+sal_Int32 ColorListBox::InsertEntry( const OUString& rStr, sal_Int32 nPos )
+{
+ nPos = ListBox::InsertEntry( rStr, nPos );
+ if ( nPos != LISTBOX_ERROR )
+ {
+ ImplColorListData* pData = new ImplColorListData;
+ if ( static_cast<size_t>(nPos) < pColorList->size() )
+ {
+ ImpColorList::iterator it = pColorList->begin();
+ ::std::advance( it, nPos );
+ pColorList->insert( it, pData );
+ }
+ else
+ {
+ pColorList->push_back( pData );
+ nPos = pColorList->size() - 1;
+ }
+ }
+ return nPos;
+}
+
+sal_Int32 ColorListBox::InsertEntry( const Color& rColor, const OUString& rStr,
+ sal_Int32 nPos )
+{
+ nPos = ListBox::InsertEntry( rStr, nPos );
+ if ( nPos != LISTBOX_ERROR )
+ {
+ ImplColorListData* pData = new ImplColorListData( rColor );
+ if ( static_cast<size_t>(nPos) < pColorList->size() )
+ {
+ ImpColorList::iterator it = pColorList->begin();
+ ::std::advance( it, nPos );
+ pColorList->insert( it, pData );
+ }
+ else
+ {
+ pColorList->push_back( pData );
+ nPos = pColorList->size() - 1;
+ }
+ }
+ return nPos;
+}
+
+void ColorListBox::InsertAutomaticEntryColor(const Color &rColor)
+{
+ // insert the "Automatic"-entry always on the first position
+ InsertEntry( rColor, SVT_RESSTR(STR_SVT_AUTOMATIC_COLOR), 0 );
+}
+
+void ColorListBox::RemoveEntry( sal_Int32 nPos )
+{
+ ListBox::RemoveEntry( nPos );
+ if ( 0 <= nPos && static_cast<size_t>(nPos) < pColorList->size() )
+ {
+ ImpColorList::iterator it = pColorList->begin();
+ ::std::advance( it, nPos );
+ delete *it;
+ pColorList->erase( it );
+ }
+}
+
+void ColorListBox::Clear()
+{
+ ImplDestroyColorEntries();
+ ListBox::Clear();
+}
+
+void ColorListBox::CopyEntries( const ColorListBox& rBox )
+{
+ // Liste leeren
+ ImplDestroyColorEntries();
+
+ // Daten kopieren
+ size_t nCount = rBox.pColorList->size();
+ for ( size_t n = 0; n < nCount; n++ )
+ {
+ ImplColorListData* pData = (*rBox.pColorList)[ n ];
+ sal_Int32 nPos = InsertEntry( rBox.GetEntry( n ) );
+ if ( nPos != LISTBOX_ERROR )
+ {
+ if ( static_cast<size_t>(nPos) < pColorList->size() )
+ {
+ ImpColorList::iterator it = pColorList->begin();
+ ::std::advance( it, nPos );
+ pColorList->insert( it, new ImplColorListData( *pData ) );
+ }
+ else
+ {
+ pColorList->push_back( new ImplColorListData( *pData ) );
+ }
+ }
+ }
+}
+
+sal_Int32 ColorListBox::GetEntryPos( const Color& rColor ) const
+{
+ for( sal_Int32 n = (sal_Int32) pColorList->size(); n; )
+ {
+ ImplColorListData* pData = (*pColorList)[ --n ];
+ if ( pData->bColor && ( pData->aColor == rColor ) )
+ return n;
+ }
+ return LISTBOX_ENTRY_NOTFOUND;
+}
+
+Color ColorListBox::GetEntryColor( sal_Int32 nPos ) const
+{
+ Color aColor;
+ ImplColorListData* pData = ( 0 <= nPos && static_cast<size_t>(nPos) < pColorList->size() ) ?
+ (*pColorList)[ nPos ] : nullptr;
+ if ( pData && pData->bColor )
+ aColor = pData->aColor;
+ return aColor;
+}
+
+void ColorListBox::UserDraw( const UserDrawEvent& rUDEvt )
+{
+ size_t nPos = rUDEvt.GetItemId();
+ ImplColorListData* pData = ( nPos < pColorList->size() ) ? (*pColorList)[ nPos ] : nullptr;
+ if ( pData )
+ {
+ if ( pData->bColor )
+ {
+ Point aPos( rUDEvt.GetRect().TopLeft() );
+
+ aPos.X() += 2;
+ aPos.Y() += ( rUDEvt.GetRect().GetHeight() - aImageSize.Height() ) / 2;
+
+ const Rectangle aRect(aPos, aImageSize);
+
+ vcl::RenderContext* pRenderContext = rUDEvt.GetRenderContext();
+ pRenderContext->Push();
+ pRenderContext->SetFillColor(pData->aColor);
+ pRenderContext->SetLineColor(pRenderContext->GetTextColor());
+ pRenderContext->DrawRect(aRect);
+ pRenderContext->Pop();
+
+ const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
+ const sal_uInt16 nEdgeBlendingPercent(GetEdgeBlending() ? rStyleSettings.GetEdgeBlending() : 0);
+
+ if(nEdgeBlendingPercent)
+ {
+ const Color& rTopLeft(rStyleSettings.GetEdgeBlendingTopLeftColor());
+ const Color& rBottomRight(rStyleSettings.GetEdgeBlendingBottomRightColor());
+ const sal_uInt8 nAlpha((nEdgeBlendingPercent * 255) / 100);
+ const BitmapEx aBlendFrame(createBlendFrame(aRect.GetSize(), nAlpha, rTopLeft, rBottomRight));
+
+ if(!aBlendFrame.IsEmpty())
+ {
+ pRenderContext->DrawBitmapEx(aRect.TopLeft(), aBlendFrame);
+ }
+ }
+
+ ListBox::DrawEntry( rUDEvt, false, false );
+ }
+ else
+ ListBox::DrawEntry( rUDEvt, false, true );
+ }
+ else
+ ListBox::DrawEntry( rUDEvt, true, false );
+}
+
BorderWidthImpl::BorderWidthImpl( BorderWidthImplFlags nFlags, double nRate1, double nRate2, double nRateGap ):
m_nFlags( nFlags ),
m_nRate1( nRate1 ),
diff --git a/svtools/source/control/ctrlbox.src b/svtools/source/control/ctrlbox.src
index 4d04006cfbcd..36036d927a47 100644
--- a/svtools/source/control/ctrlbox.src
+++ b/svtools/source/control/ctrlbox.src
@@ -18,6 +18,11 @@
*/
#include <svtools/svtools.hrc>
+String STR_SVT_AUTOMATIC_COLOR
+{
+ Text [ en-US ] = "Automatic";
+};
+
/*
* resources for CollatorResource / CollatorResourceData resp.
*/
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 2e8b2f6bd9cc..0693af63dc7c 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -3596,6 +3596,25 @@ SfxBoolItem Freeline_Unfilled SID_DRAW_FREELINE_NOFILL
]
+SfxBoolItem AutoColorInvalid SID_ATTR_AUTO_COLOR_INVALID
+
+[
+ AutoUpdate = TRUE,
+ FastCall = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = TRUE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+
+
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_INSERT;
+]
+
+
SfxVoidItem Gallery SID_GALLERY
[
diff --git a/svx/source/dialog/_bmpmask.cxx b/svx/source/dialog/_bmpmask.cxx
index 5eec4f8f7e8a..77ca04fc3a01 100644
--- a/svx/source/dialog/_bmpmask.cxx
+++ b/svx/source/dialog/_bmpmask.cxx
@@ -25,7 +25,6 @@
#include <sfx2/dispatch.hxx>
#include <svtools/colrdlg.hxx>
-#include <svx/colorbox.hxx>
#include <svx/dialmgr.hxx>
#include <svx/bmpmask.hxx>
#include <svx/dialogs.hrc>
@@ -35,6 +34,7 @@
#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( MaskData, CbxTransHdl, Button*, pButton, void )
IMPL_LINK( MaskData, FocusLbHdl, Control&, rControl, void )
{
- SvxColorListBox* pLb = static_cast<SvxColorListBox*>(&rControl);
+ ColorLB* pLb = static_cast<ColorLB*>(&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,7 +373,6 @@ 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);
@@ -381,7 +380,6 @@ 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);
@@ -389,7 +387,6 @@ 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);
@@ -397,15 +394,14 @@ 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");
- 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));
+ //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_pTbxPipette->SetSelectHdl( LINK( pData, MaskData, PipetteHdl ) );
m_pBtnExec->SetClickHdl( LINK( pData, MaskData, ExecHdl ) );
@@ -521,6 +517,40 @@ 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;
@@ -708,7 +738,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 ] == COL_TRANSPARENT);
+ pTrans[ i ] = ( pDstCols[ i ] == TRANSP_COL );
}
// Investigate actions and if necessary replace colors
@@ -1024,7 +1054,7 @@ Graphic SvxBmpMask::Mask( const Graphic& rGraphic )
for( sal_uInt16 i = 0; i < nCount; i++ )
{
// Do we have a transparent color?
- if (pDstCols[i] == COL_TRANSPARENT)
+ if( pDstCols[i] == TRANSP_COL )
{
BitmapEx aBmpEx( ImpMaskTransparent( aGraphic.GetBitmapEx(),
pSrcCols[ i ], pTols[ i ] ) );
diff --git a/svx/source/dialog/bmpmask.hrc b/svx/source/dialog/bmpmask.hrc
index bf054482824d..1e446c418145 100644
--- a/svx/source/dialog/bmpmask.hrc
+++ b/svx/source/dialog/bmpmask.hrc
@@ -16,7 +16,7 @@
* 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_PALETTE (RID_SVX_BMPMASK_START + 3)
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/dialog/bmpmask.src b/svx/source/dialog/bmpmask.src
index 16bf943d9f69..d154d7ed0db9 100644
--- a/svx/source/dialog/bmpmask.src
+++ b/svx/source/dialog/bmpmask.src
@@ -22,6 +22,11 @@
#include "bmpmask.hrc"
#include "helpid.hrc"
+String RID_SVXDLG_BMPMASK_STR_TRANSP
+{
+ Text [ en-US ] = "Transparent";
+};
+
String RID_SVXDLG_BMPMASK_STR_PALETTE
{
Text [ en-US ] = "Color Palette";
diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx
index d8f312bda281..740033df05e0 100644
--- a/svx/source/dialog/dlgctrl.cxx
+++ b/svx/source/dialog/dlgctrl.cxx
@@ -1103,6 +1103,52 @@ void SvxPixelCtl::Reset()
Invalidate();
}
+VCL_BUILDER_DECL_FACTORY(ColorLB)
+{
+ bool bDropdown = VclBuilder::extractDropdown(rMap);
+ WinBits nWinBits = WB_LEFT|WB_VCENTER|WB_3DLOOK|WB_SIMPLEMODE|WB_TABSTOP;
+ if (bDropdown)
+ nWinBits |= WB_DROPDOWN;
+ OString sBorder = VclBuilder::extractCustomProperty(rMap);
+ if (!sBorder.isEmpty())
+ nWinBits |= WB_BORDER;
+ VclPtrInstance<ColorLB> pListBox(pParent, nWinBits);
+ pListBox->EnableAutoSize(true);
+ rRet = pListBox;
+}
+
+// Fills the Listbox with color and strings
+
+void ColorLB::Fill( const XColorListRef &pColorTab )
+{
+ if( !pColorTab.is() )
+ return;
+
+ long nCount = pColorTab->Count();
+ SetUpdateMode( false );
+
+ for( long i = 0; i < nCount; i++ )
+ {
+ const XColorEntry* pEntry = pColorTab->GetColor(i);
+ InsertEntry( pEntry->GetColor(), pEntry->GetName() );
+ }
+
+ AdaptDropDownLineCountToMaximum();
+ SetUpdateMode( true );
+}
+
+void ColorLB::Append( const XColorEntry& rEntry )
+{
+ InsertEntry( rEntry.GetColor(), rEntry.GetName() );
+ AdaptDropDownLineCountToMaximum();
+}
+
+void ColorLB::Modify( const XColorEntry& rEntry, sal_Int32 nPos )
+{
+ RemoveEntry( nPos );
+ InsertEntry( rEntry.GetColor(), rEntry.GetName(), nPos );
+}
+
// Fills the listbox (provisional) with strings
HatchingLB::HatchingLB( vcl::Window* pParent, WinBits nWinStyle)
@@ -1257,7 +1303,7 @@ namespace
} // end of anonymous namespace
FillAttrLB::FillAttrLB(vcl::Window* pParent, WinBits aWB)
- : ListBox(pParent, aWB)
+: ColorListBox(pParent, aWB)
{
}
diff --git a/svx/source/dialog/fontwork.cxx b/svx/source/dialog/fontwork.cxx
index b86ce464a860..166277cc42b4 100644
--- a/svx/source/dialog/fontwork.cxx
+++ b/svx/source/dialog/fontwork.cxx
@@ -20,7 +20,6 @@
#include <sfx2/module.hxx>
#include <sfx2/dispatch.hxx>
-#include <svx/colorbox.hxx>
#include <svx/svdobj.hxx>
#include <svx/svdopath.hxx>
#include <svx/svdview.hxx>
@@ -792,13 +791,23 @@ IMPL_LINK_NOARG(SvxFontWorkDialog, InputTimoutHdl_Impl, Idle *, void)
{ &aDistItem, &aStartItem, &aShadowXItem, &aShadowYItem });
}
-IMPL_LINK_NOARG(SvxFontWorkDialog, ColorSelectHdl_Impl, SvxColorListBox&, void)
+IMPL_LINK_NOARG(SvxFontWorkDialog, ColorSelectHdl_Impl, ListBox&, 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 80d065df7a22..b5ed0de3e87a 100644
--- a/svx/source/engine3d/float3d.cxx
+++ b/svx/source/engine3d/float3d.cxx
@@ -24,7 +24,6 @@
#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,20 +273,19 @@ 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( 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_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_pLbShademode->SetSelectHdl( aLink2 );
Link<Edit&,void> aLink3 = LINK( this, Svx3DWin, ModifyHdl );
@@ -943,7 +941,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
if( eState != SfxItemState::DONTCARE )
{
aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_1)).GetValue();
- SvxColorListBox* pLb = m_pLbLight1;
+ ColorLB* pLb = m_pLbLight1;
if( aColor != pLb->GetSelectEntryColor() )
{
LBSelectColor( pLb, aColor );
@@ -952,7 +950,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
}
else
{
- if (!m_pLbLight1->IsNoSelection())
+ if( m_pLbLight1->GetSelectEntryCount() != 0 )
{
m_pLbLight1->SetNoSelection();
bUpdate = true;
@@ -992,7 +990,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
if( eState != SfxItemState::DONTCARE )
{
aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_2)).GetValue();
- SvxColorListBox* pLb = m_pLbLight2;
+ ColorLB* pLb = m_pLbLight2;
if( aColor != pLb->GetSelectEntryColor() )
{
LBSelectColor( pLb, aColor );
@@ -1001,7 +999,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
}
else
{
- if (!m_pLbLight2->IsNoSelection())
+ if( m_pLbLight2->GetSelectEntryCount() != 0 )
{
m_pLbLight2->SetNoSelection();
bUpdate = true;
@@ -1041,7 +1039,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
if( eState != SfxItemState::DONTCARE )
{
aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_3)).GetValue();
- SvxColorListBox* pLb = m_pLbLight3;
+ ColorLB* pLb = m_pLbLight3;
if( aColor != pLb->GetSelectEntryColor() )
{
LBSelectColor( pLb, aColor );
@@ -1050,7 +1048,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
}
else
{
- if (!m_pLbLight3->IsNoSelection())
+ if( m_pLbLight3->GetSelectEntryCount() != 0 )
{
m_pLbLight3->SetNoSelection();
bUpdate = true;
@@ -1090,7 +1088,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
if( eState != SfxItemState::DONTCARE )
{
aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_4)).GetValue();
- SvxColorListBox* pLb = m_pLbLight4;
+ ColorLB* pLb = m_pLbLight4;
if( aColor != pLb->GetSelectEntryColor() )
{
LBSelectColor( pLb, aColor );
@@ -1099,7 +1097,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
}
else
{
- if (!m_pLbLight4->IsNoSelection())
+ if( m_pLbLight4->GetSelectEntryCount() != 0 )
{
m_pLbLight4->SetNoSelection();
bUpdate = true;
@@ -1139,7 +1137,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
if( eState != SfxItemState::DONTCARE )
{
aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_5)).GetValue();
- SvxColorListBox* pLb = m_pLbLight5;
+ ColorLB* pLb = m_pLbLight5;
if( aColor != pLb->GetSelectEntryColor() )
{
LBSelectColor( pLb, aColor );
@@ -1148,7 +1146,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
}
else
{
- if (!m_pLbLight5->IsNoSelection())
+ if( m_pLbLight5->GetSelectEntryCount() != 0 )
{
m_pLbLight5->SetNoSelection();
bUpdate = true;
@@ -1188,7 +1186,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
if( eState != SfxItemState::DONTCARE )
{
aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_6)).GetValue();
- SvxColorListBox* pLb = m_pLbLight6;
+ ColorLB* pLb = m_pLbLight6;
if( aColor != pLb->GetSelectEntryColor() )
{
LBSelectColor( pLb, aColor );
@@ -1197,7 +1195,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
}
else
{
- if (!m_pLbLight6->IsNoSelection())
+ if( m_pLbLight6->GetSelectEntryCount() != 0 )
{
m_pLbLight6->SetNoSelection();
bUpdate = true;
@@ -1237,7 +1235,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
if( eState != SfxItemState::DONTCARE )
{
aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_7)).GetValue();
- SvxColorListBox* pLb = m_pLbLight7;
+ ColorLB* pLb = m_pLbLight7;
if( aColor != pLb->GetSelectEntryColor() )
{
LBSelectColor( pLb, aColor );
@@ -1246,7 +1244,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
}
else
{
- if (!m_pLbLight7->IsNoSelection())
+ if( m_pLbLight7->GetSelectEntryCount() != 0 )
{
m_pLbLight7->SetNoSelection();
bUpdate = true;
@@ -1286,7 +1284,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
if( eState != SfxItemState::DONTCARE )
{
aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_LIGHTCOLOR_8)).GetValue();
- SvxColorListBox* pLb = m_pLbLight8;
+ ColorLB* pLb = m_pLbLight8;
if( aColor != pLb->GetSelectEntryColor() )
{
LBSelectColor( pLb, aColor );
@@ -1295,7 +1293,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
}
else
{
- if (!m_pLbLight8->IsNoSelection())
+ if( m_pLbLight8->GetSelectEntryCount() != 0 )
{
m_pLbLight8->SetNoSelection();
bUpdate = true;
@@ -1335,7 +1333,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
if( eState != SfxItemState::DONTCARE )
{
aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DSCENE_AMBIENTCOLOR)).GetValue();
- SvxColorListBox* pLb = m_pLbAmbientlight;
+ ColorLB* pLb = m_pLbAmbientlight;
if( aColor != pLb->GetSelectEntryColor() )
{
LBSelectColor( pLb, aColor );
@@ -1344,7 +1342,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
}
else
{
- if (!m_pLbAmbientlight->IsNoSelection())
+ if( m_pLbAmbientlight->GetSelectEntryCount() != 0 )
{
m_pLbAmbientlight->SetNoSelection();
bUpdate = true;
@@ -1495,7 +1493,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
if( eState != SfxItemState::DONTCARE )
{
aColor = static_cast<const XFillColorItem&>(rAttrs.Get(XATTR_FILLCOLOR)).GetColorValue();
- SvxColorListBox* pLb = m_pLbMatColor;
+ ColorLB* pLb = m_pLbMatColor;
if( aColor != pLb->GetSelectEntryColor() )
{
LBSelectColor( pLb, aColor );
@@ -1504,7 +1502,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
}
else
{
- if (!m_pLbMatColor->IsNoSelection())
+ if( m_pLbMatColor->GetSelectEntryCount() != 0 )
{
m_pLbMatColor->SetNoSelection();
bUpdate = true;
@@ -1516,7 +1514,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
if( eState != SfxItemState::DONTCARE )
{
aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DOBJ_MAT_EMISSION)).GetValue();
- SvxColorListBox* pLb = m_pLbMatEmission;
+ ColorLB* pLb = m_pLbMatEmission;
if( aColor != pLb->GetSelectEntryColor() )
{
LBSelectColor( pLb, aColor );
@@ -1525,7 +1523,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
}
else
{
- if (!m_pLbMatEmission->IsNoSelection())
+ if( m_pLbMatEmission->GetSelectEntryCount() != 0 )
{
m_pLbMatEmission->SetNoSelection();
bUpdate = true;
@@ -1537,7 +1535,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
if( eState != SfxItemState::DONTCARE )
{
aColor = static_cast<const SvxColorItem&>(rAttrs.Get(SDRATTR_3DOBJ_MAT_SPECULAR)).GetValue();
- SvxColorListBox* pLb = m_pLbMatSpecular;
+ ColorLB* pLb = m_pLbMatSpecular;
if( aColor != pLb->GetSelectEntryColor() )
{
LBSelectColor( pLb, aColor );
@@ -1546,7 +1544,7 @@ void Svx3DWin::Update( SfxItemSet& rAttrs )
}
else
{
- if (!m_pLbMatSpecular->IsNoSelection())
+ if( m_pLbMatSpecular->GetSelectEntryCount() != 0 )
{
m_pLbMatSpecular->SetNoSelection();
bUpdate = true;
@@ -1854,7 +1852,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
const SfxItemSet aLightItemSet(m_pCtlLightPreview->GetSvx3DLightControl().Get3DAttributes());
// Light 1 color
- if (!m_pLbLight1->IsNoSelection())
+ if( m_pLbLight1->GetSelectEntryCount() )
{
aColor = m_pLbLight1->GetSelectEntryColor();
rAttrs.Put(makeSvx3DLightcolor1Item(aColor));
@@ -1879,7 +1877,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
// Light 2 color
- if (!m_pLbLight2->IsNoSelection())
+ if( m_pLbLight2->GetSelectEntryCount() )
{
aColor = m_pLbLight2->GetSelectEntryColor();
rAttrs.Put(makeSvx3DLightcolor2Item(aColor));
@@ -1903,7 +1901,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_2);
// Light 3 color
- if (!m_pLbLight3->IsNoSelection())
+ if( m_pLbLight3->GetSelectEntryCount() )
{
aColor = m_pLbLight3->GetSelectEntryColor();
rAttrs.Put(makeSvx3DLightcolor3Item(aColor));
@@ -1927,7 +1925,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_3);
// Light 4 color
- if (!m_pLbLight4->IsNoSelection())
+ if( m_pLbLight4->GetSelectEntryCount() )
{
aColor = m_pLbLight4->GetSelectEntryColor();
rAttrs.Put(makeSvx3DLightcolor4Item(aColor));
@@ -1951,7 +1949,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_4);
// Light 5 color
- if (!m_pLbLight5->IsNoSelection())
+ if( m_pLbLight5->GetSelectEntryCount() )
{
aColor = m_pLbLight5->GetSelectEntryColor();
rAttrs.Put(makeSvx3DLightcolor5Item(aColor));
@@ -1975,7 +1973,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_5);
// Light 6 color
- if (!m_pLbLight6->IsNoSelection())
+ if( m_pLbLight6->GetSelectEntryCount() )
{
aColor = m_pLbLight6->GetSelectEntryColor();
rAttrs.Put(makeSvx3DLightcolor6Item(aColor));
@@ -1999,7 +1997,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_6);
// Light 7 color
- if (!m_pLbLight7->IsNoSelection())
+ if( m_pLbLight7->GetSelectEntryCount() )
{
aColor = m_pLbLight7->GetSelectEntryColor();
rAttrs.Put(makeSvx3DLightcolor7Item(aColor));
@@ -2023,7 +2021,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_7);
// Light 8 color
- if (!m_pLbLight8->IsNoSelection())
+ if( m_pLbLight8->GetSelectEntryCount() )
{
aColor = m_pLbLight8->GetSelectEntryColor();
rAttrs.Put(makeSvx3DLightcolor8Item(aColor));
@@ -2047,7 +2045,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
rAttrs.InvalidateItem(SDRATTR_3DSCENE_LIGHTON_8);
// Ambient light
- if (!m_pLbAmbientlight->IsNoSelection())
+ if( m_pLbAmbientlight->GetSelectEntryCount() )
{
aColor = m_pLbAmbientlight->GetSelectEntryColor();
rAttrs.Put(makeSvx3DAmbientcolorItem(aColor));
@@ -2123,7 +2121,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
// Material
// Object color
- if (!m_pLbMatColor->IsNoSelection())
+ if( m_pLbMatColor->GetSelectEntryCount() )
{
aColor = m_pLbMatColor->GetSelectEntryColor();
rAttrs.Put( XFillColorItem( "", aColor) );
@@ -2134,7 +2132,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
}
// luminous color
- if (!m_pLbMatEmission->IsNoSelection())
+ if( m_pLbMatEmission->GetSelectEntryCount() )
{
aColor = m_pLbMatEmission->GetSelectEntryColor();
rAttrs.Put(makeSvx3DMaterialEmissionItem(aColor));
@@ -2143,7 +2141,7 @@ void Svx3DWin::GetAttr( SfxItemSet& rAttrs )
rAttrs.InvalidateItem(SDRATTR_3DOBJ_MAT_EMISSION);
// Specular
- if (!m_pLbMatSpecular->IsNoSelection())
+ if( m_pLbMatSpecular->GetSelectEntryCount() )
{
aColor = m_pLbMatSpecular->GetSelectEntryColor();
rAttrs.Put(makeSvx3DMaterialSpecularItem(aColor));
@@ -2304,7 +2302,7 @@ IMPL_LINK( Svx3DWin, ClickViewTypeHdl, Button*, pBtn, void )
{
m_pFLLight->Show();
- SvxColorListBox* pLb = GetLbByButton();
+ ColorLB* pLb = GetLbByButton();
if( pLb )
pLb->Show();
@@ -2390,7 +2388,7 @@ IMPL_LINK( Svx3DWin, ClickHdl, Button *, pButton, void )
pBtn == m_pBtnLight8 )
{
// Lighting
- SvxColorListBox* pLb = GetLbByButton( pBtn );
+ ColorLB* pLb = GetLbByButton( pBtn );
pLb->Show();
if( pBtn->IsChecked() )
@@ -2515,7 +2513,7 @@ IMPL_LINK( Svx3DWin, ClickHdl, Button *, pButton, void )
IMPL_LINK( Svx3DWin, ClickColorHdl, Button *, pBtn, void)
{
SvColorDialog aColorDlg( this );
- SvxColorListBox* pLb;
+ ColorLB* pLb;
if( pBtn == m_pBtnLightColor )
pLb = GetLbByButton();
@@ -2534,11 +2532,12 @@ IMPL_LINK( Svx3DWin, ClickColorHdl, Button *, pBtn, void)
if( aColorDlg.Execute() == RET_OK )
{
aColor = aColorDlg.GetColor();
- LBSelectColor(pLb, aColor);
- SelectColorHdl(*pLb);
+ if( LBSelectColor( pLb, aColor ) )
+ SelectHdl( *pLb );
}
}
+
IMPL_LINK( Svx3DWin, SelectHdl, ListBox&, rListBox, void )
{
bool bUpdatePreview = false;
@@ -2605,20 +2604,9 @@ IMPL_LINK( Svx3DWin, SelectHdl, ListBox&, rListBox, void )
bUpdatePreview = true;
}
- 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 )
+ else if( &rListBox == m_pLbMatColor ||
+ &rListBox == m_pLbMatEmission ||
+ &rListBox == m_pLbMatSpecular )
{
m_pLbMatFavorites->SelectEntryPos( 0 );
bUpdatePreview = true;
@@ -2639,6 +2627,8 @@ IMPL_LINK( Svx3DWin, SelectColorHdl, SvxColorListBox&, rListBox, void )
{
bUpdatePreview = true;
}
+ else if (&rListBox == m_pLbShademode)
+ bUpdatePreview = true;
if( bUpdatePreview )
UpdatePreview();
@@ -2675,7 +2665,7 @@ IMPL_LINK( Svx3DWin, ModifyHdl, Edit&, rField, void )
void Svx3DWin::ClickLight(PushButton& rBtn)
{
sal_uInt16 nLightSource = GetLightSource( &rBtn );
- SvxColorListBox* pLb = GetLbByButton( &rBtn );
+ ColorLB* pLb = GetLbByButton( &rBtn );
Color aColor( pLb->GetSelectEntryColor() );
SfxItemSet aLightItemSet(m_pCtlLightPreview->GetSvx3DLightControl().Get3DAttributes());
const bool bOnOff(GetUILightState( static_cast<const ImageButton&>(rBtn) ));
@@ -2766,29 +2756,36 @@ IMPL_LINK_NOARG(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
-void Svx3DWin::LBSelectColor( SvxColorListBox* pLb, const Color& rColor )
+// returns true if color was added
+
+bool Svx3DWin::LBSelectColor( ColorLB* pLb, const Color& rColor )
{
+ bool bRet = false;
+
pLb->SetNoSelection();
- pLb->SelectEntry(std::make_pair(rColor, lcl_makeColorName(rColor)));
+ 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;
}
+
void Svx3DWin::UpdatePreview()
{
if( pModel == nullptr )
@@ -2811,8 +2808,22 @@ void Svx3DWin::DocumentReload()
mpRemember2DAttributes = nullptr;
}
-void Svx3DWin::InitColorLB()
+
+void Svx3DWin::InitColorLB( const SdrModel* pDoc )
{
+ 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 );
@@ -2877,9 +2888,9 @@ sal_uInt16 Svx3DWin::GetLightSource( const PushButton* pBtn )
};
-SvxColorListBox* Svx3DWin::GetLbByButton( const PushButton* pBtn )
+ColorLB* Svx3DWin::GetLbByButton( const PushButton* pBtn )
{
- SvxColorListBox* pLb = nullptr;
+ ColorLB* pLb = nullptr;
if( pBtn == nullptr )
{
diff --git a/svx/source/engine3d/float3d.src b/svx/source/engine3d/float3d.src
index 43a48855ae25..734117060173 100644
--- a/svx/source/engine3d/float3d.src
+++ b/svx/source/engine3d/float3d.src
@@ -41,6 +41,21 @@ 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 318b95b20e23..5f90b223781a 100644
--- a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx
+++ b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx
@@ -167,11 +167,10 @@ 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( aLink3 );
- mpLbFillGradTo->SetSelectHdl( aLink3 );
+ mpLbFillGradFrom->SetSelectHdl( aLink );
+ mpLbFillGradTo->SetSelectHdl( aLink );
mpMTRAngle->SetModifyHdl(LINK(this,AreaPropertyPanelBase, ChangeGradientAngle));
mpLBTransType->SetSelectHdl(LINK(this, AreaPropertyPanelBase, ChangeTrgrTypeHdl_Impl));
@@ -297,33 +296,61 @@ IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillTypeHdl, ListBox&, void)
mpToolBoxColor->Hide();
mpBmpImport->Hide();
- mpLbFillAttr->Enable();
- mpLbFillGradTo->Enable();
- mpLbFillGradFrom->Enable();
- mpGradientStyle->Enable();
- mpMTRAngle->Enable();
- mpLbFillAttr->Clear();
-
- if (LISTBOX_ENTRY_NOTFOUND != mnLastPosGradient)
+ const SvxColorListItem* pColorListItem = static_cast<const SvxColorListItem*>(pSh->GetItem(SID_COLOR_TABLE));
+ if(pColorListItem)
{
- const SvxGradientListItem aItem(*static_cast<const SvxGradientListItem*>(pSh->GetItem(SID_GRADIENT_LIST)));
+ mpLbFillAttr->Enable();
+ mpLbFillGradTo->Enable();
+ mpLbFillGradFrom->Enable();
+ mpGradientStyle->Enable();
+ mpMTRAngle->Enable();
+ mpLbFillAttr->Clear();
+ mpLbFillGradTo->Clear();
+ mpLbFillGradFrom->Clear();
+ mpLbFillGradTo->Fill(pColorListItem->GetColorList());
+ mpLbFillGradFrom->Fill(pColorListItem->GetColorList());
- if(mnLastPosGradient < aItem.GetGradientList()->Count())
+ mpLbFillGradFrom->AdaptDropDownLineCountToMaximum();
+ mpLbFillGradTo->AdaptDropDownLineCountToMaximum();
+
+ if(LISTBOX_ENTRY_NOTFOUND != mnLastPosGradient)
{
- const XGradient aGradient = aItem.GetGradientList()->GetGradient(mnLastPosGradient)->GetGradient();
- const XFillGradientItem aXFillGradientItem(aGradient);
-
- // #i122676# change FillStyle and Gradient in one call
- XFillStyleItem aXFillStyleItem(drawing::FillStyle_GRADIENT);
- setFillStyleAndGradient(&aXFillStyleItem, aXFillGradientItem);
- mpLbFillGradFrom->SelectEntry(aGradient.GetStartColor());
- mpLbFillGradTo->SelectEntry(aGradient.GetEndColor());
-
- mpMTRAngle->SetValue(aGradient.GetAngle() / 10);
- css::awt::GradientStyle eXGS = aGradient.GetGradientStyle();
- mpGradientStyle->SelectEntryPos(sal::static_int_cast< sal_Int32 >( eXGS ));
+ const SvxGradientListItem aItem(*static_cast<const SvxGradientListItem*>(pSh->GetItem(SID_GRADIENT_LIST)));
+
+ if(mnLastPosGradient < aItem.GetGradientList()->Count())
+ {
+ const XGradient aGradient = aItem.GetGradientList()->GetGradient(mnLastPosGradient)->GetGradient();
+ const XFillGradientItem aXFillGradientItem(aGradient);
+
+ // #i122676# change FillStyle and Gradient in one call
+ XFillStyleItem aXFillStyleItem(drawing::FillStyle_GRADIENT);
+ setFillStyleAndGradient(&aXFillStyleItem, aXFillGradientItem);
+ 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());
+ }
+
+ mpMTRAngle->SetValue(aGradient.GetAngle() / 10);
+ css::awt::GradientStyle eXGS = aGradient.GetGradientStyle();
+ mpGradientStyle->SelectEntryPos(sal::static_int_cast< sal_Int32 >( eXGS ));
+ }
}
}
+ else
+ {
+ mpLbFillGradFrom->Disable();
+ mpLbFillGradTo->Disable();
+ mpMTRAngle->Disable();
+ mpGradientStyle->Disable();
+ }
break;
}
case HATCH:
@@ -448,11 +475,6 @@ IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillTypeHdl, ListBox&, void)
}
}
-IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillColorHdl, SvxColorListBox&, void)
-{
- SelectFillAttrHdl_Impl();
-}
-
IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillAttrHdl, ListBox&, void)
{
SelectFillAttrHdl_Impl();
@@ -1154,15 +1176,28 @@ 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() == (sal_Int32)GradientStyle::Radial)
mpMTRAngle->Disable();
diff --git a/svx/source/sidebar/shadow/ShadowPropertyPanel.cxx b/svx/source/sidebar/shadow/ShadowPropertyPanel.cxx
index 0766550e29cd..a1ea3879f3dd 100644
--- a/svx/source/sidebar/shadow/ShadowPropertyPanel.cxx
+++ b/svx/source/sidebar/shadow/ShadowPropertyPanel.cxx
@@ -10,7 +10,6 @@
#include <ShadowPropertyPanel.hxx>
#include <comphelper/string.hxx>
#include <sfx2/sidebar/ControlFactory.hxx>
-#include <svx/colorbox.hxx>
#include <svx/dialogs.hrc>
#include <svx/dialmgr.hxx>
#include <sfx2/objsh.hxx>
@@ -123,18 +122,25 @@ void ShadowPropertyPanel::dispose()
void ShadowPropertyPanel::Initialize()
{
- 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();
+ 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) );
+ for(sal_uInt16 i = 0; i <= 20 ; i++)
+ mpShadowDistance->InsertValue(i*2,FUNIT_POINT);
+ InsertAngleValues();
+ }
}
IMPL_LINK_NOARG(ShadowPropertyPanel, ClickShadowHdl, Button*, void)
@@ -153,7 +159,7 @@ IMPL_LINK_NOARG(ShadowPropertyPanel, ClickShadowHdl, Button*, void)
}
}
-IMPL_LINK_NOARG(ShadowPropertyPanel, ModifyShadowColorHdl, SvxColorListBox&, void)
+IMPL_LINK_NOARG(ShadowPropertyPanel, ModifyShadowColorHdl, ListBox&, void)
{
XColorItem aItem(makeSdrShadowColorItem(mpLBShadowColor->GetSelectEntryColor()));
GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_SHADOW_COLOR,
@@ -314,6 +320,9 @@ 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 f3fd1c7e12eb..7e7288617d32 100644
--- a/svx/source/sidebar/shadow/ShadowPropertyPanel.hxx
+++ b/svx/source/sidebar/shadow/ShadowPropertyPanel.hxx
@@ -25,7 +25,6 @@
#include <sfx2/request.hxx>
#include <svx/dlgctrl.hxx>
-class SvxColorListBox;
namespace svx { namespace sidebar {
@@ -61,10 +60,10 @@ public:
SfxBindings* pBindings);
private:
- VclPtr<CheckBox> mpShowShadow;
- VclPtr<MetricBox> mpShadowDistance;
- VclPtr<SvxColorListBox> mpLBShadowColor;
- VclPtr<MetricBox> mpShadowAngle;
+ VclPtr<CheckBox> mpShowShadow;
+ VclPtr<MetricBox> mpShadowDistance;
+ VclPtr<ColorLB> mpLBShadowColor;
+ VclPtr<MetricBox> mpShadowAngle;
VclPtr<FixedText> mpFTAngle;
VclPtr<FixedText> mpFTDistance;
VclPtr<FixedText> mpFTTransparency;
@@ -85,7 +84,7 @@ private:
void SetTransparencyValue(long);
void UpdateControls();
DECL_LINK(ClickShadowHdl, Button*, void);
- DECL_LINK(ModifyShadowColorHdl, SvxColorListBox&, void);
+ DECL_LINK(ModifyShadowColorHdl, ListBox&, void);
DECL_LINK(ModifyShadowTransMetricHdl, Edit&, void);
DECL_LINK(ModifyShadowDistanceHdl, Edit&, void);
DECL_LINK(ModifyShadowTransSliderHdl, Slider*, void);
diff --git a/svx/source/tbxctrls/PaletteManager.cxx b/svx/source/tbxctrls/PaletteManager.cxx
index 7f1d5a140437..3ba048559620 100644
--- a/svx/source/tbxctrls/PaletteManager.cxx
+++ b/svx/source/tbxctrls/PaletteManager.cxx
@@ -254,21 +254,18 @@ void PaletteManager::SetLastColor(const Color& rLastColor)
mLastColor = rLastColor;
}
-void PaletteManager::AddRecentColor(const Color& rRecentColor, const OUString& rName, bool bFront)
+void PaletteManager::AddRecentColor(const Color& rRecentColor, const OUString& rName)
{
auto itColor = std::find_if(maRecentColors.begin(),
maRecentColors.end(),
- [rRecentColor] (const NamedColor &a) { return a.first == rRecentColor; });
+ [rRecentColor] (const color_and_name &a) { return a.first == rRecentColor; });
// if recent color to be added is already in list, remove it
if( itColor != maRecentColors.end() )
maRecentColors.erase( itColor );
- if (maRecentColors.size() == mnMaxRecentColors)
+ maRecentColors.push_front(std::make_pair(rRecentColor, rName));
+ if( maRecentColors.size() > mnMaxRecentColors )
maRecentColors.pop_back();
- if (bFront)
- maRecentColors.push_front(std::make_pair(rRecentColor, rName));
- else
- maRecentColors.push_back(std::make_pair(rRecentColor, rName));
css::uno::Sequence< sal_Int32 > aColorList(maRecentColors.size());
css::uno::Sequence< OUString > aColorNameList(maRecentColors.size());
for (size_t i = 0; i < maRecentColors.size(); ++i)
@@ -288,7 +285,7 @@ void PaletteManager::SetBtnUpdater(svx::ToolboxButtonColorUpdater* pBtnUpdater)
mLastColor = mpBtnUpdater->GetCurrentColor();
}
-void PaletteManager::SetColorSelectFunction(const std::function<void(const OUString&, const NamedColor&)>& aColorSelectFunction)
+void PaletteManager::SetColorSelectFunction(const std::function<void(const OUString&, const Color&)>& aColorSelectFunction)
{
maColorSelectFunction = aColorSelectFunction;
}
@@ -305,14 +302,12 @@ void PaletteManager::PopupColorPicker(const OUString& aCommand)
if (mpBtnUpdater)
mpBtnUpdater->Update( aColorDlg.GetColor() );
mLastColor = aColorDlg.GetColor();
- OUString sColorName = ("#" + mLastColor.AsRGBHexString().toAsciiUpperCase());
- NamedColor aNamedColor = std::make_pair(mLastColor, sColorName);
- AddRecentColor(mLastColor, sColorName);
- maColorSelectFunction(aCommandCopy, aNamedColor);
+ AddRecentColor(mLastColor, ("#" + mLastColor.AsRGBHexString().toAsciiUpperCase()));
+ maColorSelectFunction(aCommandCopy, mLastColor);
}
}
-void PaletteManager::DispatchColorCommand(const OUString& aCommand, const NamedColor& rColor)
+void PaletteManager::DispatchColorCommand(const OUString& aCommand, const Color& rColor)
{
using namespace css::uno;
using namespace css::frame;
@@ -328,7 +323,7 @@ void PaletteManager::DispatchColorCommand(const OUString& aCommand, const NamedC
Sequence<PropertyValue> aArgs(1);
aArgs[0].Name = aObj.GetURLPath();
- aArgs[0].Value = makeAny(sal_Int32(rColor.first.GetColor()));
+ aArgs[0].Value = makeAny(sal_Int32(rColor.GetColor()));
URL aTargetURL;
aTargetURL.Complete = aCommand;
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index c5c0d568227c..5d3b359b144c 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -51,7 +51,6 @@
#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>
@@ -86,7 +85,6 @@
#include <editeng/svxfont.hxx>
#include <editeng/cmapitem.hxx>
#include <svx/colorwindow.hxx>
-#include <svx/colorbox.hxx>
#include "svx/drawitem.hxx"
#include <svx/tbcontrl.hxx>
#include "svx/dlgutil.hxx"
@@ -1247,13 +1245,13 @@ void SvxFontNameBox_Impl::Select()
#endif
-SvxColorWindow::SvxColorWindow(const OUString& rCommand,
- PaletteManager& rPaletteManager,
- BorderColorStatus& rBorderColorStatus,
- sal_uInt16 nSlotId,
- const Reference< XFrame >& rFrame,
- vcl::Window* pParentWindow,
- std::function<void(const OUString&, const NamedColor&)> const & aFunction):
+SvxColorWindow::SvxColorWindow( const OUString& rCommand,
+ PaletteManager& rPaletteManager,
+ BorderColorStatus& rBorderColorStatus,
+ sal_uInt16 nSlotId,
+ const Reference< XFrame >& rFrame,
+ vcl::Window* pParentWindow,
+ std::function<void(const OUString&, const Color&)> const & aFunction):
SfxPopupWindow( nSlotId, pParentWindow,
"palette_popup_window", "svx/ui/colorwindow.ui",
@@ -1266,7 +1264,6 @@ SvxColorWindow::SvxColorWindow(const OUString& rCommand,
{
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,16 +1278,6 @@ 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 ) );
break;
}
@@ -1298,7 +1285,15 @@ SvxColorWindow::SvxColorWindow(const OUString& rCommand,
case SID_ATTR_CHAR_COLOR2:
case SID_EXTRUSION_3D_COLOR:
{
- mpButtonAutoColor->SetText( SVX_RESSTR( RID_SVXSTR_AUTOMATIC ) );
+ SfxPoolItem* pDummy;
+
+ Reference< XDispatchProvider > aDisp( GetFrame()->getController(), UNO_QUERY );
+ SfxQueryStatus aQueryStatus( aDisp,
+ SID_ATTR_AUTO_COLOR_INVALID,
+ OUString( ".uno:AutoColorInvalid" ));
+ SfxItemState eState = aQueryStatus.QueryState( pDummy );
+ if( (SfxItemState::DEFAULT > eState) || ( SID_EXTRUSION_3D_COLOR == theSlotId ) )
+ mpButtonAutoColor->SetText( SVX_RESSTR( RID_SVXSTR_AUTOMATIC ) );
break;
}
default:
@@ -1358,7 +1353,6 @@ 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 ) );
@@ -1384,11 +1378,6 @@ SvxColorWindow::SvxColorWindow(const OUString& rCommand,
}
}
-void SvxColorWindow::ShowNoneButton()
-{
- mpButtonNoneColor->Show();
-}
-
SvxColorWindow::~SvxColorWindow()
{
disposeOnce();
@@ -1400,7 +1389,6 @@ void SvxColorWindow::dispose()
mpRecentColorSet.clear();
mpPaletteListBox.clear();
mpButtonAutoColor.clear();
- mpButtonNoneColor.clear();
mpButtonPicker.clear();
mpAutomaticSeparator.clear();
SfxPopupWindow::dispose();
@@ -1411,29 +1399,11 @@ void SvxColorWindow::KeyInput( const KeyEvent& rKEvt )
mpColorSet->KeyInput(rKEvt);
}
-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();
-}
-
IMPL_LINK(SvxColorWindow, SelectHdl, ValueSet*, pColorSet, void)
{
VclPtr<SvxColorWindow> xThis(this);
- NamedColor aNamedColor = GetSelectEntryColor(pColorSet);
+ Color aColor = pColorSet->GetItemColor( pColorSet->GetSelectItemId() );
/* #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. */
@@ -1441,7 +1411,7 @@ IMPL_LINK(SvxColorWindow, SelectHdl, ValueSet*, pColorSet, void)
if ( pColorSet != mpRecentColorSet )
{
- mrPaletteManager.AddRecentColor(aNamedColor.first, aNamedColor.second);
+ mrPaletteManager.AddRecentColor(aColor, pColorSet->GetItemText(pColorSet->GetSelectItemId()));
if ( !IsInPopupMode() )
mrPaletteManager.ReloadRecentColorSet( *mpRecentColorSet );
}
@@ -1449,9 +1419,9 @@ IMPL_LINK(SvxColorWindow, SelectHdl, ValueSet*, pColorSet, void)
if ( IsInPopupMode() )
EndPopupMode();
- maSelectedLink.Call(aNamedColor);
+ maSelectedLink.Call(aColor);
- maColorSelectFunction(maCommand, aNamedColor);
+ maColorSelectFunction(maCommand, aColor);
}
IMPL_LINK_NOARG(SvxColorWindow, SelectPaletteHdl, ListBox&, void)
@@ -1462,64 +1432,37 @@ IMPL_LINK_NOARG(SvxColorWindow, SelectPaletteHdl, ListBox&, void)
mpColorSet->layoutToGivenHeight(mpColorSet->GetSizePixel().Height(), mrPaletteManager.GetColorCount());
}
-NamedColor SvxColorWindow::GetNoneColor() const
+IMPL_LINK_NOARG(SvxColorWindow, AutoColorClickHdl, Button*, void)
{
- 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);
-}
+ VclPtr<SvxColorWindow> xThis(this);
-NamedColor SvxColorWindow::GetAutoColor() const
-{
Color aColor;
- OUString sColorName;
- switch (theSlotId)
+ 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(SvxColorWindow, AutoColorClickHdl, Button*, pButton, void)
-{
- VclPtr<SvxColorWindow> xThis(this);
-
- NamedColor aNamedColor = pButton == mpButtonAutoColor ? GetAutoColor() : GetNoneColor();
-
mpRecentColorSet->SetNoSelection();
if ( IsInPopupMode() )
EndPopupMode();
- maSelectedLink.Call(aNamedColor);
+ maSelectedLink.Call(aColor);
- maColorSelectFunction(maCommand, aNamedColor);
+ maColorSelectFunction(maCommand, aColor);
}
IMPL_LINK_NOARG(SvxColorWindow, OpenPickerClickHdl, Button*, void)
@@ -1536,23 +1479,6 @@ void SvxColorWindow::StartSelection()
mpColorSet->StartSelection();
}
-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::statusChanged( const css::frame::FeatureStateEvent& rEvent )
{
if ( rEvent.IsEnabled && rEvent.FeatureURL.Complete == ".uno:ColorTableState"
@@ -1563,76 +1489,34 @@ void SvxColorWindow::statusChanged( const css::frame::FeatureStateEvent& rEvent
}
else
{
- Color aColor(COL_TRANSPARENT);
+ mpColorSet->SetNoSelection();
+ Color aColor( COL_TRANSPARENT );
- if (mrBorderColorStatus.statusChanged(rEvent))
+ if ( mrBorderColorStatus.statusChanged( rEvent ) )
{
aColor = mrBorderColorStatus.GetColor();
}
- else if (rEvent.IsEnabled)
+ else if ( rEvent.IsEnabled )
{
sal_Int32 nValue;
- if (rEvent.State >>= nValue)
+ if ( rEvent.State >>= nValue )
aColor = nValue;
}
- SelectEntry(aColor);
- }
-}
+ if ( aColor == COL_TRANSPARENT )
+ return;
-bool SvxColorWindow::SelectValueSetEntry(SvxColorValueSet* pColorSet, const Color& rColor)
-{
- for (size_t i = 1; i <= pColorSet->GetItemCount(); ++i)
- {
- if (rColor == pColorSet->GetItemColor(i))
+ for ( size_t i = 1; i <= mpColorSet->GetItemCount(); ++i )
{
- pColorSet->SelectItem(i);
- return true;
+ if ( aColor == mpColorSet->GetItemColor(i) )
+ {
+ mpColorSet->SelectItem(i);
+ break;
+ }
}
}
- 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 ),
@@ -2833,18 +2717,19 @@ VclPtr<SfxPopupWindow> SvxColorToolBoxControl::CreatePopupWindow()
&GetToolBox(),
m_aColorSelectFunction);
- pColorWin->StartPopupMode(&GetToolBox(), FloatWinPopupFlags::GrabFocus);
+ pColorWin->StartPopupMode( &GetToolBox(),
+ FloatWinPopupFlags::AllowTearOff|FloatWinPopupFlags::NoAppFocusClose );
pColorWin->StartSelection();
- SetPopupWindow(pColorWin);
+ SetPopupWindow( pColorWin );
if ( m_bSplitButton )
pColorWin->SetSelectedHdl( LINK( this, SvxColorToolBoxControl, SelectedHdl ) );
return pColorWin;
}
-IMPL_LINK(SvxColorToolBoxControl, SelectedHdl, const NamedColor&, rColor, void)
+IMPL_LINK(SvxColorToolBoxControl, SelectedHdl, const Color&, rColor, void)
{
- m_xBtnUpdater->Update(rColor.first);
- m_aPaletteManager.SetLastColor(rColor.first);
+ m_xBtnUpdater->Update( rColor );
+ m_aPaletteManager.SetLastColor( rColor );
}
void SvxColorToolBoxControl::statusChanged( const css::frame::FeatureStateEvent& rEvent )
@@ -3182,204 +3067,4 @@ 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);
-}
-
-void SvxListBoxColorWrapper::dispose()
-{
- mxControl.clear();
-}
-
-SvxColorListBox::SvxColorListBox(vcl::Window* pParent, WinBits nStyle)
- : MenuButton(pParent, nStyle)
- , 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(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();
- m_aColorWrapper.dispose();
- 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 194d6a8d5997..27aed7b4d400 100644
--- a/svx/source/tbxctrls/tbcontrl.src
+++ b/svx/source/tbxctrls/tbcontrl.src
@@ -41,14 +41,9 @@ ImageList RID_SVXIL_FRAME
IdCount = { 12 ; };
};
-String RID_SVXSTR_NOFILL
-{
- Text [ en-US ] = "No Fill" ;
-};
-
String RID_SVXSTR_TRANSPARENT
{
- Text [ en-US ] = "Transparent";
+ Text [ en-US ] = "No Fill" ;
};
String RID_SVXSTR_FILLPATTERN
@@ -140,11 +135,6 @@ 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 444797ff9714..9482562f83a6 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.20.0 -->
+<!-- Generated with glade 3.18.3 -->
<interface>
<requires lib="gtk+" version="3.10"/>
<requires lib="LibreOffice" version="1.0"/>
@@ -13,14 +13,9 @@
<property name="can_focus">False</property>
<property name="margin_right">6</property>
<property name="xalign">0</property>
- <property name="pixbuf">cmd/sc_square_unfilled.png</property>
+ <property name="pixbuf">cmd/sc_colorsettings.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>
@@ -30,6 +25,7 @@
<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">
@@ -37,41 +33,13 @@
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
- <object class="GtkBox">
+ <object class="GtkButton" id="auto_color_button">
<property name="visible">True</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>
+ <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>
diff --git a/svx/uiconfig/ui/docking3deffects.ui b/svx/uiconfig/ui/docking3deffects.ui
index fad6d1ca9d19..e3856ffbd3ca 100644
--- a/svx/uiconfig/ui/docking3deffects.ui
+++ b/svx/uiconfig/ui/docking3deffects.ui
@@ -1089,7 +1089,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="ambientcolor">
+ <object class="svxlo-ColorLB" 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-SvxColorListBox" id="lightcolor1">
+ <object class="svxlo-ColorLB" 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-SvxColorListBox" id="lightcolor2">
+ <object class="svxlo-ColorLB" 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-SvxColorListBox" id="lightcolor3">
+ <object class="svxlo-ColorLB" 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-SvxColorListBox" id="lightcolor4">
+ <object class="svxlo-ColorLB" 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-SvxColorListBox" id="lightcolor5">
+ <object class="svxlo-ColorLB" 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-SvxColorListBox" id="lightcolor6">
+ <object class="svxlo-ColorLB" 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-SvxColorListBox" id="lightcolor7">
+ <object class="svxlo-ColorLB" 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-SvxColorListBox" id="lightcolor8">
+ <object class="svxlo-ColorLB" 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-SvxColorListBox" id="objcolor">
+ <object class="svxlo-ColorLB" 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-SvxColorListBox" id="illumcolor">
+ <object class="svxlo-ColorLB" 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-SvxColorListBox" id="speccolor">
+ <object class="svxlo-ColorLB" 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 9b7e535c81a3..778c740f38bc 100644
--- a/svx/uiconfig/ui/dockingcolorreplace.ui
+++ b/svx/uiconfig/ui/dockingcolorreplace.ui
@@ -241,7 +241,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="color1">
+ <object class="svxlo-ColorLB" id="color1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
@@ -257,7 +257,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="color2">
+ <object class="svxlo-ColorLB" id="color2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
@@ -273,7 +273,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="color3">
+ <object class="svxlo-ColorLB" id="color3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
@@ -289,7 +289,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="color4">
+ <object class="svxlo-ColorLB" id="color4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
@@ -305,7 +305,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="color5">
+ <object class="svxlo-ColorLB" 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 01e74c377e79..0c729be1b10e 100644
--- a/svx/uiconfig/ui/dockingfontwork.ui
+++ b/svx/uiconfig/ui/dockingfontwork.ui
@@ -437,7 +437,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="color">
+ <object class="svxlo-ColorLB" 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 85a3122d68c6..e85fe45dfa20 100644
--- a/svx/uiconfig/ui/sidebararea.ui
+++ b/svx/uiconfig/ui/sidebararea.ui
@@ -100,7 +100,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="fillgrad1">
+ <object class="svxlo-ColorLB" id="fillgrad1">
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">Fill gradient from.</property>
@@ -144,7 +144,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="fillgrad2">
+ <object class="svxlo-ColorLB" id="fillgrad2">
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">Fill gradient to.</property>
diff --git a/svx/uiconfig/ui/sidebarshadow.ui b/svx/uiconfig/ui/sidebarshadow.ui
index 356b6ff46933..0b2e8cf6d48b 100644
--- a/svx/uiconfig/ui/sidebarshadow.ui
+++ b/svx/uiconfig/ui/sidebarshadow.ui
@@ -184,7 +184,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="LB_SHADOW_COLOR">
+ <object class="svxlo-ColorLB" 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 85873104a7e6..188da163ac90 100644
--- a/sw/inc/authratr.hxx
+++ b/sw/inc/authratr.hxx
@@ -24,6 +24,8 @@
#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 935495573295..0c7cb7dd2208 100644
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@ -88,7 +88,6 @@
#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 e4c17d0ec431..c599a6ed3e0f 100644
--- a/sw/source/ui/config/optpage.cxx
+++ b/sw/source/ui/config/optpage.cxx
@@ -1730,22 +1730,20 @@ 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");
@@ -1762,6 +1760,8 @@ 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));
@@ -1781,13 +1781,14 @@ SwRedlineOptionsTabPage::SwRedlineOptionsTabPage( vcl::Window* pParent,
pDeletedLB->SetSelectHdl( aLk );
pChangedLB->SetSelectHdl( aLk );
- Link<SvxColorListBox&,void> aLk2 = LINK(this, SwRedlineOptionsTabPage, ColorHdl);
- pInsertColorLB->SetSelectHdl( aLk2 );
- pDeletedColorLB->SetSelectHdl( aLk2 );
- pChangedColorLB->SetSelectHdl( aLk2 );
+ aLk = LINK(this, SwRedlineOptionsTabPage, ColorHdl);
+ pInsertColorLB->SetSelectHdl( aLk );
+ pDeletedColorLB->SetSelectHdl( aLk );
+ pChangedColorLB->SetSelectHdl( aLk );
- pMarkPosLB->SetSelectHdl(LINK(this, SwRedlineOptionsTabPage, ChangedMaskPrevHdl));
- pMarkColorLB->SetSelectHdl(LINK(this, SwRedlineOptionsTabPage, ChangedMaskColorPrevHdl));
+ aLk = LINK(this, SwRedlineOptionsTabPage, ChangedMaskPrevHdl);
+ pMarkPosLB->SetSelectHdl( aLk );
+ pMarkColorLB->SetSelectHdl( aLk );
}
SwRedlineOptionsTabPage::~SwRedlineOptionsTabPage()
@@ -1839,7 +1840,23 @@ bool SwRedlineOptionsTabPage::FillItemSet( SfxItemSet* )
pAttr = static_cast<CharAttr *>(pInsertLB->GetEntryData(nPos));
aInsertedAttr.nItemId = pAttr->nItemId;
aInsertedAttr.nAttr = pAttr->nAttr;
- aInsertedAttr.nColor = pInsertColorLB->GetSelectEntryColor().GetColor();
+
+ 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;
+ }
+
pOpt->SetInsertAuthorAttr(aInsertedAttr);
}
@@ -1849,7 +1866,23 @@ bool SwRedlineOptionsTabPage::FillItemSet( SfxItemSet* )
pAttr = static_cast<CharAttr *>(pDeletedLB->GetEntryData(nPos));
aDeletedAttr.nItemId = pAttr->nItemId;
aDeletedAttr.nAttr = pAttr->nAttr;
- aDeletedAttr.nColor = pDeletedColorLB->GetSelectEntryColor().GetColor();
+
+ 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;
+ }
+
pOpt->SetDeletedAuthorAttr(aDeletedAttr);
}
@@ -1859,7 +1892,23 @@ bool SwRedlineOptionsTabPage::FillItemSet( SfxItemSet* )
pAttr = static_cast<CharAttr *>(pChangedLB->GetEntryData(nPos));
aChangedAttr.nItemId = pAttr->nItemId;
aChangedAttr.nAttr = pAttr->nAttr;
- aChangedAttr.nColor = pChangedColorLB->GetSelectEntryColor().GetColor();
+
+ 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;
+ }
+
pOpt->SetFormatAuthorAttr(aChangedAttr);
}
@@ -1908,14 +1957,77 @@ 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 )
+ {
+ const 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;
- pInsertColorLB->SelectEntry(Color(nColor));
+
+ switch (nColor)
+ {
+ case COL_TRANSPARENT:
+ pInsertColorLB->SelectEntryPos(1);
+ break;
+ case COL_NONE_COLOR:
+ pInsertColorLB->SelectEntryPos(0);
+ break;
+ default:
+ pInsertColorLB->SelectEntry(Color(nColor));
+ }
nColor = rDeletedAttr.nColor;
- pDeletedColorLB->SelectEntry(Color(nColor));
+
+ switch (nColor)
+ {
+ case COL_TRANSPARENT:
+ pDeletedColorLB->SelectEntryPos(1);
+ break;
+ case COL_NONE_COLOR:
+ pDeletedColorLB->SelectEntryPos(0);
+ break;
+ default:
+ pDeletedColorLB->SelectEntry(Color(nColor));
+ }
nColor = rChangedAttr.nColor;
- pChangedColorLB->SelectEntry(Color(nColor));
+
+ switch (nColor)
+ {
+ case COL_TRANSPARENT:
+ pChangedColorLB->SelectEntryPos(1);
+ break;
+ case COL_NONE_COLOR:
+ pChangedColorLB->SelectEntryPos(0);
+ break;
+ default:
+ pChangedColorLB->SelectEntry(Color(nColor));
+ }
pMarkColorLB->SelectEntry(pOpt->GetMarkAlignColor());
@@ -1946,13 +2058,13 @@ void SwRedlineOptionsTabPage::Reset( const SfxItemSet* )
AttribHdl(*pChangedLB);
ColorHdl(*pChangedColorLB);
- ChangedMaskPrev();
+ ChangedMaskPrevHdl(*pMarkPosLB);
}
IMPL_LINK( SwRedlineOptionsTabPage, AttribHdl, ListBox&, rLB, void )
{
SvxFontPrevWindow *pPrev = nullptr;
- SvxColorListBox *pColorLB;
+ ColorListBox *pColorLB;
if (&rLB == pInsertLB)
{
@@ -1984,25 +2096,26 @@ IMPL_LINK( SwRedlineOptionsTabPage, AttribHdl, ListBox&, rLB, void )
rFont.SetCaseMap(SVX_CASEMAP_NOT_MAPPED);
rCJKFont.SetCaseMap(SVX_CASEMAP_NOT_MAPPED);
- Color aColor = pColorLB->GetSelectEntryColor();
+ sal_Int32 nPos = pColorLB->GetSelectEntryPos();
- if (aColor == COL_NONE_COLOR)
- {
- 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
+ switch( nPos )
{
- rFont.SetColor(aColor);
- rCJKFont.SetColor(aColor);
+ 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;
}
- sal_Int32 nPos = rLB.GetSelectEntryPos();
+ nPos = rLB.GetSelectEntryPos();
if( nPos == LISTBOX_ENTRY_NOTFOUND )
nPos = 0;
@@ -2038,11 +2151,12 @@ IMPL_LINK( SwRedlineOptionsTabPage, AttribHdl, ListBox&, rLB, void )
case SID_ATTR_BRUSH:
{
- Color aBgColor = pColorLB->GetSelectEntryColor();
- if (aBgColor != COL_NONE_COLOR)
- pPrev->SetColor(aBgColor);
+ nPos = pColorLB->GetSelectEntryPos();
+ if( nPos )
+ pPrev->SetColor( pColorLB->GetSelectEntryColor() );
else
- pPrev->SetColor(Color(COL_LIGHTGRAY));
+ pPrev->SetColor( Color( COL_LIGHTGRAY ) );
+
rFont.SetColor( Color( COL_BLACK ) );
rCJKFont.SetColor( Color( COL_BLACK ) );
}
@@ -2052,9 +2166,9 @@ IMPL_LINK( SwRedlineOptionsTabPage, AttribHdl, ListBox&, rLB, void )
pPrev->Invalidate();
}
-IMPL_LINK( SwRedlineOptionsTabPage, ColorHdl, SvxColorListBox&, rListBox, void )
+IMPL_LINK( SwRedlineOptionsTabPage, ColorHdl, ListBox&, rListBox, void )
{
- SvxColorListBox* pColorLB = &rListBox;
+ ColorListBox* pColorLB = static_cast<ColorListBox*>(&rListBox);
SvxFontPrevWindow *pPrev = nullptr;
ListBox* pLB;
@@ -2086,38 +2200,38 @@ IMPL_LINK( SwRedlineOptionsTabPage, ColorHdl, SvxColorListBox&, rListBox, void )
{
rFont.SetColor( Color( COL_BLACK ) );
rCJKFont.SetColor( Color( COL_BLACK ) );
-
- Color aBgColor = pColorLB->GetSelectEntryColor();
- if (aBgColor != COL_NONE_COLOR)
- pPrev->SetColor(aBgColor);
+ nPos = pColorLB->GetSelectEntryPos();
+ if( nPos && nPos != LISTBOX_ENTRY_NOTFOUND )
+ pPrev->SetColor( pColorLB->GetSelectEntryColor() );
else
- pPrev->SetColor(Color(COL_LIGHTGRAY));
+ pPrev->SetColor( Color( COL_LIGHTGRAY ) );
}
else
{
- Color aColor = pColorLB->GetSelectEntryColor();
+ nPos = pColorLB->GetSelectEntryPos();
- if (aColor == COL_NONE_COLOR)
- {
- rFont.SetColor( Color( COL_BLACK ) );
- rCJKFont.SetColor( Color( COL_BLACK ) );
- }
- else if (aColor == COL_TRANSPARENT)
+ switch( nPos )
{
- rFont.SetColor( Color( COL_RED ) );
- rCJKFont.SetColor( Color( COL_RED ) );
- }
- else
- {
- rFont.SetColor(aColor);
- rCJKFont.SetColor(aColor);
+ 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;
}
}
pPrev->Invalidate();
}
-void SwRedlineOptionsTabPage::ChangedMaskPrev()
+IMPL_LINK_NOARG(SwRedlineOptionsTabPage, ChangedMaskPrevHdl, ListBox&, void)
{
pMarkPreviewWN->SetMarkPos(pMarkPosLB->GetSelectEntryPos());
pMarkPreviewWN->SetColor(pMarkColorLB->GetSelectEntryColor().GetColor());
@@ -2125,16 +2239,6 @@ void SwRedlineOptionsTabPage::ChangedMaskPrev()
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 6d038be747f1..f3d5931111e0 100644
--- a/sw/source/ui/frmdlg/column.cxx
+++ b/sw/source/ui/frmdlg/column.cxx
@@ -25,7 +25,6 @@
#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>
@@ -498,11 +497,12 @@ SwColumnPage::SwColumnPage(vcl::Window *pParent, const SfxItemSet &rSet)
m_pAutoWidthBox->SetClickHdl(LINK(this, SwColumnPage, AutoWidthHdl));
aLk = LINK( this, SwColumnPage, UpdateColMgr );
- m_pLineTypeDLB->SetSelectHdl(LINK(this, SwColumnPage, UpdateColMgrListBox));
+ Link<ListBox&,void> aLk2 = LINK( this, SwColumnPage, UpdateColMgrListBox );
+ m_pLineTypeDLB->SetSelectHdl( aLk2 );
m_pLineWidthEdit->SetModifyHdl( aLk );
- m_pLineColorDLB->SetSelectHdl(LINK( this, SwColumnPage, UpdateColMgrColorBox));
+ m_pLineColorDLB->SetSelectHdl( aLk2 );
m_pLineHeightEdit->SetModifyHdl( aLk );
- m_pLinePosDLB->SetSelectHdl(LINK(this, SwColumnPage, UpdateColMgrListBox));
+ m_pLinePosDLB->SetSelectHdl( aLk2 );
// Separator line
m_pLineTypeDLB->SetUnit( FUNIT_POINT );
@@ -525,7 +525,29 @@ SwColumnPage::SwColumnPage(vcl::Window *pParent, const SfxItemSet &rSet)
m_pLineWidthEdit->GetDecimalDigits( ),
m_pLineWidthEdit->GetUnit(), MapUnit::MapTwip ));
m_pLineTypeDLB->SetWidth( nLineWidth );
- m_pLineColorDLB->SelectEntry(COL_BLACK);
+
+ // 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 )
+ {
+ const XColorEntry* pEntry = pColorList->GetColor(i);
+ m_pLineColorDLB->InsertEntry( pEntry->GetColor(), pEntry->GetName() );
+ }
+ m_pLineColorDLB->SetUpdateMode( true );
+ }
+ m_pLineColorDLB->SelectEntryPos( 0 );
}
SwColumnPage::~SwColumnPage()
@@ -679,18 +701,10 @@ IMPL_LINK_NOARG( SwColumnPage, UpdateColMgrListBox, ListBox&, void )
{
UpdateColMgr(*m_pLineWidthEdit);
}
-
-IMPL_LINK_NOARG( SwColumnPage, UpdateColMgrColorBox, SvxColorListBox&, void )
-{
- UpdateColMgr(*m_pLineWidthEdit);
-}
-
IMPL_LINK_NOARG( SwColumnPage, UpdateColMgr, Edit&, void )
{
- if (!m_pColMgr)
- return;
long nGutterWidth = m_pColMgr->GetGutterWidth();
- if (m_nCols > 1)
+ if(m_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 691105f269ad..43a51888edf1 100644
--- a/sw/source/ui/misc/pgfnote.cxx
+++ b/sw/source/ui/misc/pgfnote.cxx
@@ -93,9 +93,9 @@ IMPL_LINK_NOARG(SwFootNotePage, LineWidthChanged_Impl, Edit&, void)
m_pLineTypeBox->SetWidth( nVal );
}
-IMPL_LINK(SwFootNotePage, LineColorSelected_Impl, SvxColorListBox&, rColorBox, void)
+IMPL_LINK_NOARG(SwFootNotePage, LineColorSelected_Impl, ListBox&, void)
{
- m_pLineTypeBox->SetColor(rColorBox.GetSelectEntryColor());
+ m_pLineTypeBox->SetColor( m_pLineColorBox->GetSelectEntryColor() );
}
SwFootNotePage::SwFootNotePage(vcl::Window *pParent, const SfxItemSet &rSet)
@@ -211,9 +211,41 @@ void SwFootNotePage::Reset(const SfxItemSet *rSet)
m_pLineTypeBox->SelectEntry( pFootnoteInfo->GetLineStyle() );
// Separator Color
- m_pLineColorBox->SelectEntry(pFootnoteInfo->GetLineColor());
- m_pLineColorBox->SetSelectHdl(LINK(this, SwFootNotePage, LineColorSelected_Impl));
- m_pLineTypeBox->SetColor(pFootnoteInfo->GetLineColor());
+ 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 )
+ {
+ const 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() );
// 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 e622569496ca..583e2c2332dc 100644
--- a/sw/source/ui/misc/pggrid.cxx
+++ b/sw/source/ui/misc/pggrid.cxx
@@ -23,7 +23,6 @@
#include <hintids.hxx>
#include <swtypes.hxx>
#include <globals.hrc>
-#include <svx/colorbox.hxx>
#include <svx/xtable.hxx>
#include <uitool.hxx>
#include <editeng/sizeitem.hxx>
@@ -103,12 +102,23 @@ SwTextGridPage::SwTextGridPage(vcl::Window *pParent, const SfxItemSet &rSet) :
m_pLinesGridRB->SetClickHdl(aGridTypeHdl);
m_pCharsGridRB->SetClickHdl(aGridTypeHdl);
- m_pColorLB->SetSelectHdl(LINK(this, SwTextGridPage, ColorModifyHdl));
+ m_pColorLB->SetSelectHdl(LINK(this, SwTextGridPage, GridModifyHdl));
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 )
+ {
+ const 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 )
@@ -424,7 +434,7 @@ IMPL_LINK(SwTextGridPage, CharorLineChangedHdl, SpinField&, rField, void)
SetLinesOrCharsRanges( *m_pCharsRangeFT , m_pCharsPerLineNF->GetMax() );
}
}
- GridModifyHdl();
+ GridModifyHdl(*m_pColorLB);
}
IMPL_LINK(SwTextGridPage, TextSizeLoseFocusHdl, Control&, rControl, void)
@@ -479,7 +489,7 @@ IMPL_LINK(SwTextGridPage, TextSizeChangedHdl, SpinField&, rField, void)
}
//rubySize is disabled
}
- GridModifyHdl();
+ GridModifyHdl(*m_pColorLB);
}
IMPL_LINK(SwTextGridPage, GridTypeHdl, Button*, pButton, void)
@@ -505,7 +515,7 @@ IMPL_LINK(SwTextGridPage, GridTypeHdl, Button*, pButton, void)
m_pCharWidthMF->Enable(false);
}
- GridModifyHdl();
+ GridModifyHdl(*m_pColorLB);
}
IMPL_LINK_NOARG(SwTextGridPage, DisplayGridHdl, Button*, void)
@@ -517,15 +527,9 @@ IMPL_LINK_NOARG(SwTextGridPage, DisplayGridHdl, Button*, void)
IMPL_LINK_NOARG(SwTextGridPage, GridModifyClickHdl, Button*, void)
{
- GridModifyHdl();
-}
-
-IMPL_LINK_NOARG(SwTextGridPage, ColorModifyHdl, SvxColorListBox&, void)
-{
- GridModifyHdl();
+ GridModifyHdl(*m_pColorLB);
}
-
-void SwTextGridPage::GridModifyHdl()
+IMPL_LINK_NOARG(SwTextGridPage, GridModifyHdl, ListBox&, void)
{
const SfxItemSet& rOldSet = GetItemSet();
SfxItemSet aSet(rOldSet);
diff --git a/sw/source/uibase/app/swmodul1.cxx b/sw/source/uibase/app/swmodul1.cxx
index d3e4374ec5b5..6d0030bee543 100644
--- a/sw/source/uibase/app/swmodul1.cxx
+++ b/sw/source/uibase/app/swmodul1.cxx
@@ -28,7 +28,6 @@
#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 d52d9a7cbbbd..bbaaef6cad08 100644
--- a/sw/source/uibase/inc/column.hxx
+++ b/sw/source/uibase/inc/column.hxx
@@ -31,7 +31,6 @@
#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>
@@ -106,7 +105,7 @@ class SwColumnPage : public SfxTabPage
VclPtr<FixedText> m_pLineWidthLbl;
VclPtr<MetricField> m_pLineWidthEdit;
VclPtr<FixedText> m_pLineColorLbl;
- VclPtr<SvxColorListBox> m_pLineColorDLB;
+ VclPtr<ColorListBox> m_pLineColorDLB;
VclPtr<FixedText> m_pLineHeightLbl;
VclPtr<MetricField> m_pLineHeightEdit;
VclPtr<FixedText> m_pLinePosLbl;
@@ -147,7 +146,6 @@ class SwColumnPage : public SfxTabPage
DECL_LINK( Down, Button *, void );
DECL_LINK( UpdateColMgr, Edit&, void );
DECL_LINK( UpdateColMgrListBox, ListBox&, void );
- DECL_LINK( 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 cfc6bf16ecbd..5f768e2d27a5 100644
--- a/sw/source/uibase/inc/optpage.hxx
+++ b/sw/source/uibase/inc/optpage.hxx
@@ -30,7 +30,6 @@
#include <vcl/fixed.hxx>
#include <svtools/ctrlbox.hxx>
-#include <svx/colorbox.hxx>
#include <svx/fntctrl.hxx>
#include <fontcfg.hxx>
class SfxPrinter;
@@ -313,26 +312,27 @@ public:
class SwRedlineOptionsTabPage : public SfxTabPage
{
VclPtr<ListBox> pInsertLB;
- VclPtr<SvxColorListBox> pInsertColorLB;
+ VclPtr<ColorListBox> pInsertColorLB;
VclPtr<SvxFontPrevWindow> pInsertedPreviewWN;
VclPtr<ListBox> pDeletedLB;
- VclPtr<SvxColorListBox> pDeletedColorLB;
+ VclPtr<ColorListBox> pDeletedColorLB;
VclPtr<SvxFontPrevWindow> pDeletedPreviewWN;
VclPtr<ListBox> pChangedLB;
- VclPtr<SvxColorListBox> pChangedColorLB;
+ VclPtr<ColorListBox> pChangedColorLB;
VclPtr<SvxFontPrevWindow> pChangedPreviewWN;
VclPtr<ListBox> pMarkPosLB;
- VclPtr<SvxColorListBox> pMarkColorLB;
+ VclPtr<ColorListBox> pMarkColorLB;
VclPtr<SwMarkPreview> pMarkPreviewWN;
+ OUString sAuthor;
+ OUString sNone;
+
DECL_LINK(AttribHdl, ListBox&, void);
- void ChangedMaskPrev();
DECL_LINK(ChangedMaskPrevHdl, ListBox&, void);
- DECL_LINK(ChangedMaskColorPrevHdl, SvxColorListBox&, void);
- DECL_LINK(ColorHdl, SvxColorListBox&, void);
+ DECL_LINK(ColorHdl, ListBox&, void);
static void InitFontStyle(SvxFontPrevWindow& rExampleWin);
diff --git a/sw/source/uibase/inc/pgfnote.hxx b/sw/source/uibase/inc/pgfnote.hxx
index 81a69ab2bc90..4ca6e8d8edc1 100644
--- a/sw/source/uibase/inc/pgfnote.hxx
+++ b/sw/source/uibase/inc/pgfnote.hxx
@@ -27,7 +27,6 @@
#include <vcl/group.hxx>
#include <svtools/ctrlbox.hxx>
-#include <svx/colorbox.hxx>
// footnote settings TabPage
class SwFootNotePage: public SfxTabPage
@@ -54,7 +53,7 @@ private:
VclPtr<ListBox> m_pLinePosBox;
VclPtr<LineListBox> m_pLineTypeBox;
VclPtr<MetricField> m_pLineWidthEdit;
- VclPtr<SvxColorListBox> m_pLineColorBox;
+ VclPtr<ColorListBox> m_pLineColorBox;
VclPtr<MetricField> m_pLineLengthEdit;
VclPtr<MetricField> m_pLineDistEdit;
@@ -62,7 +61,7 @@ private:
DECL_LINK( HeightMetric, Button*, void );
DECL_LINK( HeightModify, Control&, void );
DECL_LINK( LineWidthChanged_Impl, Edit&, void );
- DECL_LINK( LineColorSelected_Impl, SvxColorListBox&, void );
+ DECL_LINK( LineColorSelected_Impl, ListBox&, void );
long lMaxHeight;
diff --git a/sw/source/uibase/inc/pggrid.hxx b/sw/source/uibase/inc/pggrid.hxx
index ab560a6baa31..be73daec9483 100644
--- a/sw/source/uibase/inc/pggrid.hxx
+++ b/sw/source/uibase/inc/pggrid.hxx
@@ -24,7 +24,6 @@
#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
@@ -58,7 +57,7 @@ class SwTextGridPage: public SfxTabPage
VclPtr<CheckBox> m_pDisplayCB;
VclPtr<CheckBox> m_pPrintCB;
- VclPtr<SvxColorListBox> m_pColorLB;
+ VclPtr<ColorListBox> m_pColorLB;
sal_Int32 m_nRubyUserValue;
bool m_bRubyUserValue;
@@ -72,14 +71,12 @@ class SwTextGridPage: public SfxTabPage
void PutGridItem(SfxItemSet& rSet);
static void SetLinesOrCharsRanges(FixedText & rField, const sal_Int32 nValue );
- void GridModifyHdl();
-
DECL_LINK(GridTypeHdl, Button*, void);
DECL_LINK(CharorLineChangedHdl, SpinField&, void);
DECL_LINK(CharorLineLoseFocusdHdl, Control&, void);
DECL_LINK(TextSizeChangedHdl, SpinField&, void);
DECL_LINK(TextSizeLoseFocusHdl, Control&, void);
- DECL_LINK(ColorModifyHdl, SvxColorListBox&, void);
+ DECL_LINK(GridModifyHdl, ListBox&, void);
DECL_LINK(GridModifyClickHdl, Button*, void);
DECL_LINK(DisplayGridHdl, Button*, void);
diff --git a/sw/source/uibase/shells/drawsh.cxx b/sw/source/uibase/shells/drawsh.cxx
index d9aad7fb1c7a..a0b3b3504613 100644
--- a/sw/source/uibase/shells/drawsh.cxx
+++ b/sw/source/uibase/shells/drawsh.cxx
@@ -579,6 +579,16 @@ 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();
@@ -606,6 +616,9 @@ 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 2dde2604376f..c159843cb73c 100644
--- a/sw/source/uibase/shells/drwtxtsh.cxx
+++ b/sw/source/uibase/shells/drwtxtsh.cxx
@@ -239,6 +239,16 @@ 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();
@@ -266,6 +276,9 @@ void SwDrawTextShell::GetFormTextState(SfxItemSet& rSet)
}
else
{
+ if ( pDlg )
+ pDlg->SetColorList(XColorList::GetStdColorList());
+
pDrView->GetAttributes( rSet );
}
}
diff --git a/sw/source/uibase/sidebar/PageStylesPanel.cxx b/sw/source/uibase/sidebar/PageStylesPanel.cxx
index cde9ae9b5612..95985af7ed5a 100644
--- a/sw/source/uibase/sidebar/PageStylesPanel.cxx
+++ b/sw/source/uibase/sidebar/PageStylesPanel.cxx
@@ -22,7 +22,6 @@
#include <editeng/sizeitem.hxx>
#include <editeng/paperinf.hxx>
#include <svx/svxids.hrc>
-#include <svx/colorbox.hxx>
#include <svx/dlgutil.hxx>
#include <svx/rulritem.hxx>
#include "svx/drawitem.hxx"
@@ -143,20 +142,22 @@ void PageStylesPanel::dispose()
void PageStylesPanel::Initialize()
{
aCustomEntry = mpCustomEntry->GetText();
- mpBindings->Invalidate(SID_ATTR_PAGE_COLUMN);
- mpBindings->Invalidate(SID_ATTR_PAGE);
- mpBindings->Invalidate(SID_ATTR_PAGE_FILLSTYLE);
- Update();
-
mpColumnCount->SetSelectHdl( LINK(this, PageStylesPanel, ModifyColumnCountHdl) );
+
SvxNumOptionsTabPageHelper::GetI18nNumbering( *mpNumberSelectLB, ::std::numeric_limits<sal_uInt16>::max());
mpNumberSelectLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyNumberingHdl) );
+
mpLayoutSelectLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyLayoutHdl) );
mpBgFillType->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillStyleHdl));
- mpBgColorLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorListHdl));
- mpBgGradientLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorListHdl));
+ mpBgColorLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorHdl));
+ mpBgGradientLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorHdl));
mpBgHatchingLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorHdl));
mpBgBitmapLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorHdl));
+
+ mpBindings->Invalidate(SID_ATTR_PAGE_COLUMN);
+ mpBindings->Invalidate(SID_ATTR_PAGE);
+ mpBindings->Invalidate(SID_ATTR_PAGE_FILLSTYLE);
+ Update();
}
void PageStylesPanel::Update()
@@ -179,22 +180,49 @@ void PageStylesPanel::Update()
mpBgGradientLB->Hide();
mpBgHatchingLB->Hide();
mpBgColorLB->Show();
+ mpBgColorLB->Clear();
+ const SvxColorListItem aItem( *static_cast<const SvxColorListItem*>(pSh->GetItem(SID_COLOR_TABLE)));
+ mpBgColorLB->Fill(aItem.GetColorList());
+
const Color aColor = GetColorSetOrDefault();
- mpBgColorLB->SelectEntry(aColor);
+ mpBgColorLB->SelectEntry( aColor );
+
+ if(mpBgColorLB->GetSelectEntryCount() == 0)
+ {
+ mpBgColorLB->InsertEntry(aColor, OUString());
+ mpBgColorLB->SelectEntry(aColor);
+ }
}
break;
case drawing::FillStyle_GRADIENT:
{
+ const SvxColorListItem aItem(*static_cast<const SvxColorListItem*>(pSh->GetItem(SID_COLOR_TABLE)));
mpBgBitmapLB->Hide();
mpBgHatchingLB->Hide();
mpBgColorLB->Show();
mpBgGradientLB->Show();
+ mpBgColorLB->Clear();
+ mpBgGradientLB->Clear();
+ mpBgColorLB->Fill(aItem.GetColorList());
+ mpBgGradientLB->Fill(aItem.GetColorList());
const XGradient xGradient = GetGradientSetOrDefault();
const Color aStartColor = xGradient.GetStartColor();
- mpBgColorLB->SelectEntry(aStartColor);
const Color aEndColor = xGradient.GetEndColor();
- mpBgGradientLB->SelectEntry(aEndColor);
+ mpBgColorLB->SelectEntry( aStartColor );
+ mpBgGradientLB->SelectEntry( aEndColor );
+
+ if(mpBgColorLB->GetSelectEntryCount() == 0)
+ {
+ mpBgColorLB->InsertEntry(aStartColor, OUString());
+ mpBgColorLB->SelectEntry(aStartColor);
+ }
+
+ if(mpBgGradientLB->GetSelectEntryCount() == 0)
+ {
+ mpBgGradientLB->InsertEntry(aEndColor, OUString());
+ mpBgGradientLB->SelectEntry(aEndColor);
+ }
}
break;
@@ -486,7 +514,7 @@ IMPL_LINK_NOARG(PageStylesPanel, ModifyFillStyleHdl, ListBox&, void)
mpBgFillType->Selected();
}
-void PageStylesPanel::ModifyFillColor()
+IMPL_LINK_NOARG(PageStylesPanel, ModifyFillColorHdl, ListBox&, void)
{
const drawing::FillStyle eXFS = (drawing::FillStyle)mpBgFillType->GetSelectEntryPos();
SfxObjectShell* pSh = SfxObjectShell::Current();
@@ -536,16 +564,6 @@ void PageStylesPanel::ModifyFillColor()
}
}
-IMPL_LINK_NOARG(PageStylesPanel, ModifyFillColorHdl, ListBox&, void)
-{
- ModifyFillColor();
-}
-
-IMPL_LINK_NOARG(PageStylesPanel, ModifyFillColorListHdl, SvxColorListBox&, void)
-{
- ModifyFillColor();
-}
-
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/sidebar/PageStylesPanel.hxx b/sw/source/uibase/sidebar/PageStylesPanel.hxx
index 558b74e73a67..c0dacdbfb10f 100644
--- a/sw/source/uibase/sidebar/PageStylesPanel.hxx
+++ b/sw/source/uibase/sidebar/PageStylesPanel.hxx
@@ -49,7 +49,6 @@
#include <svx/pagenumberlistbox.hxx>
class List;
-class SvxColorListBox;
namespace sw { namespace sidebar {
class PageStylesPanel:
@@ -95,9 +94,9 @@ private:
::sfx2::sidebar::ControllerItem maBgBitmapControl;
::sfx2::sidebar::ControllerItem maBgFillStyleControl;
- VclPtr<SvxColorListBox> mpBgColorLB;
+ VclPtr<ColorLB> mpBgColorLB;
VclPtr<SvxFillAttrBox> mpBgHatchingLB;
- VclPtr<SvxColorListBox> mpBgGradientLB;
+ VclPtr<ColorLB> mpBgGradientLB;
VclPtr<SvxFillAttrBox> mpBgBitmapLB;
VclPtr<ListBox> mpLayoutSelectLB;
VclPtr<ListBox> mpColumnCount;
@@ -113,14 +112,11 @@ private:
const OUString GetHatchingSetOrDefault();
const OUString GetBitmapSetOrDefault();
- void ModifyFillColor();
-
DECL_LINK( ModifyColumnCountHdl, ListBox&, void );
DECL_LINK( ModifyNumberingHdl, ListBox&, void );
DECL_LINK( ModifyLayoutHdl, ListBox&, void );
DECL_LINK( ModifyFillStyleHdl, ListBox&, void );
DECL_LINK( ModifyFillColorHdl, ListBox&, void );
- DECL_LINK( ModifyFillColorListHdl, SvxColorListBox&, void );
};
} } //end of namespace sw::sidebar
diff --git a/sw/uiconfig/swriter/ui/columnpage.ui b/sw/uiconfig/swriter/ui/columnpage.ui
index 50be6e00d4d7..96f4db0adac5 100644
--- a/sw/uiconfig/swriter/ui/columnpage.ui
+++ b/sw/uiconfig/swriter/ui/columnpage.ui
@@ -538,7 +538,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="colorlb">
+ <object class="svtlo-ColorListBox" 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 420d24127002..adcfbdb9ef93 100644
--- a/sw/uiconfig/swriter/ui/footnoteareapage.ui
+++ b/sw/uiconfig/swriter/ui/footnoteareapage.ui
@@ -342,7 +342,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="color">
+ <object class="svtlo-ColorListBox" 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 8d35c0419afd..8f3fc93c0bc7 100644
--- a/sw/uiconfig/swriter/ui/optredlinepage.ui
+++ b/sw/uiconfig/swriter/ui/optredlinepage.ui
@@ -85,7 +85,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="insertcolor">
+ <object class="svtlo-ColorListBox" id="insertcolor">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">center</property>
@@ -196,7 +196,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="deletedcolor">
+ <object class="svtlo-ColorListBox" id="deletedcolor">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">center</property>
@@ -307,7 +307,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="changedcolor">
+ <object class="svtlo-ColorListBox" id="changedcolor">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">center</property>
@@ -379,7 +379,7 @@
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
- <object class="svxlo-SvxColorListBox" id="markcolor">
+ <object class="svtlo-ColorListBox" id="markcolor">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">center</property>
@@ -472,6 +472,18 @@
<property name="top_attach">3</property>
</packing>
</child>
+ <child>
+ <object class="GtkLabel" id="byauthor">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="label" translatable="yes">By author</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
</object>
<object class="GtkSizeGroup" id="sizegroup1">
<widgets>
diff --git a/sw/uiconfig/swriter/ui/pagestylespanel.ui b/sw/uiconfig/swriter/ui/pagestylespanel.ui
index a905ab333b70..4246cdedd22c 100644
--- a/sw/uiconfig/swriter/ui/pagestylespanel.ui
+++ b/sw/uiconfig/swriter/ui/pagestylespanel.ui
@@ -171,7 +171,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="lbcolor">
+ <object class="svxlo-ColorLB" id="lbcolor">
<property name="width_request">150</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -184,7 +184,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="lbgradient">
+ <object class="svxlo-ColorLB" id="lbgradient">
<property name="width_request">150</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
diff --git a/sw/uiconfig/swriter/ui/textgridpage.ui b/sw/uiconfig/swriter/ui/textgridpage.ui
index 70ecde4b9d86..d95343da6f12 100644
--- a/sw/uiconfig/swriter/ui/textgridpage.ui
+++ b/sw/uiconfig/swriter/ui/textgridpage.ui
@@ -476,7 +476,7 @@
</packing>
</child>
<child>
- <object class="svxlo-SvxColorListBox" id="listLB_COLOR">
+ <object class="svtlo-ColorListBox" id="listLB_COLOR">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>