diff options
author | Release Engineers <releng@openoffice.org> | 2009-05-06 10:59:57 +0000 |
---|---|---|
committer | Release Engineers <releng@openoffice.org> | 2009-05-06 10:59:57 +0000 |
commit | 4d3148e0b7ee607de9c86e9e9aa79e9cd423f1f1 (patch) | |
tree | 5c5025d215f13e88b0ab36d10e91b6c064bce7a9 /svx/source/cui/cfgchart.cxx | |
parent | 924c156e4a9333ac972a91d185380220860cc91b (diff) |
CWS-TOOLING: integrate CWS mba32issues01
2009-05-05 18:23:27 +0200 mba r271547 : apply diffs from m45->m47 for all files moved from dialog to cui
2009-05-05 18:22:02 +0200 mba r271545 : apply diffs from m45->m47 for all files moved from dialog to cui
2009-05-05 18:16:42 +0200 mba r271544 : apply diffs from m45->m47 for all files moved from dialog to cui
2009-04-29 19:35:58 +0200 mba r271392 : #i73672#: unify commands for inserting special characters
2009-04-29 18:01:27 +0200 mba r271391 : #i101337#: missing string resources
2009-04-29 18:01:10 +0200 mba r271390 : #i101337#: missing string resources
2009-04-29 15:42:47 +0200 mba r271380 : concurrency problem in multithreaded dmake due to missing dependency
2009-04-28 17:36:03 +0200 tbo r271336 : #i99432#
2009-04-28 13:57:52 +0200 mba r271322 : #i101302#: ctor might be called with pSet=0
2009-04-22 19:32:39 +0200 tbo r271138 : #i99432#
2009-04-09 14:46:03 +0200 mba r270709 : make sendreportw32.cxx compile with pch
2009-04-06 16:05:07 +0200 mba r270568 : #i99432#: some tweaks for build order
2009-04-06 15:38:52 +0200 mba r270558 : typo
2009-04-06 13:36:19 +0200 mba r270542 : #i99432#: split of localization also
2009-04-06 13:19:06 +0200 mba r270539 : #i99432#: split up srs files also
2009-04-03 17:57:59 +0200 mba r270513 : #i99432#: split dialog folder into two
2009-04-03 17:56:46 +0200 mba r270512 : #i99432#: split dialog folder into two
2009-04-01 22:15:00 +0200 mba r270364 : warnings on Linux
2009-04-01 22:10:44 +0200 mba r270363 : warnings on Linux
2009-04-01 21:43:54 +0200 mba r270362 : warning fixed
2009-04-01 21:41:27 +0200 mba r270361 : warning on Linux fixed
2009-04-01 21:35:44 +0200 mba r270360 : warning fixed
2009-04-01 20:19:59 +0200 mba r270358 : warning found on Linux fixed
2009-04-01 19:23:38 +0200 mba r270354 : warning due to missing eof
2009-04-01 18:56:25 +0200 mba r270352 : linking problem fixed that appeared only on mac
2009-04-01 18:41:30 +0200 mba r270350 : warnings discovered on Linux fixed
2009-04-01 18:34:28 +0200 mba r270349 : some fixes for warnings and include problems discoverd after resync and build on mac
2009-04-01 14:08:22 +0200 mba r270328 : CWS-TOOLING: rebase CWS mba32issues01 to trunk@270033 (milestone: DEV300:m45)
2009-03-04 18:13:35 +0100 mba r268858 : #i99432#: more dialogs moved to cui
2009-03-04 17:47:41 +0100 mba r268854 : #i99432#: more dialogs moved to cui
2009-03-04 17:32:39 +0100 mba r268851 : warning fixed
2009-03-04 12:59:26 +0100 mba r268814 : #i99432#: more dialogs moved to cui
2009-03-04 11:49:03 +0100 mba r268802 : #i99432#: CharmapDialog moved to cui
2009-03-04 10:46:00 +0100 mba r268795 : #i99432#: CharmapDialog moved to cui
2009-03-04 10:43:50 +0100 mba r268794 : #i99432#: CharmapDialog moved to cui
2009-03-04 10:00:29 +0100 mba r268792 : #i99432#: CharmapDialog moved to cui
2009-03-04 10:00:03 +0100 mba r268791 : #i99432#: CharmapDialog moved to cui
2009-03-04 09:59:43 +0100 mba r268790 : #i99432#: CharmapDialog moved to cui
2009-03-04 09:58:51 +0100 mba r268789 : #i99432#: CharmapDialog moved to cui
2009-03-04 09:58:16 +0100 mba r268788 : #i99432#: CharmapDialog moved to cui
2009-03-03 16:33:14 +0100 mba r268763 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:32:28 +0100 mba r268762 : #i99432#: some tabpages moved to cui
2009-03-03 16:32:09 +0100 mba r268761 : #i99432#: some tabpages moved to cui
2009-03-03 16:29:40 +0100 mba r268760 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:29:08 +0100 mba r268759 : #i99432#: MacroAssignment page moved to cui
2009-03-03 16:28:41 +0100 mba r268758 : #i99432#: MacroAssignment page moved to cui
2009-03-03 16:28:18 +0100 mba r268757 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:27:36 +0100 mba r268756 : #i99465#: replace FN_SYMBOL by SID_CHARMAP
2009-03-03 16:27:02 +0100 mba r268755 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:26:23 +0100 mba r268754 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:25:30 +0100 mba r268753 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:24:49 +0100 mba r268752 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:24:35 +0100 mba r268751 : #i99432#: MacroAssignment page moved to cui
2009-03-03 16:23:20 +0100 mba r268750 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:23:04 +0100 mba r268749 : #i99432#: MacroAssignment page moved to cui
2009-03-03 16:21:56 +0100 mba r268748 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:18:39 +0100 mba r268747 : #i99432#: MacroAssignment page moved to cui
2009-03-03 16:13:14 +0100 mba r268745 : #i99465#: replace FN_SYMBOL by SID_CHARMAP
2009-03-03 16:02:54 +0100 mba r268738 : #i99432#: moved MacroAssignment TabPage from sfx2
2009-03-03 14:57:58 +0100 mba r268729 : #i99465#: transport return value via ItemSet
2009-03-03 00:08:10 +0100 mba r268701 : #i99432#: move acccfg to cuilib
2009-03-03 00:07:32 +0100 mba r268700 : #i99432#: move acccfg to cuilib
2009-03-03 00:02:01 +0100 mba r268699 : #i99432#: move acccfg to cuilib
2009-03-03 00:01:38 +0100 mba r268698 : #i99432#: move acccfg to cuilib
2009-03-03 00:01:11 +0100 mba r268697 : #i99432#: move acccfg to cuilib
2009-03-03 00:00:40 +0100 mba r268696 : #i99432#: move acccfg to cuilib
2009-03-03 00:00:06 +0100 mba r268695 : #i99432#: replace SfxAbstractSingleTabDialog by SfxAbstractDialog
2009-03-02 23:59:22 +0100 mba r268694 : #i99432#: move acccfg to cuilib
2009-03-02 23:57:19 +0100 mba r268693 : #i99432#: move acccfg to svx
2009-03-02 23:56:14 +0100 mba r268692 : #i99432#: replace SfxAbstractSingleTabDialog by SfxAbstractDialog
2009-03-02 23:49:37 +0100 mba r268691 : #i99785#: consolidate dialogs library
2009-03-02 17:26:40 +0100 mba r268683 : #i99785#: consolidate dialogs library
2009-03-02 17:24:28 +0100 mba r268682 : i99465#: consolidate slot for InsertSymbol command
2009-03-02 17:22:29 +0100 mba r268681 : #i99785#: consolidate dialogs library
2009-03-02 17:18:11 +0100 mba r268680 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 17:08:30 +0100 mba r268679 : #i99785#: consolidate dialogs library
2009-03-02 17:06:57 +0100 mba r268678 : #i99785#: consolidate dialogs library
2009-03-02 17:06:30 +0100 mba r268677 : #i99785#: consolidate dialogs library
2009-03-02 17:05:02 +0100 mba r268676 : #i99785#: consolidate dialogs library
2009-03-02 17:04:35 +0100 mba r268675 : #i99785#: consolidate dialogs library
2009-03-02 16:47:53 +0100 mba r268673 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:45:17 +0100 mba r268671 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:39:59 +0100 mba r268670 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:38:59 +0100 mba r268668 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:38:28 +0100 mba r268667 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:36:06 +0100 mba r268666 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:29:50 +0100 mba r268663 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:24:00 +0100 mba r268659 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:23:31 +0100 mba r268658 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:22:41 +0100 mba r268657 : i99432#: move accelconfig and macroassignment to cui
2009-02-25 16:57:26 +0100 mba r268453 : obsolete
2009-02-17 10:50:51 +0100 mba r267846 : obsolete
2009-02-12 16:33:54 +0100 mba r267676 : #i96834#: warning fixed
2009-02-11 19:28:47 +0100 mba r267626 : #i91978#: unused code
2009-02-11 18:37:47 +0100 mba r267625 : metafile output, fixes for 3 layer office
2009-02-11 12:56:28 +0100 mba r267593 : selective trees; incomplete build lists; metafile output
Diffstat (limited to 'svx/source/cui/cfgchart.cxx')
-rw-r--r-- | svx/source/cui/cfgchart.cxx | 327 |
1 files changed, 327 insertions, 0 deletions
diff --git a/svx/source/cui/cfgchart.cxx b/svx/source/cui/cfgchart.cxx new file mode 100644 index 000000000000..344bca7fbd10 --- /dev/null +++ b/svx/source/cui/cfgchart.cxx @@ -0,0 +1,327 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: cfgchart.cxx,v $ + * $Revision: 1.4 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_svx.hxx" + +#ifdef SVX_DLLIMPLEMENTATION +#undef SVX_DLLIMPLEMENTATION +#endif +#include <com/sun/star/uno/Sequence.hxx> +// header for SvStream +#include <tools/stream.hxx> +// header for SAL_STATIC_CAST +#include <sal/types.h> + +#include "cfgchart.hxx" +#include <svx/dialmgr.hxx> +#include <svx/dialogs.hrc> + +#define ROW_COLOR_COUNT 12 + +using namespace com::sun::star; + +TYPEINIT1( SvxChartColorTableItem, SfxPoolItem ); + +SvxChartColorTable::SvxChartColorTable() +{} + +SvxChartColorTable::SvxChartColorTable( const SvxChartColorTable & _rSource ) : + m_aColorEntries( _rSource.m_aColorEntries ) +{} + +// accessors +size_t SvxChartColorTable::size() const +{ + return m_aColorEntries.size(); +} + +const XColorEntry & SvxChartColorTable::operator[]( size_t _nIndex ) const +{ + if ( _nIndex >= m_aColorEntries.size() ) + { + DBG_ERRORFILE( "SvxChartColorTable::[] invalid index" ); + return m_aColorEntries[ 0 ]; + } + + return m_aColorEntries[ _nIndex ]; +} + +ColorData SvxChartColorTable::getColorData( size_t _nIndex ) const +{ + if ( _nIndex >= m_aColorEntries.size() ) + { + DBG_ERRORFILE( "SvxChartColorTable::getColorData invalid index" ); + return COL_BLACK; + } + + // GetColor should be const but unfortunately isn't + return const_cast< XColorEntry & >( m_aColorEntries[ _nIndex ] ).GetColor().GetRGBColor(); +} + +// mutators +void SvxChartColorTable::clear() +{ + m_aColorEntries.clear(); +} + +void SvxChartColorTable::append( const XColorEntry & _rEntry ) +{ + m_aColorEntries.push_back( _rEntry ); +} + +void SvxChartColorTable::replace( size_t _nIndex, const XColorEntry & _rEntry ) +{ + DBG_ASSERT( _nIndex <= m_aColorEntries.size(), + "SvxChartColorTable::replace invalid index" ); + + Color aCol1 = m_aColorEntries[ _nIndex ].GetColor(), aCol2; + m_aColorEntries[ _nIndex ] = _rEntry; + aCol2 = m_aColorEntries[ _nIndex ].GetColor(); + if ( aCol2 != const_cast< XColorEntry& >( _rEntry ).GetColor() ) + { + DBG_ERRORFILE( "wrong color" ); + } +} + +void SvxChartColorTable::useDefault() +{ + ColorData aColors[] = { + RGB_COLORDATA( 0x00, 0x45, 0x86 ), + RGB_COLORDATA( 0xff, 0x42, 0x0e ), + RGB_COLORDATA( 0xff, 0xd3, 0x20 ), + RGB_COLORDATA( 0x57, 0x9d, 0x1c ), + RGB_COLORDATA( 0x7e, 0x00, 0x21 ), + RGB_COLORDATA( 0x83, 0xca, 0xff ), + RGB_COLORDATA( 0x31, 0x40, 0x04 ), + RGB_COLORDATA( 0xae, 0xcf, 0x00 ), + RGB_COLORDATA( 0x4b, 0x1f, 0x6f ), + RGB_COLORDATA( 0xff, 0x95, 0x0e ), + RGB_COLORDATA( 0xc5, 0x00, 0x0b ), + RGB_COLORDATA( 0x00, 0x84, 0xd1 ) + }; + + clear(); + + String aResName( SVX_RES( RID_SVXSTR_DIAGRAM_ROW ) ); + String aPrefix, aPostfix, aName; + xub_StrLen nPos = aResName.SearchAscii( "$(ROW)" ); + if( nPos != STRING_NOTFOUND ) + { + aPrefix = String( aResName, 0, nPos ); + aPostfix = String( aResName, nPos + sizeof( "$(ROW)" ) - 1, STRING_LEN ); + } + else + aPrefix = aResName; + + for( sal_Int32 i=0; i<ROW_COLOR_COUNT; i++ ) + { + aName = aPrefix; + aName.Append( String::CreateFromInt32( i + 1 )); + aName.Append( aPostfix ); + + append( XColorEntry( aColors[ i % sizeof( aColors ) ], aName )); + } +} + +// comparison +bool SvxChartColorTable::operator==( const SvxChartColorTable & _rOther ) const +{ + // note: XColorEntry has no operator == + bool bEqual = ( this->m_aColorEntries.size() == _rOther.m_aColorEntries.size() ); + + if( bEqual ) + { + for( size_t i = 0; i < m_aColorEntries.size(); ++i ) + { + if( getColorData( i ) != _rOther.getColorData( i )) + { + bEqual = false; + break; + } + } + } + + return bEqual; +} + +// ==================== +// class SvxChartOptions +// ==================== + +SvxChartOptions::SvxChartOptions() : + ::utl::ConfigItem( rtl::OUString::createFromAscii( "Office.Chart" )), + mbIsInitialized( FALSE ) +{ + maPropertyNames.realloc( 1 ); + maPropertyNames[ 0 ] = ::rtl::OUString::createFromAscii( "DefaultColor/Series" ); +} + +SvxChartOptions::~SvxChartOptions() +{ +} + +const SvxChartColorTable& SvxChartOptions::GetDefaultColors() +{ + if ( !mbIsInitialized ) + mbIsInitialized = RetrieveOptions(); + return maDefColors; +} + +void SvxChartOptions::SetDefaultColors( const SvxChartColorTable& aCol ) +{ + maDefColors = aCol; + SetModified(); +} + +BOOL SvxChartOptions::RetrieveOptions() +{ + // get sequence containing all properties + + uno::Sequence< ::rtl::OUString > aNames = GetPropertyNames(); + uno::Sequence< uno::Any > aProperties( aNames.getLength()); + aProperties = GetProperties( aNames ); + + if( aProperties.getLength() == aNames.getLength()) + { + // 1. default colors for series + maDefColors.clear(); + uno::Sequence< sal_Int64 > aColorSeq; + aProperties[ 0 ] >>= aColorSeq; + + sal_Int32 nCount = aColorSeq.getLength(); + Color aCol; + + // create strings for entry names + String aResName( SVX_RES( RID_SVXSTR_DIAGRAM_ROW ) ); + String aPrefix, aPostfix, aName; + xub_StrLen nPos = aResName.SearchAscii( "$(ROW)" ); + if( nPos != STRING_NOTFOUND ) + { + aPrefix = String( aResName, 0, nPos ); + aPostfix = String( aResName, nPos + sizeof( "$(ROW)" ) - 1, STRING_LEN ); + } + else + aPrefix = aResName; + + // set color values + for( sal_Int32 i=0; i < nCount; i++ ) + { + aCol.SetColor( SAL_STATIC_CAST( ColorData, aColorSeq[ i ] )); + + aName = aPrefix; + aName.Append( String::CreateFromInt32( i + 1 )); + aName.Append( aPostfix ); + + maDefColors.append( XColorEntry( aCol, aName )); + } + return TRUE; + } + return FALSE; +} + +void SvxChartOptions::Commit() +{ + uno::Sequence< ::rtl::OUString > aNames = GetPropertyNames(); + uno::Sequence< uno::Any > aValues( aNames.getLength()); + + if( aValues.getLength() >= 1 ) + { + // 1. default colors for series + // convert list to sequence + const size_t nCount = maDefColors.size(); + uno::Sequence< sal_Int64 > aColors( nCount ); + for( size_t i=0; i < nCount; i++ ) + { + ColorData aData = maDefColors.getColorData( i ); + aColors[ i ] = aData; + } + + aValues[ 0 ] <<= aColors; + } + + PutProperties( aNames, aValues ); +} + +// -------------------- +// class SvxChartColorTableItem +// -------------------- + +SvxChartColorTableItem::SvxChartColorTableItem( USHORT nWhich_, const SvxChartColorTable& aTable ) : + SfxPoolItem( nWhich_ ), + m_aColorTable( aTable ) +{ +} + +SvxChartColorTableItem::SvxChartColorTableItem( const SvxChartColorTableItem& rOther ) : + SfxPoolItem( rOther ), + m_aColorTable( rOther.m_aColorTable ) +{ +} + +SfxPoolItem* __EXPORT SvxChartColorTableItem::Clone( SfxItemPool * ) const +{ + return new SvxChartColorTableItem( *this ); +} + +int __EXPORT SvxChartColorTableItem::operator==( const SfxPoolItem& rAttr ) const +{ + DBG_ASSERT( SfxPoolItem::operator==( rAttr ), "SvxChartColorTableItem::operator== : types differ" ); + + const SvxChartColorTableItem * rCTItem( dynamic_cast< const SvxChartColorTableItem * >( & rAttr )); + if( rCTItem ) + { + return (this->m_aColorTable == rCTItem->GetColorTable()); + } + + return 0; +} + +void __EXPORT SvxChartColorTableItem::SetOptions( SvxChartOptions* pOpts ) const +{ + if ( pOpts ) + pOpts->SetDefaultColors( m_aColorTable ); +} + + +SvxChartColorTable & SvxChartColorTableItem::GetColorTable() +{ + return m_aColorTable; +} + +const SvxChartColorTable & SvxChartColorTableItem::GetColorTable() const +{ + return m_aColorTable; +} + +void SvxChartColorTableItem::ReplaceColorByIndex( size_t _nIndex, const XColorEntry & _rEntry ) +{ + m_aColorTable.replace( _nIndex, _rEntry ); +} |