xref: /AOO41X/main/svx/source/xoutdev/xtabcolr.cxx (revision 8809db7a87f97847b57a57f4cd2b0104b2b83182)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_svx.hxx"
26 
27 #ifndef SVX_LIGHT
28 
29 #include <com/sun/star/container/XNameContainer.hpp>
30 #include "svx/XPropertyTable.hxx"
31 #include <unotools/ucbstreamhelper.hxx>
32 
33 #include <unotools/pathoptions.hxx>
34 
35 #include "xmlxtexp.hxx"
36 #include "xmlxtimp.hxx"
37 
38 #endif
39 
40 #include <sfx2/docfile.hxx>
41 #include <tools/urlobj.hxx>
42 #include <svx/dialogs.hrc>
43 #include <svx/dialmgr.hxx>
44 #include <svx/xtable.hxx>
45 #include <svx/xpool.hxx>
46 
47 #define GLOBALOVERFLOW
48 
49 using namespace com::sun::star;
50 using namespace rtl;
51 
52 sal_Unicode const pszExtColor[]  = {'s','o','c'};
53 
54 static char const aChckColor[]  = { 0x04, 0x00, 'S','O','C','L'};   // < 5.2
55 static char const aChckColor0[] = { 0x04, 0x00, 'S','O','C','0'};   // = 5.2
56 static char const aChckXML[]    = { '<', '?', 'x', 'm', 'l' };      // = 6.0
57 
58 // ------------------
59 // class XColorTable
60 // ------------------
61 
62 static XColorTable* pTable=0;
63 
64 /*************************************************************************
65 |*
66 |* XColorTable::XColorTable()
67 |*
68 *************************************************************************/
69 
70 XColorTable::XColorTable( const String& rPath,
71                             XOutdevItemPool* pInPool,
72                             sal_uInt16 nInitSize, sal_uInt16 nReSize ) :
73                 XPropertyTable( rPath, pInPool, nInitSize, nReSize)
74 {
75     // ColorTable braucht keine eigene BmpTable
76     // pBmpTable = new Table( nInitSize, nReSize );
77 }
78 
79 /************************************************************************/
80 
81 XColorTable::~XColorTable()
82 {
83 }
84 
85 XColorTable* XColorTable::GetStdColorTable()
86 {
87     if ( !pTable )
88         pTable = new XColorTable( SvtPathOptions().GetPalettePath() );
89     return pTable;
90 }
91 
92 /************************************************************************/
93 
94 XColorEntry* XColorTable::Replace(long nIndex, XColorEntry* pEntry )
95 {
96     return (XColorEntry*) XPropertyTable::Replace(nIndex, pEntry);
97 }
98 
99 /************************************************************************/
100 
101 XColorEntry* XColorTable::Remove(long nIndex)
102 {
103     return (XColorEntry*) XPropertyTable::Remove(nIndex, 0);
104 }
105 
106 /************************************************************************/
107 
108 XColorEntry* XColorTable::GetColor(long nIndex) const
109 {
110     return (XColorEntry*) XPropertyTable::Get(nIndex, 0);
111 }
112 
113 /************************************************************************/
114 
115 sal_Bool XColorTable::Load()
116 {
117     if( bTableDirty )
118     {
119         bTableDirty = sal_False;
120 
121         INetURLObject aURL( aPath );
122 
123         if( INET_PROT_NOT_VALID == aURL.GetProtocol() )
124         {
125             DBG_ASSERT( !aPath.Len(), "invalid URL" );
126             return sal_False;
127         }
128 
129         aURL.Append( aName );
130 
131         if( !aURL.getExtension().getLength() )
132             aURL.setExtension( rtl::OUString( pszExtColor, 3 ) );
133 
134         uno::Reference< container::XNameContainer > xTable( SvxUnoXColorTable_createInstance( this ), uno::UNO_QUERY );
135         return SvxXMLXTableImport::load( aURL.GetMainURL( INetURLObject::NO_DECODE ), xTable );
136     }
137     return( sal_False );
138 }
139 
140 /************************************************************************/
141 
142 sal_Bool XColorTable::Save()
143 {
144     INetURLObject aURL( aPath );
145 
146     if( INET_PROT_NOT_VALID == aURL.GetProtocol() )
147     {
148         DBG_ASSERT( !aPath.Len(), "invalid URL" );
149         return sal_False;
150     }
151 
152     aURL.Append( aName );
153 
154     if( !aURL.getExtension().getLength() )
155         aURL.setExtension( rtl::OUString( pszExtColor, 3 ) );
156 
157     uno::Reference< container::XNameContainer > xTable( SvxUnoXColorTable_createInstance( this ), uno::UNO_QUERY );
158     return SvxXMLXTableExportComponent::save( aURL.GetMainURL( INetURLObject::NO_DECODE ), xTable );
159 }
160 
161 /************************************************************************/
162 
163 sal_Bool XColorTable::Create()
164 {
165     XubString aStr;
166     xub_StrLen nLen;
167     ResMgr& rRes = DIALOG_MGR();
168 
169     static sal_uInt16 __READONLY_DATA aResId[] =
170     {
171         RID_SVXSTR_BLACK,
172         RID_SVXSTR_BLUE,
173         RID_SVXSTR_GREEN,
174         RID_SVXSTR_CYAN,
175         RID_SVXSTR_RED,
176         RID_SVXSTR_MAGENTA,
177         RID_SVXSTR_BROWN,
178         RID_SVXSTR_GREY,
179         RID_SVXSTR_LIGHTGREY,
180         RID_SVXSTR_LIGHTBLUE,
181         RID_SVXSTR_LIGHTGREEN,
182         RID_SVXSTR_LIGHTCYAN,
183         RID_SVXSTR_LIGHTRED,
184         RID_SVXSTR_LIGHTMAGENTA,
185         RID_SVXSTR_YELLOW,
186         RID_SVXSTR_WHITE
187     };
188 
189     // MT: COL_XXX ist in VCL kein enum mehr!!!
190     // COL_WHITE ist seeeehr gross! ( => Zugriff ueber das obige Array hinweg )
191     // Mit der unteren Schleife gibt es keinen Absturtz, aber es ist
192     // alles schwarz, weil alles kleine Werte.
193     // Ausserdem ist die ganze Vorgehensweise laut MM sehr unperformant
194     // => lieber gleich Stringlisten laden.
195 
196     // BM: ifndef VCL part removed (deprecated)
197 
198     static ColorData __READONLY_DATA aColTab[] =
199     {
200         COL_BLACK,
201         COL_BLUE,
202         COL_GREEN,
203         COL_CYAN,
204         COL_RED,
205         COL_MAGENTA,
206         COL_BROWN,
207         COL_GRAY,
208         COL_LIGHTGRAY,
209         COL_LIGHTBLUE,
210         COL_LIGHTGREEN,
211         COL_LIGHTCYAN,
212         COL_LIGHTRED,
213         COL_LIGHTMAGENTA,
214         COL_YELLOW,
215         COL_WHITE
216     };
217 
218     for( sal_uInt16 n = 0; n < 16; ++n )
219     {
220         Insert( n, new XColorEntry( Color( aColTab[n] ),
221                                     String( ResId( aResId[ n ], rRes )) ) );
222     }
223 
224     aStr = SVX_RESSTR( RID_SVXSTR_GREY );
225     aStr.AppendAscii(" 80%");
226     nLen = aStr.Len() - 3;
227     Insert(16, new XColorEntry( Color( 51, 51, 51 ), aStr ) );
228     aStr.SetChar(nLen, sal_Unicode('7'));
229     Insert(17, new XColorEntry( Color( 76, 76, 76 ), aStr ) );
230     aStr.SetChar(nLen, sal_Unicode('6'));
231     Insert(18, new XColorEntry( Color(102,102,102 ), aStr ) );
232     aStr.SetChar(nLen, sal_Unicode('4'));
233     Insert(19, new XColorEntry( Color(153,153,153 ), aStr ) );
234     aStr.SetChar(nLen, sal_Unicode('3'));
235     Insert(20, new XColorEntry( Color(179,179,179 ), aStr ) );
236     aStr.SetChar(nLen, sal_Unicode('2'));
237     Insert(21, new XColorEntry( Color(204,204,204 ), aStr ) );
238     // BM: new 15%
239     aStr.SetChar(nLen, sal_Unicode('1'));
240     aStr.SetChar(nLen + 1, sal_Unicode('5'));
241     Insert(22, new XColorEntry( Color(217,217,217 ), aStr ) );
242     aStr.SetChar(nLen + 1, sal_Unicode('0'));
243     Insert(23, new XColorEntry( Color(230,230,230 ), aStr ) );
244     Insert(24, new XColorEntry( Color(230,230,255 ), SVX_RESSTR( RID_SVXSTR_BLUEGREY ) ) );
245 
246     aStr = SVX_RESSTR( RID_SVXSTR_RED );
247     aStr.AppendAscii(" 1");
248     nLen = aStr.Len() - 1;
249     Insert(25, new XColorEntry( Color(255, 51,102 ), aStr ) );
250     aStr.SetChar(nLen, sal_Unicode('2'));
251     Insert(26, new XColorEntry( Color(220, 35,  0 ), aStr ) );
252     aStr.SetChar(nLen, sal_Unicode('3'));
253     Insert(27, new XColorEntry( Color(184, 71,  0 ), aStr ) );
254     aStr.SetChar(nLen, sal_Unicode('4'));
255     Insert(28, new XColorEntry( Color(255, 51, 51 ), aStr ) );
256     aStr.SetChar(nLen, sal_Unicode('5'));
257     Insert(29, new XColorEntry( Color(235, 97, 61 ), aStr ) );
258     aStr.SetChar(nLen, sal_Unicode('6'));
259     Insert(30, new XColorEntry( Color(184, 71, 71 ), aStr ) );
260     aStr.SetChar(nLen, sal_Unicode('7'));
261     Insert(31, new XColorEntry( Color(184,  0, 71 ), aStr ) );
262     aStr.SetChar(nLen, sal_Unicode('8'));
263     Insert(32, new XColorEntry( Color(153, 40, 76 ), aStr ) );
264 
265     aStr = SVX_RESSTR( RID_SVXSTR_MAGENTA );
266     aStr.AppendAscii(" 1");
267     nLen = aStr.Len() - 1;
268     Insert(33, new XColorEntry( Color(148,  0,107 ), aStr ) );
269     aStr.SetChar(nLen, sal_Unicode('2'));
270     Insert(34, new XColorEntry( Color(148, 71,107 ), aStr ) );
271     aStr.SetChar(nLen, sal_Unicode('3'));
272     Insert(35, new XColorEntry( Color(148, 71,148 ), aStr ) );
273     aStr.SetChar(nLen, sal_Unicode('4'));
274     Insert(36, new XColorEntry( Color(153,102,204 ), aStr ) );
275     aStr.SetChar(nLen, sal_Unicode('5'));
276     Insert(37, new XColorEntry( Color(107, 71,148 ), aStr ) );
277     aStr.SetChar(nLen, sal_Unicode('6'));
278     Insert(38, new XColorEntry( Color(107, 35,148 ), aStr ) );
279     aStr.SetChar(nLen, sal_Unicode('7'));
280     Insert(39, new XColorEntry( Color(107,  0,148 ), aStr ) );
281     aStr.SetChar(nLen, sal_Unicode('8'));
282     Insert(40, new XColorEntry( Color( 94, 17,166 ), aStr ) );
283 
284     aStr = SVX_RESSTR( RID_SVXSTR_BLUE );
285     aStr.AppendAscii(" 1");
286     nLen = aStr.Len() - 1;
287     Insert(41, new XColorEntry( Color( 40,  0,153 ), aStr ) );
288     aStr.SetChar(nLen, sal_Unicode('2'));
289     Insert(42, new XColorEntry( Color( 71,  0,184 ), aStr ) );
290     aStr.SetChar(nLen, sal_Unicode('3'));
291     Insert(43, new XColorEntry( Color( 35,  0,220 ), aStr ) );
292     aStr.SetChar(nLen, sal_Unicode('4'));
293     Insert(44, new XColorEntry( Color( 35, 35,220 ), aStr ) );
294     aStr.SetChar(nLen, sal_Unicode('5'));
295     Insert(45, new XColorEntry( Color(  0, 71,255 ), aStr ) );
296     aStr.SetChar(nLen, sal_Unicode('6'));
297     Insert(46, new XColorEntry( Color(  0,153,255 ), aStr ) );
298     aStr.SetChar(nLen, sal_Unicode('7'));
299     Insert(47, new XColorEntry( Color(  0,184,255 ), aStr ) );
300     aStr.SetChar(nLen, sal_Unicode('8'));
301     Insert(48, new XColorEntry( Color(153,204,255 ), aStr ) );
302     //Insert(48, new XColorEntry( Color( 46,215,255 ), aStr ) );
303 
304     aStr = SVX_RESSTR( RID_SVXSTR_CYAN );
305     aStr.AppendAscii(" 1");
306     nLen = aStr.Len() - 1;
307     Insert(49, new XColorEntry( Color(  0,220,255 ), aStr ) );
308     aStr.SetChar(nLen, sal_Unicode('2'));
309     Insert(50, new XColorEntry( Color(  0,204,204 ), aStr ) );
310     aStr.SetChar(nLen, sal_Unicode('3'));
311     Insert(51, new XColorEntry( Color( 35,184,220 ), aStr ) );
312     aStr.SetChar(nLen, sal_Unicode('4'));
313     Insert(52, new XColorEntry( Color( 71,184,184 ), aStr ) );
314     aStr.SetChar(nLen, sal_Unicode('5'));
315     Insert(53, new XColorEntry( Color( 51,163,163 ), aStr ) );
316     aStr.SetChar(nLen, sal_Unicode('6'));
317     Insert(54, new XColorEntry( Color( 25,138,138 ), aStr ) );
318     aStr.SetChar(nLen, sal_Unicode('7'));
319     Insert(55, new XColorEntry( Color(  0,107,107 ), aStr ) );
320     aStr.SetChar(nLen, sal_Unicode('8'));
321     Insert(56, new XColorEntry( Color(  0, 74, 74 ), aStr ) );
322 
323     aStr = SVX_RESSTR( RID_SVXSTR_GREEN );
324     aStr.AppendAscii(" 1");
325     nLen = aStr.Len() - 1;
326     Insert(57, new XColorEntry( Color( 53, 94,  0 ), aStr ) );
327     aStr.SetChar(nLen, sal_Unicode('2'));
328     Insert(58, new XColorEntry( Color( 92,133, 38 ), aStr ) );
329     aStr.SetChar(nLen, sal_Unicode('3'));
330     Insert(59, new XColorEntry( Color(125,166, 71 ), aStr ) );
331     aStr.SetChar(nLen, sal_Unicode('4'));
332     Insert(60, new XColorEntry( Color(148,189, 94 ), aStr ) );
333     aStr.SetChar(nLen, sal_Unicode('5'));
334     Insert(61, new XColorEntry( Color(  0,174,  0 ), aStr ) );
335     aStr.SetChar(nLen, sal_Unicode('6'));
336     Insert(62, new XColorEntry( Color( 51,204,102 ), aStr ) );
337     aStr.SetChar(nLen, sal_Unicode('7'));
338     Insert(63, new XColorEntry( Color( 61,235, 61 ), aStr ) );
339     aStr.SetChar(nLen, sal_Unicode('8'));
340     Insert(64, new XColorEntry( Color( 35,255, 35 ), aStr ) );
341 
342     aStr = SVX_RESSTR( RID_SVXSTR_YELLOW );
343     aStr.AppendAscii(" 1");
344     nLen = aStr.Len() - 1;
345     Insert(65, new XColorEntry( Color(230,255,  0 ), aStr ) );
346     aStr.SetChar(nLen, sal_Unicode('2'));
347     Insert(66, new XColorEntry( Color(255,255,153 ), aStr ) );
348     aStr.SetChar(nLen, sal_Unicode('3'));
349     Insert(67, new XColorEntry( Color(255,255,102 ), aStr ) );
350     aStr.SetChar(nLen, sal_Unicode('4'));
351     Insert(68, new XColorEntry( Color(230,230, 76 ), aStr ) );
352     aStr.SetChar(nLen, sal_Unicode('5'));
353     Insert(69, new XColorEntry( Color(204,204,  0 ), aStr ) );
354     aStr.SetChar(nLen, sal_Unicode('6'));
355     Insert(70, new XColorEntry( Color(179,179,  0 ), aStr ) );
356     aStr.SetChar(nLen, sal_Unicode('7'));
357     Insert(71, new XColorEntry( Color(128,128, 25 ), aStr ) );
358     aStr.SetChar(nLen, sal_Unicode('8'));
359     Insert(72, new XColorEntry( Color(102,102,  0 ), aStr ) );
360 
361     aStr = SVX_RESSTR( RID_SVXSTR_BROWN );
362     aStr.AppendAscii(" 1");
363     nLen = aStr.Len() - 1;
364     Insert(73, new XColorEntry( Color( 76, 25,  0 ), aStr ) );
365     aStr.SetChar(nLen, sal_Unicode('2'));
366     Insert(74, new XColorEntry( Color(102, 51,  0 ), aStr ) );
367     aStr.SetChar(nLen, sal_Unicode('3'));
368     Insert(75, new XColorEntry( Color(128, 76, 25 ), aStr ) );
369     aStr.SetChar(nLen, sal_Unicode('4'));
370     Insert(76, new XColorEntry( Color(153,102, 51 ), aStr ) );
371 
372     aStr = SVX_RESSTR( RID_SVXSTR_ORANGE );
373     aStr.AppendAscii(" 1");
374     nLen = aStr.Len() - 1;
375     Insert(77, new XColorEntry( Color(204,102, 51 ), aStr ) );
376     aStr.SetChar(nLen, sal_Unicode('2'));
377     Insert(78, new XColorEntry( Color(255,102, 51 ), aStr ) );
378     aStr.SetChar(nLen, sal_Unicode('3'));
379     Insert(79, new XColorEntry( Color(255,153,102 ), aStr ) );
380     aStr.SetChar(nLen, sal_Unicode('4'));
381     Insert(80, new XColorEntry( Color(255,204,153 ), aStr ) );
382 
383     // new chart colors
384     aStr = SVX_RESSTR( RID_SVXSTR_VIOLET );
385     Insert( 81, new XColorEntry( Color( 0x99, 0x99, 0xff ), aStr ) );
386 
387     aStr = SVX_RESSTR( RID_SVXSTR_BORDEAUX );
388     Insert( 82, new XColorEntry( Color( 0x99, 0x33, 0x66 ), aStr ) );
389 
390     aStr = SVX_RESSTR( RID_SVXSTR_PALE_YELLOW );
391     Insert( 83, new XColorEntry( Color( 0xff, 0xff, 0xcc ), aStr ) );
392 
393     aStr = SVX_RESSTR( RID_SVXSTR_PALE_GREEN );
394     Insert( 84, new XColorEntry( Color( 0xcc, 0xff, 0xff ), aStr ) );
395 
396     aStr = SVX_RESSTR( RID_SVXSTR_DKVIOLET );
397     Insert( 85, new XColorEntry( Color( 0x66, 0x00, 0x66 ), aStr ) );
398 
399     aStr = SVX_RESSTR( RID_SVXSTR_SALMON );
400     Insert( 86, new XColorEntry( Color( 0xff, 0x80, 0x80 ), aStr ) );
401 
402     aStr = SVX_RESSTR( RID_SVXSTR_SEABLUE );
403     Insert( 87, new XColorEntry( Color( 0x00, 0x66, 0xcc ), aStr ) );
404 
405     // Sun colors
406     aStr = SVX_RESSTR( RID_SVXSTR_COLOR_SUN );
407     aStr.AppendAscii(" 1");
408     nLen = aStr.Len() - 1;
409     Insert( 88, new XColorEntry( Color( 0x33, 0x33, 0x66 ), aStr ) );
410     aStr.SetChar(nLen, sal_Unicode('2'));
411     Insert( 89, new XColorEntry( Color( 0x66, 0x66, 0x99 ), aStr ) );
412     aStr.SetChar(nLen, sal_Unicode('3'));
413     Insert( 90, new XColorEntry( Color( 0x99, 0x99, 0xcc ), aStr ) );
414     aStr.SetChar(nLen, sal_Unicode('4'));
415     Insert( 91, new XColorEntry( Color( 0xcc, 0xcc, 0xff ), aStr ) );
416 
417     // Chart default colors
418     aStr = SVX_RESSTR( RID_SVXSTR_COLOR_CHART );
419     aStr.AppendAscii(" 1");
420     nLen = aStr.Len() - 1;
421     Insert( 92, new XColorEntry( Color( 0x00, 0x45, 0x86 ), aStr ) );
422     aStr.SetChar(nLen, sal_Unicode('2'));
423     Insert( 93, new XColorEntry( Color( 0xff, 0x42, 0x0e ), aStr ) );
424     aStr.SetChar(nLen, sal_Unicode('3'));
425     Insert( 94, new XColorEntry( Color( 0xff, 0xd3, 0x20 ), aStr ) );
426     aStr.SetChar(nLen, sal_Unicode('4'));
427     Insert( 95, new XColorEntry( Color( 0x57, 0x9d, 0x1c ), aStr ) );
428     aStr.SetChar(nLen, sal_Unicode('5'));
429     Insert( 96, new XColorEntry( Color( 0x7e, 0x00, 0x21 ), aStr ) );
430     aStr.SetChar(nLen, sal_Unicode('6'));
431     Insert( 97, new XColorEntry( Color( 0x83, 0xca, 0xff ), aStr ) );
432     aStr.SetChar(nLen, sal_Unicode('7'));
433     Insert( 98, new XColorEntry( Color( 0x31, 0x40, 0x04 ), aStr ) );
434     aStr.SetChar(nLen, sal_Unicode('8'));
435     Insert( 99, new XColorEntry( Color( 0xae, 0xcf, 0x00 ), aStr ) );
436     aStr.SetChar(nLen, sal_Unicode('9'));
437     Insert( 100, new XColorEntry( Color( 0x4b, 0x1f, 0x6f ), aStr ) );
438     aStr.SetChar(nLen, sal_Unicode('1'));
439     aStr.AppendAscii("0");
440     nLen = aStr.Len() - 1;
441     Insert( 101, new XColorEntry( Color( 0xff, 0x95, 0x0e ), aStr ) );
442     aStr.SetChar(nLen, sal_Unicode('1'));
443     Insert( 102, new XColorEntry( Color( 0xc5, 0x00, 0x0b ), aStr ) );
444     aStr.SetChar(nLen, sal_Unicode('2'));
445     Insert( 103, new XColorEntry( Color( 0x00, 0x84, 0xd1 ), aStr ) );
446 
447     return( Count() == 104 );
448 }
449 
450 /************************************************************************/
451 
452 sal_Bool XColorTable::CreateBitmapsForUI()
453 {
454     return( sal_False );
455 }
456 
457 /************************************************************************/
458 
459 Bitmap* XColorTable::CreateBitmapForUI( long /*nIndex*/, sal_Bool /*bDelete*/)
460 {
461     return( NULL );
462 }
463 
464 // --------------------
465 // class XColorList
466 // --------------------
467 
468 /*************************************************************************
469 |*
470 |* XColorList::XColorList()
471 |*
472 *************************************************************************/
473 
474 XColorList::XColorList( const String& rPath,
475                             XOutdevItemPool* pInPool,
476                             sal_uInt16 nInitSize, sal_uInt16 nReSize ) :
477                 XPropertyList( rPath, pInPool, nInitSize, nReSize)
478 {
479     // pBmpList = new List( nInitSize, nReSize );
480 }
481 
482 /************************************************************************/
483 
484 XColorList::~XColorList()
485 {
486 }
487 
488 /************************************************************************/
489 
490 XColorEntry* XColorList::Replace(XColorEntry* pEntry, long nIndex )
491 {
492     return (XColorEntry*) XPropertyList::Replace(pEntry, nIndex);
493 }
494 
495 /************************************************************************/
496 
497 XColorEntry* XColorList::Remove(long nIndex)
498 {
499     return (XColorEntry*) XPropertyList::Remove(nIndex, 0);
500 }
501 
502 /************************************************************************/
503 
504 XColorEntry* XColorList::GetColor(long nIndex) const
505 {
506     return (XColorEntry*) XPropertyList::Get(nIndex, 0);
507 }
508 
509 /************************************************************************/
510 
511 sal_Bool XColorList::Load()
512 {
513     return( sal_False );
514 }
515 
516 /************************************************************************/
517 
518 sal_Bool XColorList::Save()
519 {
520     return( sal_False );
521 }
522 
523 /************************************************************************/
524 
525 sal_Bool XColorList::Create()
526 {
527     return( sal_False );
528 }
529 
530 /************************************************************************/
531 
532 sal_Bool XColorList::CreateBitmapsForUI()
533 {
534     return( sal_False );
535 }
536 
537 /************************************************************************/
538 
539 Bitmap* XColorList::CreateBitmapForUI( long /*nIndex*/, sal_Bool /*bDelete*/)
540 {
541     return( NULL );
542 }
543 
544 // eof
545