OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) |
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) | 3 * (C) 2000 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserv
ed. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserv
ed. |
6 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 6 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 class PLATFORM_EXPORT FontDescription { | 47 class PLATFORM_EXPORT FontDescription { |
48 public: | 48 public: |
49 enum GenericFamilyType { NoFamily, StandardFamily, SerifFamily, SansSerifFam
ily, | 49 enum GenericFamilyType { NoFamily, StandardFamily, SerifFamily, SansSerifFam
ily, |
50 MonospaceFamily, CursiveFamily, FantasyFamily, Pict
ographFamily }; | 50 MonospaceFamily, CursiveFamily, FantasyFamily, Pict
ographFamily }; |
51 | 51 |
52 enum Kerning { AutoKerning, NormalKerning, NoneKerning }; | 52 enum Kerning { AutoKerning, NormalKerning, NoneKerning }; |
53 | 53 |
54 enum LigaturesState { NormalLigaturesState, DisabledLigaturesState, EnabledL
igaturesState }; | 54 enum LigaturesState { NormalLigaturesState, DisabledLigaturesState, EnabledL
igaturesState }; |
55 | 55 |
56 FontDescription() | 56 FontDescription() |
57 : m_specifiedSize(0) | 57 : m_locale("en") |
| 58 , m_specifiedSize(0) |
58 , m_computedSize(0) | 59 , m_computedSize(0) |
59 , m_letterSpacing(0) | 60 , m_letterSpacing(0) |
60 , m_wordSpacing(0) | 61 , m_wordSpacing(0) |
61 , m_orientation(Horizontal) | 62 , m_orientation(Horizontal) |
62 , m_nonCJKGlyphOrientation(NonCJKGlyphOrientationVerticalRight) | 63 , m_nonCJKGlyphOrientation(NonCJKGlyphOrientationVerticalRight) |
63 , m_widthVariant(RegularWidth) | 64 , m_widthVariant(RegularWidth) |
64 , m_style(FontStyleNormal) | 65 , m_style(FontStyleNormal) |
65 , m_variant(FontVariantNormal) | 66 , m_variant(FontVariantNormal) |
66 , m_isAbsoluteSize(false) | 67 , m_isAbsoluteSize(false) |
67 , m_weight(FontWeightNormal) | 68 , m_weight(FontWeightNormal) |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 bool useFixedDefaultSize() const { return genericFamily() == MonospaceFamily
&& !family().next() && family().family() == FontFamilyNames::webkit_monospace;
} | 105 bool useFixedDefaultSize() const { return genericFamily() == MonospaceFamily
&& !family().next() && family().family() == FontFamilyNames::webkit_monospace;
} |
105 Kerning kerning() const { return static_cast<Kerning>(m_kerning); } | 106 Kerning kerning() const { return static_cast<Kerning>(m_kerning); } |
106 LigaturesState commonLigaturesState() const { return static_cast<LigaturesSt
ate>(m_commonLigaturesState); } | 107 LigaturesState commonLigaturesState() const { return static_cast<LigaturesSt
ate>(m_commonLigaturesState); } |
107 LigaturesState discretionaryLigaturesState() const { return static_cast<Liga
turesState>(m_discretionaryLigaturesState); } | 108 LigaturesState discretionaryLigaturesState() const { return static_cast<Liga
turesState>(m_discretionaryLigaturesState); } |
108 LigaturesState historicalLigaturesState() const { return static_cast<Ligatur
esState>(m_historicalLigaturesState); } | 109 LigaturesState historicalLigaturesState() const { return static_cast<Ligatur
esState>(m_historicalLigaturesState); } |
109 LigaturesState contextualLigaturesState() const { return static_cast<Ligatur
esState>(m_contextualLigaturesState); } | 110 LigaturesState contextualLigaturesState() const { return static_cast<Ligatur
esState>(m_contextualLigaturesState); } |
110 unsigned keywordSize() const { return m_keywordSize; } | 111 unsigned keywordSize() const { return m_keywordSize; } |
111 FontSmoothingMode fontSmoothing() const { return static_cast<FontSmoothingMo
de>(m_fontSmoothing); } | 112 FontSmoothingMode fontSmoothing() const { return static_cast<FontSmoothingMo
de>(m_fontSmoothing); } |
112 TextRenderingMode textRendering() const { return static_cast<TextRenderingMo
de>(m_textRendering); } | 113 TextRenderingMode textRendering() const { return static_cast<TextRenderingMo
de>(m_textRendering); } |
113 UScriptCode script() const { return static_cast<UScriptCode>(m_script); } | 114 UScriptCode script() const { return static_cast<UScriptCode>(m_script); } |
| 115 const String& locale() const { return m_locale; } |
114 bool isSyntheticBold() const { return m_syntheticBold; } | 116 bool isSyntheticBold() const { return m_syntheticBold; } |
115 bool isSyntheticItalic() const { return m_syntheticItalic; } | 117 bool isSyntheticItalic() const { return m_syntheticItalic; } |
116 bool useSubpixelPositioning() const { return m_subpixelTextPosition; } | 118 bool useSubpixelPositioning() const { return m_subpixelTextPosition; } |
117 | 119 |
118 FontTraits traits() const; | 120 FontTraits traits() const; |
119 float wordSpacing() const { return m_wordSpacing; } | 121 float wordSpacing() const { return m_wordSpacing; } |
120 float letterSpacing() const { return m_letterSpacing; } | 122 float letterSpacing() const { return m_letterSpacing; } |
121 FontOrientation orientation() const { return static_cast<FontOrientation>(m_
orientation); } | 123 FontOrientation orientation() const { return static_cast<FontOrientation>(m_
orientation); } |
122 NonCJKGlyphOrientation nonCJKGlyphOrientation() const { return static_cast<N
onCJKGlyphOrientation>(m_nonCJKGlyphOrientation); } | 124 NonCJKGlyphOrientation nonCJKGlyphOrientation() const { return static_cast<N
onCJKGlyphOrientation>(m_nonCJKGlyphOrientation); } |
123 FontWidthVariant widthVariant() const { return static_cast<FontWidthVariant>
(m_widthVariant); } | 125 FontWidthVariant widthVariant() const { return static_cast<FontWidthVariant>
(m_widthVariant); } |
(...skipping 17 matching lines...) Expand all Loading... |
141 void setDiscretionaryLigaturesState(LigaturesState discretionaryLigaturesSta
te) { m_discretionaryLigaturesState = discretionaryLigaturesState; updateTypeset
tingFeatures(); } | 143 void setDiscretionaryLigaturesState(LigaturesState discretionaryLigaturesSta
te) { m_discretionaryLigaturesState = discretionaryLigaturesState; updateTypeset
tingFeatures(); } |
142 void setHistoricalLigaturesState(LigaturesState historicalLigaturesState) {
m_historicalLigaturesState = historicalLigaturesState; updateTypesettingFeatures
(); } | 144 void setHistoricalLigaturesState(LigaturesState historicalLigaturesState) {
m_historicalLigaturesState = historicalLigaturesState; updateTypesettingFeatures
(); } |
143 void setContextualLigaturesState(LigaturesState contextualLigaturesState) {
m_contextualLigaturesState = contextualLigaturesState; updateTypesettingFeatures
(); } | 145 void setContextualLigaturesState(LigaturesState contextualLigaturesState) {
m_contextualLigaturesState = contextualLigaturesState; updateTypesettingFeatures
(); } |
144 void setKeywordSize(unsigned s) { m_keywordSize = s; } | 146 void setKeywordSize(unsigned s) { m_keywordSize = s; } |
145 void setFontSmoothing(FontSmoothingMode smoothing) { m_fontSmoothing = smoot
hing; } | 147 void setFontSmoothing(FontSmoothingMode smoothing) { m_fontSmoothing = smoot
hing; } |
146 void setTextRendering(TextRenderingMode rendering) { m_textRendering = rende
ring; updateTypesettingFeatures(); } | 148 void setTextRendering(TextRenderingMode rendering) { m_textRendering = rende
ring; updateTypesettingFeatures(); } |
147 void setOrientation(FontOrientation orientation) { m_orientation = orientati
on; } | 149 void setOrientation(FontOrientation orientation) { m_orientation = orientati
on; } |
148 void setNonCJKGlyphOrientation(NonCJKGlyphOrientation orientation) { m_nonCJ
KGlyphOrientation = orientation; } | 150 void setNonCJKGlyphOrientation(NonCJKGlyphOrientation orientation) { m_nonCJ
KGlyphOrientation = orientation; } |
149 void setWidthVariant(FontWidthVariant widthVariant) { m_widthVariant = width
Variant; } | 151 void setWidthVariant(FontWidthVariant widthVariant) { m_widthVariant = width
Variant; } |
150 void setScript(UScriptCode s) { m_script = s; } | 152 void setScript(UScriptCode s) { m_script = s; } |
| 153 void setLocale(const String& locale) { m_locale = locale; } |
151 void setSyntheticBold(bool syntheticBold) { m_syntheticBold = syntheticBold;
} | 154 void setSyntheticBold(bool syntheticBold) { m_syntheticBold = syntheticBold;
} |
152 void setSyntheticItalic(bool syntheticItalic) { m_syntheticItalic = syntheti
cItalic; } | 155 void setSyntheticItalic(bool syntheticItalic) { m_syntheticItalic = syntheti
cItalic; } |
153 void setFeatureSettings(PassRefPtr<FontFeatureSettings> settings) { m_featur
eSettings = settings; } | 156 void setFeatureSettings(PassRefPtr<FontFeatureSettings> settings) { m_featur
eSettings = settings; } |
154 void setTraits(FontTraits); | 157 void setTraits(FontTraits); |
155 void setWordSpacing(float s) { m_wordSpacing = s; } | 158 void setWordSpacing(float s) { m_wordSpacing = s; } |
156 void setLetterSpacing(float s) { m_letterSpacing = s; } | 159 void setLetterSpacing(float s) { m_letterSpacing = s; } |
157 | 160 |
158 TypesettingFeatures typesettingFeatures() const { return static_cast<Typeset
tingFeatures>(m_typesettingFeatures); } | 161 TypesettingFeatures typesettingFeatures() const { return static_cast<Typeset
tingFeatures>(m_typesettingFeatures); } |
159 | 162 |
160 static void setSubpixelPositioning(bool b) { s_useSubpixelTextPositioning =
b; } | 163 static void setSubpixelPositioning(bool b) { s_useSubpixelTextPositioning =
b; } |
161 static bool subpixelPositioning() { return s_useSubpixelTextPositioning; } | 164 static bool subpixelPositioning() { return s_useSubpixelTextPositioning; } |
162 | 165 |
163 static void setDefaultTypesettingFeatures(TypesettingFeatures); | 166 static void setDefaultTypesettingFeatures(TypesettingFeatures); |
164 static TypesettingFeatures defaultTypesettingFeatures(); | 167 static TypesettingFeatures defaultTypesettingFeatures(); |
165 | 168 |
166 private: | 169 private: |
167 FontFamily m_familyList; // The list of font families to be used. | 170 FontFamily m_familyList; // The list of font families to be used. |
168 RefPtr<FontFeatureSettings> m_featureSettings; | 171 RefPtr<FontFeatureSettings> m_featureSettings; |
| 172 String m_locale; |
169 | 173 |
170 void updateTypesettingFeatures() const; | 174 void updateTypesettingFeatures() const; |
171 | 175 |
172 float m_specifiedSize; // Specified CSS value. Independent of rendering is
sues such as integer | 176 float m_specifiedSize; // Specified CSS value. Independent of rendering is
sues such as integer |
173 // rounding, minimum font sizes, and zooming. | 177 // rounding, minimum font sizes, and zooming. |
174 float m_computedSize; // Computed size adjusted for the minimum font size
and the zoom factor. | 178 float m_computedSize; // Computed size adjusted for the minimum font size
and the zoom factor. |
175 | 179 |
176 float m_letterSpacing; | 180 float m_letterSpacing; |
177 float m_wordSpacing; | 181 float m_wordSpacing; |
178 | 182 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 && m_script == other.m_script | 245 && m_script == other.m_script |
242 && m_syntheticBold == other.m_syntheticBold | 246 && m_syntheticBold == other.m_syntheticBold |
243 && m_syntheticItalic == other.m_syntheticItalic | 247 && m_syntheticItalic == other.m_syntheticItalic |
244 && m_featureSettings == other.m_featureSettings | 248 && m_featureSettings == other.m_featureSettings |
245 && m_subpixelTextPosition == other.m_subpixelTextPosition; | 249 && m_subpixelTextPosition == other.m_subpixelTextPosition; |
246 } | 250 } |
247 | 251 |
248 } | 252 } |
249 | 253 |
250 #endif | 254 #endif |
OLD | NEW |