[Libreoffice-commits] core.git: 12 commits - chart2/source chart2/uiconfig cui/source cui/uiconfig extensions/source extras/source include/sfx2 include/svtools include/svx reportdesign/inc reportdesign/source sc/inc sc/source sc/uiconfig sd/inc sd/qa sd/source sd/uiconfig sfx2/source svtools/source svx/sdi svx/source svx/uiconfig sw/inc sw/source sw/uiconfig
Caolán McNamara
caolanm at redhat.com
Fri Nov 4 17:15:27 UTC 2016
chart2/source/controller/dialogs/dlg_View3D.cxx | 4
chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx | 30
chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx | 11
chart2/source/controller/inc/dlg_View3D.hxx | 3
chart2/source/controller/main/ChartController_Properties.cxx | 2
chart2/source/controller/sidebar/ChartColorWrapper.cxx | 4
chart2/source/controller/sidebar/ChartColorWrapper.hxx | 3
chart2/uiconfig/ui/tp_3D_SceneIllumination.ui | 4
cui/source/inc/border.hxx | 7
cui/source/inc/chardlg.hxx | 11
cui/source/inc/cuires.hrc | 1
cui/source/inc/cuitabarea.hxx | 24
cui/source/inc/cuitabline.hxx | 5
cui/source/inc/numpages.hxx | 6
cui/source/options/optchart.cxx | 107 ++
cui/source/options/optchart.hxx | 15
cui/source/options/optcolor.cxx | 93 --
cui/source/tabpages/backgrnd.cxx | 2
cui/source/tabpages/border.cxx | 58 -
cui/source/tabpages/borderconn.cxx | 13
cui/source/tabpages/borderconn.hxx | 4
cui/source/tabpages/chardlg.cxx | 166 ----
cui/source/tabpages/numpages.cxx | 32
cui/source/tabpages/strings.src | 4
cui/source/tabpages/tpgradnt.cxx | 56 -
cui/source/tabpages/tphatch.cxx | 55 -
cui/source/tabpages/tpline.cxx | 30
cui/source/tabpages/tppattern.cxx | 58 -
cui/source/tabpages/tpshadow.cxx | 35
cui/uiconfig/ui/borderpage.ui | 4
cui/uiconfig/ui/colorconfigwin.ui | 92 +-
cui/uiconfig/ui/effectspage.ui | 6
cui/uiconfig/ui/gradientpage.ui | 4
cui/uiconfig/ui/hatchpage.ui | 4
cui/uiconfig/ui/linetabpage.ui | 2
cui/uiconfig/ui/numberingoptionspage.ui | 2
cui/uiconfig/ui/optchartcolorspage.ui | 3
cui/uiconfig/ui/patterntabpage.ui | 4
cui/uiconfig/ui/shadowtabpage.ui | 2
extensions/source/propctrlr/commoncontrol.cxx | 5
extensions/source/propctrlr/commoncontrol.hxx | 19
extensions/source/propctrlr/standardcontrol.cxx | 109 --
extensions/source/propctrlr/standardcontrol.hxx | 24
extras/source/glade/libreoffice-catalog.xml.in | 22
include/sfx2/controlwrapper.hxx | 22
include/svtools/ctrlbox.hxx | 82 --
include/svtools/svtools.hrc | 2
include/svx/PaletteManager.hxx | 11
include/svx/bmpmask.hxx | 15
include/svx/colorbox.hxx | 94 ++
include/svx/colorwindow.hxx | 48 -
include/svx/dialogs.hrc | 7
include/svx/dlgctrl.hxx | 16
include/svx/float3d.hxx | 34
include/svx/fontwork.hxx | 9
include/svx/sidebar/AreaPropertyPanelBase.hxx | 6
include/svx/svxids.hrc | 6
include/svx/tbcontrl.hxx | 16
reportdesign/inc/RptResId.hrc | 4
reportdesign/inc/helpids.hrc | 1
reportdesign/source/ui/dlg/CondFormat.src | 16
reportdesign/source/ui/dlg/Condition.cxx | 174 ----
reportdesign/source/ui/dlg/Condition.hxx | 18
sc/inc/sc.hrc | 2
sc/source/ui/condformat/colorformat.cxx | 57 -
sc/source/ui/condformat/condformatdlgentry.cxx | 79 --
sc/source/ui/dbgui/scendlg.cxx | 22
sc/source/ui/drawfunc/drawsh4.cxx | 25
sc/source/ui/drawfunc/drtxtob2.cxx | 25
sc/source/ui/inc/colorformat.hxx | 8
sc/source/ui/inc/condformatdlgentry.hxx | 11
sc/source/ui/inc/opredlin.hxx | 9
sc/source/ui/inc/scendlg.hxx | 4
sc/source/ui/inc/tpview.hxx | 3
sc/source/ui/optdlg/opredlin.cxx | 114 ---
sc/source/ui/optdlg/tpview.cxx | 59 -
sc/source/ui/src/scstring.src | 5
sc/uiconfig/scalc/ui/conditionalentry.ui | 6
sc/uiconfig/scalc/ui/databaroptions.ui | 17
sc/uiconfig/scalc/ui/optchangespage.ui | 8
sc/uiconfig/scalc/ui/scenariodialog.ui | 2
sc/uiconfig/scalc/ui/tpviewpage.ui | 2
sd/inc/sdabstdlg.hxx | 2
sd/qa/unit/dialogs-test.cxx | 6
sd/source/ui/animations/CustomAnimationDialog.cxx | 82 --
sd/source/ui/dlg/copydlg.cxx | 35
sd/source/ui/dlg/sddlgfact.cxx | 3
sd/source/ui/dlg/sddlgfact.hxx | 2
sd/source/ui/func/fucopy.cxx | 2
sd/source/ui/inc/copydlg.hxx | 12
sd/source/ui/sidebar/SlideBackground.cxx | 36
sd/source/ui/sidebar/SlideBackground.hxx | 8
sd/source/ui/view/drviews6.cxx | 21
sd/source/ui/view/drviewsi.cxx | 2
sd/uiconfig/sdraw/ui/copydlg.ui | 4
sd/uiconfig/simpress/ui/customanimationeffecttab.ui | 2
sd/uiconfig/simpress/ui/sidebarslidebackground.ui | 4
sfx2/source/dialog/itemconnect.cxx | 28
svtools/source/control/ctrlbox.cxx | 224 -----
svtools/source/control/ctrlbox.src | 5
svx/sdi/svx.sdi | 19
svx/source/dialog/_bmpmask.cxx | 56 -
svx/source/dialog/bmpmask.hrc | 2
svx/source/dialog/bmpmask.src | 5
svx/source/dialog/dlgctrl.cxx | 48 -
svx/source/dialog/fontwork.cxx | 13
svx/source/engine3d/float3d.cxx | 191 ++---
svx/source/engine3d/float3d.src | 15
svx/source/sidebar/area/AreaPropertyPanelBase.cxx | 97 --
svx/source/sidebar/shadow/ShadowPropertyPanel.cxx | 37
svx/source/sidebar/shadow/ShadowPropertyPanel.hxx | 11
svx/source/tbxctrls/PaletteManager.cxx | 23
svx/source/tbxctrls/tbcontrl.cxx | 411 +++++++++--
svx/source/tbxctrls/tbcontrl.src | 12
svx/uiconfig/ui/colorwindow.ui | 50 +
svx/uiconfig/ui/docking3deffects.ui | 24
svx/uiconfig/ui/dockingcolorreplace.ui | 10
svx/uiconfig/ui/dockingfontwork.ui | 2
svx/uiconfig/ui/sidebararea.ui | 4
svx/uiconfig/ui/sidebarshadow.ui | 2
sw/inc/authratr.hxx | 2
sw/source/core/access/accpara.cxx | 1
sw/source/ui/config/optpage.cxx | 240 +-----
sw/source/ui/frmdlg/column.cxx | 42 -
sw/source/ui/misc/pgfnote.cxx | 42 -
sw/source/ui/misc/pggrid.cxx | 30
sw/source/uibase/app/swmodul1.cxx | 1
sw/source/uibase/inc/column.hxx | 4
sw/source/uibase/inc/optpage.hxx | 16
sw/source/uibase/inc/pgfnote.hxx | 5
sw/source/uibase/inc/pggrid.hxx | 7
sw/source/uibase/shells/drawsh.cxx | 13
sw/source/uibase/shells/drwtxtsh.cxx | 13
sw/source/uibase/sidebar/PageStylesPanel.cxx | 62 -
sw/source/uibase/sidebar/PageStylesPanel.hxx | 8
sw/uiconfig/swriter/ui/columnpage.ui | 2
sw/uiconfig/swriter/ui/footnoteareapage.ui | 2
sw/uiconfig/swriter/ui/optredlinepage.ui | 20
sw/uiconfig/swriter/ui/pagestylespanel.ui | 4
sw/uiconfig/swriter/ui/textgridpage.ui | 2
140 files changed, 1488 insertions(+), 2722 deletions(-)
New commits:
commit f300754bb1c6a347c92bb9548be7a65237176542
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Nov 4 17:10:13 2016 +0000
replace OColorPopup with SvxColorWindow
Change-Id: I1aa06f70016b935bb13a0f6e93234eea10ba8b84
diff --git a/include/svx/colorbox.hxx b/include/svx/colorbox.hxx
index f6dee67..4b7f251 100644
--- a/include/svx/colorbox.hxx
+++ b/include/svx/colorbox.hxx
@@ -21,6 +21,7 @@ class SvxListBoxColorWrapper
public:
SvxListBoxColorWrapper(SvxColorListBox* pControl);
void operator()(const OUString& rCommand, const NamedColor& rColor);
+ void dispose();
private:
VclPtr<SvxColorListBox> mxControl;
};
diff --git a/include/svx/colorwindow.hxx b/include/svx/colorwindow.hxx
index 3fc9510..1e41713 100644
--- a/include/svx/colorwindow.hxx
+++ b/include/svx/colorwindow.hxx
@@ -31,7 +31,7 @@
#include <functional>
-class BorderColorStatus
+class SVX_DLLPUBLIC BorderColorStatus
{
Color maColor;
Color maTLBRColor;
diff --git a/reportdesign/inc/RptResId.hrc b/reportdesign/inc/RptResId.hrc
index 7e57bba..38102f3 100644
--- a/reportdesign/inc/RptResId.hrc
+++ b/reportdesign/inc/RptResId.hrc
@@ -108,10 +108,6 @@
#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 ed17967..aaa4883 100644
--- a/reportdesign/inc/helpids.hrc
+++ b/reportdesign/inc/helpids.hrc
@@ -31,7 +31,6 @@
#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 e8f16c4..ecf70ca 100644
--- a/reportdesign/source/ui/dlg/CondFormat.src
+++ b/reportdesign/source/ui/dlg/CondFormat.src
@@ -24,21 +24,5 @@ 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 3a216d8..4632306 100644
--- a/reportdesign/source/ui/dlg/Condition.cxx
+++ b/reportdesign/source/ui/dlg/Condition.cxx
@@ -84,144 +84,34 @@ IMPL_LINK( ConditionField, OnFormula, Button*, _pClickedButton, void )
}
}
-// 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
+ConditionColorWrapper::ConditionColorWrapper(Condition* pControl)
+ : mxControl(pControl)
+ , mnSlotId(0)
{
- 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 OColorPopup::Resize()
+void ConditionColorWrapper::dispose()
{
- Size aSize = GetOutputSizePixel();
- aSize.Width() -= 4;
- aSize.Height() -= 4;
- m_aColorSet->SetPosSizePixel( Point(2,2), aSize );
+ mxControl.clear();
}
-void OColorPopup::StartSelection()
+void ConditionColorWrapper::operator()(const OUString& /*rCommand*/, const NamedColor& rNamedColor)
{
- m_aColorSet->StartSelection();
+ mxControl->ApplyCommand(mnSlotId, rNamedColor.first);
}
-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_rController( _rController )
- ,m_rAction( _rAction )
- ,m_pColorFloat(nullptr)
- ,m_pBtnUpdaterFontColor(nullptr)
- ,m_pBtnUpdaterBackgroundColor(nullptr)
- ,m_nCondIndex( 0 )
- ,m_bInDestruction( false )
+ : VclHBox(_pParent)
+ , m_aColorWrapper(this)
+ , m_rController(_rController)
+ , m_rAction(_rAction)
+ , m_pBtnUpdaterFontColor(nullptr)
+ , m_pBtnUpdaterBackgroundColor(nullptr)
+ , m_nCondIndex(0)
+ , m_bInDestruction(false)
{
m_pUIBuilder = new VclBuilder(this, getUIRootDir(), "modules/dbreport/ui/conditionwin.ui");
@@ -328,31 +218,27 @@ void Condition::dispose()
m_pAddCondition.clear();
m_pRemoveCondition.clear();
m_pColorFloat.disposeAndClear();
+ m_aColorWrapper.dispose();
disposeBuilder();
VclHBox::dispose();
}
-IMPL_LINK_NOARG( Condition, DropdownClick, ToolBox*, void )
+IMPL_LINK(Condition, DropdownClick, ToolBox*, pToolBox, void)
{
sal_uInt16 nId( m_pActions->GetCurItemId() );
- 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();
+ 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);
}
IMPL_LINK_NOARG( Condition, OnFormatAction, ToolBox*, void )
diff --git a/reportdesign/source/ui/dlg/Condition.hxx b/reportdesign/source/ui/dlg/Condition.hxx
index ab5194a..6a6d64e 100644
--- a/reportdesign/source/ui/dlg/Condition.hxx
+++ b/reportdesign/source/ui/dlg/Condition.hxx
@@ -26,6 +26,7 @@
#include <dbaccess/ToolBoxHelper.hxx>
+#include <svx/colorwindow.hxx>
#include <svx/fntctrl.hxx>
#include <vcl/fixed.hxx>
@@ -62,6 +63,18 @@ 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
@@ -74,6 +87,9 @@ 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;
@@ -89,7 +105,7 @@ namespace rptui
VclPtr<PushButton> m_pMoveDown;
VclPtr<PushButton> m_pAddCondition;
VclPtr<PushButton> m_pRemoveCondition;
- VclPtr<OColorPopup> m_pColorFloat;
+ VclPtr<SvxColorWindow> m_pColorFloat;
svx::ToolboxButtonColorUpdater* m_pBtnUpdaterFontColor; // updates the color below the toolbar icon
svx::ToolboxButtonColorUpdater* m_pBtnUpdaterBackgroundColor;
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index b754581..c5c0d56 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -3192,6 +3192,11 @@ void SvxListBoxColorWrapper::operator()(const OUString& /*rCommand*/, const Name
mxControl->Selected(rColor);
}
+void SvxListBoxColorWrapper::dispose()
+{
+ mxControl.clear();
+}
+
SvxColorListBox::SvxColorListBox(vcl::Window* pParent, WinBits nStyle)
: MenuButton(pParent, nStyle)
, m_aColorWrapper(this)
@@ -3306,6 +3311,7 @@ SvxColorListBox::~SvxColorListBox()
void SvxColorListBox::dispose()
{
m_xColorWindow.disposeAndClear();
+ m_aColorWrapper.dispose();
MenuButton::dispose();
}
commit 347c2c334589b18cc62af292674bb3df1dd54b71
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Nov 4 15:55:12 2016 +0000
drop AutoColorInvalid/SID_ATTR_AUTO_COLOR_INVALID
it doesn't appear to exist/be implemented and makes
the reportdesigner font dialog from conditional
formatting crash
Change-Id: Iad929fec8aedfa31f6e8f9dfaa0055d61a9ff6f3
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index 919259e..8a7f7c5 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 )
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 0693af6..2e8b2f6 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -3596,25 +3596,6 @@ 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/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 800e53a..b754581 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -1298,15 +1298,7 @@ SvxColorWindow::SvxColorWindow(const OUString& rCommand,
case SID_ATTR_CHAR_COLOR2:
case SID_EXTRUSION_3D_COLOR:
{
- 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 ) );
+ mpButtonAutoColor->SetText( SVX_RESSTR( RID_SVXSTR_AUTOMATIC ) );
break;
}
default:
commit 604b35bf55351751a396e34dcca3f85e75860fd5
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Nov 4 15:26:23 2016 +0000
replace last ColorLB use with a listbox of colors
Change-Id: Ia0058939faa63507b50c5ca70527850e59c0ba5d
diff --git a/cui/source/options/optchart.cxx b/cui/source/options/optchart.cxx
index aefd2672..060d3b0 100644
--- a/cui/source/options/optchart.cxx
+++ b/cui/source/options/optchart.cxx
@@ -26,70 +26,20 @@
#include <vcl/svapp.hxx>
#include <svx/svxids.hrc>
-class ColorLB : public ListBox
+Color SvxDefaultColorOptPage::GetSelectEntryColor() const
{
- ImpColorList aColorList; // separate liste, in case of user data are required from outside
-
-public:
- ColorLB(vcl::Window* pParent, WinBits nWinStyle = WB_BORDER);
- virtual ~ColorLB() override;
- virtual void dispose() override;
-
- using ListBox::InsertEntry;
- sal_Int32 InsertEntry( const Color& rColor, const OUString& rStr,
- sal_Int32 nPos = LISTBOX_APPEND );
- using ListBox::RemoveEntry;
- void RemoveEntry( sal_Int32 nPos );
- void Clear();
-
- Color GetEntryColor( sal_Int32 nPos ) const;
-
- Color GetSelectEntryColor() const
- {
- sal_Int32 nPos = GetSelectEntryPos();
- Color aColor;
- if ( nPos != LISTBOX_ENTRY_NOTFOUND )
- aColor = GetEntryColor( nPos );
- return aColor;
- }
-
- void Append( const XColorEntry& rEntry );
- void Modify( const XColorEntry& rEntry, sal_Int32 nPos );
-};
-
-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;
-}
-
-ColorLB::ColorLB( vcl::Window* pParent, WinBits nWinStyle ) :
- ListBox( pParent, nWinStyle )
-{
- SetEdgeBlending(true);
-}
-
-ColorLB::~ColorLB()
-{
- disposeOnce();
+ sal_Int32 nPos = m_pLbChartColors->GetSelectEntryPos();
+ Color aColor;
+ if (nPos != LISTBOX_ENTRY_NOTFOUND)
+ aColor = GetEntryColor(nPos);
+ return aColor;
}
-void ColorLB::dispose()
+void SvxDefaultColorOptPage::InsertColorEntry(const XColorEntry& rEntry, sal_Int32 nPos)
{
- ListBox::dispose();
-}
+ const Color& rColor = rEntry.GetColor();
+ const OUString& rStr = rEntry.GetName();
-sal_Int32 ColorLB::InsertEntry( const Color& rColor, const OUString& rStr,
- sal_Int32 nPos )
-{
const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
Size aImageSize = rStyleSettings.GetListBoxPreviewDefaultPixelSize();
@@ -101,8 +51,9 @@ sal_Int32 ColorLB::InsertEntry( const Color& rColor, const OUString& rStr,
xDevice->DrawRect(aRect);
Bitmap aBitmap(xDevice->GetBitmap(Point(0, 0), xDevice->GetOutputSize()));
- nPos = ListBox::InsertEntry(rStr, Image(aBitmap), nPos);
- if ( nPos != LISTBOX_ERROR )
+ nPos = m_pLbChartColors->InsertEntry(rStr, Image(aBitmap), nPos);
+
+ if (nPos != LISTBOX_ERROR)
{
if ( static_cast<size_t>(nPos) < aColorList.size() )
{
@@ -116,12 +67,11 @@ sal_Int32 ColorLB::InsertEntry( const Color& rColor, const OUString& rStr,
nPos = aColorList.size() - 1;
}
}
- return nPos;
}
-void ColorLB::RemoveEntry( sal_Int32 nPos )
+void SvxDefaultColorOptPage::RemoveColorEntry(sal_Int32 nPos)
{
- ListBox::RemoveEntry( nPos );
+ m_pLbChartColors->RemoveEntry(nPos);
if ( 0 <= nPos && static_cast<size_t>(nPos) < aColorList.size() )
{
ImpColorList::iterator it = aColorList.begin();
@@ -130,13 +80,13 @@ void ColorLB::RemoveEntry( sal_Int32 nPos )
}
}
-void ColorLB::Clear()
+void SvxDefaultColorOptPage::ClearColorEntries()
{
aColorList.clear();
- ListBox::Clear();
+ m_pLbChartColors->Clear();
}
-Color ColorLB::GetEntryColor( sal_Int32 nPos ) const
+Color SvxDefaultColorOptPage::GetEntryColor(sal_Int32 nPos) const
{
Color aColor;
if (0 <= nPos && static_cast<size_t>(nPos) < aColorList.size())
@@ -144,30 +94,24 @@ Color ColorLB::GetEntryColor( sal_Int32 nPos ) const
return aColor;
}
-void ColorLB::Append( const XColorEntry& rEntry )
+void SvxDefaultColorOptPage::ModifyColorEntry(const XColorEntry& rEntry, sal_Int32 nPos)
{
- InsertEntry( rEntry.GetColor(), rEntry.GetName() );
+ RemoveColorEntry(nPos);
+ InsertColorEntry(rEntry, nPos);
}
-void ColorLB::Modify( const XColorEntry& rEntry, sal_Int32 nPos )
+void SvxDefaultColorOptPage::FillBoxChartColorLB()
{
- RemoveEntry( nPos );
- InsertEntry( rEntry.GetColor(), rEntry.GetName(), nPos );
-}
+ if (!pColorConfig)
+ return;
-namespace
-{
- void FillBoxChartColorLB(ColorLB *pLB, const SvxChartColorTable & rTab)
- {
- pLB->SetUpdateMode(false);
- pLB->Clear();
- long nCount = rTab.size();
- for(long i = 0; i < nCount; ++i)
- {
- pLB->Append(rTab[i]);
- }
- pLB->SetUpdateMode(true);
- }
+ 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)
@@ -240,9 +184,7 @@ void SvxDefaultColorOptPage::dispose()
void SvxDefaultColorOptPage::Construct()
{
- if( pColorConfig )
- FillBoxChartColorLB(m_pLbChartColors, pColorConfig->GetColorList());
-
+ FillBoxChartColorLB();
FillColorBox();
m_pLbChartColors->SelectEntryPos( 0 );
@@ -315,7 +257,7 @@ IMPL_LINK_NOARG(SvxDefaultColorOptPage, ResetToDefaults, Button*, void)
{
pColorConfig->GetColorList().useDefault();
- FillBoxChartColorLB(m_pLbChartColors, pColorConfig->GetColorList());
+ FillBoxChartColorLB();
m_pLbChartColors->GetFocus();
m_pLbChartColors->SelectEntryPos( 0 );
@@ -334,7 +276,7 @@ IMPL_LINK_NOARG(SvxDefaultColorOptPage, AddChartColor, Button*, void)
pColorConfig->GetColorList().append (XColorEntry ( black, pColorConfig->GetColorList().getDefaultName(pColorConfig->GetColorList().size())));
- FillBoxChartColorLB(m_pLbChartColors, pColorConfig->GetColorList());
+ FillBoxChartColorLB();
m_pLbChartColors->GetFocus();
m_pLbChartColors->SelectEntryPos( pColorConfig->GetColorList().size() - 1 );
@@ -362,7 +304,7 @@ IMPL_LINK( SvxDefaultColorOptPage, RemoveChartColor, Button*, pButton, void )
{
pColorConfig->GetColorList().remove( nIndex );
- FillBoxChartColorLB(m_pLbChartColors, pColorConfig->GetColorList());
+ FillBoxChartColorLB();
m_pLbChartColors->GetFocus();
@@ -376,9 +318,9 @@ IMPL_LINK( SvxDefaultColorOptPage, RemoveChartColor, Button*, pButton, void )
}
}
-IMPL_LINK( SvxDefaultColorOptPage, ListClickedHdl, ListBox&, _rBox, void )
+IMPL_LINK_NOARG( SvxDefaultColorOptPage, ListClickedHdl, ListBox&, void )
{
- Color aCol = static_cast<ColorLB&>(_rBox).GetSelectEntryColor();
+ Color aCol = GetSelectEntryColor();
long nIndex = GetColorIndex( aCol );
@@ -395,7 +337,7 @@ IMPL_LINK_NOARG(SvxDefaultColorOptPage, BoxClickedHdl, ValueSet*, void)
{
const XColorEntry aEntry( m_pValSetColorBox->GetItemColor( m_pValSetColorBox->GetSelectItemId() ), m_pLbChartColors->GetSelectEntry() );
- m_pLbChartColors->Modify( aEntry, nIdx );
+ ModifyColorEntry(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 ff8102a..79af3c1 100644
--- a/cui/source/options/optchart.hxx
+++ b/cui/source/options/optchart.hxx
@@ -30,12 +30,11 @@
#include "cfgchart.hxx"
typedef std::vector<Color> ImpColorList;
-class ColorLB;
class SvxDefaultColorOptPage : public SfxTabPage
{
private:
- VclPtr<ColorLB> m_pLbChartColors;
+ VclPtr<ListBox> m_pLbChartColors;
VclPtr<ValueSet> m_pValSetColorBox;
VclPtr<PushButton> m_pPBDefault;
VclPtr<PushButton> m_pPBAdd;
@@ -44,6 +43,7 @@ private:
SvxChartOptions* pChartOptions;
SvxChartColorTableItem* pColorConfig;
XColorListRef pColorList;
+ ImpColorList aColorList;
DECL_LINK( ResetToDefaults, Button *, void );
DECL_LINK( AddChartColor, Button *, void );
@@ -54,6 +54,15 @@ 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/uiconfig/ui/optchartcolorspage.ui b/cui/uiconfig/ui/optchartcolorspage.ui
index f01beda..3d1fc1a 100644
--- a/cui/uiconfig/ui/optchartcolorspage.ui
+++ b/cui/uiconfig/ui/optchartcolorspage.ui
@@ -26,8 +26,7 @@
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
- <object class="cuilo-ColorLB" id="colors:border">
- <property name="dropdown">False</property>
+ <object class="GtkTreeView" id="colors:border">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
commit 351a97ce6bda3075677b59fa1387ba3d1ab17d7a
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Nov 4 15:06:55 2016 +0000
simplify, its just a vector of colors
Change-Id: I7d388739225d371090872a33d30aa3178b20ca6e
diff --git a/cui/source/options/optchart.cxx b/cui/source/options/optchart.cxx
index ddc3e06..aefd2672 100644
--- a/cui/source/options/optchart.cxx
+++ b/cui/source/options/optchart.cxx
@@ -28,12 +28,7 @@
class ColorLB : 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();
+ ImpColorList aColorList; // separate liste, in case of user data are required from outside
public:
ColorLB(vcl::Window* pParent, WinBits nWinStyle = WB_BORDER);
@@ -76,35 +71,9 @@ VCL_BUILDER_DECL_FACTORY(ColorLB)
rRet = pListBox;
}
-class ImplColorListData
-{
-public:
- Color aColor;
- bool bColor;
-
- ImplColorListData() : aColor( COL_BLACK ) { bColor = false; }
- explicit ImplColorListData( const Color& rColor ) : aColor( rColor ) { bColor = true; }
-};
-
-void ColorLB::ImplInit()
-{
- pColorList = new ImpColorList();
-
- const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
- aImageSize = rStyleSettings.GetListBoxPreviewDefaultPixelSize();
-}
-
-void ColorLB::ImplDestroyColorEntries()
-{
- for ( size_t n = pColorList->size(); n; )
- delete (*pColorList)[ --n ];
- pColorList->clear();
-}
-
ColorLB::ColorLB( vcl::Window* pParent, WinBits nWinStyle ) :
ListBox( pParent, nWinStyle )
{
- ImplInit();
SetEdgeBlending(true);
}
@@ -115,12 +84,6 @@ ColorLB::~ColorLB()
void ColorLB::dispose()
{
- if ( pColorList )
- {
- ImplDestroyColorEntries();
- delete pColorList;
- pColorList = nullptr;
- }
ListBox::dispose();
}
@@ -128,6 +91,7 @@ sal_Int32 ColorLB::InsertEntry( const Color& rColor, const OUString& rStr,
sal_Int32 nPos )
{
const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
+ Size aImageSize = rStyleSettings.GetListBoxPreviewDefaultPixelSize();
VclPtr<VirtualDevice> xDevice = VclPtr<VirtualDevice>::Create();
xDevice->SetOutputSize(aImageSize);
@@ -140,17 +104,16 @@ sal_Int32 ColorLB::InsertEntry( const Color& rColor, const OUString& rStr,
nPos = ListBox::InsertEntry(rStr, Image(aBitmap), nPos);
if ( nPos != LISTBOX_ERROR )
{
- ImplColorListData* pData = new ImplColorListData( rColor );
- if ( static_cast<size_t>(nPos) < pColorList->size() )
+ if ( static_cast<size_t>(nPos) < aColorList.size() )
{
- ImpColorList::iterator it = pColorList->begin();
+ ImpColorList::iterator it = aColorList.begin();
::std::advance( it, nPos );
- pColorList->insert( it, pData );
+ aColorList.insert( it, rColor );
}
else
{
- pColorList->push_back( pData );
- nPos = pColorList->size() - 1;
+ aColorList.push_back( rColor );
+ nPos = aColorList.size() - 1;
}
}
return nPos;
@@ -159,28 +122,25 @@ sal_Int32 ColorLB::InsertEntry( const Color& rColor, const OUString& rStr,
void ColorLB::RemoveEntry( sal_Int32 nPos )
{
ListBox::RemoveEntry( nPos );
- if ( 0 <= nPos && static_cast<size_t>(nPos) < pColorList->size() )
+ if ( 0 <= nPos && static_cast<size_t>(nPos) < aColorList.size() )
{
- ImpColorList::iterator it = pColorList->begin();
- ::std::advance( it, nPos );
- delete *it;
- pColorList->erase( it );
+ ImpColorList::iterator it = aColorList.begin();
+ std::advance(it, nPos);
+ aColorList.erase(it);
}
}
void ColorLB::Clear()
{
- ImplDestroyColorEntries();
+ aColorList.clear();
ListBox::Clear();
}
Color ColorLB::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;
+ if (0 <= nPos && static_cast<size_t>(nPos) < aColorList.size())
+ aColor = aColorList[nPos];
return aColor;
}
diff --git a/cui/source/options/optchart.hxx b/cui/source/options/optchart.hxx
index 30f3196..ff8102a 100644
--- a/cui/source/options/optchart.hxx
+++ b/cui/source/options/optchart.hxx
@@ -29,11 +29,11 @@
#include "cfgchart.hxx"
+typedef std::vector<Color> ImpColorList;
class ColorLB;
class SvxDefaultColorOptPage : public SfxTabPage
{
-
private:
VclPtr<ColorLB> m_pLbChartColors;
VclPtr<ValueSet> m_pValSetColorBox;
diff --git a/include/svtools/ctrlbox.hxx b/include/svtools/ctrlbox.hxx
index 28d1a34..cb5e29d 100644
--- a/include/svtools/ctrlbox.hxx
+++ b/include/svtools/ctrlbox.hxx
@@ -33,10 +33,8 @@
#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;
commit df738e0f8ceedb4bad756960be14d9c41adc165d
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Nov 4 14:53:11 2016 +0000
replace user draw with an Image of the color
Change-Id: I0d301ba4082a45e7030c6956c18aa76e52bce216
diff --git a/cui/source/options/optchart.cxx b/cui/source/options/optchart.cxx
index cd92f14..ddc3e06 100644
--- a/cui/source/options/optchart.cxx
+++ b/cui/source/options/optchart.cxx
@@ -40,8 +40,6 @@ public:
virtual ~ColorLB() override;
virtual void dispose() override;
- virtual void UserDraw( const UserDrawEvent& rUDEvt ) override;
-
using ListBox::InsertEntry;
sal_Int32 InsertEntry( const Color& rColor, const OUString& rStr,
sal_Int32 nPos = LISTBOX_APPEND );
@@ -94,8 +92,6 @@ void ColorLB::ImplInit()
const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
aImageSize = rStyleSettings.GetListBoxPreviewDefaultPixelSize();
- EnableUserDraw( true );
- SetUserItemSize( aImageSize );
}
void ColorLB::ImplDestroyColorEntries()
@@ -131,7 +127,17 @@ void ColorLB::dispose()
sal_Int32 ColorLB::InsertEntry( const Color& rColor, const OUString& rStr,
sal_Int32 nPos )
{
- nPos = ListBox::InsertEntry( rStr, nPos );
+ const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
+
+ 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 = ListBox::InsertEntry(rStr, Image(aBitmap), nPos);
if ( nPos != LISTBOX_ERROR )
{
ImplColorListData* pData = new ImplColorListData( rColor );
@@ -178,53 +184,6 @@ Color ColorLB::GetEntryColor( sal_Int32 nPos ) const
return aColor;
}
-void ColorLB::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 );
-}
-
void ColorLB::Append( const XColorEntry& rEntry )
{
InsertEntry( rEntry.GetColor(), rEntry.GetName() );
commit 08d6cd788f2584ce10ab8fa10665245e953c59d9
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Nov 4 14:45:21 2016 +0000
strip down to the used pieces
Change-Id: I1d9eed2345f3d8a78f467d0fb5f7b7cd0211a160
diff --git a/cui/source/options/optchart.cxx b/cui/source/options/optchart.cxx
index 254b464..cd92f14 100644
--- a/cui/source/options/optchart.cxx
+++ b/cui/source/options/optchart.cxx
@@ -26,7 +26,7 @@
#include <vcl/svapp.hxx>
#include <svx/svxids.hrc>
-class SAL_WARN_UNUSED SVX_DLLPUBLIC ColorLB : public ListBox
+class ColorLB : public ListBox
{
ImpColorList* pColorList; // separate liste, in case of user data are required from outside
Size aImageSize;
@@ -36,38 +36,21 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC ColorLB : public ListBox
SVT_DLLPRIVATE void ImplDestroyColorEntries();
public:
- ColorLB( vcl::Window* pParent,
- WinBits nWinStyle = WB_BORDER );
+ ColorLB(vcl::Window* pParent, WinBits nWinStyle = WB_BORDER);
virtual ~ColorLB() 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 );
- bool IsAutomaticSelected() { return !GetSelectEntryPos(); }
using ListBox::RemoveEntry;
void RemoveEntry( sal_Int32 nPos );
void Clear();
- void CopyEntries( const ColorLB& 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 )
- {
- sal_Int32 nPos = GetEntryPos( rColor );
- if ( nPos != LISTBOX_ENTRY_NOTFOUND )
- ListBox::SelectEntryPos( nPos );
- }
-
Color GetSelectEntryColor() const
{
sal_Int32 nPos = GetSelectEntryPos();
@@ -77,25 +60,8 @@ public:
return aColor;
}
- 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;
- }
-
- void Fill( const XColorListRef &pTab );
-
void Append( const XColorEntry& rEntry );
void Modify( const XColorEntry& rEntry, sal_Int32 nPos );
-
-private:
- ColorLB( const ColorLB& ) = delete;
- ColorLB& operator =( const ColorLB& ) = delete;
};
VCL_BUILDER_DECL_FACTORY(ColorLB)
@@ -162,27 +128,6 @@ void ColorLB::dispose()
ListBox::dispose();
}
-sal_Int32 ColorLB::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 ColorLB::InsertEntry( const Color& rColor, const OUString& rStr,
sal_Int32 nPos )
{
@@ -223,44 +168,6 @@ void ColorLB::Clear()
ListBox::Clear();
}
-void ColorLB::CopyEntries( const ColorLB& 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 ColorLB::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 ColorLB::GetEntryColor( sal_Int32 nPos ) const
{
Color aColor;
@@ -318,31 +225,9 @@ void ColorLB::UserDraw( const UserDrawEvent& rUDEvt )
ListBox::DrawEntry( rUDEvt, true, false );
}
-
-// 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 )
@@ -351,7 +236,6 @@ void ColorLB::Modify( const XColorEntry& rEntry, sal_Int32 nPos )
InsertEntry( rEntry.GetColor(), rEntry.GetName(), nPos );
}
-
namespace
{
void FillBoxChartColorLB(ColorLB *pLB, const SvxChartColorTable & rTab)
commit a19b18ad7c9eb0197c10e6d7e451ec4542e4bc9e
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Nov 4 14:19:44 2016 +0000
move now combined ColorLB to location of last user
Change-Id: I5dc1204c28b65d5dca993bf38aea217bbb49e913
diff --git a/cui/source/options/optchart.cxx b/cui/source/options/optchart.cxx
index 3d95da7..254b464 100644
--- a/cui/source/options/optchart.cxx
+++ b/cui/source/options/optchart.cxx
@@ -21,9 +21,337 @@
#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>
+class SAL_WARN_UNUSED SVX_DLLPUBLIC ColorLB : 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:
+ ColorLB( vcl::Window* pParent,
+ WinBits nWinStyle = WB_BORDER );
+ virtual ~ColorLB() 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 );
+ bool IsAutomaticSelected() { return !GetSelectEntryPos(); }
+ using ListBox::RemoveEntry;
+ void RemoveEntry( sal_Int32 nPos );
+ void Clear();
+ void CopyEntries( const ColorLB& 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 )
+ {
+ sal_Int32 nPos = GetEntryPos( rColor );
+ if ( nPos != LISTBOX_ENTRY_NOTFOUND )
+ ListBox::SelectEntryPos( nPos );
+ }
+
+ Color GetSelectEntryColor() const
+ {
+ sal_Int32 nPos = GetSelectEntryPos();
+ Color aColor;
+ if ( nPos != LISTBOX_ENTRY_NOTFOUND )
+ aColor = GetEntryColor( nPos );
+ return aColor;
+ }
+
+ 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;
+ }
+
+ void Fill( const XColorListRef &pTab );
+
+ void Append( const XColorEntry& rEntry );
+ void Modify( const XColorEntry& rEntry, sal_Int32 nPos );
+
+private:
+ ColorLB( const ColorLB& ) = delete;
+ ColorLB& operator =( const ColorLB& ) = delete;
+};
+
+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;
+}
+
+class ImplColorListData
+{
+public:
+ Color aColor;
+ bool bColor;
+
+ ImplColorListData() : aColor( COL_BLACK ) { bColor = false; }
+ explicit ImplColorListData( const Color& rColor ) : aColor( rColor ) { bColor = true; }
+};
+
+void ColorLB::ImplInit()
+{
+ pColorList = new ImpColorList();
+
+ const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
+ aImageSize = rStyleSettings.GetListBoxPreviewDefaultPixelSize();
+ EnableUserDraw( true );
+ SetUserItemSize( aImageSize );
+}
+
+void ColorLB::ImplDestroyColorEntries()
+{
+ for ( size_t n = pColorList->size(); n; )
+ delete (*pColorList)[ --n ];
+ pColorList->clear();
+}
+
+ColorLB::ColorLB( vcl::Window* pParent, WinBits nWinStyle ) :
+ ListBox( pParent, nWinStyle )
+{
+ ImplInit();
+ SetEdgeBlending(true);
+}
+
+ColorLB::~ColorLB()
+{
+ disposeOnce();
+}
+
+void ColorLB::dispose()
+{
+ if ( pColorList )
+ {
+ ImplDestroyColorEntries();
+ delete pColorList;
+ pColorList = nullptr;
+ }
+ ListBox::dispose();
+}
+
+sal_Int32 ColorLB::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 ColorLB::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 ColorLB::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 ColorLB::Clear()
+{
+ ImplDestroyColorEntries();
+ ListBox::Clear();
+}
+
+void ColorLB::CopyEntries( const ColorLB& 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 ColorLB::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 ColorLB::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 ColorLB::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 );
+}
+
+
+// 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 );
+}
+
+
namespace
{
void FillBoxChartColorLB(ColorLB *pLB, const SvxChartColorTable & rTab)
diff --git a/cui/source/options/optchart.hxx b/cui/source/options/optchart.hxx
index 34cd211..30f3196 100644
--- a/cui/source/options/optchart.hxx
+++ b/cui/source/options/optchart.hxx
@@ -29,6 +29,8 @@
#include "cfgchart.hxx"
+class ColorLB;
+
class SvxDefaultColorOptPage : public SfxTabPage
{
diff --git a/cui/uiconfig/ui/optchartcolorspage.ui b/cui/uiconfig/ui/optchartcolorspage.ui
index 3cadc55..f01beda 100644
--- a/cui/uiconfig/ui/optchartcolorspage.ui
+++ b/cui/uiconfig/ui/optchartcolorspage.ui
@@ -26,7 +26,7 @@
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
- <object class="svxlo-ColorLB" id="colors:border">
+ <object class="cuilo-ColorLB" id="colors:border">
<property name="dropdown">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
diff --git a/include/svx/dlgctrl.hxx b/include/svx/dlgctrl.hxx
index cb0eec0..39cc688 100644
--- a/include/svx/dlgctrl.hxx
+++ b/include/svx/dlgctrl.hxx
@@ -207,80 +207,6 @@ public:
/************************************************************************/
-class SAL_WARN_UNUSED SVX_DLLPUBLIC ColorLB : 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:
- ColorLB( vcl::Window* pParent,
- WinBits nWinStyle = WB_BORDER );
- virtual ~ColorLB() 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 );
- bool IsAutomaticSelected() { return !GetSelectEntryPos(); }
- using ListBox::RemoveEntry;
- void RemoveEntry( sal_Int32 nPos );
- void Clear();
- void CopyEntries( const ColorLB& 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 )
- {
- sal_Int32 nPos = GetEntryPos( rColor );
- if ( nPos != LISTBOX_ENTRY_NOTFOUND )
- ListBox::SelectEntryPos( nPos );
- }
-
- Color GetSelectEntryColor() const
- {
- sal_Int32 nPos = GetSelectEntryPos();
- Color aColor;
- if ( nPos != LISTBOX_ENTRY_NOTFOUND )
- aColor = GetEntryColor( nPos );
- return aColor;
- }
-
- 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;
- }
-
- void Fill( const XColorListRef &pTab );
-
- void Append( const XColorEntry& rEntry );
- void Modify( const XColorEntry& rEntry, sal_Int32 nPos );
-
-private:
- ColorLB( const ColorLB& ) = delete;
- ColorLB& operator =( const ColorLB& ) = delete;
-};
-
-/************************************************************************/
-
class SAL_WARN_UNUSED SVX_DLLPUBLIC HatchingLB : public ListBox
{
public:
diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx
index 3751903..d8f312b 100644
--- a/svx/source/dialog/dlgctrl.cxx
+++ b/svx/source/dialog/dlgctrl.cxx
@@ -1103,259 +1103,6 @@ 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;
-}
-
-class ImplColorListData
-{
-public:
- Color aColor;
- bool bColor;
-
- ImplColorListData() : aColor( COL_BLACK ) { bColor = false; }
- explicit ImplColorListData( const Color& rColor ) : aColor( rColor ) { bColor = true; }
-};
-
-void ColorLB::ImplInit()
-{
- pColorList = new ImpColorList();
-
- const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
- aImageSize = rStyleSettings.GetListBoxPreviewDefaultPixelSize();
- EnableUserDraw( true );
- SetUserItemSize( aImageSize );
-}
-
-void ColorLB::ImplDestroyColorEntries()
-{
- for ( size_t n = pColorList->size(); n; )
- delete (*pColorList)[ --n ];
- pColorList->clear();
-}
-
-ColorLB::ColorLB( vcl::Window* pParent, WinBits nWinStyle ) :
- ListBox( pParent, nWinStyle )
-{
- ImplInit();
- SetEdgeBlending(true);
-}
-
-ColorLB::~ColorLB()
-{
- disposeOnce();
-}
-
-void ColorLB::dispose()
-{
- if ( pColorList )
- {
- ImplDestroyColorEntries();
- delete pColorList;
- pColorList = nullptr;
- }
- ListBox::dispose();
-}
-
-sal_Int32 ColorLB::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 ColorLB::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 ColorLB::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 ColorLB::Clear()
-{
- ImplDestroyColorEntries();
- ListBox::Clear();
-}
-
-void ColorLB::CopyEntries( const ColorLB& 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 ColorLB::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 ColorLB::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 ColorLB::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 );
-}
-
-
-// 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)
commit a989a0b1f2b425f05b58d0e44ce2de31c842ed65
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Nov 4 14:14:54 2016 +0000
fold ColorListBox and ColorLB together
Change-Id: I485109acd7cd4d6c2dc53e29f4b01bfc202a38f3
diff --git a/include/svx/dlgctrl.hxx b/include/svx/dlgctrl.hxx
index 64ec881..cb0eec0 100644
--- a/include/svx/dlgctrl.hxx
+++ b/include/svx/dlgctrl.hxx
@@ -207,7 +207,7 @@ public:
/************************************************************************/
-class SAL_WARN_UNUSED SVX_DLLPUBLIC ColorListBox : public ListBox
+class SAL_WARN_UNUSED SVX_DLLPUBLIC ColorLB : public ListBox
{
ImpColorList* pColorList; // separate liste, in case of user data are required from outside
Size aImageSize;
@@ -217,9 +217,9 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC ColorListBox : public ListBox
SVT_DLLPRIVATE void ImplDestroyColorEntries();
public:
- ColorListBox( vcl::Window* pParent,
+ ColorLB( vcl::Window* pParent,
WinBits nWinStyle = WB_BORDER );
- virtual ~ColorListBox() override;
+ virtual ~ColorLB() override;
virtual void dispose() override;
virtual void UserDraw( const UserDrawEvent& rUDEvt ) override;
@@ -233,7 +233,7 @@ public:
using ListBox::RemoveEntry;
void RemoveEntry( sal_Int32 nPos );
void Clear();
- void CopyEntries( const ColorListBox& rBox );
+ void CopyEntries( const ColorLB& rBox );
using ListBox::GetEntryPos;
sal_Int32 GetEntryPos( const Color& rColor ) const;
@@ -241,8 +241,23 @@ public:
void SelectEntry( const OUString& rStr )
{ ListBox::SelectEntry( rStr ); }
- void SelectEntry( const Color& rColor );
- Color GetSelectEntryColor() const;
+
+ void SelectEntry( const Color& rColor )
+ {
+ sal_Int32 nPos = GetEntryPos( rColor );
+ if ( nPos != LISTBOX_ENTRY_NOTFOUND )
+ ListBox::SelectEntryPos( nPos );
+ }
+
+ Color GetSelectEntryColor() const
+ {
+ sal_Int32 nPos = GetSelectEntryPos();
+ Color aColor;
+ if ( nPos != LISTBOX_ENTRY_NOTFOUND )
+ aColor = GetEntryColor( nPos );
+ return aColor;
+ }
+
using ListBox::IsEntrySelected;
bool IsEntrySelected(const Color& rColor) const
@@ -254,38 +269,14 @@ public:
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 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 );
+
+private:
+ ColorLB( const ColorLB& ) = delete;
+ ColorLB& operator =( const ColorLB& ) = delete;
};
/************************************************************************/
diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx
index 8793cfd..3751903 100644
--- a/svx/source/dialog/dlgctrl.cxx
+++ b/svx/source/dialog/dlgctrl.cxx
@@ -1127,7 +1127,7 @@ public:
explicit ImplColorListData( const Color& rColor ) : aColor( rColor ) { bColor = true; }
};
-void ColorListBox::ImplInit()
+void ColorLB::ImplInit()
{
pColorList = new ImpColorList();
@@ -1137,26 +1137,26 @@ void ColorListBox::ImplInit()
SetUserItemSize( aImageSize );
}
-void ColorListBox::ImplDestroyColorEntries()
+void ColorLB::ImplDestroyColorEntries()
{
for ( size_t n = pColorList->size(); n; )
delete (*pColorList)[ --n ];
pColorList->clear();
}
-ColorListBox::ColorListBox( vcl::Window* pParent, WinBits nWinStyle ) :
+ColorLB::ColorLB( vcl::Window* pParent, WinBits nWinStyle ) :
ListBox( pParent, nWinStyle )
{
ImplInit();
SetEdgeBlending(true);
}
-ColorListBox::~ColorListBox()
+ColorLB::~ColorLB()
{
disposeOnce();
}
-void ColorListBox::dispose()
+void ColorLB::dispose()
{
if ( pColorList )
{
@@ -1167,7 +1167,7 @@ void ColorListBox::dispose()
ListBox::dispose();
}
-sal_Int32 ColorListBox::InsertEntry( const OUString& rStr, sal_Int32 nPos )
+sal_Int32 ColorLB::InsertEntry( const OUString& rStr, sal_Int32 nPos )
{
nPos = ListBox::InsertEntry( rStr, nPos );
if ( nPos != LISTBOX_ERROR )
@@ -1188,7 +1188,7 @@ sal_Int32 ColorListBox::InsertEntry( const OUString& rStr, sal_Int32 nPos )
return nPos;
}
-sal_Int32 ColorListBox::InsertEntry( const Color& rColor, const OUString& rStr,
+sal_Int32 ColorLB::InsertEntry( const Color& rColor, const OUString& rStr,
sal_Int32 nPos )
{
nPos = ListBox::InsertEntry( rStr, nPos );
@@ -1210,7 +1210,7 @@ sal_Int32 ColorListBox::InsertEntry( const Color& rColor, const OUString& rStr,
return nPos;
}
-void ColorListBox::RemoveEntry( sal_Int32 nPos )
+void ColorLB::RemoveEntry( sal_Int32 nPos )
{
ListBox::RemoveEntry( nPos );
if ( 0 <= nPos && static_cast<size_t>(nPos) < pColorList->size() )
@@ -1222,13 +1222,13 @@ void ColorListBox::RemoveEntry( sal_Int32 nPos )
}
}
-void ColorListBox::Clear()
+void ColorLB::Clear()
{
ImplDestroyColorEntries();
ListBox::Clear();
}
-void ColorListBox::CopyEntries( const ColorListBox& rBox )
+void ColorLB::CopyEntries( const ColorLB& rBox )
{
// Liste leeren
ImplDestroyColorEntries();
@@ -1255,7 +1255,7 @@ void ColorListBox::CopyEntries( const ColorListBox& rBox )
}
}
-sal_Int32 ColorListBox::GetEntryPos( const Color& rColor ) const
+sal_Int32 ColorLB::GetEntryPos( const Color& rColor ) const
{
for( sal_Int32 n = (sal_Int32) pColorList->size(); n; )
{
@@ -1266,7 +1266,7 @@ sal_Int32 ColorListBox::GetEntryPos( const Color& rColor ) const
return LISTBOX_ENTRY_NOTFOUND;
}
-Color ColorListBox::GetEntryColor( sal_Int32 nPos ) const
+Color ColorLB::GetEntryColor( sal_Int32 nPos ) const
{
Color aColor;
ImplColorListData* pData = ( 0 <= nPos && static_cast<size_t>(nPos) < pColorList->size() ) ?
@@ -1276,7 +1276,7 @@ Color ColorListBox::GetEntryColor( sal_Int32 nPos ) const
return aColor;
}
-void ColorListBox::UserDraw( const UserDrawEvent& rUDEvt )
+void ColorLB::UserDraw( const UserDrawEvent& rUDEvt )
{
size_t nPos = rUDEvt.GetItemId();
ImplColorListData* pData = ( nPos < pColorList->size() ) ? (*pColorList)[ nPos ] : nullptr;
commit 760a198e697f3070a5e0e029e4eff7be220eb9cd
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Nov 4 13:07:44 2016 +0000
move ColorListBox beside sole thing that uses it
Change-Id: Ia458ded8881c415badd5d75bddad0daca57a1a25
diff --git a/include/svtools/ctrlbox.hxx b/include/svtools/ctrlbox.hxx
index c1ad071..28d1a34 100644
--- a/include/svtools/ctrlbox.hxx
+++ b/include/svtools/ctrlbox.hxx
@@ -42,17 +42,6 @@ typedef ::std::vector< FontMetric > ImplFontList;
/*************************************************************************
-Description
-============
-
-class ColorListBox
-
-Description
-
-Allows color selection
-
---------------------------------------------------------------------------
-
class LineListBox
Description
@@ -141,75 +130,6 @@ 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 92cc809..c149f86 100644
--- a/include/svtools/svtools.hrc
+++ b/include/svtools/svtools.hrc
@@ -26,8 +26,6 @@
// 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/dlgctrl.hxx b/include/svx/dlgctrl.hxx
index 5a2c217..64ec881 100644
--- a/include/svx/dlgctrl.hxx
+++ b/include/svx/dlgctrl.hxx
@@ -207,6 +207,75 @@ public:
/************************************************************************/
+class SAL_WARN_UNUSED SVX_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 );
+ 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 SAL_WARN_UNUSED SVX_DLLPUBLIC ColorLB : public ColorListBox
{
diff --git a/svtools/source/control/ctrlbox.cxx b/svtools/source/control/ctrlbox.cxx
index b54e54c..ce72348 100644
--- a/svtools/source/control/ctrlbox.cxx
+++ b/svtools/source/control/ctrlbox.cxx
@@ -59,218 +59,6 @@
#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);
-}
-
-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 36036d9..4d04006 100644
--- a/svtools/source/control/ctrlbox.src
+++ b/svtools/source/control/ctrlbox.src
@@ -18,11 +18,6 @@
*/
#include <svtools/svtools.hrc>
-String STR_SVT_AUTOMATIC_COLOR
-{
- Text [ en-US ] = "Automatic";
-};
-
/*
* resources for CollatorResource / CollatorResourceData resp.
*/
diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx
index 0ee46f7..8793cfd 100644
--- a/svx/source/dialog/dlgctrl.cxx
+++ b/svx/source/dialog/dlgctrl.cxx
@@ -1117,6 +1117,213 @@ VCL_BUILDER_DECL_FACTORY(ColorLB)
rRet = pListBox;
}
+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);
+}
+
+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::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 );
+}
+
+
// Fills the Listbox with color and strings
void ColorLB::Fill( const XColorListRef &pColorTab )
commit 8bea644d6117a49405e6426dc97214220fc869d1
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Nov 4 13:47:35 2016 +0000
extensions leaks out details of Color Selector, patch it up
and rebase it on SvxColorListBox
Change-Id: I3afef689ab0dc3c34e465810d82bf21797907558
diff --git a/extensions/source/propctrlr/commoncontrol.cxx b/extensions/source/propctrlr/commoncontrol.cxx
index 7458804..6e9cb6b 100644
--- a/extensions/source/propctrlr/commoncontrol.cxx
+++ b/extensions/source/propctrlr/commoncontrol.cxx
@@ -104,6 +104,11 @@ 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 05771dd..0d46aaa 100644
--- a/extensions/source/propctrlr/commoncontrol.hxx
+++ b/extensions/source/propctrlr/commoncontrol.hxx
@@ -32,6 +32,7 @@
class NotifyEvent;
class Control;
class ListBox;
+class SvxColorListBox;
class Edit;
namespace pcr
@@ -90,6 +91,7 @@ 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 );
@@ -150,8 +152,9 @@ namespace pcr
inline void impl_checkDisposed_throw();
private:
VclPtr<TControlWindow> m_pControlWindow;
- void implSetModifyHandler(std::true_type);
- void implSetModifyHandler(std::false_type);
+ void implSetModifyHandler(const Edit&);
+ void implSetModifyHandler(const ListBox&);
+ void implSetModifyHandler(const SvxColorListBox&);
};
@@ -165,7 +168,7 @@ namespace pcr
{
if ( _bDoSetHandlers )
{
- implSetModifyHandler(std::is_base_of<::Edit,TControlWindow>());
+ implSetModifyHandler(*m_pControlWindow);
m_pControlWindow->SetGetFocusHdl( LINK( this, CommonBehaviourControlHelper, GetFocusHdl ) );
m_pControlWindow->SetLoseFocusHdl( LINK( this, CommonBehaviourControlHelper, LoseFocusHdl ) );
}
@@ -173,18 +176,24 @@ namespace pcr
}
template< class TControlInterface, class TControlWindow >
- inline void CommonBehaviourControl< TControlInterface, TControlWindow >::implSetModifyHandler(std::true_type)
+ inline void CommonBehaviourControl< TControlInterface, TControlWindow >::implSetModifyHandler(const Edit&)
{
m_pControlWindow->SetModifyHdl( LINK( this, CommonBehaviourControlHelper, EditModifiedHdl ) );
}
template< class TControlInterface, class TControlWindow >
- inline void CommonBehaviourControl< TControlInterface, TControlWindow >::implSetModifyHandler(std::false_type)
+ inline void CommonBehaviourControl< TControlInterface, TControlWindow >::implSetModifyHandler(const ListBox&)
{
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 ca2412f..7d42296 100644
--- a/extensions/source/propctrlr/standardcontrol.cxx
+++ b/extensions/source/propctrlr/standardcontrol.cxx
@@ -657,141 +657,50 @@ 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;
- 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();
- }
+ _rValue >>= nColor;
+ ::Color aRgbCol((ColorData)nColor);
+ getTypedControlWindow()->SelectEntry(std::make_pair(aRgbCol, MakeHexStr(nColor, 8)));
}
else
getTypedControlWindow()->SetNoSelection();
}
-
Any SAL_CALL OColorControl::getValue() throw (RuntimeException, std::exception)
{
Any aPropValue;
- if ( getTypedControlWindow()->GetSelectEntryCount() > 0 )
+ if (!getTypedControlWindow()->IsNoSelection())
{
- OUString sSelectedEntry = getTypedControlWindow()->GetSelectEntry();
- if ( m_aNonColorEntries.find( sSelectedEntry ) != m_aNonColorEntries.end() )
- aPropValue <<= sSelectedEntry;
- else
- {
- ::Color aRgbCol = getTypedControlWindow()->GetSelectEntryColor();
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list