LibreOffice Module sc (master)  1
xlstyle.cxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #include <xlstyle.hxx>
21 #include <com/sun/star/awt/FontFamily.hpp>
22 #include <com/sun/star/awt/FontSlant.hpp>
23 #include <com/sun/star/awt/FontStrikeout.hpp>
24 #include <com/sun/star/awt/FontUnderline.hpp>
25 #include <com/sun/star/i18n/ScriptType.hpp>
26 #include <vcl/svapp.hxx>
27 #include <vcl/settings.hxx>
28 #include <vcl/font.hxx>
29 #include <sal/macros.h>
30 #include <sal/log.hxx>
31 #include <rtl/tencinfo.h>
32 #include <svtools/colorcfg.hxx>
33 #include <vcl/unohelp.hxx>
34 #include <editeng/svxfont.hxx>
35 #include <global.hxx>
36 #include <xlroot.hxx>
37 #include <xltools.hxx>
38 // Color data =================================================================
39 
41 #define EXC_PALETTE_EGA_COLORS_LIGHT \
42  Color(0x000000), Color(0xFFFFFF), Color(0xFF0000), Color(0x00FF00), Color(0x0000FF), Color(0xFFFF00), Color(0xFF00FF), Color(0x00FFFF)
43 
44 #define EXC_PALETTE_EGA_COLORS_DARK \
45  Color(0x800000), Color(0x008000), Color(0x000080), Color(0x808000), Color(0x800080), Color(0x008080), Color(0xC0C0C0), Color(0x808080)
46 
49 {
51 };
52 
55 {
59 };
60 
63 {
67 /* 24 */ Color(0x8080FF), Color(0x802060), Color(0xFFFFC0), Color(0xA0E0E0), Color(0x600080), Color(0xFF8080), Color(0x0080C0), Color(0xC0C0FF),
68 /* 32 */ Color(0x000080), Color(0xFF00FF), Color(0xFFFF00), Color(0x00FFFF), Color(0x800080), Color(0x800000), Color(0x008080), Color(0x0000FF),
69 /* 40 */ Color(0x00CFFF), Color(0x69FFFF), Color(0xE0FFE0), Color(0xFFFF80), Color(0xA6CAF0), Color(0xDD9CB3), Color(0xB38FEE), Color(0xE3E3E3),
70 /* 48 */ Color(0x2A6FF9), Color(0x3FB8CD), Color(0x488436), Color(0x958C41), Color(0x8E5E42), Color(0xA0627A), Color(0x624FAC), Color(0x969696),
71 /* 56 */ Color(0x1D2FBE), Color(0x286676), Color(0x004500), Color(0x453E01), Color(0x6A2813), Color(0x85396A), Color(0x4A3285), Color(0x424242)
72 };
73 
76 {
80 /* 24 */ Color(0x9999FF), Color(0x993366), Color(0xFFFFCC), Color(0xCCFFFF), Color(0x660066), Color(0xFF8080), Color(0x0066CC), Color(0xCCCCFF),
81 /* 32 */ Color(0x000080), Color(0xFF00FF), Color(0xFFFF00), Color(0x00FFFF), Color(0x800080), Color(0x800000), Color(0x008080), Color(0x0000FF),
82 /* 40 */ Color(0x00CCFF), Color(0xCCFFFF), Color(0xCCFFCC), Color(0xFFFF99), Color(0x99CCFF), Color(0xFF99CC), Color(0xCC99FF), Color(0xFFCC99),
83 /* 48 */ Color(0x3366FF), Color(0x33CCCC), Color(0x99CC00), Color(0xFFCC00), Color(0xFF9900), Color(0xFF6600), Color(0x666699), Color(0x969696),
84 /* 56 */ Color(0x003366), Color(0x339966), Color(0x003300), Color(0x333300), Color(0x993300), Color(0x993366), Color(0x333399), Color(0x333333)
85 };
86 
87 #undef EXC_PALETTE_EGA_COLORS_LIGHT
88 #undef EXC_PALETTE_EGA_COLORS_DARK
89 
91  mpnColorTable( nullptr ),
92  mnTableSize( 0 )
93 {
96  mnWindowBack = rSett.GetWindowColor();
97  mnFaceColor = rSett.GetFaceColor();
98  // Don't use the system HelpBack and HelpText colours as it causes problems
99  // with modern gnome. This is because mnNoteText and mnNoteBack are used
100  // when colour indices ( instead of real colours ) are specified.
101  // Note: That this it is not an unusual scenario that we get the Note
102  // background specified as a real colour and the text specified as a
103  // colour index. That means the text colour would be picked from
104  // the system where the note background would be picked from a real colour.
105  // Previously the note text colour was picked from the system tooltip
106  // text colour, on modern gnome(e.g. 3) that tends to be 'white' with the
107  // default theme.
108  // Using the Libreoffice defaults ( instead of system specific colours
109  // ) lessens the chance of the one colour being an unsuitable combination
110  // because by default the note text is black and the note background is
111  // a light yellow colour ( very similar to Excel's normal defaults )
114 
115  // default colors
116  switch( rRoot.GetBiff() )
117  {
118  case EXC_BIFF2:
120  mnTableSize = SAL_N_ELEMENTS( spnDefColorTable2 );
121  break;
122  case EXC_BIFF3:
123  case EXC_BIFF4:
125  mnTableSize = SAL_N_ELEMENTS( spnDefColorTable3 );
126  break;
127  case EXC_BIFF5:
129  mnTableSize = SAL_N_ELEMENTS( spnDefColorTable5 );
130  break;
131  case EXC_BIFF8:
133  mnTableSize = SAL_N_ELEMENTS( spnDefColorTable8 );
134  break;
135  default:
136  DBG_ERROR_BIFF();
137  }
138 }
139 
140 Color XclDefaultPalette::GetDefColor( sal_uInt16 nXclIndex ) const
141 {
142  Color nColor;
143  if( nXclIndex < mnTableSize )
144  nColor = mpnColorTable[ nXclIndex ];
145  else switch( nXclIndex )
146  {
149  case EXC_COLOR_CHWINDOWTEXT: nColor = mnWindowText; break;
152  case EXC_COLOR_CHWINDOWBACK: nColor = mnWindowBack; break;
153  case EXC_COLOR_BUTTONBACK: nColor = mnFaceColor; break;
154  case EXC_COLOR_CHBORDERAUTO: nColor = COL_BLACK; break; // TODO: really always black?
155  case EXC_COLOR_NOTEBACK: nColor = mnNoteBack; break;
156  case EXC_COLOR_NOTETEXT: nColor = mnNoteText; break;
157  case EXC_COLOR_FONTAUTO: nColor = COL_AUTO; break;
158  default:
159  SAL_WARN("sc", "XclDefaultPalette::GetDefColor - unknown default color index: " << nXclIndex );
160  nColor = COL_AUTO;
161  }
162  return nColor;
163 }
164 
165 // Font Data ==================================================================
166 
167 namespace Awt = ::com::sun::star::awt;
168 namespace AwtFontFamily = Awt::FontFamily;
169 namespace AwtFontLineStyle = Awt::FontUnderline;
170 namespace AwtFontStrikeout = Awt::FontStrikeout;
171 
173 {
174  Clear();
175 }
176 
178 {
179  Clear();
180  FillFromVclFont( rFont );
181 }
182 
184 {
185  FillFromSvxFont( rFont );
186 }
187 
189 {
190  maName.clear();
191  maStyle.clear();
192  maColor = COL_AUTO;
193  mnHeight = 0;
199  mbItalic = mbStrikeout = mbOutline = mbShadow = false;
200 }
201 
203 {
204  maName = XclTools::GetXclFontName( rFont.GetFamilyName() ); // substitute with MS fonts
205  maStyle.clear();
206  maColor = rFont.GetColor();
207  SetScUnderline( rFont.GetUnderline() );
209  SetScHeight( rFont.GetFontSize().Height() );
210  SetScWeight( rFont.GetWeight() );
211  SetScFamily( rFont.GetFamilyType() );
212  SetFontEncoding( rFont.GetCharSet() );
213  SetScPosture( rFont.GetItalic() );
214  SetScStrikeout( rFont.GetStrikeout() );
215  mbOutline = rFont.IsOutline();
216  mbShadow = rFont.IsShadow();
217 }
218 
220 {
221  FillFromVclFont( rFont );
222  SetScEscapement( rFont.GetEscapement() );
223 }
224 
225 // *** conversion of VCL/SVX constants *** ------------------------------------
226 
227 FontFamily XclFontData::GetScFamily( rtl_TextEncoding eDefTextEnc ) const
228 {
229  FontFamily eScFamily;
230  // ! format differs from Windows documentation: family is in lower nibble, pitch unknown
231  switch( mnFamily & 0x0F )
232  {
233  case EXC_FONTFAM_ROMAN: eScFamily = FAMILY_ROMAN; break;
234  case EXC_FONTFAM_SWISS: eScFamily = FAMILY_SWISS; break;
235  case EXC_FONTFAM_MODERN: eScFamily = FAMILY_MODERN; break;
236  case EXC_FONTFAM_SCRIPT: eScFamily = FAMILY_SCRIPT; break;
237  case EXC_FONTFAM_DECORATIVE: eScFamily = FAMILY_DECORATIVE; break;
238  default:
239  eScFamily =
240  ((eDefTextEnc == RTL_TEXTENCODING_APPLE_ROMAN) &&
241  (maName.equalsIgnoreAsciiCase( "Geneva" ) || maName.equalsIgnoreAsciiCase( "Chicago" ))) ?
243  }
244  return eScFamily;
245 }
246 
247 rtl_TextEncoding XclFontData::GetFontEncoding() const
248 {
249  // convert Windows character set to text encoding identifier
250  return rtl_getTextEncodingFromWindowsCharset( mnCharSet );
251 }
252 
254 {
256 }
257 
259 {
260  FontWeight eScWeight;
261 
262  if( !mnWeight ) eScWeight = WEIGHT_DONTKNOW;
263  else if( mnWeight < 150 ) eScWeight = WEIGHT_THIN;
264  else if( mnWeight < 250 ) eScWeight = WEIGHT_ULTRALIGHT;
265  else if( mnWeight < 325 ) eScWeight = WEIGHT_LIGHT;
266  else if( mnWeight < 375 ) eScWeight = WEIGHT_SEMILIGHT;
267  else if( mnWeight < 450 ) eScWeight = WEIGHT_NORMAL;
268  else if( mnWeight < 550 ) eScWeight = WEIGHT_MEDIUM;
269  else if( mnWeight < 650 ) eScWeight = WEIGHT_SEMIBOLD;
270  else if( mnWeight < 750 ) eScWeight = WEIGHT_BOLD;
271  else if( mnWeight < 850 ) eScWeight = WEIGHT_ULTRABOLD;
272  else eScWeight = WEIGHT_BLACK;
273 
274  return eScWeight;
275 }
276 
278 {
279  FontLineStyle eScUnderl = LINESTYLE_NONE;
280  switch( mnUnderline )
281  {
283  case EXC_FONTUNDERL_SINGLE_ACC: eScUnderl = LINESTYLE_SINGLE; break;
285  case EXC_FONTUNDERL_DOUBLE_ACC: eScUnderl = LINESTYLE_DOUBLE; break;
286  }
287  return eScUnderl;
288 }
289 
291 {
292  SvxEscapement eScEscapem = SvxEscapement::Off;
293  switch( mnEscapem )
294  {
295  case EXC_FONTESC_SUPER: eScEscapem = SvxEscapement::Superscript; break;
296  case EXC_FONTESC_SUB: eScEscapem = SvxEscapement::Subscript; break;
297  }
298  return eScEscapem;
299 }
300 
302 {
304 }
305 
306 void XclFontData::SetScHeight( sal_Int32 nTwips )
307 {
308  mnHeight = static_cast< sal_uInt16 >( ::std::min( nTwips, static_cast<sal_Int32>(0x7FFFL) ) );
309 }
310 
312 {
313  switch( eScFamily )
314  {
318  case FAMILY_ROMAN: mnFamily = EXC_FONTFAM_ROMAN; break;
320  case FAMILY_SWISS: mnFamily = EXC_FONTFAM_SWISS; break;
322  default:
323  OSL_FAIL( "XclFontData::SetScFamily - unknown font family" );
325  }
326 }
327 
328 void XclFontData::SetFontEncoding( rtl_TextEncoding eFontEnc )
329 {
330  // convert text encoding identifier to Windows character set
331  mnCharSet = rtl_getBestWindowsCharsetFromTextEncoding( eFontEnc );
332 }
333 
335 {
336  mbItalic = (eScPosture == ITALIC_OBLIQUE) || (eScPosture == ITALIC_NORMAL);
337 }
338 
340 {
341  switch( eScWeight )
342  {
344  case WEIGHT_THIN: mnWeight = EXC_FONTWGHT_THIN; break;
351  case WEIGHT_BOLD: mnWeight = EXC_FONTWGHT_BOLD; break;
354  default: mnWeight = EXC_FONTWGHT_NORMAL;
355  }
356 }
357 
359 {
360  switch( eScUnderl )
361  {
362  case LINESTYLE_NONE:
364  case LINESTYLE_DOUBLE:
367  }
368 }
369 
370 void XclFontData::SetScEscapement( short nScEscapem )
371 {
372  if( nScEscapem > 0 )
374  else if( nScEscapem < 0 )
376  else
378 }
379 
381 {
382  mbStrikeout =
383  (eScStrikeout == STRIKEOUT_SINGLE) || (eScStrikeout == STRIKEOUT_DOUBLE) ||
384  (eScStrikeout == STRIKEOUT_BOLD) || (eScStrikeout == STRIKEOUT_SLASH) ||
385  (eScStrikeout == STRIKEOUT_X);
386 }
387 
388 // *** conversion of API constants *** ----------------------------------------
389 
391 {
392  return static_cast< float >( mnHeight / TWIPS_PER_POINT );
393 }
394 
395 sal_Int16 XclFontData::GetApiFamily() const
396 {
397  sal_Int16 nApiFamily = AwtFontFamily::DONTKNOW;
398  switch( mnFamily )
399  {
400  case FAMILY_DECORATIVE: nApiFamily = AwtFontFamily::DECORATIVE; break;
401  case FAMILY_MODERN: nApiFamily = AwtFontFamily::MODERN; break;
402  case FAMILY_ROMAN: nApiFamily = AwtFontFamily::ROMAN; break;
403  case FAMILY_SCRIPT: nApiFamily = AwtFontFamily::SCRIPT; break;
404  case FAMILY_SWISS: nApiFamily = AwtFontFamily::SWISS; break;
405  case FAMILY_SYSTEM: nApiFamily = AwtFontFamily::SYSTEM; break;
406  }
407  return nApiFamily;
408 }
409 
411 {
412  // API constants are equal to rtl_TextEncoding constants
413  return static_cast< sal_Int16 >( GetFontEncoding() );
414 }
415 
416 Awt::FontSlant XclFontData::GetApiPosture() const
417 {
418  return mbItalic ? Awt::FontSlant_ITALIC : Awt::FontSlant_NONE;
419 }
420 
422 {
424 }
425 
427 {
428  sal_Int16 nApiUnderl = AwtFontLineStyle::NONE;
429  switch( mnUnderline )
430  {
432  case EXC_FONTUNDERL_SINGLE_ACC: nApiUnderl = AwtFontLineStyle::SINGLE; break;
434  case EXC_FONTUNDERL_DOUBLE_ACC: nApiUnderl = AwtFontLineStyle::DOUBLE; break;
435  }
436  return nApiUnderl;
437 }
438 
440 {
441  sal_Int16 nApiEscapem = 0;
442  switch( mnEscapem )
443  {
444  case EXC_FONTESC_SUPER: nApiEscapem = 33; break;
445  case EXC_FONTESC_SUB: nApiEscapem = -33; break;
446  }
447  return nApiEscapem;
448 }
449 
451 {
452  return mbStrikeout ? AwtFontStrikeout::SINGLE : AwtFontStrikeout::NONE;
453 }
454 
455 void XclFontData::SetApiHeight( float fPoint )
456 {
457  mnHeight = static_cast< sal_uInt16 >( ::std::min( fPoint * TWIPS_PER_POINT + 0.5, 32767.0 ) );
458 }
459 
460 void XclFontData::SetApiFamily( sal_Int16 nApiFamily )
461 {
462  switch( nApiFamily )
463  {
464  case AwtFontFamily::DECORATIVE: mnFamily = FAMILY_DECORATIVE; break;
465  case AwtFontFamily::MODERN: mnFamily = FAMILY_MODERN; break;
466  case AwtFontFamily::ROMAN: mnFamily = FAMILY_ROMAN; break;
467  case AwtFontFamily::SCRIPT: mnFamily = FAMILY_SCRIPT; break;
468  case AwtFontFamily::SWISS: mnFamily = FAMILY_SWISS; break;
469  case AwtFontFamily::SYSTEM: mnFamily = FAMILY_SYSTEM; break;
470  default: mnFamily = FAMILY_DONTKNOW;
471  }
472 }
473 
474 void XclFontData::SetApiPosture( Awt::FontSlant eApiPosture )
475 {
476  mbItalic =
477  (eApiPosture == Awt::FontSlant_OBLIQUE) ||
478  (eApiPosture == Awt::FontSlant_ITALIC) ||
479  (eApiPosture == Awt::FontSlant_REVERSE_OBLIQUE) ||
480  (eApiPosture == Awt::FontSlant_REVERSE_ITALIC);
481 }
482 
483 void XclFontData::SetApiWeight( float fApiWeight )
484 {
486 }
487 
488 void XclFontData::SetApiUnderline( sal_Int16 nApiUnderl )
489 {
490  switch( nApiUnderl )
491  {
493  case AwtFontLineStyle::DONTKNOW: mnUnderline = EXC_FONTUNDERL_NONE; break;
494  case AwtFontLineStyle::DOUBLE:
495  case AwtFontLineStyle::DOUBLEWAVE: mnUnderline = EXC_FONTUNDERL_DOUBLE; break;
497  }
498 }
499 
500 void XclFontData::SetApiEscapement( sal_Int16 nApiEscapem )
501 {
502  if( nApiEscapem > 0 )
504  else if( nApiEscapem < 0 )
506  else
508 }
509 
510 void XclFontData::SetApiStrikeout( sal_Int16 nApiStrikeout )
511 {
512  mbStrikeout =
513  (nApiStrikeout != AwtFontStrikeout::NONE) &&
514  (nApiStrikeout != AwtFontStrikeout::DONTKNOW);
515 }
516 
517 bool operator==( const XclFontData& rLeft, const XclFontData& rRight )
518 {
519  return
520  (rLeft.mnHeight == rRight.mnHeight) &&
521  (rLeft.mnWeight == rRight.mnWeight) &&
522  (rLeft.mnUnderline == rRight.mnUnderline) &&
523  (rLeft.maColor == rRight.maColor) &&
524  (rLeft.mnEscapem == rRight.mnEscapem) &&
525  (rLeft.mnFamily == rRight.mnFamily) &&
526  (rLeft.mnCharSet == rRight.mnCharSet) &&
527  (rLeft.mbItalic == rRight.mbItalic) &&
528  (rLeft.mbStrikeout == rRight.mbStrikeout) &&
529  (rLeft.mbOutline == rRight.mbOutline) &&
530  (rLeft.mbShadow == rRight.mbShadow) &&
531  (rLeft.maName == rRight.maName);
532 }
533 
534 namespace {
535 
537 const char *const sppcPropNamesChCommon[] =
538 {
539  "CharUnderline", "CharStrikeout", "CharColor", "CharContoured", "CharShadowed", nullptr
540 };
542 const char *const sppcPropNamesChWstrn[] =
543 {
544  "CharFontName", "CharHeight", "CharPosture", "CharWeight", nullptr
545 };
547 const char *const sppcPropNamesChAsian[] =
548 {
549  "CharFontNameAsian", "CharHeightAsian", "CharPostureAsian", "CharWeightAsian", nullptr
550 };
552 const char *const sppcPropNamesChCmplx[] =
553 {
554  "CharFontNameComplex", "CharHeightComplex", "CharPostureComplex", "CharWeightComplex", nullptr
555 };
557 const char *const sppcPropNamesChEscapement[] =
558 {
559  "CharEscapement", "CharEscapementHeight", nullptr
560 };
561 const sal_Int8 EXC_API_ESC_HEIGHT = 58;
562 
564 const char *const *const sppcPropNamesChWstrnNoName = sppcPropNamesChWstrn + 1;
566 const char *const *const sppcPropNamesChAsianNoName = sppcPropNamesChAsian + 1;
568 const char *const *const sppcPropNamesChCmplxNoName = sppcPropNamesChCmplx + 1;
569 
571 const char *const sppcPropNamesControl[] =
572 {
573  "FontName", "FontFamily", "FontCharset", "FontHeight", "FontSlant",
574  "FontWeight", "FontLineStyle", "FontStrikeout", "TextColor", nullptr
575 };
576 
578 void lclSetApiFontSettings( XclFontData& rFontData,
579  const OUString& rApiFontName, float fApiHeight, float fApiWeight,
580  Awt::FontSlant eApiPosture, sal_Int16 nApiUnderl, sal_Int16 nApiStrikeout )
581 {
582  rFontData.maName = XclTools::GetXclFontName( rApiFontName );
583  rFontData.SetApiHeight( fApiHeight );
584  rFontData.SetApiWeight( fApiWeight );
585  rFontData.SetApiPosture( eApiPosture );
586  rFontData.SetApiUnderline( nApiUnderl );
587  rFontData.SetApiStrikeout( nApiStrikeout );
588 }
589 
591 void lclWriteChartFont( ScfPropertySet& rPropSet,
592  ScfPropSetHelper& rHlpName, ScfPropSetHelper& rHlpNoName,
593  const XclFontData& rFontData, bool bHasFontName )
594 {
595  // select the font helper
596  ScfPropSetHelper& rPropSetHlp = bHasFontName ? rHlpName : rHlpNoName;
597  // initialize the font helper (must be called before writing any properties)
598  rPropSetHlp.InitializeWrite();
599  // write font name
600  if( bHasFontName )
601  rPropSetHlp << rFontData.maName;
602  // write remaining properties
603  rPropSetHlp << rFontData.GetApiHeight() << rFontData.GetApiPosture() << rFontData.GetApiWeight();
604  // write properties to property set
605  rPropSetHlp.WriteToPropertySet( rPropSet );
606 }
607 
608 } // namespace
609 
611  maHlpChCommon( sppcPropNamesChCommon ),
612  maHlpChWstrn( sppcPropNamesChWstrn ),
613  maHlpChAsian( sppcPropNamesChAsian ),
614  maHlpChCmplx( sppcPropNamesChCmplx ),
615  maHlpChWstrnNoName( sppcPropNamesChWstrnNoName ),
616  maHlpChAsianNoName( sppcPropNamesChAsianNoName ),
617  maHlpChCmplxNoName( sppcPropNamesChCmplxNoName ),
618  maHlpChEscapement( sppcPropNamesChEscapement ),
619  maHlpControl( sppcPropNamesControl )
620 {
621 }
622 
624  const ScfPropertySet& rPropSet, XclFontPropSetType eType, sal_Int16 nScript )
625 {
626  switch( eType )
627  {
629  {
630  OUString aApiFontName;
631  float fApiHeight, fApiWeight;
632  sal_Int16 nApiUnderl = 0, nApiStrikeout = 0;
633  Awt::FontSlant eApiPosture;
634 
635  // read script type dependent properties
636  ScfPropSetHelper& rPropSetHlp = GetChartHelper( nScript );
637  rPropSetHlp.ReadFromPropertySet( rPropSet );
638  rPropSetHlp >> aApiFontName >> fApiHeight >> eApiPosture >> fApiWeight;
639  // read common properties
641  maHlpChCommon >> nApiUnderl
642  >> nApiStrikeout
643  >> rFontData.maColor
644  >> rFontData.mbOutline
645  >> rFontData.mbShadow;
646 
647  // convert API property values to Excel settings
648  lclSetApiFontSettings( rFontData, aApiFontName,
649  fApiHeight, fApiWeight, eApiPosture, nApiUnderl, nApiStrikeout );
650 
651  // font escapement
652  sal_Int16 nApiEscapement = 0;
653  sal_Int8 nApiEscHeight = 0;
657  maHlpChEscapement >> nApiEscapement >> nApiEscHeight;
658  rFontData.SetApiEscapement( nApiEscapement );
659  }
660  break;
661 
663  {
664  OUString aApiFontName;
665  float fApiHeight(0.0), fApiWeight(0.0);
666  sal_Int16 nApiFamily(0), nApiCharSet(0), nApiPosture(0), nApiUnderl(0), nApiStrikeout(0);
667 
668  // read font properties
669  maHlpControl.ReadFromPropertySet( rPropSet );
670  maHlpControl >> aApiFontName
671  >> nApiFamily
672  >> nApiCharSet
673  >> fApiHeight
674  >> nApiPosture
675  >> fApiWeight
676  >> nApiUnderl
677  >> nApiStrikeout
678  >> rFontData.maColor;
679 
680  // convert API property values to Excel settings
681  Awt::FontSlant eApiPosture = static_cast< Awt::FontSlant >( nApiPosture );
682  lclSetApiFontSettings( rFontData, aApiFontName,
683  fApiHeight, fApiWeight, eApiPosture, nApiUnderl, nApiStrikeout );
684  rFontData.SetApiFamily( nApiFamily );
685  rFontData.SetFontEncoding( nApiCharSet );
686  }
687  break;
688  }
689 }
690 
692  ScfPropertySet& rPropSet, XclFontPropSetType eType,
693  const XclFontData& rFontData, bool bHasWstrn, bool bHasAsian, bool bHasCmplx,
694  const Color* pFontColor )
695 {
696  switch( eType )
697  {
699  {
700  // write common properties
702  const Color& rColor = pFontColor ? *pFontColor : rFontData.maColor;
703  maHlpChCommon << rFontData.GetApiUnderline()
704  << rFontData.GetApiStrikeout()
705  << rColor
706  << rFontData.mbOutline
707  << rFontData.mbShadow;
708  maHlpChCommon.WriteToPropertySet( rPropSet );
709 
710  // write script type dependent properties
711  lclWriteChartFont( rPropSet, maHlpChWstrn, maHlpChWstrnNoName, rFontData, bHasWstrn );
712  lclWriteChartFont( rPropSet, maHlpChAsian, maHlpChAsianNoName, rFontData, bHasAsian );
713  lclWriteChartFont( rPropSet, maHlpChCmplx, maHlpChCmplxNoName, rFontData, bHasCmplx );
714 
715  // font escapement
716  if( rFontData.GetScEscapement() != SvxEscapement::Off )
717  {
719  maHlpChEscapement << rFontData.GetApiEscapement() << EXC_API_ESC_HEIGHT;
721  }
722  }
723  break;
724 
726  {
728  maHlpControl << rFontData.maName
729  << rFontData.GetApiFamily()
730  << rFontData.GetApiFontEncoding()
731  << static_cast< sal_Int16 >( rFontData.GetApiHeight() + 0.5 )
732  << rFontData.GetApiPosture()
733  << rFontData.GetApiWeight()
734  << rFontData.GetApiUnderline()
735  << rFontData.GetApiStrikeout()
736  << rFontData.maColor;
737  maHlpControl.WriteToPropertySet( rPropSet );
738  }
739  break;
740  }
741 }
742 
744 {
745  namespace ApiScriptType = ::com::sun::star::i18n::ScriptType;
746  switch( nScript )
747  {
748  case ApiScriptType::LATIN: return maHlpChWstrn;
749  case ApiScriptType::ASIAN: return maHlpChAsian;
750  case ApiScriptType::COMPLEX: return maHlpChCmplx;
751  default: OSL_FAIL( "XclFontPropSetHelper::GetChartHelper - unknown script type" );
752  }
753  return maHlpChWstrn;
754 }
755 
756 // Number formats =============================================================
757 
758 namespace {
759 
761 const NfIndexTableOffset PRV_NF_INDEX_REUSE = NF_INDEX_TABLE_ENTRIES;
762 
764 constexpr LanguageType PRV_LANGUAGE_GERMAN_PRIM = primary(LANGUAGE_GERMAN);
766 constexpr LanguageType PRV_LANGUAGE_FRENCH_PRIM = primary(LANGUAGE_FRENCH);
768 constexpr LanguageType PRV_LANGUAGE_ASIAN_PRIM = primary(LANGUAGE_CHINESE);
769 
771 struct XclBuiltInFormat
772 {
773  sal_uInt16 mnXclNumFmt;
774  const char* mpFormat;
775  NfIndexTableOffset meOffset;
776  sal_uInt16 mnXclReuseFmt;
777 };
778 
780 #define EXC_NUMFMT_STRING( nXclNumFmt, pcUtf8 ) \
781  { nXclNumFmt, pcUtf8, NF_NUMBER_STANDARD, 0 }
782 
784 #define EXC_NUMFMT_OFFSET( nXclNumFmt, eOffset ) \
785  { nXclNumFmt, nullptr, eOffset, 0 }
786 
788 #define EXC_NUMFMT_REUSE( nXclNumFmt, nXclReuse ) \
789  { nXclNumFmt, nullptr, PRV_NF_INDEX_REUSE, nXclReuse }
790 
792 #define EXC_NUMFMT_ENDTABLE() \
793  { EXC_FORMAT_NOTFOUND, nullptr, NF_NUMBER_STANDARD, 0 }
794 
795 // Currency unit characters
796 #define UTF8_BAHT "\340\270\277"
797 #define UTF8_EURO "\342\202\254"
798 #define UTF8_POUND_UK "\302\243"
799 #define UTF8_SHEQEL "\342\202\252"
800 #define UTF8_WON "\357\277\246"
801 #define UTF8_YEN_CS "\357\277\245"
802 #define UTF8_YEN_JP "\302\245"
803 
804 // Japanese/Chinese date/time characters
805 #define UTF8_CJ_YEAR "\345\271\264"
806 #define UTF8_CJ_MON "\346\234\210"
807 #define UTF8_CJ_DAY "\346\227\245"
808 #define UTF8_CJ_HOUR "\346\231\202"
809 #define UTF8_CJ_MIN "\345\210\206"
810 #define UTF8_CJ_SEC "\347\247\222"
811 
812 // Chinese Simplified date/time characters
813 #define UTF8_CS_HOUR "\346\227\266"
814 
815 // Korean date/time characters
816 #define UTF8_KO_YEAR "\353\205\204"
817 #define UTF8_KO_MON "\354\233\224"
818 #define UTF8_KO_DAY "\354\235\274"
819 #define UTF8_KO_HOUR "\354\213\234"
820 #define UTF8_KO_MIN "\353\266\204"
821 #define UTF8_KO_SEC "\354\264\210"
822 
824 const XclBuiltInFormat spBuiltInFormats_DONTKNOW[] =
825 {
826  EXC_NUMFMT_OFFSET( 0, NF_NUMBER_STANDARD ), // General
827  EXC_NUMFMT_OFFSET( 1, NF_NUMBER_INT ), // 0
828  EXC_NUMFMT_OFFSET( 2, NF_NUMBER_DEC2 ), // 0.00
829  EXC_NUMFMT_OFFSET( 3, NF_NUMBER_1000INT ), // #,##0
830  EXC_NUMFMT_OFFSET( 4, NF_NUMBER_1000DEC2 ), // #,##0.00
831  // 5...8 contained in file
832  EXC_NUMFMT_OFFSET( 9, NF_PERCENT_INT ), // 0%
833  EXC_NUMFMT_OFFSET( 10, NF_PERCENT_DEC2 ), // 0.00%
834  EXC_NUMFMT_OFFSET( 11, NF_SCIENTIFIC_000E00 ), // 0.00E+00
835  EXC_NUMFMT_OFFSET( 12, NF_FRACTION_1D ), // # ?/?
836  EXC_NUMFMT_OFFSET( 13, NF_FRACTION_2D ), // # ??/??
837 
838  // 14...22 date and time formats
848 
849  // 23...36 international formats
850  EXC_NUMFMT_REUSE( 23, 0 ),
851  EXC_NUMFMT_REUSE( 24, 0 ),
852  EXC_NUMFMT_REUSE( 25, 0 ),
853  EXC_NUMFMT_REUSE( 26, 0 ),
854  EXC_NUMFMT_REUSE( 27, 14 ),
855  EXC_NUMFMT_REUSE( 28, 14 ),
856  EXC_NUMFMT_REUSE( 29, 14 ),
857  EXC_NUMFMT_REUSE( 30, 14 ),
858  EXC_NUMFMT_REUSE( 31, 14 ),
859  EXC_NUMFMT_REUSE( 32, 21 ),
860  EXC_NUMFMT_REUSE( 33, 21 ),
861  EXC_NUMFMT_REUSE( 34, 21 ),
862  EXC_NUMFMT_REUSE( 35, 21 ),
863  EXC_NUMFMT_REUSE( 36, 14 ),
864 
865  // 37...44 accounting formats
866  // 41...44 contained in file
867  EXC_NUMFMT_STRING( 37, "#,##0;-#,##0" ),
868  EXC_NUMFMT_STRING( 38, "#,##0;[RED]-#,##0" ),
869  EXC_NUMFMT_STRING( 39, "#,##0.00;-#,##0.00" ),
870  EXC_NUMFMT_STRING( 40, "#,##0.00;[RED]-#,##0.00" ),
871 
872  // 45...49 more special formats
873  EXC_NUMFMT_STRING( 45, "mm:ss" ),
874  EXC_NUMFMT_STRING( 46, "[h]:mm:ss" ),
875  EXC_NUMFMT_STRING( 47, "mm:ss.0" ),
876  EXC_NUMFMT_STRING( 48, "##0.0E+0" ),
877  EXC_NUMFMT_OFFSET( 49, NF_TEXT ),
878 
879  // 50...81 international formats
880  EXC_NUMFMT_REUSE( 50, 14 ),
881  EXC_NUMFMT_REUSE( 51, 14 ),
882  EXC_NUMFMT_REUSE( 52, 14 ),
883  EXC_NUMFMT_REUSE( 53, 14 ),
884  EXC_NUMFMT_REUSE( 54, 14 ),
885  EXC_NUMFMT_REUSE( 55, 14 ),
886  EXC_NUMFMT_REUSE( 56, 14 ),
887  EXC_NUMFMT_REUSE( 57, 14 ),
888  EXC_NUMFMT_REUSE( 58, 14 ),
889  EXC_NUMFMT_REUSE( 59, 1 ),
890  EXC_NUMFMT_REUSE( 60, 2 ),
891  EXC_NUMFMT_REUSE( 61, 3 ),
892  EXC_NUMFMT_REUSE( 62, 4 ),
893  EXC_NUMFMT_REUSE( 67, 9 ),
894  EXC_NUMFMT_REUSE( 68, 10 ),
895  EXC_NUMFMT_REUSE( 69, 12 ),
896  EXC_NUMFMT_REUSE( 70, 13 ),
897  EXC_NUMFMT_REUSE( 71, 14 ),
898  EXC_NUMFMT_REUSE( 72, 14 ),
899  EXC_NUMFMT_REUSE( 73, 15 ),
900  EXC_NUMFMT_REUSE( 74, 16 ),
901  EXC_NUMFMT_REUSE( 75, 17 ),
902  EXC_NUMFMT_REUSE( 76, 20 ),
903  EXC_NUMFMT_REUSE( 77, 21 ),
904  EXC_NUMFMT_REUSE( 78, 22 ),
905  EXC_NUMFMT_REUSE( 79, 45 ),
906  EXC_NUMFMT_REUSE( 80, 46 ),
907  EXC_NUMFMT_REUSE( 81, 47 ),
908 
909  // 82...163 not used, must not occur in a file (Excel may crash)
910 
912 };
913 
914 // ENGLISH --------------------------------------------------------------------
915 
917 const XclBuiltInFormat spBuiltInFormats_ENGLISH[] =
918 {
919  EXC_NUMFMT_STRING( 15, "DD-MMM-YY" ),
920  EXC_NUMFMT_STRING( 16, "DD-MMM" ),
921  EXC_NUMFMT_STRING( 17, "MMM-YY" ),
922  EXC_NUMFMT_STRING( 18, "h:mm AM/PM" ),
923  EXC_NUMFMT_STRING( 19, "h:mm:ss AM/PM" ),
924  EXC_NUMFMT_STRING( 22, "DD/MM/YYYY hh:mm" ),
926 };
927 
928 const XclBuiltInFormat spBuiltInFormats_ENGLISH_UK[] =
929 {
930  EXC_NUMFMT_STRING( 63, UTF8_POUND_UK "#,##0;-" UTF8_POUND_UK "#,##0" ),
931  EXC_NUMFMT_STRING( 64, UTF8_POUND_UK "#,##0;[RED]-" UTF8_POUND_UK "#,##0" ),
932  EXC_NUMFMT_STRING( 65, UTF8_POUND_UK "#,##0.00;-" UTF8_POUND_UK "#,##0.00" ),
933  EXC_NUMFMT_STRING( 66, UTF8_POUND_UK "#,##0.00;[RED]-" UTF8_POUND_UK "#,##0.00" ),
935 };
936 
937 const XclBuiltInFormat spBuiltInFormats_ENGLISH_EIRE[] =
938 {
939  EXC_NUMFMT_STRING( 63, UTF8_EURO "#,##0;-" UTF8_EURO "#,##0" ),
940  EXC_NUMFMT_STRING( 64, UTF8_EURO "#,##0;[RED]-" UTF8_EURO "#,##0" ),
941  EXC_NUMFMT_STRING( 65, UTF8_EURO "#,##0.00;-" UTF8_EURO "#,##0.00" ),
942  EXC_NUMFMT_STRING( 66, UTF8_EURO "#,##0.00;[RED]-" UTF8_EURO "#,##0.00" ),
944 };
945 
946 const XclBuiltInFormat spBuiltInFormats_ENGLISH_US[] =
947 {
948  EXC_NUMFMT_STRING( 14, "M/D/YYYY" ),
949  EXC_NUMFMT_STRING( 15, "D-MMM-YY" ),
950  EXC_NUMFMT_STRING( 16, "D-MMM" ),
951  EXC_NUMFMT_STRING( 20, "h:mm" ),
952  EXC_NUMFMT_STRING( 21, "h:mm:ss" ),
953  EXC_NUMFMT_STRING( 22, "M/D/YYYY h:mm" ),
954  EXC_NUMFMT_STRING( 37, "#,##0_);(#,##0)" ),
955  EXC_NUMFMT_STRING( 38, "#,##0_);[RED](#,##0)" ),
956  EXC_NUMFMT_STRING( 39, "#,##0.00_);(#,##0.00)" ),
957  EXC_NUMFMT_STRING( 40, "#,##0.00_);[RED](#,##0.00)" ),
958  EXC_NUMFMT_STRING( 63, "$#,##0_);($#,##0)" ),
959  EXC_NUMFMT_STRING( 64, "$#,##0_);[RED]($#,##0)" ),
960  EXC_NUMFMT_STRING( 65, "$#,##0.00_);($#,##0.00)" ),
961  EXC_NUMFMT_STRING( 66, "$#,##0.00_);[RED]($#,##0.00)" ),
963 };
964 
965 const XclBuiltInFormat spBuiltInFormats_ENGLISH_CAN[] =
966 {
967  EXC_NUMFMT_STRING( 20, "h:mm" ),
968  EXC_NUMFMT_STRING( 21, "h:mm:ss" ),
969  EXC_NUMFMT_STRING( 22, "DD/MM/YYYY h:mm" ),
970  EXC_NUMFMT_STRING( 63, "$#,##0;-$#,##0" ),
971  EXC_NUMFMT_STRING( 64, "$#,##0;[RED]-$#,##0" ),
972  EXC_NUMFMT_STRING( 65, "$#,##0.00;-$#,##0.00" ),
973  EXC_NUMFMT_STRING( 66, "$#,##0.00;[RED]-$#,##0.00" ),
975 };
976 
977 const XclBuiltInFormat spBuiltInFormats_ENGLISH_AUS[] =
978 {
979  EXC_NUMFMT_STRING( 14, "D/MM/YYYY" ),
980  EXC_NUMFMT_STRING( 15, "D-MMM-YY" ),
981  EXC_NUMFMT_STRING( 16, "D-MMM" ),
982  EXC_NUMFMT_STRING( 20, "h:mm" ),
983  EXC_NUMFMT_STRING( 21, "h:mm:ss" ),
984  EXC_NUMFMT_STRING( 22, "D/MM/YYYY h:mm" ),
985  EXC_NUMFMT_STRING( 63, "$#,##0;-$#,##0" ),
986  EXC_NUMFMT_STRING( 64, "$#,##0;[RED]-$#,##0" ),
987  EXC_NUMFMT_STRING( 65, "$#,##0.00;-$#,##0.00" ),
988  EXC_NUMFMT_STRING( 66, "$#,##0.00;[RED]-$#,##0.00" ),
990 };
991 
992 const XclBuiltInFormat spBuiltInFormats_ENGLISH_SAFRICA[] =
993 {
994  EXC_NUMFMT_STRING( 14, "YYYY/MM/DD" ),
995  EXC_NUMFMT_OFFSET( 18, NF_TIME_HHMMAMPM ),
996  EXC_NUMFMT_OFFSET( 19, NF_TIME_HHMMSSAMPM ),
997  EXC_NUMFMT_STRING( 22, "YYYY/MM/DD hh:mm" ),
998  EXC_NUMFMT_STRING( 63, "\\R #,##0;\\R -#,##0" ),
999  EXC_NUMFMT_STRING( 64, "\\R #,##0;[RED]\\R -#,##0" ),
1000  EXC_NUMFMT_STRING( 65, "\\R #,##0.00;\\R -#,##0.00" ),
1001  EXC_NUMFMT_STRING( 66, "\\R #,##0.00;[RED]\\R -#,##0.00" ),
1003 };
1004 
1005 // FRENCH ---------------------------------------------------------------------
1006 
1008 const XclBuiltInFormat spBuiltInFormats_FRENCH[] =
1009 {
1010  EXC_NUMFMT_STRING( 15, "DD-MMM-YY" ),
1011  EXC_NUMFMT_STRING( 16, "DD-MMM" ),
1012  EXC_NUMFMT_STRING( 17, "MMM-YY" ),
1013  EXC_NUMFMT_STRING( 18, "h:mm AM/PM" ),
1014  EXC_NUMFMT_STRING( 19, "h:mm:ss AM/PM" ),
1016 };
1017 
1018 const XclBuiltInFormat spBuiltInFormats_FRENCH_FRANCE[] =
1019 {
1020  EXC_NUMFMT_STRING( 22, "DD/MM/YYYY hh:mm" ),
1021  EXC_NUMFMT_STRING( 37, "#,##0\\ _" UTF8_EURO ";-#,##0\\ _" UTF8_EURO ),
1022  EXC_NUMFMT_STRING( 38, "#,##0\\ _" UTF8_EURO ";[RED]-#,##0\\ _" UTF8_EURO ),
1023  EXC_NUMFMT_STRING( 39, "#,##0.00\\ _" UTF8_EURO ";-#,##0.00\\ _" UTF8_EURO ),
1024  EXC_NUMFMT_STRING( 40, "#,##0.00\\ _" UTF8_EURO ";[RED]-#,##0.00\\ _" UTF8_EURO ),
1025  EXC_NUMFMT_STRING( 63, "#,##0\\ " UTF8_EURO ";-#,##0\\ " UTF8_EURO ),
1026  EXC_NUMFMT_STRING( 64, "#,##0\\ " UTF8_EURO ";[RED]-#,##0\\ " UTF8_EURO ),
1027  EXC_NUMFMT_STRING( 65, "#,##0.00\\ " UTF8_EURO ";-#,##0.00\\ " UTF8_EURO ),
1028  EXC_NUMFMT_STRING( 66, "#,##0.00\\ " UTF8_EURO ";[RED]-#,##0.00\\ " UTF8_EURO ),
1030 };
1031 
1032 const XclBuiltInFormat spBuiltInFormats_FRENCH_CANADIAN[] =
1033 {
1034  EXC_NUMFMT_STRING( 22, "YYYY-MM-DD hh:mm" ),
1035  EXC_NUMFMT_STRING( 37, "#,##0\\ _$_-;#,##0\\ _$-" ),
1036  EXC_NUMFMT_STRING( 38, "#,##0\\ _$_-;[RED]#,##0\\ _$-" ),
1037  EXC_NUMFMT_STRING( 39, "#,##0.00\\ _$_-;#,##0.00\\ _$-" ),
1038  EXC_NUMFMT_STRING( 40, "#,##0.00\\ _$_-;[RED]#,##0.00\\ _$-" ),
1039  EXC_NUMFMT_STRING( 63, "#,##0\\ $_-;#,##0\\ $-" ),
1040  EXC_NUMFMT_STRING( 64, "#,##0\\ $_-;[RED]#,##0\\ $-" ),
1041  EXC_NUMFMT_STRING( 65, "#,##0.00\\ $_-;#,##0.00\\ $-" ),
1042  EXC_NUMFMT_STRING( 66, "#,##0.00\\ $_-;[RED]#,##0.00\\ $-" ),
1044 };
1045 
1046 const XclBuiltInFormat spBuiltInFormats_FRENCH_SWISS[] =
1047 {
1048  EXC_NUMFMT_STRING( 15, "DD.MMM.YY" ),
1049  EXC_NUMFMT_STRING( 16, "DD.MMM" ),
1050  EXC_NUMFMT_STRING( 17, "MMM.YY" ),
1051  EXC_NUMFMT_STRING( 22, "DD.MM.YYYY hh:mm" ),
1052  EXC_NUMFMT_STRING( 63, "\"SFr. \"#,##0;\"SFr. \"-#,##0" ),
1053  EXC_NUMFMT_STRING( 64, "\"SFr. \"#,##0;[RED]\"SFr. \"-#,##0" ),
1054  EXC_NUMFMT_STRING( 65, "\"SFr. \"#,##0.00;\"SFr. \"-#,##0.00" ),
1055  EXC_NUMFMT_STRING( 66, "\"SFr. \"#,##0.00;[RED]\"SFr. \"-#,##0.00" ),
1057 };
1058 
1059 const XclBuiltInFormat spBuiltInFormats_FRENCH_BELGIAN[] =
1060 {
1061  EXC_NUMFMT_STRING( 14, "D/MM/YYYY" ),
1062  EXC_NUMFMT_STRING( 15, "D-MMM-YY" ),
1063  EXC_NUMFMT_STRING( 16, "D-MMM" ),
1064  EXC_NUMFMT_STRING( 20, "h:mm" ),
1065  EXC_NUMFMT_STRING( 21, "h:mm:ss" ),
1066  EXC_NUMFMT_STRING( 22, "D/MM/YYYY h:mm" ),
1068 };
1069 
1070 // GERMAN ---------------------------------------------------------------------
1071 
1073 const XclBuiltInFormat spBuiltInFormats_GERMAN[] =
1074 {
1075  EXC_NUMFMT_STRING( 15, "DD. MMM YY" ),
1076  EXC_NUMFMT_STRING( 16, "DD. MMM" ),
1077  EXC_NUMFMT_STRING( 17, "MMM YY" ),
1078  EXC_NUMFMT_STRING( 18, "h:mm AM/PM" ),
1079  EXC_NUMFMT_STRING( 19, "h:mm:ss AM/PM" ),
1080  EXC_NUMFMT_STRING( 22, "DD.MM.YYYY hh:mm" ),
1082 };
1083 
1084 const XclBuiltInFormat spBuiltInFormats_GERMAN_GERMANY[] =
1085 {
1086  EXC_NUMFMT_STRING( 37, "#,##0 _" UTF8_EURO ";-#,##0 _" UTF8_EURO ),
1087  EXC_NUMFMT_STRING( 38, "#,##0 _" UTF8_EURO ";[RED]-#,##0 _" UTF8_EURO ),
1088  EXC_NUMFMT_STRING( 39, "#,##0.00 _" UTF8_EURO ";-#,##0.00 _" UTF8_EURO ),
1089  EXC_NUMFMT_STRING( 40, "#,##0.00 _" UTF8_EURO ";[RED]-#,##0.00 _" UTF8_EURO ),
1090  EXC_NUMFMT_STRING( 63, "#,##0 " UTF8_EURO ";-#,##0 " UTF8_EURO ),
1091  EXC_NUMFMT_STRING( 64, "#,##0 " UTF8_EURO ";[RED]-#,##0 " UTF8_EURO ),
1092  EXC_NUMFMT_STRING( 65, "#,##0.00 " UTF8_EURO ";-#,##0.00 " UTF8_EURO ),
1093  EXC_NUMFMT_STRING( 66, "#,##0.00 " UTF8_EURO ";[RED]-#,##0.00 " UTF8_EURO ),
1095 };
1096 
1097 const XclBuiltInFormat spBuiltInFormats_GERMAN_AUSTRIAN[] =
1098 {
1099  EXC_NUMFMT_STRING( 15, "DD.MMM.YY" ),
1100  EXC_NUMFMT_STRING( 16, "DD.MMM" ),
1101  EXC_NUMFMT_STRING( 17, "MMM.YY" ),
1102  EXC_NUMFMT_STRING( 63, UTF8_EURO " #,##0;-" UTF8_EURO " #,##0" ),
1103  EXC_NUMFMT_STRING( 64, UTF8_EURO " #,##0;[RED]-" UTF8_EURO " #,##0" ),
1104  EXC_NUMFMT_STRING( 65, UTF8_EURO " #,##0.00;-" UTF8_EURO " #,##0.00" ),
1105  EXC_NUMFMT_STRING( 66, UTF8_EURO " #,##0.00;[RED]-" UTF8_EURO " #,##0.00" ),
1107 };
1108 
1109 const XclBuiltInFormat spBuiltInFormats_GERMAN_SWISS[] =
1110 {
1111  EXC_NUMFMT_STRING( 63, "\"SFr. \"#,##0;\"SFr. \"-#,##0" ),
1112  EXC_NUMFMT_STRING( 64, "\"SFr. \"#,##0;[RED]\"SFr. \"-#,##0" ),
1113  EXC_NUMFMT_STRING( 65, "\"SFr. \"#,##0.00;\"SFr. \"-#,##0.00" ),
1114  EXC_NUMFMT_STRING( 66, "\"SFr. \"#,##0.00;[RED]\"SFr. \"-#,##0.00" ),
1116 };
1117 
1118 const XclBuiltInFormat spBuiltInFormats_GERMAN_LUXEMBOURG[] =
1119 {
1120  EXC_NUMFMT_STRING( 15, "DD.MMM.YY" ),
1121  EXC_NUMFMT_STRING( 16, "DD.MMM" ),
1122  EXC_NUMFMT_STRING( 17, "MMM.YY" ),
1123  EXC_NUMFMT_STRING( 37, "#,##0 _" UTF8_EURO ";-#,##0 _" UTF8_EURO ),
1124  EXC_NUMFMT_STRING( 38, "#,##0 _" UTF8_EURO ";[RED]-#,##0 _" UTF8_EURO ),
1125  EXC_NUMFMT_STRING( 39, "#,##0.00 _" UTF8_EURO ";-#,##0.00 _" UTF8_EURO ),
1126  EXC_NUMFMT_STRING( 40, "#,##0.00 _" UTF8_EURO ";[RED]-#,##0.00 _" UTF8_EURO ),
1127  EXC_NUMFMT_STRING( 63, "#,##0 " UTF8_EURO ";-#,##0 " UTF8_EURO ),
1128  EXC_NUMFMT_STRING( 64, "#,##0 " UTF8_EURO ";[RED]-#,##0 " UTF8_EURO ),
1129  EXC_NUMFMT_STRING( 65, "#,##0.00 " UTF8_EURO ";-#,##0.00 " UTF8_EURO ),
1130  EXC_NUMFMT_STRING( 66, "#,##0.00 " UTF8_EURO ";[RED]-#,##0.00 " UTF8_EURO ),
1132 };
1133 
1134 const XclBuiltInFormat spBuiltInFormats_GERMAN_LIECHTENSTEIN[] =
1135 {
1136  EXC_NUMFMT_STRING( 63, "\"CHF \"#,##0;\"CHF \"-#,##0" ),
1137  EXC_NUMFMT_STRING( 64, "\"CHF \"#,##0;[RED]\"CHF \"-#,##0" ),
1138  EXC_NUMFMT_STRING( 65, "\"CHF \"#,##0.00;\"CHF \"-#,##0.00" ),
1139  EXC_NUMFMT_STRING( 66, "\"CHF \"#,##0.00;[RED]\"CHF \"-#,##0.00" ),
1141 };
1142 
1143 // ITALIAN --------------------------------------------------------------------
1144 
1145 const XclBuiltInFormat spBuiltInFormats_ITALIAN_ITALY[] =
1146 {
1147  EXC_NUMFMT_STRING( 15, "DD-MMM-YY" ),
1148  EXC_NUMFMT_STRING( 16, "DD-MMM" ),
1149  EXC_NUMFMT_STRING( 17, "MMM-YY" ),
1150  EXC_NUMFMT_STRING( 18, "h:mm AM/PM" ),
1151  EXC_NUMFMT_STRING( 19, "h:mm:ss AM/PM" ),
1152  EXC_NUMFMT_STRING( 20, "h:mm" ),
1153  EXC_NUMFMT_STRING( 21, "h:mm:ss" ),
1154  EXC_NUMFMT_STRING( 22, "DD/MM/YYYY h:mm" ),
1155  EXC_NUMFMT_STRING( 63, UTF8_EURO " #,##0;-" UTF8_EURO " #,##0" ),
1156  EXC_NUMFMT_STRING( 64, UTF8_EURO " #,##0;[RED]-" UTF8_EURO " #,##0" ),
1157  EXC_NUMFMT_STRING( 65, UTF8_EURO " #,##0.00;-" UTF8_EURO " #,##0.00" ),
1158  EXC_NUMFMT_STRING( 66, UTF8_EURO " #,##0.00;[RED]-" UTF8_EURO " #,##0.00" ),
1160 };
1161 
1162 const XclBuiltInFormat spBuiltInFormats_ITALIAN_SWISS[] =
1163 {
1164  EXC_NUMFMT_STRING( 15, "DD.MMM.YY" ),
1165  EXC_NUMFMT_STRING( 16, "DD.MMM" ),
1166  EXC_NUMFMT_STRING( 17, "MMM.YY" ),
1167  EXC_NUMFMT_STRING( 18, "h:mm AM/PM" ),
1168  EXC_NUMFMT_STRING( 19, "h:mm:ss AM/PM" ),
1169  EXC_NUMFMT_STRING( 22, "DD.MM.YYYY hh:mm" ),
1170  EXC_NUMFMT_STRING( 63, "\"SFr. \"#,##0;\"SFr. \"-#,##0" ),
1171  EXC_NUMFMT_STRING( 64, "\"SFr. \"#,##0;[RED]\"SFr. \"-#,##0" ),
1172  EXC_NUMFMT_STRING( 65, "\"SFr. \"#,##0.00;\"SFr. \"-#,##0.00" ),
1173  EXC_NUMFMT_STRING( 66, "\"SFr. \"#,##0.00;[RED]\"SFr. \"-#,##0.00" ),
1175 };
1176 
1177 // SWEDISH --------------------------------------------------------------------
1178 
1179 const XclBuiltInFormat spBuiltInFormats_SWEDISH_SWEDEN[] =
1180 {
1181  EXC_NUMFMT_STRING( 15, "DD-MMM-YY" ),
1182  EXC_NUMFMT_STRING( 16, "DD-MMM" ),
1183  EXC_NUMFMT_STRING( 17, "MMM-YY" ),
1184  EXC_NUMFMT_STRING( 18, "h:mm AM/PM" ),
1185  EXC_NUMFMT_STRING( 19, "h:mm:ss AM/PM" ),
1186  EXC_NUMFMT_STRING( 22, "YYYY-MM-DD hh:mm" ),
1187  EXC_NUMFMT_STRING( 37, "#,##0 _k_r;-#,##0 _k_r" ),
1188  EXC_NUMFMT_STRING( 38, "#,##0 _k_r;[RED]-#,##0 _k_r" ),
1189  EXC_NUMFMT_STRING( 39, "#,##0.00 _k_r;-#,##0.00 _k_r" ),
1190  EXC_NUMFMT_STRING( 40, "#,##0.00 _k_r;[RED]-#,##0.00 _k_r" ),
1191  EXC_NUMFMT_STRING( 63, "#,##0 \"kr\";-#,##0 \"kr\"" ),
1192  EXC_NUMFMT_STRING( 64, "#,##0 \"kr\";[RED]-#,##0 \"kr\"" ),
1193  EXC_NUMFMT_STRING( 65, "#,##0.00 \"kr\";-#,##0.00 \"kr\"" ),
1194  EXC_NUMFMT_STRING( 66, "#,##0.00 \"kr\";[RED]-#,##0.00 \"kr\"" ),
1196 };
1197 
1198 const XclBuiltInFormat spBuiltInFormats_SWEDISH_FINLAND[] =
1199 {
1200  EXC_NUMFMT_STRING( 9, "0 %" ),
1201  EXC_NUMFMT_STRING( 10, "0.00 %" ),
1202  EXC_NUMFMT_STRING( 15, "DD.MMM.YY" ),
1203  EXC_NUMFMT_STRING( 16, "DD.MMM" ),
1204  EXC_NUMFMT_STRING( 17, "MMM.YY" ),
1205  EXC_NUMFMT_STRING( 18, "h:mm AM/PM" ),
1206  EXC_NUMFMT_STRING( 19, "h:mm:ss AM/PM" ),
1207  EXC_NUMFMT_STRING( 22, "D.M.YYYY hh:mm" ),
1208  EXC_NUMFMT_STRING( 37, "#,##0 _" UTF8_EURO ";-#,##0 _" UTF8_EURO ),
1209  EXC_NUMFMT_STRING( 38, "#,##0 _" UTF8_EURO ";[RED]-#,##0 _" UTF8_EURO ),
1210  EXC_NUMFMT_STRING( 39, "#,##0.00 _" UTF8_EURO ";-#,##0.00 _" UTF8_EURO ),
1211  EXC_NUMFMT_STRING( 40, "#,##0.00 _" UTF8_EURO ";[RED]-#,##0.00 _" UTF8_EURO ),
1212  EXC_NUMFMT_STRING( 63, "#,##0 " UTF8_EURO ";-#,##0 " UTF8_EURO ),
1213  EXC_NUMFMT_STRING( 64, "#,##0 " UTF8_EURO ";[RED]-#,##0 " UTF8_EURO ),
1214  EXC_NUMFMT_STRING( 65, "#,##0.00 " UTF8_EURO ";-#,##0.00 " UTF8_EURO ),
1215  EXC_NUMFMT_STRING( 66, "#,##0.00 " UTF8_EURO ";[RED]-#,##0.00 " UTF8_EURO ),
1217 };
1218 
1219 // ASIAN ----------------------------------------------------------------------
1220 
1222 const XclBuiltInFormat spBuiltInFormats_ASIAN[] =
1223 {
1224  EXC_NUMFMT_STRING( 18, "h:mm AM/PM" ),
1225  EXC_NUMFMT_STRING( 19, "h:mm:ss AM/PM" ),
1226  EXC_NUMFMT_STRING( 20, "h:mm" ),
1227  EXC_NUMFMT_STRING( 21, "h:mm:ss" ),
1228  EXC_NUMFMT_STRING( 23, "$#,##0_);($#,##0)" ),
1229  EXC_NUMFMT_STRING( 24, "$#,##0_);[RED]($#,##0)" ),
1230  EXC_NUMFMT_STRING( 25, "$#,##0.00_);($#,##0.00)" ),
1231  EXC_NUMFMT_STRING( 26, "$#,##0.00_);[RED]($#,##0.00)" ),
1232  EXC_NUMFMT_REUSE( 29, 28 ),
1233  EXC_NUMFMT_REUSE( 36, 27 ),
1234  EXC_NUMFMT_REUSE( 50, 27 ),
1235  EXC_NUMFMT_REUSE( 51, 28 ),
1236  EXC_NUMFMT_REUSE( 52, 34 ),
1237  EXC_NUMFMT_REUSE( 53, 35 ),
1238  EXC_NUMFMT_REUSE( 54, 28 ),
1239  EXC_NUMFMT_REUSE( 55, 34 ),
1240  EXC_NUMFMT_REUSE( 56, 35 ),
1241  EXC_NUMFMT_REUSE( 57, 27 ),
1242  EXC_NUMFMT_REUSE( 58, 28 ),
1244 };
1245 
1246 const XclBuiltInFormat spBuiltInFormats_JAPANESE[] =
1247 {
1248  EXC_NUMFMT_STRING( 14, "YYYY/M/D" ),
1249  EXC_NUMFMT_STRING( 15, "D-MMM-YY" ),
1250  EXC_NUMFMT_STRING( 16, "D-MMM" ),
1251  EXC_NUMFMT_STRING( 17, "MMM-YY" ),
1252  EXC_NUMFMT_STRING( 22, "YYYY/M/D h:mm" ),
1253  EXC_NUMFMT_STRING( 27, "[$-0411]GE.M.D" ),
1254  EXC_NUMFMT_STRING( 28, "[$-0411]GGGE" UTF8_CJ_YEAR "M" UTF8_CJ_MON "D" UTF8_CJ_DAY ),
1255  EXC_NUMFMT_STRING( 30, "[$-0411]M/D/YY" ),
1256  EXC_NUMFMT_STRING( 31, "[$-0411]YYYY" UTF8_CJ_YEAR "M" UTF8_CJ_MON "D" UTF8_CJ_DAY ),
1257  EXC_NUMFMT_STRING( 32, "[$-0411]h" UTF8_CJ_HOUR "mm" UTF8_CJ_MIN ),
1258  EXC_NUMFMT_STRING( 33, "[$-0411]h" UTF8_CJ_HOUR "mm" UTF8_CJ_MIN "ss" UTF8_CJ_SEC ),
1259  EXC_NUMFMT_STRING( 34, "[$-0411]YYYY" UTF8_CJ_YEAR "M" UTF8_CJ_MON ),
1260  EXC_NUMFMT_STRING( 35, "[$-0411]M" UTF8_CJ_MON "D" UTF8_CJ_DAY ),
1261  EXC_NUMFMT_STRING( 63, UTF8_YEN_JP "#,##0;-" UTF8_YEN_JP "#,##0" ),
1262  EXC_NUMFMT_STRING( 64, UTF8_YEN_JP "#,##0;[RED]-" UTF8_YEN_JP "#,##0" ),
1263  EXC_NUMFMT_STRING( 65, UTF8_YEN_JP "#,##0.00;-" UTF8_YEN_JP "#,##0.00" ),
1264  EXC_NUMFMT_STRING( 66, UTF8_YEN_JP "#,##0.00;[RED]-" UTF8_YEN_JP "#,##0.00" ),
1266 };
1267 
1268 const XclBuiltInFormat spBuiltInFormats_KOREAN[] =
1269 {
1270  EXC_NUMFMT_STRING( 14, "YYYY-MM-DD" ),
1271  EXC_NUMFMT_STRING( 15, "DD-MMM-YY" ),
1272  EXC_NUMFMT_STRING( 16, "DD-MMM" ),
1273  EXC_NUMFMT_STRING( 17, "MMM-YY" ),
1274  EXC_NUMFMT_STRING( 22, "YYYY-MM-DD h:mm" ),
1275  EXC_NUMFMT_STRING( 27, "[$-0412]YYYY" UTF8_CJ_YEAR " MM" UTF8_CJ_MON " DD" UTF8_CJ_DAY ),
1276  EXC_NUMFMT_STRING( 28, "[$-0412]MM-DD" ),
1277  EXC_NUMFMT_STRING( 30, "[$-0412]MM-DD-YY" ),
1278  EXC_NUMFMT_STRING( 31, "[$-0412]YYYY" UTF8_KO_YEAR " MM" UTF8_KO_MON " DD" UTF8_KO_DAY ),
1279  EXC_NUMFMT_STRING( 32, "[$-0412]h" UTF8_KO_HOUR " mm" UTF8_KO_MIN ),
1280  EXC_NUMFMT_STRING( 33, "[$-0412]h" UTF8_KO_HOUR " mm" UTF8_KO_MIN " ss" UTF8_KO_SEC ),
1281  EXC_NUMFMT_STRING( 34, "[$-0412]YYYY\"/\"MM\"/\"DD" ),
1282  EXC_NUMFMT_STRING( 35, "[$-0412]YYYY-MM-DD" ),
1283  EXC_NUMFMT_STRING( 63, UTF8_WON "#,##0;-" UTF8_WON "#,##0" ),
1284  EXC_NUMFMT_STRING( 64, UTF8_WON "#,##0;[RED]-" UTF8_WON "#,##0" ),
1285  EXC_NUMFMT_STRING( 65, UTF8_WON "#,##0.00;-" UTF8_WON "#,##0.00" ),
1286  EXC_NUMFMT_STRING( 66, UTF8_WON "#,##0.00;[RED]-" UTF8_WON "#,##0.00" ),
1288 };
1289 
1290 const XclBuiltInFormat spBuiltInFormats_CHINESE_SIMPLIFIED[] =
1291 {
1292  EXC_NUMFMT_STRING( 14, "YYYY-M-D" ),
1293  EXC_NUMFMT_STRING( 15, "D-MMM-YY" ),
1294  EXC_NUMFMT_STRING( 16, "D-MMM" ),
1295  EXC_NUMFMT_STRING( 17, "MMM-YY" ),
1296  EXC_NUMFMT_STRING( 22, "YYYY-M-D h:mm" ),
1297  EXC_NUMFMT_STRING( 27, "[$-0804]YYYY" UTF8_CJ_YEAR "M" UTF8_CJ_MON ),
1298  EXC_NUMFMT_STRING( 28, "[$-0804]M" UTF8_CJ_MON "D" UTF8_CJ_DAY ),
1299  EXC_NUMFMT_STRING( 30, "[$-0804]M-D-YY" ),
1300  EXC_NUMFMT_STRING( 31, "[$-0804]YYYY" UTF8_CJ_YEAR "M" UTF8_CJ_MON "D" UTF8_CJ_DAY ),
1301  EXC_NUMFMT_STRING( 32, "[$-0804]h" UTF8_CS_HOUR "mm" UTF8_CJ_MIN ),
1302  EXC_NUMFMT_STRING( 33, "[$-0804]h" UTF8_CS_HOUR "mm" UTF8_CJ_MIN "ss" UTF8_CJ_SEC ),
1303  EXC_NUMFMT_STRING( 34, "[$-0804]AM/PMh" UTF8_CS_HOUR "mm" UTF8_CJ_MIN ),
1304  EXC_NUMFMT_STRING( 35, "[$-0804]AM/PMh" UTF8_CS_HOUR "mm" UTF8_CJ_MIN "ss" UTF8_CJ_SEC ),
1305  EXC_NUMFMT_REUSE( 52, 27 ),
1306  EXC_NUMFMT_REUSE( 53, 28 ),
1307  EXC_NUMFMT_STRING( 63, UTF8_YEN_CS "#,##0;-" UTF8_YEN_CS "#,##0" ),
1308  EXC_NUMFMT_STRING( 64, UTF8_YEN_CS "#,##0;[RED]-" UTF8_YEN_CS "#,##0" ),
1309  EXC_NUMFMT_STRING( 65, UTF8_YEN_CS "#,##0.00;-" UTF8_YEN_CS "#,##0.00" ),
1310  EXC_NUMFMT_STRING( 66, UTF8_YEN_CS "#,##0.00;[RED]-" UTF8_YEN_CS "#,##0.00" ),
1312 };
1313 
1314 const XclBuiltInFormat spBuiltInFormats_CHINESE_TRADITIONAL[] =
1315 {
1316  EXC_NUMFMT_STRING( 15, "D-MMM-YY" ),
1317  EXC_NUMFMT_STRING( 16, "D-MMM" ),
1318  EXC_NUMFMT_STRING( 17, "MMM-YY" ),
1319  EXC_NUMFMT_STRING( 18, "hh:mm AM/PM" ),
1320  EXC_NUMFMT_STRING( 19, "hh:mm:ss AM/PM" ),
1321  EXC_NUMFMT_OFFSET( 20, NF_TIME_HHMM ),
1322  EXC_NUMFMT_OFFSET( 21, NF_TIME_HHMMSS ),
1323  EXC_NUMFMT_STRING( 22, "YYYY/M/D hh:mm" ),
1324  EXC_NUMFMT_STRING( 23, "US$#,##0_);(US$#,##0)" ),
1325  EXC_NUMFMT_STRING( 24, "US$#,##0_);[RED](US$#,##0)" ),
1326  EXC_NUMFMT_STRING( 25, "US$#,##0.00_);(US$#,##0.00)" ),
1327  EXC_NUMFMT_STRING( 26, "US$#,##0.00_);[RED](US$#,##0.00)" ),
1328  EXC_NUMFMT_STRING( 27, "[$-0404]E/M/D" ),
1329  EXC_NUMFMT_STRING( 28, "[$-0404]E" UTF8_CJ_YEAR "M" UTF8_CJ_MON "D" UTF8_CJ_DAY ),
1330  EXC_NUMFMT_STRING( 30, "[$-0404]M/D/YY" ),
1331  EXC_NUMFMT_STRING( 31, "[$-0404]YYYY" UTF8_CJ_YEAR "M" UTF8_CJ_MON "D" UTF8_CJ_DAY ),
1332  EXC_NUMFMT_STRING( 32, "[$-0404]hh" UTF8_CJ_HOUR "mm" UTF8_CJ_MIN ),
1333  EXC_NUMFMT_STRING( 33, "[$-0404]hh" UTF8_CJ_HOUR "mm" UTF8_CJ_MIN "ss" UTF8_CJ_SEC ),
1334  EXC_NUMFMT_STRING( 34, "[$-0404]AM/PMhh" UTF8_CJ_HOUR "mm" UTF8_CJ_MIN ),
1335  EXC_NUMFMT_STRING( 35, "[$-0404]AM/PMhh" UTF8_CJ_HOUR "mm" UTF8_CJ_MIN "ss" UTF8_CJ_SEC ),
1336  EXC_NUMFMT_STRING( 63, "$#,##0;-$#,##0" ),
1337  EXC_NUMFMT_STRING( 64, "$#,##0;[RED]-$#,##0" ),
1338  EXC_NUMFMT_STRING( 65, "$#,##0.00;-$#,##0.00" ),
1339  EXC_NUMFMT_STRING( 66, "$#,##0.00;[RED]-$#,##0.00" ),
1341 };
1342 
1343 // OTHER ----------------------------------------------------------------------
1344 
1345 const XclBuiltInFormat spBuiltInFormats_HEBREW[] =
1346 {
1347  EXC_NUMFMT_STRING( 15, "DD-MMMM-YY" ),
1348  EXC_NUMFMT_STRING( 16, "DD-MMMM" ),
1349  EXC_NUMFMT_STRING( 17, "MMMM-YY" ),
1350  EXC_NUMFMT_STRING( 18, "h:mm AM/PM" ),
1351  EXC_NUMFMT_STRING( 19, "h:mm:ss AM/PM" ),
1352  EXC_NUMFMT_STRING( 63, UTF8_SHEQEL " #,##0;" UTF8_SHEQEL " -#,##0" ),
1353  EXC_NUMFMT_STRING( 64, UTF8_SHEQEL " #,##0;[RED]" UTF8_SHEQEL " -#,##0" ),
1354  EXC_NUMFMT_STRING( 65, UTF8_SHEQEL " #,##0.00;" UTF8_SHEQEL " -#,##0.00" ),
1355  EXC_NUMFMT_STRING( 66, UTF8_SHEQEL " #,##0.00;[RED]" UTF8_SHEQEL " -#,##0.00" ),
1357 };
1358 
1359 const XclBuiltInFormat spBuiltInFormats_THAI[] =
1360 {
1361  EXC_NUMFMT_STRING( 14, "D/M/YYYY" ),
1362  EXC_NUMFMT_STRING( 15, "D-MMM-YY" ),
1363  EXC_NUMFMT_STRING( 16, "D-MMM" ),
1364  EXC_NUMFMT_STRING( 17, "MMM-YY" ),
1365  EXC_NUMFMT_STRING( 18, "h:mm AM/PM" ),
1366  EXC_NUMFMT_STRING( 19, "h:mm:ss AM/PM" ),
1367  EXC_NUMFMT_STRING( 22, "D/M/YYYY h:mm" ),
1368  EXC_NUMFMT_STRING( 59, "t0" ),
1369  EXC_NUMFMT_STRING( 60, "t0.00" ),
1370  EXC_NUMFMT_STRING( 61, "t#,##0" ),
1371  EXC_NUMFMT_STRING( 62, "t#,##0.00" ),
1372  EXC_NUMFMT_STRING( 63, "t" UTF8_BAHT "#,##0_);t(" UTF8_BAHT "#,##0)" ),
1373  EXC_NUMFMT_STRING( 64, "t" UTF8_BAHT "#,##0_);[RED]t(" UTF8_BAHT "#,##0)" ),
1374  EXC_NUMFMT_STRING( 65, "t" UTF8_BAHT "#,##0.00_);t(" UTF8_BAHT "#,##0.00)" ),
1375  EXC_NUMFMT_STRING( 66, "t" UTF8_BAHT "#,##0.00_);[RED]t(" UTF8_BAHT "#,##0.00)" ),
1376  EXC_NUMFMT_STRING( 67, "t0%" ),
1377  EXC_NUMFMT_STRING( 68, "t0.00%" ),
1378  EXC_NUMFMT_STRING( 69, "t# ?/?" ),
1379  EXC_NUMFMT_STRING( 70, "t# ?\?/?\?" ),
1380  EXC_NUMFMT_STRING( 71, "tD/M/EE" ),
1381  EXC_NUMFMT_STRING( 72, "tD-MMM-E" ),
1382  EXC_NUMFMT_STRING( 73, "tD-MMM" ),
1383  EXC_NUMFMT_STRING( 74, "tMMM-E" ),
1384  EXC_NUMFMT_STRING( 75, "th:mm" ),
1385  EXC_NUMFMT_STRING( 76, "th:mm:ss" ),
1386  EXC_NUMFMT_STRING( 77, "tD/M/EE h:mm" ),
1387  EXC_NUMFMT_STRING( 78, "tmm:ss" ),
1388  EXC_NUMFMT_STRING( 79, "t[h]:mm:ss" ),
1389  EXC_NUMFMT_STRING( 80, "tmm:ss.0" ),
1390  EXC_NUMFMT_STRING( 81, "D/M/E" ),
1392 };
1393 
1394 #undef EXC_NUMFMT_ENDTABLE
1395 #undef EXC_NUMFMT_REUSE
1396 #undef EXC_NUMFMT_OFFSET
1397 #undef EXC_NUMFMT_STRING
1398 
1400 struct XclBuiltInFormatTable
1401 {
1403  LanguageType meParentLang;
1404  const XclBuiltInFormat* mpFormats;
1405 };
1406 
1407 const XclBuiltInFormatTable spBuiltInFormatTables[] =
1408 { // language parent language format table
1409  { LANGUAGE_DONTKNOW, LANGUAGE_NONE, spBuiltInFormats_DONTKNOW },
1410 
1411  { LANGUAGE_ENGLISH, LANGUAGE_DONTKNOW, spBuiltInFormats_ENGLISH },
1412  { LANGUAGE_ENGLISH_UK, LANGUAGE_ENGLISH, spBuiltInFormats_ENGLISH_UK },
1413  { LANGUAGE_ENGLISH_EIRE, LANGUAGE_ENGLISH, spBuiltInFormats_ENGLISH_EIRE },
1414  { LANGUAGE_ENGLISH_US, LANGUAGE_ENGLISH, spBuiltInFormats_ENGLISH_US },
1415  { LANGUAGE_ENGLISH_CAN, LANGUAGE_ENGLISH, spBuiltInFormats_ENGLISH_CAN },
1416  { LANGUAGE_ENGLISH_AUS, LANGUAGE_ENGLISH, spBuiltInFormats_ENGLISH_AUS },
1417  { LANGUAGE_ENGLISH_SAFRICA, LANGUAGE_ENGLISH, spBuiltInFormats_ENGLISH_SAFRICA },
1419 
1420  { PRV_LANGUAGE_FRENCH_PRIM, LANGUAGE_DONTKNOW, spBuiltInFormats_FRENCH },
1421  { LANGUAGE_FRENCH, PRV_LANGUAGE_FRENCH_PRIM, spBuiltInFormats_FRENCH_FRANCE },
1422  { LANGUAGE_FRENCH_CANADIAN, PRV_LANGUAGE_FRENCH_PRIM, spBuiltInFormats_FRENCH_CANADIAN },
1423  { LANGUAGE_FRENCH_SWISS, PRV_LANGUAGE_FRENCH_PRIM, spBuiltInFormats_FRENCH_SWISS },
1424  { LANGUAGE_FRENCH_BELGIAN, LANGUAGE_FRENCH, spBuiltInFormats_FRENCH_BELGIAN },
1427 
1428  { PRV_LANGUAGE_GERMAN_PRIM, LANGUAGE_DONTKNOW, spBuiltInFormats_GERMAN },
1429  { LANGUAGE_GERMAN, PRV_LANGUAGE_GERMAN_PRIM, spBuiltInFormats_GERMAN_GERMANY },
1430  { LANGUAGE_GERMAN_AUSTRIAN, PRV_LANGUAGE_GERMAN_PRIM, spBuiltInFormats_GERMAN_AUSTRIAN },
1431  { LANGUAGE_GERMAN_SWISS, PRV_LANGUAGE_GERMAN_PRIM, spBuiltInFormats_GERMAN_SWISS },
1432  { LANGUAGE_GERMAN_LUXEMBOURG, PRV_LANGUAGE_GERMAN_PRIM, spBuiltInFormats_GERMAN_LUXEMBOURG },
1433  { LANGUAGE_GERMAN_LIECHTENSTEIN, PRV_LANGUAGE_GERMAN_PRIM, spBuiltInFormats_GERMAN_LIECHTENSTEIN },
1434 
1435  { LANGUAGE_ITALIAN, LANGUAGE_DONTKNOW, spBuiltInFormats_ITALIAN_ITALY },
1436  { LANGUAGE_ITALIAN_SWISS, LANGUAGE_DONTKNOW, spBuiltInFormats_ITALIAN_SWISS },
1437 
1438  { LANGUAGE_SWEDISH, LANGUAGE_DONTKNOW, spBuiltInFormats_SWEDISH_SWEDEN },
1439  { LANGUAGE_SWEDISH_FINLAND, LANGUAGE_DONTKNOW, spBuiltInFormats_SWEDISH_FINLAND },
1440 
1441  { PRV_LANGUAGE_ASIAN_PRIM, LANGUAGE_DONTKNOW, spBuiltInFormats_ASIAN },
1442  { LANGUAGE_JAPANESE, PRV_LANGUAGE_ASIAN_PRIM, spBuiltInFormats_JAPANESE },
1443  { LANGUAGE_KOREAN, PRV_LANGUAGE_ASIAN_PRIM, spBuiltInFormats_KOREAN },
1444  { LANGUAGE_CHINESE_SIMPLIFIED, PRV_LANGUAGE_ASIAN_PRIM, spBuiltInFormats_CHINESE_SIMPLIFIED },
1445  { LANGUAGE_CHINESE_TRADITIONAL, PRV_LANGUAGE_ASIAN_PRIM, spBuiltInFormats_CHINESE_TRADITIONAL },
1446 
1447  { LANGUAGE_HEBREW, LANGUAGE_DONTKNOW, spBuiltInFormats_HEBREW },
1448  { LANGUAGE_THAI, LANGUAGE_DONTKNOW, spBuiltInFormats_THAI }
1449 };
1450 
1451 } // namespace
1452 
1454  meSysLang( rRoot.GetSysLanguage() ),
1455  mnStdScNumFmt( rRoot.GetFormatter().GetStandardIndex( ScGlobal::eLnge ) )
1456 {
1457  // *** insert default formats (BIFF5+ only)***
1458 
1459  if( rRoot.GetBiff() >= EXC_BIFF5 )
1461 }
1462 
1464 {
1465  maFmtMap.clear();
1466 }
1467 
1468 void XclNumFmtBuffer::InsertFormat( sal_uInt16 nXclNumFmt, const OUString& rFormat )
1469 {
1470  XclNumFmt& rNumFmt = maFmtMap[ nXclNumFmt ];
1471  rNumFmt.maFormat = rFormat;
1472  // #i62053# rFormat may be an empty string, meOffset must be initialized
1473  rNumFmt.meOffset = NF_NUMBER_STANDARD;
1474  rNumFmt.meLanguage = LANGUAGE_SYSTEM;
1475 }
1476 
1478 {
1479  // build a map containing tables for all languages
1480  typedef ::std::map< LanguageType, const XclBuiltInFormatTable* > XclBuiltInMap;
1481  XclBuiltInMap aBuiltInMap;
1482  for(const auto &rTable : spBuiltInFormatTables)
1483  aBuiltInMap[ rTable.meLanguage ] = &rTable;
1484 
1485  // build a list of table pointers for the current language, with all parent tables
1486  typedef ::std::vector< const XclBuiltInFormatTable* > XclBuiltInVec;
1487  XclBuiltInVec aBuiltInVec;
1488  for( XclBuiltInMap::const_iterator aMIt = aBuiltInMap.find( meSysLang ), aMEnd = aBuiltInMap.end();
1489  aMIt != aMEnd; aMIt = aBuiltInMap.find( aMIt->second->meParentLang ) )
1490  aBuiltInVec.push_back( aMIt->second );
1491  // language not supported
1492  if( aBuiltInVec.empty() )
1493  {
1494  SAL_WARN("sc", "XclNumFmtBuffer::InsertBuiltinFormats - language not supported (#i29949#) 0x" << std::hex << meSysLang );
1495  XclBuiltInMap::const_iterator aMIt = aBuiltInMap.find( LANGUAGE_DONTKNOW );
1496  OSL_ENSURE( aMIt != aBuiltInMap.end(), "XclNumFmtBuffer::InsertBuiltinFormats - default map not found" );
1497  if( aMIt != aBuiltInMap.end() )
1498  aBuiltInVec.push_back( aMIt->second );
1499  }
1500 
1501  // insert the default formats in the format map, from root parent to system language
1502  std::map< sal_uInt16, sal_uInt16 > aReuseMap;
1503  for( XclBuiltInVec::reverse_iterator aVIt = aBuiltInVec.rbegin(), aVEnd = aBuiltInVec.rend(); aVIt != aVEnd; ++aVIt )
1504  {
1505  // put LANGUAGE_SYSTEM for all entries in default table
1506  LanguageType eLang = ((*aVIt)->meLanguage == LANGUAGE_DONTKNOW) ? LANGUAGE_SYSTEM : meSysLang;
1507  for( const XclBuiltInFormat* pBuiltIn = (*aVIt)->mpFormats; pBuiltIn && (pBuiltIn->mnXclNumFmt != EXC_FORMAT_NOTFOUND); ++pBuiltIn )
1508  {
1509  XclNumFmt& rNumFmt = maFmtMap[ pBuiltIn->mnXclNumFmt ];
1510 
1511  rNumFmt.meOffset = pBuiltIn->meOffset;
1512  rNumFmt.meLanguage = eLang;
1513 
1514  if( pBuiltIn->mpFormat )
1515  rNumFmt.maFormat = OUString( pBuiltIn->mpFormat, strlen(pBuiltIn->mpFormat), RTL_TEXTENCODING_UTF8 );
1516  else
1517  rNumFmt.maFormat = EMPTY_OUSTRING;
1518 
1519  if( pBuiltIn->meOffset == PRV_NF_INDEX_REUSE )
1520  aReuseMap[ pBuiltIn->mnXclNumFmt ] = pBuiltIn->mnXclReuseFmt;
1521  else
1522  aReuseMap.erase( pBuiltIn->mnXclNumFmt );
1523  }
1524  }
1525 
1526  // copy reused number formats
1527  for( const auto& [rXclNumFmt, rXclReuseFmt] : aReuseMap )
1528  maFmtMap[ rXclNumFmt ] = maFmtMap[ rXclReuseFmt ];
1529 }
1530 
1531 // Cell formatting data (XF) ==================================================
1532 
1534  mbLocked( true ), // default in Excel and Calc
1535  mbHidden( false )
1536 {
1537 }
1538 
1539 bool operator==( const XclCellProt& rLeft, const XclCellProt& rRight )
1540 {
1541  return (rLeft.mbLocked == rRight.mbLocked) && (rLeft.mbHidden == rRight.mbHidden);
1542 }
1543 
1545  mnHorAlign( EXC_XF_HOR_GENERAL ),
1546  mnVerAlign( EXC_XF_VER_BOTTOM ),
1547  mnOrient( EXC_ORIENT_NONE ),
1548  mnTextDir( EXC_XF_TEXTDIR_CONTEXT ),
1549  mnRotation( EXC_ROT_NONE ),
1550  mnIndent( 0 ),
1551  mbLineBreak( false ),
1552  mbShrink( false )
1553 {
1554 }
1555 
1557 {
1558  SvxCellHorJustify eHorJust = SvxCellHorJustify::Standard;
1559  switch( mnHorAlign )
1560  {
1561  case EXC_XF_HOR_GENERAL: eHorJust = SvxCellHorJustify::Standard; break;
1562  case EXC_XF_HOR_LEFT: eHorJust = SvxCellHorJustify::Left; break;
1563  case EXC_XF_HOR_CENTER_AS:
1564  case EXC_XF_HOR_CENTER: eHorJust = SvxCellHorJustify::Center; break;
1565  case EXC_XF_HOR_RIGHT: eHorJust = SvxCellHorJustify::Right; break;
1566  case EXC_XF_HOR_FILL: eHorJust = SvxCellHorJustify::Repeat; break;
1567  case EXC_XF_HOR_JUSTIFY:
1568  case EXC_XF_HOR_DISTRIB: eHorJust = SvxCellHorJustify::Block; break;
1569  default: OSL_FAIL( "XclCellAlign::GetScHorAlign - unknown horizontal alignment" );
1570  }
1571  return eHorJust;
1572 }
1573 
1575 {
1576  return (mnHorAlign == EXC_XF_HOR_DISTRIB) ? SvxCellJustifyMethod::Distribute : SvxCellJustifyMethod::Auto;
1577 }
1578 
1580 {
1581  SvxCellVerJustify eVerJust = SvxCellVerJustify::Standard;
1582  switch( mnVerAlign )
1583  {
1584  case EXC_XF_VER_TOP: eVerJust = SvxCellVerJustify::Top; break;
1585  case EXC_XF_VER_CENTER: eVerJust = SvxCellVerJustify::Center; break;
1586  case EXC_XF_VER_BOTTOM: eVerJust = SvxCellVerJustify::Standard; break;
1587  case EXC_XF_VER_JUSTIFY:
1588  case EXC_XF_VER_DISTRIB: eVerJust = SvxCellVerJustify::Block; break;
1589  default: OSL_FAIL( "XclCellAlign::GetScVerAlign - unknown vertical alignment" );
1590  }
1591  return eVerJust;
1592 }
1593 
1595 {
1596  return (mnVerAlign == EXC_XF_VER_DISTRIB) ? SvxCellJustifyMethod::Distribute : SvxCellJustifyMethod::Auto;
1597 }
1598 
1600 {
1601  SvxFrameDirection eFrameDir = SvxFrameDirection::Environment;
1602  switch( mnTextDir )
1603  {
1604  case EXC_XF_TEXTDIR_CONTEXT: eFrameDir = SvxFrameDirection::Environment; break;
1605  case EXC_XF_TEXTDIR_LTR: eFrameDir = SvxFrameDirection::Horizontal_LR_TB; break;
1606  case EXC_XF_TEXTDIR_RTL: eFrameDir = SvxFrameDirection::Horizontal_RL_TB; break;
1607  default: OSL_FAIL( "XclCellAlign::GetScFrameDir - unknown CTL text direction" );
1608  }
1609  return eFrameDir;
1610 }
1611 
1613 {
1614  switch( eHorJust )
1615  {
1616  case SvxCellHorJustify::Standard: mnHorAlign = EXC_XF_HOR_GENERAL; break;
1617  case SvxCellHorJustify::Left: mnHorAlign = EXC_XF_HOR_LEFT; break;
1618  case SvxCellHorJustify::Center: mnHorAlign = EXC_XF_HOR_CENTER; break;
1619  case SvxCellHorJustify::Right: mnHorAlign = EXC_XF_HOR_RIGHT; break;
1620  case SvxCellHorJustify::Block: mnHorAlign = EXC_XF_HOR_JUSTIFY; break;
1621  case SvxCellHorJustify::Repeat: mnHorAlign = EXC_XF_HOR_FILL; break;
1622  default: mnHorAlign = EXC_XF_HOR_GENERAL;
1623  OSL_FAIL( "XclCellAlign::SetScHorAlign - unknown horizontal alignment" );
1624  }
1625 }
1626 
1628 {
1629  switch( eVerJust )
1630  {
1631  case SvxCellVerJustify::Standard: mnVerAlign = EXC_XF_VER_BOTTOM; break;
1632  case SvxCellVerJustify::Top: mnVerAlign = EXC_XF_VER_TOP; break;
1633  case SvxCellVerJustify::Center: mnVerAlign = EXC_XF_VER_CENTER; break;
1634  case SvxCellVerJustify::Bottom: mnVerAlign = EXC_XF_VER_BOTTOM; break;
1635  default: mnVerAlign = EXC_XF_VER_BOTTOM;
1636  OSL_FAIL( "XclCellAlign::SetScVerAlign - unknown vertical alignment" );
1637  }
1638 }
1639 
1641 {
1642  switch( eFrameDir )
1643  {
1644  case SvxFrameDirection::Environment: mnTextDir = EXC_XF_TEXTDIR_CONTEXT; break;
1645  case SvxFrameDirection::Horizontal_LR_TB: mnTextDir = EXC_XF_TEXTDIR_LTR; break;
1646  case SvxFrameDirection::Horizontal_RL_TB: mnTextDir = EXC_XF_TEXTDIR_RTL; break;
1647  default: mnTextDir = EXC_XF_TEXTDIR_CONTEXT;
1648  OSL_FAIL( "XclCellAlign::SetScFrameDir - unknown CTL text direction" );
1649  }
1650 }
1651 
1652 bool operator==( const XclCellAlign& rLeft, const XclCellAlign& rRight )
1653 {
1654  return
1655  (rLeft.mnHorAlign == rRight.mnHorAlign) && (rLeft.mnVerAlign == rRight.mnVerAlign) &&
1656  (rLeft.mnTextDir == rRight.mnTextDir) && (rLeft.mnOrient == rRight.mnOrient) &&
1657  (rLeft.mnRotation == rRight.mnRotation) && (rLeft.mnIndent == rRight.mnIndent) &&
1658  (rLeft.mbLineBreak == rRight.mbLineBreak) && (rLeft.mbShrink == rRight.mbShrink);
1659 }
1660 
1662  mnLeftColor( 0 ),
1663  mnRightColor( 0 ),
1664  mnTopColor( 0 ),
1665  mnBottomColor( 0 ),
1666  mnDiagColor( 0 ),
1667  mnLeftLine( EXC_LINE_NONE ),
1668  mnRightLine( EXC_LINE_NONE ),
1669  mnTopLine( EXC_LINE_NONE ),
1670  mnBottomLine( EXC_LINE_NONE ),
1671  mnDiagLine( EXC_LINE_NONE ),
1672  mbDiagTLtoBR( false ),
1673  mbDiagBLtoTR( false )
1674 {
1675 }
1676 
1677 bool operator==( const XclCellBorder& rLeft, const XclCellBorder& rRight )
1678 {
1679  return
1680  (rLeft.mnLeftColor == rRight.mnLeftColor) && (rLeft.mnRightColor == rRight.mnRightColor) &&
1681  (rLeft.mnTopColor == rRight.mnTopColor) && (rLeft.mnBottomColor == rRight.mnBottomColor) &&
1682  (rLeft.mnLeftLine == rRight.mnLeftLine) && (rLeft.mnRightLine == rRight.mnRightLine) &&
1683  (rLeft.mnTopLine == rRight.mnTopLine) && (rLeft.mnBottomLine == rRight.mnBottomLine) &&
1684  (rLeft.mnDiagColor == rRight.mnDiagColor) && (rLeft.mnDiagLine == rRight.mnDiagLine) &&
1685  (rLeft.mbDiagTLtoBR == rRight.mbDiagTLtoBR) && (rLeft.mbDiagBLtoTR == rRight.mbDiagBLtoTR);
1686 }
1687 
1689  mnForeColor( EXC_COLOR_WINDOWTEXT ),
1690  mnBackColor( EXC_COLOR_WINDOWBACK ),
1691  mnPattern( EXC_PATT_NONE )
1692 {
1693 }
1694 
1696 {
1698 }
1699 
1700 bool operator==( const XclCellArea& rLeft, const XclCellArea& rRight )
1701 {
1702  return
1703  (rLeft.mnForeColor == rRight.mnForeColor) && (rLeft.mnBackColor == rRight.mnBackColor) &&
1704  (rLeft.mnPattern == rRight.mnPattern);
1705 }
1706 
1707 XclXFBase::XclXFBase( bool bCellXF ) :
1708  mnParent( bCellXF ? EXC_XF_DEFAULTSTYLE : EXC_XF_STYLEPARENT ),
1709  mbCellXF( bCellXF )
1710 {
1711  SetAllUsedFlags( false );
1712 }
1713 
1715 {
1716 }
1717 
1718 void XclXFBase::SetAllUsedFlags( bool bUsed )
1719 {
1721 }
1722 
1724 {
1726 }
1727 
1728 bool XclXFBase::Equals( const XclXFBase& rCmp ) const
1729 {
1730  return
1731  (mbCellXF == rCmp.mbCellXF) && (mnParent == rCmp.mnParent) &&
1732  (mbProtUsed == rCmp.mbProtUsed) && (mbFontUsed == rCmp.mbFontUsed) &&
1733  (mbFmtUsed == rCmp.mbFmtUsed) && (mbAlignUsed == rCmp.mbAlignUsed) &&
1734  (mbBorderUsed == rCmp.mbBorderUsed) && (mbAreaUsed == rCmp.mbAreaUsed);
1735 }
1736 
1737 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
bool operator==(const XclFontData &rLeft, const XclFontData &rRight)
Definition: xlstyle.cxx:517
XclFontPropSetType
Enumerates different types for objects with font settings (using different property names)...
Definition: xlstyle.hxx:396
sal_uInt16 mnBottomColor
Palette index for top line.
Definition: xlstyle.hxx:528
void FillFromVclFont(const vcl::Font &rFont)
Fills all members (except color and escapement) from the passed font.
Definition: xlstyle.cxx:202
sal_uInt8 mnTopLine
Style of right line.
Definition: xlstyle.hxx:532
bool mbShrink
true = Multi-line text.
Definition: xlstyle.hxx:497
NF_SCIENTIFIC_000E00
const sal_uInt8 EXC_ORIENT_NONE
Definition: xlconst.hxx:139
#define LANGUAGE_NONE
bool mbAreaUsed
true = border data used.
Definition: xlstyle.hxx:595
SvxCellHorJustify
#define LANGUAGE_GERMAN
#define DBG_ERROR_BIFF()
Definition: xltools.hxx:31
const sal_uInt8 EXC_XF_VER_CENTER
Definition: xlstyle.hxx:169
const sal_uInt8 EXC_XF_HOR_JUSTIFY
Definition: xlstyle.hxx:164
const sal_uInt8 EXC_XF_HOR_CENTER
Definition: xlstyle.hxx:161
bool mbDiagBLtoTR
true = Top-left to bottom-right on.
Definition: xlstyle.hxx:536
sal_uInt8 mnCharSet
Windows font family.
Definition: xlstyle.hxx:295
const sal_uInt8 EXC_XF_TEXTDIR_CONTEXT
Definition: xlstyle.hxx:174
const sal_uInt16 EXC_FONTWGHT_THIN
Definition: xlstyle.hxx:107
sal_uInt16 mnDiagColor
Palette index for bottom line.
Definition: xlstyle.hxx:529
const Color spnDefColorTable8[]
Default color table for BIFF8.
Definition: xlstyle.cxx:75
#define LANGUAGE_ENGLISH_SAFRICA
sal_uInt8 mnOrient
Vertical alignment.
Definition: xlstyle.hxx:492
#define LANGUAGE_ENGLISH_UK
bool mbShadow
true = Outlined.
Definition: xlstyle.hxx:300
NF_NUMBER_1000INT
const OUString & GetFamilyName() const
void SetAllUsedFlags(bool bUsed)
Sets all "attribute used" flags to the passed state.
Definition: xlstyle.cxx:1718
FAMILY_SCRIPT
#define EMPTY_OUSTRING
Definition: global.hxx:215
const sal_uInt8 EXC_XF_HOR_DISTRIB
Definition: xlstyle.hxx:166
#define UTF8_KO_MIN
Definition: xlstyle.cxx:820
css::awt::FontSlant GetApiPosture() const
Returns the API font posture.
Definition: xlstyle.cxx:416
sal_Int16 GetApiFontEncoding() const
Returns the API font text encoding.
Definition: xlstyle.cxx:410
#define LANGUAGE_ENGLISH_US
#define EXC_PALETTE_EGA_COLORS_DARK
Standard EGA colors, dark.
Definition: xlstyle.cxx:44
FAMILY_MODERN
bool mbDiagTLtoBR
Style of diagonal line(s).
Definition: xlstyle.hxx:535
Color mnNoteBack
Note text color.
Definition: xlstyle.hxx:271
NF_INDEX_TABLE_ENTRIES
const sal_uInt16 EXC_COLOR_BUTTONBACK
System window background color (>=BIFF5).
Definition: xlstyle.hxx:210
signed char sal_Int8
bool IsOutline() const
ScfPropSetHelper maHlpChCommon
Definition: xlstyle.hxx:425
FAMILY_DONTKNOW
const sal_uInt8 EXC_XF_HOR_RIGHT
Definition: xlstyle.hxx:162
const StyleSettings & GetStyleSettings() const
static const AllSettings & GetSettings()
Color mnNoteText
System button background color.
Definition: xlstyle.hxx:270
bool mbCellXF
Index to parent style XF.
Definition: xlstyle.hxx:589
sal_Int16 GetApiEscapement() const
Returns the API escapement style.
Definition: xlstyle.cxx:439
const Color & GetFaceColor() const
This struct helps reading and writing Excel fonts.
Definition: xlstyle.hxx:286
#define LANGUAGE_KOREAN
WEIGHT_THIN
XclNumFmtMap maFmtMap
Definition: xlstyle.hxx:469
sal_uInt8 mnRightLine
Style of left line.
Definition: xlstyle.hxx:531
SvxEscapement GetScEscapement() const
Returns the Calc escapement style.
Definition: xlstyle.cxx:290
const sal_uInt16 EXC_COLOR_NOTEBACK
Automatic frame border for series (BIFF8 charts).
Definition: xlstyle.hxx:214
ScfPropSetHelper maHlpChCmplx
Chart properties for Asian script.
Definition: xlstyle.hxx:428
CALCNOTESBACKGROUND
NF_NUMBER_DEC2
WEIGHT_BLACK
bool mbFmtUsed
true = font index used.
Definition: xlstyle.hxx:592
XclFontData()
true = Shadowed.
Definition: xlstyle.cxx:172
const Color * mpnColorTable
Definition: xlstyle.hxx:266
sal_uInt16 mnHeight
Font color.
Definition: xlstyle.hxx:291
WEIGHT_SEMIBOLD
#define LANGUAGE_FRENCH_MONACO
LanguageType meLanguage
SvxFrameDirection
rtl_TextEncoding GetFontEncoding() const
Returns the font text encoding.
Definition: xlstyle.cxx:247
const Color spnDefColorTable3[]
Default color table for BIFF3/BIFF4.
Definition: xlstyle.cxx:54
const sal_uInt16 EXC_FONTWGHT_DONTKNOW
Definition: xlstyle.hxx:106
#define UTF8_CJ_SEC
Definition: xlstyle.cxx:810
NF_NUMBER_1000DEC2
ScfPropSetHelper maHlpChEscapement
Chart properties for Complex script, no font name.
Definition: xlstyle.hxx:432
STRIKEOUT_SLASH
const sal_uInt8 EXC_XF_VER_JUSTIFY
Definition: xlstyle.hxx:171
#define LANGUAGE_FRENCH_SWISS
FAMILY_ROMAN
const sal_uInt16 EXC_FONTWGHT_SEMILIGHT
Definition: xlstyle.hxx:110
#define LANGUAGE_GERMAN_AUSTRIAN
const sal_uInt8 EXC_FONTFAM_SWISS
Definition: xlstyle.hxx:87
#define LANGUAGE_FRENCH_CANADIAN
#define UTF8_EURO
Definition: xlstyle.cxx:797
void SetScFrameDir(SvxFrameDirection eFrameDir)
Sets the Calc frame direction.
Definition: xlstyle.cxx:1640
#define LANGUAGE_ENGLISH_NZ
NF_TIME_HHMM
const sal_uInt16 EXC_FONTWGHT_LIGHT
Definition: xlstyle.hxx:109
WEIGHT_LIGHT
sal_uInt32 mnTableSize
Note background color.
Definition: xlstyle.hxx:272
SvxCellVerJustify GetScVerAlign() const
Returns the Calc vertical alignment.
Definition: xlstyle.cxx:1579
FontItalic GetScPosture() const
Returns the Calc font posture.
Definition: xlstyle.cxx:253
const sal_uInt8 EXC_XF_HOR_GENERAL
Definition: xlstyle.hxx:159
NF_PERCENT_DEC2
const sal_uInt16 EXC_FORMAT_NOTFOUND
Definition: xlstyle.hxx:70
FontFamily GetFamilyType()
NF_DATE_SYS_DDMMM
#define UTF8_CJ_MIN
Definition: xlstyle.cxx:809
const sal_uInt16 EXC_FONTESC_SUB
Definition: xlstyle.hxx:128
WEIGHT_BOLD
const sal_uInt16 EXC_FONTWGHT_BOLD
Definition: xlstyle.hxx:114
constexpr::Color COL_AUTO(0xFF, 0xFF, 0xFF, 0xFF)
#define UTF8_CS_HOUR
Definition: xlstyle.cxx:813
NF_NUMBER_STANDARD
SvxCellJustifyMethod GetScVerJustifyMethod() const
Returns vertical justification method as Calc's attribute.
Definition: xlstyle.cxx:1594
const sal_uInt8 EXC_FONTFAM_ROMAN
Definition: xlstyle.hxx:86
FontItalic GetItalic()
void SetApiWeight(float fApiWeight)
Sets the API font weight.
Definition: xlstyle.cxx:483
SvxCellVerJustify
static OUString GetXclFontName(const OUString &rFontName)
Returns the matching Excel font name for a passed Calc font name.
Definition: xltools.cxx:453
#define UTF8_YEN_CS
Definition: xlstyle.cxx:801
const BuiltinFormat * mpFormats
The locale of the parent table.
LINESTYLE_NONE
MS Excel 4.0.
Definition: xlconst.hxx:35
const sal_uInt16 EXC_COLOR_NOTETEXT
Note background color.
Definition: xlstyle.hxx:215
#define LANGUAGE_SWEDISH
const Color spnDefColorTable2[]
Default color table for BIFF2.
Definition: xlstyle.cxx:48
const sal_uInt16 EXC_FONTWGHT_BLACK
Definition: xlstyle.hxx:116
#define LANGUAGE_ITALIAN
ScfPropSetHelper maHlpControl
Chart properties for font escapement.
Definition: xlstyle.hxx:433
bool mbOutline
true = Struck out.
Definition: xlstyle.hxx:299
sal_uInt16 mnBackColor
Palette index to foreground color.
Definition: xlstyle.hxx:547
XclCellArea()
Fill pattern.
Definition: xlstyle.cxx:1688
const sal_uInt16 EXC_FONTESC_NONE
Definition: xlstyle.hxx:126
NfIndexTableOffset
#define UTF8_WON
Definition: xlstyle.cxx:800
const sal_uInt16 EXC_FONTWGHT_MEDIUM
Definition: xlstyle.hxx:112
void SetScWeight(FontWeight eScWeight)
Sets the Calc font weight.
Definition: xlstyle.cxx:339
LanguageType meLanguage
SvNumberFormatter format index, if maFormat is empty.
Definition: xlstyle.hxx:442
sal_uInt8 mnDiagLine
Style of bottom line.
Definition: xlstyle.hxx:534
sal_uInt16 mnRightColor
Palette index for left line.
Definition: xlstyle.hxx:526
void InitializeWrite()
Must be called before reading or storing property values in the helper.
Definition: fapihelper.cxx:335
sal_uInt16 mnForeColor
Definition: xlstyle.hxx:546
void SetApiPosture(css::awt::FontSlant eApiPosture)
Sets the API font posture.
Definition: xlstyle.cxx:474
NF_TIME_HHMMSS
sal_uInt16 mnTopColor
Palette index for right line.
Definition: xlstyle.hxx:527
bool mbItalic
Underline style.
Definition: xlstyle.hxx:297
#define LANGUAGE_SWEDISH_FINLAND
const sal_uInt16 EXC_COLOR_WINDOWTEXT3
First user defined color.
Definition: xlstyle.hxx:206
STRIKEOUT_SINGLE
FAMILY_DECORATIVE
void InsertBuiltinFormats()
Inserts built-in number formats for the current system language.
Definition: xlstyle.cxx:1477
Color mnWindowBack
System window text color.
Definition: xlstyle.hxx:268
const sal_uInt8 EXC_FONTFAM_SCRIPT
Definition: xlstyle.hxx:90
void ReadFromPropertySet(const ScfPropertySet &rPropSet)
Reads all values from the passed property set.
Definition: fapihelper.cxx:306
#define LANGUAGE_ENGLISH_CAN
bool mbFontUsed
true = cell protection used.
Definition: xlstyle.hxx:591
#define UTF8_KO_MON
Definition: xlstyle.cxx:817
bool mbAlignUsed
true = number format used.
Definition: xlstyle.hxx:593
sal_uInt8 mnVerAlign
Horizontal alignment.
Definition: xlstyle.hxx:491
#define SAL_N_ELEMENTS(arr)
sal_uInt16 mnLeftColor
Definition: xlstyle.hxx:525
NF_TIME_HHMMSSAMPM
const sal_uInt16 EXC_XF_STYLEPARENT
Definition: xlstyle.hxx:148
ScfPropSetHelper maHlpChAsian
Chart properties for Western script.
Definition: xlstyle.hxx:427
void WriteToPropertySet(ScfPropertySet &rPropSet) const
Writes all values to the passed property set.
Definition: fapihelper.cxx:352
WEIGHT_DONTKNOW
NfIndexTableOffset meOffset
Format string, may be empty (meOffset used then).
Definition: xlstyle.hxx:441
FontWeight GetScWeight() const
Returns the Calc font weight.
Definition: xlstyle.cxx:258
#define EXC_NUMFMT_REUSE(nXclNumFmt, nXclReuse)
Defines an Excel built-in number format that is the same as the specified.
Definition: xlstyle.cxx:788
NF_FRACTION_2D
#define LANGUAGE_HEBREW
XclNumFmtBuffer(const XclRoot &rRoot)
Definition: xlstyle.cxx:1453
sal_uInt16 mnEscapem
Boldness: 400=normal, 700=bold.
Definition: xlstyle.hxx:293
void SetScEscapement(short nScEscapem)
Sets the Calc escapement style.
Definition: xlstyle.cxx:370
#define LANGUAGE_ITALIAN_SWISS
bool IsTransparent() const
Returns true, if the area represents transparent state.
Definition: xlstyle.cxx:1695
const sal_uInt8 EXC_XF_HOR_FILL
Definition: xlstyle.hxx:163
WEIGHT_SEMILIGHT
const sal_uInt16 EXC_FONTWGHT_ULTRABOLD
Definition: xlstyle.hxx:115
FontStrikeout GetScStrikeout() const
Returns the Calc strike-out style.
Definition: xlstyle.cxx:301
MS Excel 5.0, MS Excel 7.0 (95)
Definition: xlconst.hxx:36
#define UTF8_CJ_DAY
Definition: xlstyle.cxx:807
OUString maFormat
Definition: xlstyle.hxx:440
OUString maStyle
Font name.
Definition: xlstyle.hxx:289
void SetScVerAlign(SvxCellVerJustify eVerJust)
Sets the Calc vertical alignment.
Definition: xlstyle.cxx:1627
sal_uInt8 mnUnderline
Windows character set.
Definition: xlstyle.hxx:296
ScfPropSetHelper maHlpChWstrnNoName
Chart properties for Complex script.
Definition: xlstyle.hxx:429
const sal_uInt8 EXC_FONTUNDERL_DOUBLE_ACC
Definition: xlstyle.hxx:123
Contains all cell protection attributes.
Definition: xlstyle.hxx:477
Contains all cell alignment attributes.
Definition: xlstyle.hxx:488
const sal_uInt16 EXC_COLOR_WINDOWTEXT
System window background color (BIFF3-BIFF4).
Definition: xlstyle.hxx:208
float GetApiWeight() const
Returns the API font weight.
Definition: xlstyle.cxx:421
void SetApiStrikeout(sal_Int16 nApiStrikeout)
Sets the API font strike-out style.
Definition: xlstyle.cxx:510
SvxCellJustifyMethod GetScHorJustifyMethod() const
Returns horizontal justification method as Calc's attribute.
Definition: xlstyle.cxx:1574
ITALIC_OBLIQUE
#define LANGUAGE_SYSTEM
LINESTYLE_DOUBLEWAVE
const sal_uInt16 EXC_COLOR_CHWINDOWTEXT
System button background color (face color).
Definition: xlstyle.hxx:211
Color GetDefColor(sal_uInt16 nXclIndex) const
Returns the default color for a (non-zero-based) Excel color or COL_AUTO on error.
Definition: xlstyle.cxx:140
#define LANGUAGE_GERMAN_LIECHTENSTEIN
#define TWIPS_PER_POINT
Definition: global.hxx:85
const sal_uInt8 EXC_FONTFAM_DECORATIVE
Definition: xlstyle.hxx:91
bool mbLocked
Definition: xlstyle.hxx:479
sal_uInt8 mnHorAlign
Definition: xlstyle.hxx:490
XclCellAlign()
true = Shrink to fit cell size.
Definition: xlstyle.cxx:1544
WEIGHT_MEDIUM
NF_FRACTION_1D
static Color GetDefaultColor(ColorConfigEntry eEntry)
WEIGHT_NORMAL
const Color spnDefColorTable5[]
Default color table for BIFF5/BIFF7.
Definition: xlstyle.cxx:62
LINESTYLE_SINGLE
WEIGHT_ULTRALIGHT
NF_TEXT
void SetApiHeight(float fPoint)
Sets the API font height.
Definition: xlstyle.cxx:455
bool IsShadow() const
#define LANGUAGE_DONTKNOW
#define LANGUAGE_ENGLISH_EIRE
const Size & GetFontSize() const
#define EXC_NUMFMT_OFFSET(nXclNumFmt, eOffset)
Defines an Excel built-in number format that maps to an own built-in format.
Definition: xlstyle.cxx:784
const sal_uInt8 EXC_XF_VER_TOP
Definition: xlstyle.hxx:168
MS Excel 3.0.
Definition: xlconst.hxx:34
#define LANGUAGE_CHINESE_SIMPLIFIED
bool mbLineBreak
Indentation.
Definition: xlstyle.hxx:496
constexpr LanguageType primary(LanguageType lt)
FontStrikeout GetStrikeout() const
NF_DATE_SYS_DDMMYYYY
const sal_uInt8 EXC_XF_HOR_CENTER_AS
Definition: xlstyle.hxx:165
const sal_uInt8 EXC_XF_HOR_LEFT
Definition: xlstyle.hxx:160
WEIGHT_ULTRABOLD
#define UTF8_SHEQEL
Definition: xlstyle.cxx:799
ITALIC_NONE
#define LANGUAGE_GERMAN_LUXEMBOURG
sal_uInt8 mnPattern
Palette index to background color.
Definition: xlstyle.hxx:548
const sal_uInt8 EXC_FONTUNDERL_SINGLE
Definition: xlstyle.hxx:120
#define UTF8_CJ_MON
Definition: xlstyle.cxx:806
void SetScUnderline(FontLineStyle eScUnderl)
Sets the Calc underline style.
Definition: xlstyle.cxx:358
LINESTYLE_DONTKNOW
const sal_uInt16 EXC_FONTWGHT_NORMAL
Definition: xlstyle.hxx:111
ScfPropSetHelper maHlpChAsianNoName
Chart properties for Western script, no font name.
Definition: xlstyle.hxx:430
sal_uInt8 mnLeftLine
Palette index for diagonal line(s).
Definition: xlstyle.hxx:530
STRIKEOUT_X
void SetScFamily(FontFamily eScFamily)
Sets the Calc font family.
Definition: xlstyle.cxx:311
const sal_uInt16 EXC_FONTWGHT_ULTRALIGHT
Definition: xlstyle.hxx:108
sal_uInt8 mnTextDir
Text orientation.
Definition: xlstyle.hxx:493
#define LANGUAGE_THAI
void ReadFontProperties(XclFontData &rFontData, const ScfPropertySet &rPropSet, XclFontPropSetType eType, sal_Int16 nScript=-1)
Reads all font properties from the passed property set.
Definition: xlstyle.cxx:623
sal_uInt16 mnParent
Definition: xlstyle.hxx:588
FAMILY_SYSTEM
Contains color and line style for each cell border line.
Definition: xlstyle.hxx:523
#define UTF8_CJ_YEAR
Definition: xlstyle.cxx:805
#define UTF8_KO_SEC
Definition: xlstyle.cxx:821
NF_TIME_HHMMAMPM
void SetApiEscapement(sal_Int16 nApiEscapem)
Sets the API escapement style.
Definition: xlstyle.cxx:500
const sal_uInt16 EXC_FONTESC_SUPER
Definition: xlstyle.hxx:127
const sal_uInt16 EXC_COLOR_FONTAUTO
Note text color.
Definition: xlstyle.hxx:216
FontFamily
XclXFBase(bool bCellXF)
Definition: xlstyle.cxx:1707
A wrapper for a UNO property set.
Definition: fapihelper.hxx:104
#define UTF8_BAHT
Definition: xlstyle.cxx:796
const sal_uInt16 EXC_COLOR_CHBORDERAUTO
System window background color (BIFF8 charts).
Definition: xlstyle.hxx:213
const Color & GetColor() const
#define LANGUAGE_FRENCH
FontWeight
const sal_uInt16 EXC_COLOR_WINDOWBACK3
System window text color (BIFF3-BIFF4).
Definition: xlstyle.hxx:207
sal_uInt8 mnBottomLine
Style of top line.
Definition: xlstyle.hxx:533
FontLineStyle GetScUnderline() const
Returns the Calc font underline style.
Definition: xlstyle.cxx:277
#define LANGUAGE_ENGLISH
const sal_uInt8 EXC_FONTFAM_SYSTEM
Definition: xlstyle.hxx:88
#define UTF8_YEN_JP
Definition: xlstyle.cxx:802
const sal_uInt8 EXC_FONTCSET_ANSI_LATIN
Definition: xlstyle.hxx:94
void SetScHeight(sal_Int32 nTwips)
Sets the Calc font height (in twips).
Definition: xlstyle.cxx:306
float GetApiHeight() const
Returns the API font height.
Definition: xlstyle.cxx:390
const sal_uInt8 EXC_XF_VER_BOTTOM
Definition: xlstyle.hxx:170
void SetScPosture(FontItalic eScPosture)
Sets the Calc font posture.
Definition: xlstyle.cxx:334
STRIKEOUT_DOUBLE
#define EXC_PALETTE_EGA_COLORS_LIGHT
Standard EGA colors, bright.
Definition: xlstyle.cxx:41
FontWeight GetWeight()
void InitializeImport()
Clears all buffered data, used to set up for a new sheet.
Definition: xlstyle.cxx:1463
const sal_uInt8 EXC_LINE_NONE
Definition: xlstyle.hxx:38
SvxFrameDirection GetScFrameDir() const
Returns the Calc frame direction.
Definition: xlstyle.cxx:1599
ITALIC_NORMAL
sal_uInt8 mnFamily
Escapement type.
Definition: xlstyle.hxx:294
VCL_DLLPUBLIC float ConvertFontWeight(FontWeight eWeight)
const sal_uInt16 EXC_COLOR_CHWINDOWBACK
System window text color (BIFF8 charts).
Definition: xlstyle.hxx:212
bool HasUsedFlags() const
Returns true, if any "attribute used" flags are ste in this XF.
Definition: xlstyle.cxx:1723
const sal_uInt16 EXC_FONTWGHT_SEMIBOLD
Definition: xlstyle.hxx:113
FAMILY_SWISS
NF_DATE_SYS_DMMMYY
sal_uInt16 mnWeight
Font height in twips (1/20 of a point).
Definition: xlstyle.hxx:292
void SetApiUnderline(sal_Int16 nApiUnderl)
Sets the API font underline style.
Definition: xlstyle.cxx:488
void SetApiFamily(sal_Int16 nApiFamily)
Sets the API font family.
Definition: xlstyle.cxx:460
NF_DATE_SYS_MMYY
#define UTF8_KO_DAY
Definition: xlstyle.cxx:818
short GetEscapement() const
tools::Long Height() const
sal_Int16 GetApiFamily() const
Returns the API font family.
Definition: xlstyle.cxx:395
void SetFontEncoding(rtl_TextEncoding eFontEnc)
Sets the font text encoding.
Definition: xlstyle.cxx:328
const sal_uInt8 EXC_FONTUNDERL_SINGLE_ACC
Definition: xlstyle.hxx:122
Contains background colors and pattern for a cell.
Definition: xlstyle.hxx:544
void SetScStrikeout(FontStrikeout eScStrikeout)
Sets the Calc strike-out style.
Definition: xlstyle.cxx:380
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BLACK
sal_uInt8 mnIndent
Text rotation angle.
Definition: xlstyle.hxx:495
const sal_uInt8 EXC_FONTUNDERL_NONE
Definition: xlstyle.hxx:119
#define UTF8_CJ_HOUR
Definition: xlstyle.cxx:808
const Color & GetWindowColor() const
NF_NUMBER_INT
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
Definition: xlroot.hxx:141
NF_PERCENT_INT
#define UTF8_KO_YEAR
Definition: xlstyle.cxx:816
bool mbHidden
true = Locked against editing.
Definition: xlstyle.hxx:480
FontFamily GetScFamily(rtl_TextEncoding eDefTextEnc) const
Returns the Calc font family.
Definition: xlstyle.cxx:227
const sal_uInt16 EXC_COLOR_WINDOWBACK
System window text color (>=BIFF5).
Definition: xlstyle.hxx:209
XclCellProt()
true = Formula is hidden.
Definition: xlstyle.cxx:1533
void FillFromSvxFont(const SvxFont &rFont)
Fills all members (except color) from the passed SVX font.
Definition: xlstyle.cxx:219
bool Equals(const XclXFBase &rCmp) const
Returns true, if this object is equal to the passed.
Definition: xlstyle.cxx:1728
bool mbProtUsed
true = cell XF, false = style XF.
Definition: xlstyle.hxx:590
Color mnWindowText
The table with RGB values.
Definition: xlstyle.hxx:267
const sal_uInt8 EXC_ROT_NONE
Text orientation: 90 deg clockwise.
Definition: xlconst.hxx:144
FontLineStyle GetUnderline() const
SvxEscapement
#define LANGUAGE_FRENCH_LUXEMBOURG
NF_DATETIME_SYSTEM_SHORT_HHMM
const sal_uInt8 EXC_PATT_NONE
Definition: xlstyle.hxx:55
const sal_uInt8 EXC_XF_VER_DISTRIB
Definition: xlstyle.hxx:172
void SetScHorAlign(SvxCellHorJustify eHorJust)
Sets the Calc horizontal alignment.
Definition: xlstyle.cxx:1612
const sal_uInt8 EXC_XF_TEXTDIR_LTR
Definition: xlstyle.hxx:175
#define EXC_NUMFMT_ENDTABLE()
Terminates an Excel built-in number format table.
Definition: xlstyle.cxx:792
#define SAL_WARN(area, stream)
#define LANGUAGE_CHINESE_TRADITIONAL
ScfPropSetHelper maHlpChCmplxNoName
Chart properties for Asian script, no font name.
Definition: xlstyle.hxx:431
sal_Int16 GetApiUnderline() const
Returns the API font underline style.
Definition: xlstyle.cxx:426
void Clear()
Resets all members to default (empty) values.
Definition: xlstyle.cxx:188
Color maColor
String with styles (bold, italic).
Definition: xlstyle.hxx:290
Color mnFaceColor
System window background color.
Definition: xlstyle.hxx:269
#define UTF8_KO_HOUR
Definition: xlstyle.cxx:819
sal_uInt8 mnRotation
CTL text direction.
Definition: xlstyle.hxx:494
XclCellBorder()
true = Bottom-left to top-right on.
Definition: xlstyle.cxx:1661
SvxCellJustifyMethod
#define LANGUAGE_FRENCH_BELGIAN
LINESTYLE_DOUBLE
MS Excel 2.1.
Definition: xlconst.hxx:33
const LanguageType meSysLang
Map containing all default and user-defined formats.
Definition: xlstyle.hxx:470
STRIKEOUT_NONE
void WriteFontProperties(ScfPropertySet &rPropSet, XclFontPropSetType eType, const XclFontData &rFontData, bool bHasWstrn, bool bHasAsian, bool bHasCmplx, const Color *pFontColor)
Writes all font properties to the passed property set, uses passed color as font color.
Definition: xlstyle.cxx:691
#define EXC_NUMFMT_STRING(nXclNumFmt, pcUtf8)
Defines a literal Excel built-in number format.
Definition: xlstyle.cxx:780
ScfPropSetHelper maHlpChWstrn
Chart properties for all scripts.
Definition: xlstyle.hxx:426
bool mbBorderUsed
true = alignment used.
Definition: xlstyle.hxx:594
FontLineStyle
Generic helper class for reading from and writing to property sets.
Definition: fapihelper.hxx:214
void InsertFormat(sal_uInt16 nXclNumFmt, const OUString &rFormat)
Inserts a new number format for the specified Excel format index.
Definition: xlstyle.cxx:1468
const sal_uInt8 EXC_FONTUNDERL_DOUBLE
Definition: xlstyle.hxx:121
#define LANGUAGE_ENGLISH_AUS
bool mbStrikeout
true = Italic.
Definition: xlstyle.hxx:298
Access to global data for a filter object (imported or exported document) from other classes...
Definition: xlroot.hxx:127
#define LANGUAGE_JAPANESE
XclDefaultPalette(const XclRoot &rRoot)
Definition: xlstyle.cxx:90
#define UTF8_POUND_UK
Definition: xlstyle.cxx:798
virtual ~XclXFBase()
Definition: xlstyle.cxx:1714
const sal_uInt8 EXC_XF_TEXTDIR_RTL
Definition: xlstyle.hxx:176
Contains base members for XF record import/export.
Definition: xlstyle.hxx:562
const sal_uInt16 EXC_XF_DEFAULTSTYLE
Arbitrary maximum number of style XFs.
Definition: xlstyle.hxx:139
#define LANGUAGE_GERMAN_SWISS
FontStrikeout
SvxCellHorJustify GetScHorAlign() const
Returns the Calc horizontal alignment.
Definition: xlstyle.cxx:1556
const Color & GetWindowTextColor() const
All text objects in charts.
Definition: xlstyle.hxx:399
STRIKEOUT_BOLD
ScfPropSetHelper & GetChartHelper(sal_Int16 nScript)
Returns a chart property set helper according to the passed script type.
Definition: xlstyle.cxx:743
rtl_TextEncoding GetCharSet() const
sal_Int16 GetApiStrikeout() const
Returns the API font strike-out style.
Definition: xlstyle.cxx:450
const sal_uInt8 EXC_FONTFAM_DONTKNOW
Definition: xlstyle.hxx:85
FontItalic
OUString maName
Definition: xlstyle.hxx:288
const sal_uInt8 EXC_FONTFAM_MODERN
Definition: xlstyle.hxx:89