Line data Source code
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 :
10 : #include "editattributemap.hxx"
11 :
12 : #include "editeng/eeitem.hxx"
13 : #include "editeng/memberids.hrc"
14 :
15 : static struct {
16 : const char* mpXMLName;
17 : const char* mpAPIName;
18 : sal_uInt16 mnItemID;
19 : sal_uInt8 mnFlag;
20 :
21 : } aEntries[] = {
22 :
23 : { "color", "CharColor", EE_CHAR_COLOR, 0 },
24 : { "font-charset", "CharFontCharSet", EE_CHAR_FONTINFO, MID_FONT_CHAR_SET },
25 : { "font-charset-asian", "CharFontCharSetAsian", EE_CHAR_FONTINFO_CJK, MID_FONT_CHAR_SET },
26 : { "font-charset-complex", "CharFontCharSetComplex", EE_CHAR_FONTINFO_CTL, MID_FONT_CHAR_SET },
27 : { "font-family", "CharFontName", EE_CHAR_FONTINFO, MID_FONT_FAMILY_NAME },
28 : { "font-family-asian", "CharFontNameAsian", EE_CHAR_FONTINFO_CJK, MID_FONT_FAMILY_NAME },
29 : { "font-family-complex", "CharFontNameAsian", EE_CHAR_FONTINFO_CTL, MID_FONT_FAMILY_NAME },
30 : { "font-family-generic", "CharFontFamily", EE_CHAR_FONTINFO, MID_FONT_FAMILY },
31 : { "font-family-generic-asian", "CharFontFamilyAsian", EE_CHAR_FONTINFO_CJK, MID_FONT_FAMILY },
32 : { "font-family-generic-complex", "CharFontFamilyComplex", EE_CHAR_FONTINFO_CTL, MID_FONT_FAMILY },
33 : { "font-pitch", "CharFontPitch", EE_CHAR_FONTINFO, MID_FONT_PITCH },
34 : { "font-pitch-asian", "CharFontPitchAsian", EE_CHAR_FONTINFO_CJK, MID_FONT_PITCH },
35 : { "font-pitch-complex", "CharFontPitchComplex", EE_CHAR_FONTINFO_CTL, MID_FONT_PITCH },
36 : { "font-size", "CharHeight", EE_CHAR_FONTHEIGHT, MID_FONTHEIGHT },
37 : { "font-size-asian", "CharHeightAsian", EE_CHAR_FONTHEIGHT_CJK, MID_FONTHEIGHT },
38 : { "font-size-complex", "CharHeightComplex", EE_CHAR_FONTHEIGHT_CTL, MID_FONTHEIGHT },
39 : { "font-style", "CharPosture", EE_CHAR_ITALIC, MID_POSTURE },
40 : { "font-style-asian", "CharPostureAsian", EE_CHAR_ITALIC_CJK, MID_POSTURE },
41 : { "font-style-complex", "CharPostureComplex", EE_CHAR_ITALIC_CTL, MID_POSTURE },
42 : { "font-style-name", "CharFontStyleName", EE_CHAR_FONTINFO, MID_FONT_STYLE_NAME },
43 : { "font-style-name-asian", "CharFontStyleNameAsian", EE_CHAR_FONTINFO_CJK, MID_FONT_STYLE_NAME },
44 : { "font-style-name-complex", "CharFontStyleNameComplex", EE_CHAR_FONTINFO_CTL, MID_FONT_STYLE_NAME },
45 : { "font-weight", "CharWeight", EE_CHAR_WEIGHT, MID_WEIGHT },
46 : { "font-weight-asian", "CharWeightAsian", EE_CHAR_WEIGHT_CJK, MID_WEIGHT },
47 : { "font-weight-complex", "CharWeightComplex", EE_CHAR_WEIGHT_CTL, MID_WEIGHT },
48 : { "text-overline-width", "CharOverline", EE_CHAR_OVERLINE, MID_TL_STYLE },
49 : { "text-overline-color", "CharOverlineColor", EE_CHAR_OVERLINE, MID_TL_COLOR },
50 : { "text-overline-color", "CharOverlineHasColor", EE_CHAR_OVERLINE, MID_TL_HASCOLOR },
51 : { "text-underline-width", "CharUnderline", EE_CHAR_UNDERLINE, MID_TL_STYLE },
52 : { "text-underline-color", "CharUnderlineColor", EE_CHAR_UNDERLINE, MID_TL_COLOR },
53 : { "text-underline-color", "CharUnderlineHasColor", EE_CHAR_UNDERLINE, MID_TL_HASCOLOR },
54 : { "text-line-through-mode", "CharWordMode", EE_CHAR_WLM, 0 },
55 : { "text-line-through-type", "CharStrikeout", EE_CHAR_STRIKEOUT, MID_CROSS_OUT },
56 : { "font-relief", "CharRelief", EE_CHAR_RELIEF, MID_RELIEF },
57 : { "text-outline", "CharContoured", EE_CHAR_OUTLINE, 0 },
58 : { "text-shadow", "CharShadowed", EE_CHAR_SHADOW, 0 },
59 : { "letter-spacing", "CharKerning", EE_CHAR_KERNING, 0 },
60 : { "letter-kerning", "CharAutoKerning", EE_CHAR_PAIRKERNING, 0 },
61 : { "text-scale", "CharScaleWidth", EE_CHAR_FONTWIDTH, 0 },
62 : { "text-position", "CharEscapement", EE_CHAR_ESCAPEMENT, MID_ESC },
63 : { "text-position", "CharEscapementHeight", EE_CHAR_ESCAPEMENT, MID_ESC_HEIGHT },
64 : { "text-emphasize", "CharEmphasis", EE_CHAR_EMPHASISMARK, MID_EMPHASIS },
65 : { "country", "CharLocale", EE_CHAR_LANGUAGE, MID_LANG_LOCALE },
66 : { "country-asian", "CharLocaleAsian", EE_CHAR_LANGUAGE_CJK, MID_LANG_LOCALE },
67 : { "country-complex", "CharLocaleComplex", EE_CHAR_LANGUAGE_CTL, MID_LANG_LOCALE },
68 : };
69 :
70 180 : ScXMLEditAttributeMap::Entry::Entry(sal_uInt16 nItemID, sal_uInt8 nFlag) :
71 180 : mnItemID(nItemID), mnFlag(nFlag) {}
72 :
73 4 : ScXMLEditAttributeMap::ScXMLEditAttributeMap()
74 : {
75 4 : size_t n = sizeof(aEntries) / sizeof(aEntries[0]);
76 184 : for (size_t i = 0; i < n; ++i)
77 : {
78 : maEntries.insert(
79 : EntriesType::value_type(
80 : OUString::createFromAscii(aEntries[i].mpAPIName),
81 180 : Entry(aEntries[i].mnItemID, aEntries[i].mnFlag)));
82 : }
83 4 : }
84 :
85 132 : const ScXMLEditAttributeMap::Entry* ScXMLEditAttributeMap::getEntry(const OUString& rXMLName) const
86 : {
87 132 : EntriesType::const_iterator it = maEntries.find(rXMLName);
88 132 : return it == maEntries.end() ? NULL : &it->second;
89 : }
90 :
91 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|