xref: /aoo41x/main/oox/source/xls/themebuffer.cxx (revision cdf0e10c)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir #include "oox/xls/themebuffer.hxx"
29*cdf0e10cSrcweir 
30*cdf0e10cSrcweir #include "oox/xls/stylesbuffer.hxx"
31*cdf0e10cSrcweir 
32*cdf0e10cSrcweir namespace oox {
33*cdf0e10cSrcweir namespace xls {
34*cdf0e10cSrcweir 
35*cdf0e10cSrcweir // ============================================================================
36*cdf0e10cSrcweir 
37*cdf0e10cSrcweir using ::oox::drawingml::ClrScheme;
38*cdf0e10cSrcweir 
39*cdf0e10cSrcweir // ============================================================================
40*cdf0e10cSrcweir 
41*cdf0e10cSrcweir namespace {
42*cdf0e10cSrcweir 
43*cdf0e10cSrcweir /** Specifies default theme fonts for a specific locale. */
44*cdf0e10cSrcweir struct BuiltinThemeFont
45*cdf0e10cSrcweir {
46*cdf0e10cSrcweir     const sal_Char*     mpcLocale;          /// The locale for this font setting.
47*cdf0e10cSrcweir     const sal_Char*     mpcHeadFont;        /// Default heading font.
48*cdf0e10cSrcweir     const sal_Char*     mpcBodyFont;        /// Default body font.
49*cdf0e10cSrcweir };
50*cdf0e10cSrcweir 
51*cdf0e10cSrcweir #define FONT_JA "\357\274\255\357\274\263 \357\274\260\343\202\264\343\202\267\343\203\203\343\202\257"
52*cdf0e10cSrcweir #define FONT_KO "\353\247\221\354\235\200 \352\263\240\353\224\225"
53*cdf0e10cSrcweir #define FONT_CS "\345\256\213\344\275\223"
54*cdf0e10cSrcweir #define FONT_CT "\346\226\260\347\264\260\346\230\216\351\253\224"
55*cdf0e10cSrcweir 
56*cdf0e10cSrcweir static const BuiltinThemeFont spBuiltinThemeFonts[] =
57*cdf0e10cSrcweir { //  locale    headings font           body font
58*cdf0e10cSrcweir     { "*",      "Cambria",              "Calibri"           },  // Default
59*cdf0e10cSrcweir     { "ar",     "Times New Roman",      "Arial"             },  // Arabic
60*cdf0e10cSrcweir     { "bn",     "Vrinda",               "Vrinda"            },  // Bengali
61*cdf0e10cSrcweir     { "div",    "MV Boli",              "MV Boli"           },  // Divehi
62*cdf0e10cSrcweir     { "fa",     "Times New Roman",      "Arial"             },  // Farsi
63*cdf0e10cSrcweir     { "gu",     "Shruti",               "Shruti"            },  // Gujarati
64*cdf0e10cSrcweir     { "he",     "Times New Roman",      "Arial"             },  // Hebrew
65*cdf0e10cSrcweir     { "hi",     "Mangal",               "Mangal"            },  // Hindi
66*cdf0e10cSrcweir     { "ja",     FONT_JA,                FONT_JA             },  // Japanese
67*cdf0e10cSrcweir     { "kn",     "Tunga",                "Tunga"             },  // Kannada
68*cdf0e10cSrcweir     { "ko",     FONT_KO,                FONT_KO             },  // Korean
69*cdf0e10cSrcweir     { "kok",    "Mangal",               "Mangal"            },  // Konkani
70*cdf0e10cSrcweir     { "ml",     "Kartika",              "Kartika"           },  // Malayalam
71*cdf0e10cSrcweir     { "mr",     "Mangal",               "Mangal"            },  // Marathi
72*cdf0e10cSrcweir     { "pa",     "Raavi",                "Raavi"             },  // Punjabi
73*cdf0e10cSrcweir     { "sa",     "Mangal",               "Mangal"            },  // Sanskrit
74*cdf0e10cSrcweir     { "syr",    "Estrangelo Edessa",    "Estrangelo Edessa" },  // Syriac
75*cdf0e10cSrcweir     { "ta",     "Latha",                "Latha"             },  // Tamil
76*cdf0e10cSrcweir     { "te",     "Gautami",              "Gautami"           },  // Telugu
77*cdf0e10cSrcweir     { "th",     "Tahoma",               "Tahoma"            },  // Thai
78*cdf0e10cSrcweir     { "ur",     "Times New Roman",      "Arial"             },  // Urdu
79*cdf0e10cSrcweir     { "vi",     "Times New Roman",      "Arial"             },  // Vietnamese
80*cdf0e10cSrcweir     { "zh",     FONT_CS,                FONT_CS             },  // Chinese, Simplified
81*cdf0e10cSrcweir     { "zh-HK",  FONT_CT,                FONT_CT             },  // Chinese, Hong Kong
82*cdf0e10cSrcweir     { "zh-MO",  FONT_CT,                FONT_CT             },  // Chinese, Macau
83*cdf0e10cSrcweir     { "zh-TW",  FONT_CT,                FONT_CT             }   // Chinese, Taiwan
84*cdf0e10cSrcweir };
85*cdf0e10cSrcweir 
86*cdf0e10cSrcweir } // namespace
87*cdf0e10cSrcweir 
88*cdf0e10cSrcweir // ----------------------------------------------------------------------------
89*cdf0e10cSrcweir 
90*cdf0e10cSrcweir ThemeBuffer::ThemeBuffer( const WorkbookHelper& rHelper ) :
91*cdf0e10cSrcweir     WorkbookHelper( rHelper ),
92*cdf0e10cSrcweir     mxDefFontModel( new FontModel )
93*cdf0e10cSrcweir {
94*cdf0e10cSrcweir     switch( getFilterType() )
95*cdf0e10cSrcweir     {
96*cdf0e10cSrcweir         case FILTER_OOXML:
97*cdf0e10cSrcweir             //! TODO: locale dependent font name
98*cdf0e10cSrcweir             mxDefFontModel->maName = CREATE_OUSTRING( "Cambria" );
99*cdf0e10cSrcweir             mxDefFontModel->mfHeight = 11.0;
100*cdf0e10cSrcweir         break;
101*cdf0e10cSrcweir         case FILTER_BIFF:
102*cdf0e10cSrcweir             //! TODO: BIFF dependent font name
103*cdf0e10cSrcweir             mxDefFontModel->maName = CREATE_OUSTRING( "Arial" );
104*cdf0e10cSrcweir             mxDefFontModel->mfHeight = 10.0;
105*cdf0e10cSrcweir         break;
106*cdf0e10cSrcweir         case FILTER_UNKNOWN: break;
107*cdf0e10cSrcweir     }
108*cdf0e10cSrcweir }
109*cdf0e10cSrcweir 
110*cdf0e10cSrcweir ThemeBuffer::~ThemeBuffer()
111*cdf0e10cSrcweir {
112*cdf0e10cSrcweir }
113*cdf0e10cSrcweir 
114*cdf0e10cSrcweir sal_Int32 ThemeBuffer::getColorByToken( sal_Int32 nToken ) const
115*cdf0e10cSrcweir {
116*cdf0e10cSrcweir     sal_Int32 nColor = 0;
117*cdf0e10cSrcweir     return getClrScheme().getColor( nToken, nColor ) ? nColor : API_RGB_TRANSPARENT;
118*cdf0e10cSrcweir }
119*cdf0e10cSrcweir 
120*cdf0e10cSrcweir // ============================================================================
121*cdf0e10cSrcweir 
122*cdf0e10cSrcweir } // namespace xls
123*cdf0e10cSrcweir } // namespace oox
124