Avoid potential negative array index access to cached text.
[LibreOffice.git] / chart2 / source / inc / CharacterProperties.hxx
blob4dd7a4fbd1139a026196eed9b04f1538f938c618
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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/.
9 * This file incorporates work covered by the following license notice:
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 .
19 #pragma once
21 #include "PropertyHelper.hxx"
22 #include "FastPropertyIdRanges.hxx"
23 #include "charttoolsdllapi.hxx"
24 #include <com/sun/star/awt/FontDescriptor.hpp>
26 #include <vector>
28 namespace com::sun::star::beans { class XMultiPropertySet; }
29 namespace com::sun::star::beans { struct Property; }
31 namespace chart
34 // implements services
35 // com.sun.star.style.CharacterProperties
36 // com.sun.star.style.CharacterPropertiesAsian
37 // com.sun.star.style.CharacterPropertiesComplex
38 namespace CharacterProperties
40 // FastProperty Ids for properties
41 enum
43 // com.sun.star.style.CharacterProperties
44 PROP_CHAR_FONT_NAME = FAST_PROPERTY_ID_START_CHAR_PROP, // ?
45 PROP_CHAR_FONT_STYLE_NAME,
46 PROP_CHAR_FONT_FAMILY,
47 PROP_CHAR_FONT_CHAR_SET,
48 PROP_CHAR_FONT_PITCH,
49 PROP_CHAR_COLOR,
50 // PROP_CHAR_BACKGROUND_COLOR,
51 // PROP_CHAR_BACKGROUND_TRANSPARENCY, alpha channel in COLOR
52 PROP_CHAR_ESCAPEMENT,
53 PROP_CHAR_CHAR_HEIGHT,
54 PROP_CHAR_UNDERLINE,
55 PROP_CHAR_UNDERLINE_COLOR,
56 PROP_CHAR_UNDERLINE_HAS_COLOR,
57 PROP_CHAR_OVERLINE,
58 PROP_CHAR_OVERLINE_COLOR,
59 PROP_CHAR_OVERLINE_HAS_COLOR,
60 PROP_CHAR_WEIGHT,
61 PROP_CHAR_POSTURE,
62 PROP_CHAR_AUTO_KERNING,
63 PROP_CHAR_KERNING,
64 // PROP_CHAR_CASE_MAPPING,
65 // PROP_CHAR_ROTATION,
66 //-- PROP_CHAR_ROTATION_IS_FIT_TO_LINE,
67 // PROP_CHAR_SCALE_WIDTH,
68 PROP_CHAR_ESCAPEMENT_HEIGHT,
70 // PROP_CHAR_CROSSED_OUT,
71 PROP_CHAR_STRIKE_OUT,
72 PROP_CHAR_WORD_MODE,
73 // PROP_CHAR_FLASH,
74 PROP_CHAR_LOCALE,
75 //-- PROP_CHAR_KEEP_TOGETHER,
76 //-- PROP_CHAR_NO_LINE_BREAK,
77 PROP_CHAR_SHADOWED,
78 PROP_CHAR_CONTOURED,
79 PROP_CHAR_RELIEF,
80 //-- PROP_CHAR_COMBINE_IS_ON,
81 //-- PROP_CHAR_COMBINE_PREFIX,
82 //-- PROP_CHAR_COMBINE_SUFFIX,
84 PROP_CHAR_EMPHASIS,
85 // PROP_CHAR_RUBY_TEXT,
86 // PROP_CHAR_RUBY_ADJUST,
87 // PROP_CHAR_RUBY_STYLE_NAME,
88 // PROP_CHAR_RUBY_IS_ABOVE,
89 // PROP_CHAR_INHIBIT_HYPHENATION,
91 // Asian (com.sun.star.style.CharacterPropertiesAsian)
92 PROP_CHAR_ASIAN_FONT_NAME,
93 PROP_CHAR_ASIAN_FONT_STYLE_NAME,
94 PROP_CHAR_ASIAN_FONT_FAMILY,
95 PROP_CHAR_ASIAN_CHAR_SET,
96 PROP_CHAR_ASIAN_FONT_PITCH,
97 PROP_CHAR_ASIAN_CHAR_HEIGHT,
98 PROP_CHAR_ASIAN_WEIGHT,
99 PROP_CHAR_ASIAN_POSTURE,
100 PROP_CHAR_ASIAN_LOCALE,
101 //-- PROP_CHAR_ASIAN_USE_SCRIPT_TYPE_DISTANCE,
102 //-- PROP_CHAR_ASIAN_USE_FORBIDDEN_RULES,
103 //-- PROP_CHAR_ASIAN_HANGING_PUNCTUATION_ALLOWED,
105 // Complex Text Layout (com.sun.star.style.CharacterPropertiesComplex)
106 PROP_CHAR_COMPLEX_FONT_NAME,
107 PROP_CHAR_COMPLEX_FONT_STYLE_NAME,
108 PROP_CHAR_COMPLEX_FONT_FAMILY,
109 PROP_CHAR_COMPLEX_CHAR_SET,
110 PROP_CHAR_COMPLEX_FONT_PITCH,
111 PROP_CHAR_COMPLEX_CHAR_HEIGHT,
112 PROP_CHAR_COMPLEX_WEIGHT,
113 PROP_CHAR_COMPLEX_POSTURE,
114 PROP_CHAR_COMPLEX_LOCALE,
115 PROP_PARA_IS_CHARACTER_DISTANCE,
117 PROP_WRITING_MODE,
119 // don't use
120 FAST_PROPERTY_ID_END_CHAR_PROP
123 OOO_DLLPUBLIC_CHARTTOOLS void AddPropertiesToVector(
124 std::vector< css::beans::Property > & rOutProperties );
126 OOO_DLLPUBLIC_CHARTTOOLS void AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap );
128 OOO_DLLPUBLIC_CHARTTOOLS bool IsCharacterPropertyHandle( sal_Int32 nHandle );
130 OOO_DLLPUBLIC_CHARTTOOLS css::awt::FontDescriptor createFontDescriptorFromPropertySet(
131 const css::uno::Reference< css::beans::XMultiPropertySet > & xMultiPropSet );
134 } // namespace chart
136 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */