xref: /aoo42x/main/svx/source/xoutdev/xtabcolr.cxx (revision 28806869)
1f6e50924SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3f6e50924SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4f6e50924SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5f6e50924SAndrew Rist  * distributed with this work for additional information
6f6e50924SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7f6e50924SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8f6e50924SAndrew Rist  * "License"); you may not use this file except in compliance
9f6e50924SAndrew Rist  * with the License.  You may obtain a copy of the License at
10f6e50924SAndrew Rist  *
11f6e50924SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12f6e50924SAndrew Rist  *
13f6e50924SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14f6e50924SAndrew Rist  * software distributed under the License is distributed on an
15f6e50924SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16f6e50924SAndrew Rist  * KIND, either express or implied.  See the License for the
17f6e50924SAndrew Rist  * specific language governing permissions and limitations
18f6e50924SAndrew Rist  * under the License.
19f6e50924SAndrew Rist  *
20f6e50924SAndrew Rist  *************************************************************/
21f6e50924SAndrew Rist 
22cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
23cdf0e10cSrcweir #include "precompiled_svx.hxx"
24cdf0e10cSrcweir 
25cdf0e10cSrcweir #include <com/sun/star/container/XNameContainer.hpp>
26cdf0e10cSrcweir #include "svx/XPropertyTable.hxx"
27cdf0e10cSrcweir #include <unotools/ucbstreamhelper.hxx>
28cdf0e10cSrcweir #include <unotools/pathoptions.hxx>
29cdf0e10cSrcweir #include "xmlxtexp.hxx"
30cdf0e10cSrcweir #include "xmlxtimp.hxx"
31cdf0e10cSrcweir #include <sfx2/docfile.hxx>
32cdf0e10cSrcweir #include <tools/urlobj.hxx>
33cdf0e10cSrcweir #include <svx/dialogs.hrc>
34cdf0e10cSrcweir #include <svx/dialmgr.hxx>
35cdf0e10cSrcweir #include <svx/xtable.hxx>
36cdf0e10cSrcweir #include <svx/xpool.hxx>
37cdf0e10cSrcweir 
38cdf0e10cSrcweir #define GLOBALOVERFLOW
39cdf0e10cSrcweir 
40cdf0e10cSrcweir using namespace com::sun::star;
41cdf0e10cSrcweir 
42cdf0e10cSrcweir sal_Unicode const pszExtColor[]	 = {'s','o','c'};
43cdf0e10cSrcweir 
44cdf0e10cSrcweir static char const aChckColor[]  = { 0x04, 0x00, 'S','O','C','L'};	// < 5.2
45cdf0e10cSrcweir static char const aChckColor0[] = { 0x04, 0x00, 'S','O','C','0'};	// = 5.2
46cdf0e10cSrcweir static char const aChckXML[]    = { '<', '?', 'x', 'm', 'l' };		// = 6.0
47cdf0e10cSrcweir 
48cdf0e10cSrcweir /*************************************************************************
49cdf0e10cSrcweir |*
5097e8a929SArmin Le Grand |* XColorList::XColorList()
51cdf0e10cSrcweir |*
52cdf0e10cSrcweir *************************************************************************/
53cdf0e10cSrcweir 
54c7be74b1SArmin Le Grand static XColorListSharedPtr aStaticGlobalColorList;
5597e8a929SArmin Le Grand 
XColorList(const String & rPath)56c7be74b1SArmin Le Grand XColorList::XColorList( const String& rPath ) :
57c7be74b1SArmin Le Grand 				XPropertyList( rPath )
58cdf0e10cSrcweir {
59cdf0e10cSrcweir }
60cdf0e10cSrcweir 
61cdf0e10cSrcweir /************************************************************************/
62cdf0e10cSrcweir 
~XColorList()6397e8a929SArmin Le Grand XColorList::~XColorList()
64cdf0e10cSrcweir {
65cdf0e10cSrcweir }
66cdf0e10cSrcweir 
67cdf0e10cSrcweir /************************************************************************/
68cdf0e10cSrcweir 
Replace(XColorEntry * pEntry,long nIndex)6997e8a929SArmin Le Grand XColorEntry* XColorList::Replace(XColorEntry* pEntry, long nIndex )
70cdf0e10cSrcweir {
7197e8a929SArmin Le Grand 	return (XColorEntry*) XPropertyList::Replace(pEntry, nIndex);
72cdf0e10cSrcweir }
73cdf0e10cSrcweir 
74cdf0e10cSrcweir /************************************************************************/
75cdf0e10cSrcweir 
Remove(long nIndex)7697e8a929SArmin Le Grand XColorEntry* XColorList::Remove(long nIndex)
77cdf0e10cSrcweir {
78c7be74b1SArmin Le Grand 	return (XColorEntry*) XPropertyList::Remove(nIndex);
79cdf0e10cSrcweir }
80cdf0e10cSrcweir 
81cdf0e10cSrcweir /************************************************************************/
82cdf0e10cSrcweir 
GetColor(long nIndex) const8397e8a929SArmin Le Grand XColorEntry* XColorList::GetColor(long nIndex) const
84cdf0e10cSrcweir {
85c7be74b1SArmin Le Grand 	return (XColorEntry*) XPropertyList::Get(nIndex);
86cdf0e10cSrcweir }
87cdf0e10cSrcweir 
88cdf0e10cSrcweir /************************************************************************/
89cdf0e10cSrcweir 
Load()903e407bd8SArmin Le Grand bool XColorList::Load()
91cdf0e10cSrcweir {
9297e8a929SArmin Le Grand 	if( mbListDirty )
93cdf0e10cSrcweir 	{
9497e8a929SArmin Le Grand 		mbListDirty = false;
95cdf0e10cSrcweir 
9697e8a929SArmin Le Grand 		INetURLObject aURL( maPath );
97cdf0e10cSrcweir 
98cdf0e10cSrcweir 		if( INET_PROT_NOT_VALID == aURL.GetProtocol() )
99cdf0e10cSrcweir 		{
10035726d9dSArmin Le Grand 			OSL_ENSURE( !maPath.Len(), "invalid URL" );
1013e407bd8SArmin Le Grand 			return false;
102cdf0e10cSrcweir 		}
103cdf0e10cSrcweir 
10497e8a929SArmin Le Grand 		aURL.Append( maName );
105cdf0e10cSrcweir 
106cdf0e10cSrcweir 		if( !aURL.getExtension().getLength() )
107cdf0e10cSrcweir 			aURL.setExtension( rtl::OUString( pszExtColor, 3 ) );
108cdf0e10cSrcweir 
109cdf0e10cSrcweir 		uno::Reference< container::XNameContainer > xTable( SvxUnoXColorTable_createInstance( this ), uno::UNO_QUERY );
110cdf0e10cSrcweir 		return SvxXMLXTableImport::load( aURL.GetMainURL( INetURLObject::NO_DECODE ), xTable );
111cdf0e10cSrcweir 	}
1123e407bd8SArmin Le Grand 
1133e407bd8SArmin Le Grand 	return false;
114cdf0e10cSrcweir }
115cdf0e10cSrcweir 
116cdf0e10cSrcweir /************************************************************************/
117cdf0e10cSrcweir 
Save()1183e407bd8SArmin Le Grand bool XColorList::Save()
119cdf0e10cSrcweir {
12097e8a929SArmin Le Grand 	INetURLObject aURL( maPath );
121cdf0e10cSrcweir 
122cdf0e10cSrcweir 	if( INET_PROT_NOT_VALID == aURL.GetProtocol() )
123cdf0e10cSrcweir 	{
12435726d9dSArmin Le Grand 		OSL_ENSURE( !maPath.Len(), "invalid URL" );
1253e407bd8SArmin Le Grand 		return false;
126cdf0e10cSrcweir 	}
127cdf0e10cSrcweir 
12897e8a929SArmin Le Grand 	aURL.Append( maName );
129cdf0e10cSrcweir 
130cdf0e10cSrcweir 	if( !aURL.getExtension().getLength() )
131cdf0e10cSrcweir 		aURL.setExtension( rtl::OUString( pszExtColor, 3 ) );
132cdf0e10cSrcweir 
133cdf0e10cSrcweir 	uno::Reference< container::XNameContainer > xTable( SvxUnoXColorTable_createInstance( this ), uno::UNO_QUERY );
134cdf0e10cSrcweir 	return SvxXMLXTableExportComponent::save( aURL.GetMainURL( INetURLObject::NO_DECODE ), xTable );
135cdf0e10cSrcweir }
136cdf0e10cSrcweir 
137cdf0e10cSrcweir /************************************************************************/
138cdf0e10cSrcweir 
Create()1393e407bd8SArmin Le Grand bool XColorList::Create()
140cdf0e10cSrcweir {
141*28806869SArmin Le Grand     sal_uInt32 a(0);
142*28806869SArmin Le Grand     sal_uInt32 b(0);
143*28806869SArmin Le Grand 
144*28806869SArmin Le Grand     // <!-- Gray palette from white to black -->
145*28806869SArmin Le Grand     XubString aStrGrey( SVX_RESSTR( RID_SVXSTR_COLOR_GREY ) );
146*28806869SArmin Le Grand 
147*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0xff, 0xff, 0xff ), SVX_RESSTR( RID_SVXSTR_COLOR_WHITE ) ) );
148*28806869SArmin Le Grand     aStrGrey.AppendAscii(" 1"); Insert( new XColorEntry( Color( 0xee, 0xee, 0xee ), aStrGrey ) );
149*28806869SArmin Le Grand     aStrGrey.SetChar(aStrGrey.Len() - 1, sal_Unicode('2')); Insert( new XColorEntry( Color( 0xdd, 0xdd, 0xdd ), aStrGrey ) );
150*28806869SArmin Le Grand     aStrGrey.SetChar(aStrGrey.Len() - 1, sal_Unicode('3')); Insert( new XColorEntry( Color( 0xcc, 0xcc, 0xcc ), aStrGrey ) );
151*28806869SArmin Le Grand     aStrGrey.SetChar(aStrGrey.Len() - 1, sal_Unicode('4')); Insert( new XColorEntry( Color( 0xb2, 0xb2, 0xb2 ), aStrGrey ) );
152*28806869SArmin Le Grand     aStrGrey.SetChar(aStrGrey.Len() - 1, sal_Unicode('5')); Insert( new XColorEntry( Color( 0x99, 0x99, 0x99 ), aStrGrey ) );
153*28806869SArmin Le Grand     aStrGrey.SetChar(aStrGrey.Len() - 1, sal_Unicode('6')); Insert( new XColorEntry( Color( 0x80, 0x80, 0x80 ), aStrGrey ) );
154*28806869SArmin Le Grand     aStrGrey.SetChar(aStrGrey.Len() - 1, sal_Unicode('7')); Insert( new XColorEntry( Color( 0x66, 0x66, 0x66 ), aStrGrey ) );
155*28806869SArmin Le Grand     aStrGrey.SetChar(aStrGrey.Len() - 1, sal_Unicode('8')); Insert( new XColorEntry( Color( 0x33, 0x33, 0x33 ), aStrGrey ) );
156*28806869SArmin Le Grand     aStrGrey.SetChar(aStrGrey.Len() - 1, sal_Unicode('9')); Insert( new XColorEntry( Color( 0x1c, 0x1c, 0x1c  ), aStrGrey ) );
157*28806869SArmin Le Grand     aStrGrey.SetChar(aStrGrey.Len() - 1, sal_Unicode('1')); aStrGrey.AppendAscii("0"); Insert( new XColorEntry( Color( 0x11, 0x11, 0x11 ), aStrGrey ) );
158*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0x00, 0x00, 0x00 ), SVX_RESSTR( RID_SVXSTR_COLOR_BLACK ) ) );
159*28806869SArmin Le Grand 
160*28806869SArmin Le Grand     // <!-- Base colors step 0 to 10 -->
161*28806869SArmin Le Grand     const sal_uInt32 nNumColorsInGroup(12);
162*28806869SArmin Le Grand     const sal_uInt32 nNumGroups(11);
163*28806869SArmin Le Grand     XubString aStrCol[nNumColorsInGroup];
164*28806869SArmin Le Grand     const sal_uInt32 aStdCol[nNumColorsInGroup * nNumGroups] = {
165*28806869SArmin Le Grand         0xffff99, 0xff6600, 0xff3333, 0xff00cc, 0xff33ff, 0x9900ff, 0x6666ff, 0x00ccff, 0x66ffff, 0x33ff99, 0x99ff66, 0xccff00,
166*28806869SArmin Le Grand         0xffff66, 0xffcc00, 0xff9999, 0xff66cc, 0xff99ff, 0xcc66ff, 0x9999ff, 0x9999ff, 0x99ffff, 0x66ff99, 0x99ff99, 0xccff66,
167*28806869SArmin Le Grand         0xffff00, 0xff9900, 0xff6666, 0xff3399, 0xff66ff, 0x9933ff, 0x3333ff, 0x3399ff, 0x00ffff, 0x00ff66, 0x66ff66, 0x99ff33,
168*28806869SArmin Le Grand         0xcc9900, 0xff3300, 0xff0000, 0xff0066, 0xff00ff, 0x6600ff, 0x0000ff, 0x0066ff, 0x00cccc, 0x00cc33, 0x00cc00, 0x66ff00,
169*28806869SArmin Le Grand         0x996600, 0xcc3300, 0xcc0000, 0xcc0066, 0xcc00cc, 0x6600cc, 0x0000cc, 0x0066cc, 0x009999, 0x009933, 0x009900, 0x66cc00,
170*28806869SArmin Le Grand         0x663300, 0x801900, 0x990000, 0x990066, 0x990099, 0x330099, 0x000099, 0x006699, 0x006666, 0x007826, 0x006600, 0x669900,
171*28806869SArmin Le Grand         0x333300, 0x461900, 0x330000, 0x330033, 0x660066, 0x000033, 0x000066, 0x000080, 0x003333, 0x00331a, 0x003300, 0x193300,
172*28806869SArmin Le Grand         0x666633, 0x661900, 0x663333, 0x660033, 0x663366, 0x330066, 0x333366, 0x003366, 0x336666, 0x006633, 0x336633, 0x336600,
173*28806869SArmin Le Grand         0x999966, 0x996633, 0x996666, 0x993366, 0x996699, 0x663399, 0x666699, 0x336699, 0x669999, 0x339966, 0x669966, 0x669933,
174*28806869SArmin Le Grand         0xcccc99, 0xcc9966, 0xcc9999, 0xcc6699, 0xcc99cc, 0x9966cc, 0x9999cc, 0x6699cc, 0x99cccc, 0x66cc99, 0x99cc99, 0x99cc66,
175*28806869SArmin Le Grand         0xffffcc, 0xffcc99, 0xffcccc, 0xff99cc, 0xffccff, 0xcc99ff, 0xccccff, 0x99ccff, 0xccffff, 0x99ffcc, 0xccffcc, 0xccff99 };
176*28806869SArmin Le Grand 
177*28806869SArmin Le Grand     for(a = 0; a < nNumGroups; a++)
178*28806869SArmin Le Grand     {
179*28806869SArmin Le Grand         switch(a)
180*28806869SArmin Le Grand         {
181*28806869SArmin Le Grand             case 0:
182*28806869SArmin Le Grand             {
183*28806869SArmin Le Grand                 aStrCol[0] = SVX_RESSTR(RID_SVXSTR_COLOR_YELLOW);
184*28806869SArmin Le Grand                 aStrCol[1] = SVX_RESSTR(RID_SVXSTR_COLOR_ORANGE);
185*28806869SArmin Le Grand                 aStrCol[2] = SVX_RESSTR(RID_SVXSTR_COLOR_RED);
186*28806869SArmin Le Grand                 aStrCol[3] = SVX_RESSTR(RID_SVXSTR_COLOR_PINK);
187*28806869SArmin Le Grand                 aStrCol[4] = SVX_RESSTR(RID_SVXSTR_COLOR_MAGENTA);
188*28806869SArmin Le Grand                 aStrCol[5] = SVX_RESSTR(RID_SVXSTR_COLOR_PURPLE);
189*28806869SArmin Le Grand                 aStrCol[6] = SVX_RESSTR(RID_SVXSTR_COLOR_BLUE);
190*28806869SArmin Le Grand                 aStrCol[7] = SVX_RESSTR(RID_SVXSTR_COLOR_SKYBLUE);
191*28806869SArmin Le Grand                 aStrCol[8] = SVX_RESSTR(RID_SVXSTR_COLOR_CYAN);
192*28806869SArmin Le Grand                 aStrCol[9] = SVX_RESSTR(RID_SVXSTR_COLOR_TURQUOISE);
193*28806869SArmin Le Grand                 aStrCol[10] = SVX_RESSTR(RID_SVXSTR_COLOR_GREEN);
194*28806869SArmin Le Grand                 aStrCol[11] = SVX_RESSTR(RID_SVXSTR_COLOR_YELLOWGREEN);
195*28806869SArmin Le Grand                 break;
196*28806869SArmin Le Grand             }
197*28806869SArmin Le Grand             case 1:
198*28806869SArmin Le Grand             {
199*28806869SArmin Le Grand                 for(b = 0; b < nNumColorsInGroup; b++)
200*28806869SArmin Le Grand                 {
201*28806869SArmin Le Grand                     aStrCol[b].AppendAscii(" 1");
202*28806869SArmin Le Grand                 }
203*28806869SArmin Le Grand                 break;
204*28806869SArmin Le Grand             }
205*28806869SArmin Le Grand             case 10:
206*28806869SArmin Le Grand             {
207*28806869SArmin Le Grand                 for(b = 0; b < nNumColorsInGroup; b++)
208*28806869SArmin Le Grand                 {
209*28806869SArmin Le Grand                     aStrCol[b].SetChar(aStrCol[b].Len() - 1, sal_Unicode('1'));
210*28806869SArmin Le Grand                     aStrCol[b].AppendAscii("0");
211*28806869SArmin Le Grand                 }
212*28806869SArmin Le Grand                 break;
213*28806869SArmin Le Grand             }
214*28806869SArmin Le Grand             default: // 2 .. 9, 11
215*28806869SArmin Le Grand             {
216*28806869SArmin Le Grand                 for(b = 0; b < nNumColorsInGroup; b++)
217*28806869SArmin Le Grand                 {
218*28806869SArmin Le Grand                     aStrCol[b].SetChar(aStrCol[b].Len() - 1, sal_Unicode('0') + sal_Unicode(a % 10));
219*28806869SArmin Le Grand                 }
220*28806869SArmin Le Grand                 break;
221*28806869SArmin Le Grand             }
222*28806869SArmin Le Grand         }
223*28806869SArmin Le Grand 
224*28806869SArmin Le Grand         const sal_uInt32 nOffset(a * nNumColorsInGroup);
225*28806869SArmin Le Grand 
226*28806869SArmin Le Grand         for(b = 0; b < nNumColorsInGroup; b++)
227*28806869SArmin Le Grand         {
228*28806869SArmin Le Grand             Insert( new XColorEntry( aStdCol[nOffset + b], aStrCol[b] ) );
229*28806869SArmin Le Grand         }
230*28806869SArmin Le Grand     }
231cdf0e10cSrcweir 
232*28806869SArmin Le Grand     // <!-- use some 'nice' colors from original palette -->
233*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0xe6, 0xe6, 0xff ), SVX_RESSTR( RID_SVXSTR_COLOR_BLUEGREY) ) );
234*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0xCF, 0xE7, 0xF5  ), SVX_RESSTR( RID_SVXSTR_COLOR_BLUE_CLASSIC ) ) );
235*28806869SArmin Le Grand 
236*28806869SArmin Le Grand     // <!-- add 'pale' colors from original palette -->
237*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0x99, 0x99, 0xff ), SVX_RESSTR( RID_SVXSTR_COLOR_VIOLET ) ) );
238*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0x99, 0x33, 0x66 ), SVX_RESSTR( RID_SVXSTR_COLOR_BORDEAUX ) ) );
239*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0xff, 0xff, 0xcc ), SVX_RESSTR( RID_SVXSTR_COLOR_PALE_YELLOW ) ) );
240*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0xcc, 0xff, 0xff ), SVX_RESSTR( RID_SVXSTR_COLOR_PALE_GREEN ) ) );
241*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0x66, 0x00, 0x66 ), SVX_RESSTR( RID_SVXSTR_COLOR_DARKVIOLET ) ) );
242*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0xff, 0x80, 0x80 ), SVX_RESSTR( RID_SVXSTR_COLOR_SALMON ) ) );
243*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0x00, 0x66, 0xcc ), SVX_RESSTR( RID_SVXSTR_COLOR_SEABLUE ) ) );
244*28806869SArmin Le Grand 
245*28806869SArmin Le Grand     // <!-- add Chart colors from original palette (also 12, coincidence?) -->
246*28806869SArmin Le Grand     XubString aStrChart( SVX_RESSTR( RID_SVXSTR_COLOR_CHART ) );
247*28806869SArmin Le Grand     aStrChart.AppendAscii(" 1");
248*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0x00, 0x45, 0x86 ), aStrChart ) );
249*28806869SArmin Le Grand     aStrChart.SetChar(aStrChart.Len() - 1, sal_Unicode('2'));
250*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0xff, 0x42, 0x0e ), aStrChart ) );
251*28806869SArmin Le Grand     aStrChart.SetChar(aStrChart.Len() - 1, sal_Unicode('3'));
252*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0xff, 0xd3, 0x20 ), aStrChart ) );
253*28806869SArmin Le Grand     aStrChart.SetChar(aStrChart.Len() - 1, sal_Unicode('4'));
254*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0x57, 0x9d, 0x1c ), aStrChart ) );
255*28806869SArmin Le Grand     aStrChart.SetChar(aStrChart.Len() - 1, sal_Unicode('5'));
256*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0x7e, 0x00, 0x21 ), aStrChart ) );
257*28806869SArmin Le Grand     aStrChart.SetChar(aStrChart.Len() - 1, sal_Unicode('6'));
258*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0x83, 0xca, 0xff ), aStrChart ) );
259*28806869SArmin Le Grand     aStrChart.SetChar(aStrChart.Len() - 1, sal_Unicode('7'));
260*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0x31, 0x40, 0x04 ), aStrChart ) );
261*28806869SArmin Le Grand     aStrChart.SetChar(aStrChart.Len() - 1, sal_Unicode('8'));
262*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0xae, 0xcf, 0x00 ), aStrChart ) );
263*28806869SArmin Le Grand     aStrChart.SetChar(aStrChart.Len() - 1, sal_Unicode('9'));
264*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0x4b, 0x1f, 0x6f ), aStrChart ) );
265*28806869SArmin Le Grand     aStrChart.SetChar(aStrChart.Len() - 1, sal_Unicode('1'));
266*28806869SArmin Le Grand     aStrChart.AppendAscii("0");
267*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0xff, 0x95, 0x0e ), aStrChart ) );
268*28806869SArmin Le Grand     aStrChart.SetChar(aStrChart.Len() - 1, sal_Unicode('1'));
269*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0xc5, 0x00, 0x0b ), aStrChart ) );
270*28806869SArmin Le Grand     aStrChart.SetChar(aStrChart.Len() - 1, sal_Unicode('2'));
271*28806869SArmin Le Grand     Insert( new XColorEntry( Color( 0x00, 0x84, 0xd1 ), aStrChart ) );
272*28806869SArmin Le Grand 
273*28806869SArmin Le Grand     return(165 == Count());
274cdf0e10cSrcweir }
275cdf0e10cSrcweir 
276cdf0e10cSrcweir /************************************************************************/
277cdf0e10cSrcweir 
CreateBitmapForUI(long)27897e8a929SArmin Le Grand Bitmap XColorList::CreateBitmapForUI( long /*nIndex*/ )
279cdf0e10cSrcweir {
28097e8a929SArmin Le Grand 	return Bitmap();
281cdf0e10cSrcweir }
282cdf0e10cSrcweir 
283cdf0e10cSrcweir /************************************************************************/
284cdf0e10cSrcweir 
GetStdColorList()285c7be74b1SArmin Le Grand XColorListSharedPtr XColorList::GetStdColorList()
286cdf0e10cSrcweir {
287c7be74b1SArmin Le Grand     if ( !aStaticGlobalColorList.get() )
288c7be74b1SArmin Le Grand     {
289c7be74b1SArmin Le Grand         aStaticGlobalColorList = XPropertyListFactory::CreateSharedXColorList(SvtPathOptions().GetPalettePath());
290c7be74b1SArmin Le Grand     }
291c7be74b1SArmin Le Grand 
292c7be74b1SArmin Le Grand     return aStaticGlobalColorList;
293cdf0e10cSrcweir }
294cdf0e10cSrcweir 
295cdf0e10cSrcweir // eof
296