summaryrefslogtreecommitdiff
path: root/cui/source
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 /cui/source
parentee2144aafc5b4be14630f723be9a2bb674671412 (diff)
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.
Diffstat (limited to 'cui/source')
-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
23 files changed, 538 insertions, 247 deletions
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: */