summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Snelders <programming@ertai.nl>2011-03-24 21:33:46 +0100
committerMichael Meeks <michael.meeks@novell.com>2011-03-25 06:17:49 +0000
commit900d3eb3b861aa3e6de0b62b36103930ed78a58e (patch)
tree3df81f0cef9ca3d5bbf42c8b1bea89e51fa178e7
parente8216218859b2a01a4e9b7f6ff07d79c06d8f444 (diff)
Added the Adding and removing of color charts
-rw-r--r--cui/source/options/cfgchart.cxx50
-rw-r--r--cui/source/options/cfgchart.hxx7
-rw-r--r--cui/source/options/optchart.cxx44
-rw-r--r--cui/source/options/optchart.hrc3
-rw-r--r--cui/source/options/optchart.hxx14
-rw-r--r--cui/source/options/optchart.src24
6 files changed, 114 insertions, 28 deletions
diff --git a/cui/source/options/cfgchart.cxx b/cui/source/options/cfgchart.cxx
index 4b449a0a16e7..0d406cd9156f 100644
--- a/cui/source/options/cfgchart.cxx
+++ b/cui/source/options/cfgchart.cxx
@@ -43,7 +43,8 @@ SvxChartColorTable::SvxChartColorTable()
{}
SvxChartColorTable::SvxChartColorTable( const SvxChartColorTable & _rSource ) :
- m_aColorEntries( _rSource.m_aColorEntries )
+ m_aColorEntries( _rSource.m_aColorEntries ),
+ nNextElementNumber( m_aColorEntries.size() + 1 )
{}
// accessors
@@ -79,6 +80,7 @@ ColorData SvxChartColorTable::getColorData( size_t _nIndex ) const
void SvxChartColorTable::clear()
{
m_aColorEntries.clear();
+ nNextElementNumber = 1;
}
void SvxChartColorTable::append( const XColorEntry & _rEntry )
@@ -86,6 +88,12 @@ void SvxChartColorTable::append( const XColorEntry & _rEntry )
m_aColorEntries.push_back( _rEntry );
}
+void SvxChartColorTable::remove( size_t _nIndex )
+{
+ if (m_aColorEntries.size() > 0)
+ m_aColorEntries.erase( m_aColorEntries.begin() + _nIndex);
+}
+
void SvxChartColorTable::replace( size_t _nIndex, const XColorEntry & _rEntry )
{
DBG_ASSERT( _nIndex <= m_aColorEntries.size(),
@@ -113,25 +121,37 @@ void SvxChartColorTable::useDefault()
clear();
- String aResName( CUI_RES( RID_SVXSTR_DIAGRAM_ROW ) );
- String aPrefix, aPostfix, aName;
- xub_StrLen nPos = aResName.SearchAscii( "$(ROW)" );
- if( nPos != STRING_NOTFOUND )
+ for( sal_Int32 i=0; i<ROW_COLOR_COUNT; i++ )
{
- aPrefix = String( aResName, 0, nPos );
- aPostfix = String( aResName, nPos + sizeof( "$(ROW)" ) - 1, STRING_LEN );
+ append( XColorEntry( aColors[ i % sizeof( aColors ) ], getNextDefaultName() ));
}
- else
- aPrefix = aResName;
+}
- for( sal_Int32 i=0; i<ROW_COLOR_COUNT; i++ )
- {
- aName = aPrefix;
- aName.Append( String::CreateFromInt32( i + 1 ));
- aName.Append( aPostfix );
+String SvxChartColorTable::getNextDefaultName()
+{
+ String aName;
- append( XColorEntry( aColors[ i % sizeof( aColors ) ], aName ));
+ if (sDefaultNamePrefix.Len() == 0)
+ {
+ String aResName( CUI_RES( RID_SVXSTR_DIAGRAM_ROW ) );
+ xub_StrLen nPos = aResName.SearchAscii( "$(ROW)" );
+ if( nPos != STRING_NOTFOUND )
+ {
+ sDefaultNamePrefix = String( aResName, 0, nPos );
+ sDefaultNamePostfix = String( aResName, nPos + sizeof( "$(ROW)" ) - 1, STRING_LEN );
+ }
+ else
+ {
+ sDefaultNamePrefix = aResName;
+ }
}
+
+ aName = sDefaultNamePrefix;
+ aName.Append( String::CreateFromInt32 ( nNextElementNumber ) );
+ aName.Append( sDefaultNamePostfix );
+ nNextElementNumber++;
+
+ return aName;
}
// comparison
diff --git a/cui/source/options/cfgchart.hxx b/cui/source/options/cfgchart.hxx
index 2f348c632e1d..dede79ebc299 100644
--- a/cui/source/options/cfgchart.hxx
+++ b/cui/source/options/cfgchart.hxx
@@ -44,6 +44,9 @@ class SvxChartColorTable
{
private:
::std::vector< XColorEntry > m_aColorEntries;
+ int nNextElementNumber;
+ String sDefaultNamePrefix;
+ String sDefaultNamePostfix;
public:
SvxChartColorTable();
@@ -57,8 +60,10 @@ public:
// mutators
void clear();
void append( const XColorEntry & _rEntry );
+ void remove( size_t _nIndex );
void replace( size_t _nIndex, const XColorEntry & _rEntry );
void useDefault();
+ String getNextDefaultName();
// comparison
bool operator==( const SvxChartColorTable & _rOther ) const;
@@ -70,7 +75,7 @@ public:
class SvxChartOptions : public ::utl::ConfigItem
{
private:
- SvxChartColorTable maDefColors;
+ SvxChartColorTable maDefColors;
sal_Bool mbIsInitialized;
::com::sun::star::uno::Sequence< ::rtl::OUString >
diff --git a/cui/source/options/optchart.cxx b/cui/source/options/optchart.cxx
index d43fc3437cb2..b30d933ee9aa 100644
--- a/cui/source/options/optchart.cxx
+++ b/cui/source/options/optchart.cxx
@@ -60,11 +60,15 @@ SvxDefaultColorOptPage::SvxDefaultColorOptPage( Window* pParent, const SfxItemSe
aLbChartColors ( this, CUI_RES( LB_CHART_COLOR_LIST ) ),
aGbColorBox ( this, CUI_RES( FL_COLOR_BOX ) ),
aValSetColorBox ( this, CUI_RES( CT_COLOR_BOX ) ),
- aPBDefault ( this, CUI_RES( PB_RESET_TO_DEFAULT ) )
+ aPBDefault ( this, CUI_RES( PB_RESET_TO_DEFAULT ) ),
+ aPBAdd ( this, CUI_RES( PB_ADD_CHART_COLOR ) ),
+ aPBRemove ( this, CUI_RES( PB_REMOVE_CHART_COLOR ) )
{
FreeResource();
aPBDefault.SetClickHdl( LINK( this, SvxDefaultColorOptPage, ResetToDefaults ) );
+ aPBAdd.SetClickHdl( LINK( this, SvxDefaultColorOptPage, AddChartColor ) );
+ aPBRemove.SetClickHdl( LINK( this, SvxDefaultColorOptPage, RemoveChartColor ) );
aLbChartColors.SetSelectHdl( LINK( this, SvxDefaultColorOptPage, ListClickedHdl ) );
aValSetColorBox.SetSelectHdl( LINK( this, SvxDefaultColorOptPage, BoxClickedHdl ) );
@@ -195,6 +199,44 @@ IMPL_LINK( SvxDefaultColorOptPage, ResetToDefaults, void *, EMPTYARG )
return 0L;
}
+// AddChartColor
+// ------------
+
+IMPL_LINK( SvxDefaultColorOptPage, AddChartColor, void *, EMPTYARG )
+{
+ if( pColorConfig )
+ {
+ ColorData black = RGB_COLORDATA( 0x00, 0x00, 0x00 );
+
+ pColorConfig->GetColorTable().append (XColorEntry ( black, pColorConfig->GetColorTable().getNextDefaultName()));
+
+ aLbChartColors.Clear();
+ aLbChartColors.FillBox( pColorConfig->GetColorTable() );
+
+ aLbChartColors.GetFocus();
+ }
+
+ return 0L;
+}
+
+// RemoveChartColor
+// ----------------
+
+IMPL_LINK( SvxDefaultColorOptPage, RemoveChartColor, void *, EMPTYARG )
+{
+ if( pColorConfig )
+ {
+ pColorConfig->GetColorTable().remove( aLbChartColors.GetSelectEntryPos() );
+
+ aLbChartColors.Clear();
+ aLbChartColors.FillBox( pColorConfig->GetColorTable() );
+
+ aLbChartColors.GetFocus();
+ }
+
+ return 0L;
+}
+
// ListClickedHdl
// --------------
diff --git a/cui/source/options/optchart.hrc b/cui/source/options/optchart.hrc
index d2e1a312e15d..680ede9d7c79 100644
--- a/cui/source/options/optchart.hrc
+++ b/cui/source/options/optchart.hrc
@@ -34,4 +34,5 @@
#define CT_COLOR_BOX 4
#define PB_RESET_TO_DEFAULT 5
-
+#define PB_ADD_CHART_COLOR 6
+#define PB_REMOVE_CHART_COLOR 7
diff --git a/cui/source/options/optchart.hxx b/cui/source/options/optchart.hxx
index d3f1b38a88f4..933a72e0ab03 100644
--- a/cui/source/options/optchart.hxx
+++ b/cui/source/options/optchart.hxx
@@ -56,17 +56,21 @@ public:
class SvxDefaultColorOptPage : public SfxTabPage
{
private:
- FixedLine aGbChartColors;
- ChartColorLB aLbChartColors;
- FixedLine aGbColorBox;
- ValueSet aValSetColorBox;
- PushButton aPBDefault;
+ FixedLine aGbChartColors;
+ ChartColorLB aLbChartColors;
+ FixedLine aGbColorBox;
+ ValueSet aValSetColorBox;
+ PushButton aPBDefault;
+ PushButton aPBAdd;
+ PushButton aPBRemove;
SvxChartOptions* pChartOptions;
SvxChartColorTableItem* pColorConfig;
XColorTable* pColorTab;
DECL_LINK( ResetToDefaults, void * );
+ DECL_LINK( AddChartColor, void * );
+ DECL_LINK( RemoveChartColor, void * );
DECL_LINK( ListClickedHdl, ChartColorLB * );
DECL_LINK( BoxClickedHdl, ValueSet * );
diff --git a/cui/source/options/optchart.src b/cui/source/options/optchart.src
index af2d7444612a..0b9cf2df1cb6 100644
--- a/cui/source/options/optchart.src
+++ b/cui/source/options/optchart.src
@@ -39,7 +39,7 @@ TabPage RID_OPTPAGE_CHART_DEFCOLORS
Text [ en-US ] = "Default Colors";
FixedLine FL_CHART_COLOR_LIST
{
- Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
Size = MAP_APPFONT ( 80 , 8 ) ;
Text [ en-US ] = "Chart colors";
Text [ x-comment ] = " ";
@@ -48,7 +48,7 @@ TabPage RID_OPTPAGE_CHART_DEFCOLORS
{
HelpID = "cui:ListBox:RID_OPTPAGE_CHART_DEFCOLORS:LB_CHART_COLOR_LIST";
Border = TRUE;
- Pos = MAP_APPFONT ( 12 , 15 );
+ Pos = MAP_APPFONT ( 12 , 15 );
Size = MAP_APPFONT ( 68 , 152 );
DropDown = FALSE;
TabStop = TRUE ;
@@ -56,17 +56,31 @@ TabPage RID_OPTPAGE_CHART_DEFCOLORS
FixedLine FL_COLOR_BOX
{
Pos = MAP_APPFONT ( 92 , 3 ) ;
- Size = MAP_APPFONT ( 106 , 8 ) ;
- Text [ en-US ] = "Color table" ;
+ Size = MAP_APPFONT ( 106 , 8 ) ;
+ Text [ en-US ] = "Color table" ;
Text [ x-comment ] = " ";
};
Control CT_COLOR_BOX
{
Border = TRUE;
- Pos = MAP_APPFONT ( 98 , 15 );
+ Pos = MAP_APPFONT ( 98 , 15 );
Size = MAP_APPFONT ( 94 , 152 );
TabStop = TRUE ;
};
+ PushButton PB_ADD_CHART_COLOR
+ {
+ Pos = MAP_APPFONT ( 204 , 15 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text [ en-US ] = "~Add";
+ Text [ x-comment ] = " ";
+ };
+ PushButton PB_REMOVE_CHART_COLOR
+ {
+ Pos = MAP_APPFONT ( 204 , 32 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text [ en-US ] = "~Remove";
+ Text [ x-comment ] = " ";
+ };
PushButton PB_RESET_TO_DEFAULT
{
HelpID = "cui:PushButton:RID_OPTPAGE_CHART_DEFCOLORS:PB_RESET_TO_DEFAULT";