1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
10 #include "editattributemap.hxx"
12 #include <editeng/eeitem.hxx>
13 #include <editeng/memberids.h>
14 #include <xmloff/xmlnmspe.hxx>
16 ScXMLEditAttributeMap::Entry
const aEntries
[] = {
18 { XML_NAMESPACE_FO
, "color", "CharColor", EE_CHAR_COLOR
, 0 },
19 { XML_NAMESPACE_STYLE
, "font-charset", "CharFontCharSet", EE_CHAR_FONTINFO
, MID_FONT_CHAR_SET
},
20 { XML_NAMESPACE_STYLE
, "font-charset-asian", "CharFontCharSetAsian", EE_CHAR_FONTINFO_CJK
, MID_FONT_CHAR_SET
},
21 { XML_NAMESPACE_STYLE
, "font-charset-complex", "CharFontCharSetComplex", EE_CHAR_FONTINFO_CTL
, MID_FONT_CHAR_SET
},
22 { XML_NAMESPACE_FO
, "font-family", "CharFontName", EE_CHAR_FONTINFO
, MID_FONT_FAMILY_NAME
},
23 { XML_NAMESPACE_STYLE
, "font-family-asian", "CharFontNameAsian", EE_CHAR_FONTINFO_CJK
, MID_FONT_FAMILY_NAME
},
24 { XML_NAMESPACE_STYLE
, "font-family-complex", "CharFontNameComplex", EE_CHAR_FONTINFO_CTL
, MID_FONT_FAMILY_NAME
},
25 { XML_NAMESPACE_STYLE
, "font-family-generic", "CharFontFamily", EE_CHAR_FONTINFO
, MID_FONT_FAMILY
},
26 { XML_NAMESPACE_STYLE
, "font-family-generic-asian", "CharFontFamilyAsian", EE_CHAR_FONTINFO_CJK
, MID_FONT_FAMILY
},
27 { XML_NAMESPACE_STYLE
, "font-family-generic-complex", "CharFontFamilyComplex", EE_CHAR_FONTINFO_CTL
, MID_FONT_FAMILY
},
28 { XML_NAMESPACE_STYLE
, "font-pitch", "CharFontPitch", EE_CHAR_FONTINFO
, MID_FONT_PITCH
},
29 { XML_NAMESPACE_STYLE
, "font-pitch-asian", "CharFontPitchAsian", EE_CHAR_FONTINFO_CJK
, MID_FONT_PITCH
},
30 { XML_NAMESPACE_STYLE
, "font-pitch-complex", "CharFontPitchComplex", EE_CHAR_FONTINFO_CTL
, MID_FONT_PITCH
},
31 { XML_NAMESPACE_FO
, "font-size", "CharHeight", EE_CHAR_FONTHEIGHT
, MID_FONTHEIGHT
},
32 { XML_NAMESPACE_STYLE
, "font-size-asian", "CharHeightAsian", EE_CHAR_FONTHEIGHT_CJK
, MID_FONTHEIGHT
},
33 { XML_NAMESPACE_STYLE
, "font-size-complex", "CharHeightComplex", EE_CHAR_FONTHEIGHT_CTL
, MID_FONTHEIGHT
},
34 { XML_NAMESPACE_FO
, "font-style", "CharPosture", EE_CHAR_ITALIC
, MID_POSTURE
},
35 { XML_NAMESPACE_STYLE
, "font-style-asian", "CharPostureAsian", EE_CHAR_ITALIC_CJK
, MID_POSTURE
},
36 { XML_NAMESPACE_STYLE
, "font-style-complex", "CharPostureComplex", EE_CHAR_ITALIC_CTL
, MID_POSTURE
},
37 { XML_NAMESPACE_STYLE
, "font-style-name", "CharFontStyleName", EE_CHAR_FONTINFO
, MID_FONT_STYLE_NAME
},
38 { XML_NAMESPACE_STYLE
, "font-style-name-asian", "CharFontStyleNameAsian", EE_CHAR_FONTINFO_CJK
, MID_FONT_STYLE_NAME
},
39 { XML_NAMESPACE_STYLE
, "font-style-name-complex", "CharFontStyleNameComplex", EE_CHAR_FONTINFO_CTL
, MID_FONT_STYLE_NAME
},
40 { XML_NAMESPACE_FO
, "font-weight", "CharWeight", EE_CHAR_WEIGHT
, MID_WEIGHT
},
41 { XML_NAMESPACE_STYLE
, "font-weight-asian", "CharWeightAsian", EE_CHAR_WEIGHT_CJK
, MID_WEIGHT
},
42 { XML_NAMESPACE_STYLE
, "font-weight-complex", "CharWeightComplex", EE_CHAR_WEIGHT_CTL
, MID_WEIGHT
},
43 { XML_NAMESPACE_STYLE
, "text-overline-width", "CharOverline", EE_CHAR_OVERLINE
, MID_TL_STYLE
},
44 { XML_NAMESPACE_STYLE
, "text-overline-color", "CharOverlineColor", EE_CHAR_OVERLINE
, MID_TL_COLOR
},
45 { XML_NAMESPACE_STYLE
, "text-overline-color", "CharOverlineHasColor", EE_CHAR_OVERLINE
, MID_TL_HASCOLOR
},
46 { XML_NAMESPACE_STYLE
, "text-underline-width", "CharUnderline", EE_CHAR_UNDERLINE
, MID_TL_STYLE
},
47 { XML_NAMESPACE_STYLE
, "text-underline-color", "CharUnderlineColor", EE_CHAR_UNDERLINE
, MID_TL_COLOR
},
48 { XML_NAMESPACE_STYLE
, "text-underline-color", "CharUnderlineHasColor", EE_CHAR_UNDERLINE
, MID_TL_HASCOLOR
},
49 { XML_NAMESPACE_STYLE
, "text-line-through-mode", "CharWordMode", EE_CHAR_WLM
, 0 },
50 { XML_NAMESPACE_STYLE
, "text-line-through-type", "CharStrikeout", EE_CHAR_STRIKEOUT
, MID_CROSS_OUT
},
51 { XML_NAMESPACE_STYLE
, "font-relief", "CharRelief", EE_CHAR_RELIEF
, MID_RELIEF
},
52 { XML_NAMESPACE_STYLE
, "text-outline", "CharContoured", EE_CHAR_OUTLINE
, 0 },
53 { XML_NAMESPACE_FO
, "text-shadow", "CharShadowed", EE_CHAR_SHADOW
, 0 },
54 { XML_NAMESPACE_FO
, "letter-spacing", "CharKerning", EE_CHAR_KERNING
, 0 },
55 { XML_NAMESPACE_STYLE
, "letter-kerning", "CharAutoKerning", EE_CHAR_PAIRKERNING
, 0 },
56 { XML_NAMESPACE_STYLE
, "text-scale", "CharScaleWidth", EE_CHAR_FONTWIDTH
, 0 },
57 { XML_NAMESPACE_STYLE
, "text-position", "CharEscapement", EE_CHAR_ESCAPEMENT
, MID_ESC
},
58 { XML_NAMESPACE_STYLE
, "text-position", "CharEscapementHeight", EE_CHAR_ESCAPEMENT
, MID_ESC_HEIGHT
},
59 { XML_NAMESPACE_STYLE
, "text-emphasize", "CharEmphasis", EE_CHAR_EMPHASISMARK
, MID_EMPHASIS
},
60 // The following 3 "country" entries are just placeholders for language,
61 // country, script and rfc-language-tag, which all map to CharLocale,
62 // EE_CHAR_LANGUAGE and MID_LANG_LOCALE and are handled individually.
63 { XML_NAMESPACE_FO
, "country", "CharLocale", EE_CHAR_LANGUAGE
, MID_LANG_LOCALE
},
64 { XML_NAMESPACE_STYLE
, "country-asian", "CharLocaleAsian", EE_CHAR_LANGUAGE_CJK
, MID_LANG_LOCALE
},
65 { XML_NAMESPACE_STYLE
, "country-complex", "CharLocaleComplex", EE_CHAR_LANGUAGE_CTL
, MID_LANG_LOCALE
},
68 ScXMLEditAttributeMap::ScXMLEditAttributeMap()
70 for (size_t i
= 0; i
< SAL_N_ELEMENTS(aEntries
); ++i
)
73 OUString::createFromAscii(aEntries
[i
].mpAPIName
), &aEntries
[i
]);
75 maItemIDEntries
.emplace(aEntries
[i
].mnItemID
, &aEntries
[i
]);
79 const ScXMLEditAttributeMap::Entry
* ScXMLEditAttributeMap::getEntryByAPIName(const OUString
& rAPIName
) const
81 StrToEntriesType::const_iterator it
= maAPIEntries
.find(rAPIName
);
82 return it
== maAPIEntries
.end() ? nullptr : it
->second
;
85 const ScXMLEditAttributeMap::Entry
* ScXMLEditAttributeMap::getEntryByItemID(sal_uInt16 nItemID
) const
87 IndexToEntriesType::const_iterator it
= maItemIDEntries
.find(nItemID
);
88 return it
== maItemIDEntries
.end() ? nullptr : it
->second
;
91 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */