Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: Source/platform/fonts/FontDescription.h

Issue 183813005: Add font-stretch to FontDescription (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 FontWeight400, 49 FontWeight400,
50 FontWeight500, 50 FontWeight500,
51 FontWeight600, 51 FontWeight600,
52 FontWeight700, 52 FontWeight700,
53 FontWeight800, 53 FontWeight800,
54 FontWeight900, 54 FontWeight900,
55 FontWeightNormal = FontWeight400, 55 FontWeightNormal = FontWeight400,
56 FontWeightBold = FontWeight700 56 FontWeightBold = FontWeight700
57 }; 57 };
58 58
59 // Numeric values matching OS/2 & Windows Metrics usWidthClass table.
60 // https://www.microsoft.com/typography/otspec/os2.htm
61 enum FontStretch {
62 FontStretchUltraCondensed = 1,
63 FontStretchExtraCondensed = 2,
64 FontStretchCondensed = 3,
65 FontStretchSemiCondensed = 4,
66 FontStretchNormal = 5,
67 FontStretchSemiExpanded = 6,
68 FontStretchExpanded = 7,
69 FontStretchExtraExpanded = 8,
70 FontStretchUltraExpanded = 9
71 };
72
59 enum FontItalic { 73 enum FontItalic {
60 FontItalicOff = 0, 74 FontItalicOff = 0,
61 FontItalicOn = 1 75 FontItalicOn = 1
62 }; 76 };
63 77
64 enum FontSmallCaps { 78 enum FontSmallCaps {
65 FontSmallCapsOff = 0, 79 FontSmallCapsOff = 0,
66 FontSmallCapsOn = 1 80 FontSmallCapsOn = 1
67 }; 81 };
68 82
(...skipping 11 matching lines...) Expand all
80 , m_computedSize(0) 94 , m_computedSize(0)
81 , m_letterSpacing(0) 95 , m_letterSpacing(0)
82 , m_wordSpacing(0) 96 , m_wordSpacing(0)
83 , m_orientation(Horizontal) 97 , m_orientation(Horizontal)
84 , m_nonCJKGlyphOrientation(NonCJKGlyphOrientationVerticalRight) 98 , m_nonCJKGlyphOrientation(NonCJKGlyphOrientationVerticalRight)
85 , m_widthVariant(RegularWidth) 99 , m_widthVariant(RegularWidth)
86 , m_italic(FontItalicOff) 100 , m_italic(FontItalicOff)
87 , m_smallCaps(FontSmallCapsOff) 101 , m_smallCaps(FontSmallCapsOff)
88 , m_isAbsoluteSize(false) 102 , m_isAbsoluteSize(false)
89 , m_weight(FontWeightNormal) 103 , m_weight(FontWeightNormal)
104 , m_stretch(FontStretchNormal)
90 , m_genericFamily(NoFamily) 105 , m_genericFamily(NoFamily)
91 , m_usePrinterFont(false) 106 , m_usePrinterFont(false)
92 , m_kerning(AutoKerning) 107 , m_kerning(AutoKerning)
93 , m_commonLigaturesState(NormalLigaturesState) 108 , m_commonLigaturesState(NormalLigaturesState)
94 , m_discretionaryLigaturesState(NormalLigaturesState) 109 , m_discretionaryLigaturesState(NormalLigaturesState)
95 , m_historicalLigaturesState(NormalLigaturesState) 110 , m_historicalLigaturesState(NormalLigaturesState)
96 , m_keywordSize(0) 111 , m_keywordSize(0)
97 , m_fontSmoothing(AutoSmoothing) 112 , m_fontSmoothing(AutoSmoothing)
98 , m_textRendering(AutoTextRendering) 113 , m_textRendering(AutoTextRendering)
99 , m_isSpecifiedFont(false) 114 , m_isSpecifiedFont(false)
(...skipping 10 matching lines...) Expand all
110 125
111 const FontFamily& family() const { return m_familyList; } 126 const FontFamily& family() const { return m_familyList; }
112 FontFamily& firstFamily() { return m_familyList; } 127 FontFamily& firstFamily() { return m_familyList; }
113 float specifiedSize() const { return m_specifiedSize; } 128 float specifiedSize() const { return m_specifiedSize; }
114 float computedSize() const { return m_computedSize; } 129 float computedSize() const { return m_computedSize; }
115 FontItalic italic() const { return static_cast<FontItalic>(m_italic); } 130 FontItalic italic() const { return static_cast<FontItalic>(m_italic); }
116 int computedPixelSize() const { return int(m_computedSize + 0.5f); } 131 int computedPixelSize() const { return int(m_computedSize + 0.5f); }
117 FontSmallCaps smallCaps() const { return static_cast<FontSmallCaps>(m_smallC aps); } 132 FontSmallCaps smallCaps() const { return static_cast<FontSmallCaps>(m_smallC aps); }
118 bool isAbsoluteSize() const { return m_isAbsoluteSize; } 133 bool isAbsoluteSize() const { return m_isAbsoluteSize; }
119 FontWeight weight() const { return static_cast<FontWeight>(m_weight); } 134 FontWeight weight() const { return static_cast<FontWeight>(m_weight); }
135 FontStretch stretch() const { return static_cast<FontStretch>(m_stretch); }
120 FontWeight lighterWeight() const; 136 FontWeight lighterWeight() const;
121 FontWeight bolderWeight() const; 137 FontWeight bolderWeight() const;
122 GenericFamilyType genericFamily() const { return static_cast<GenericFamilyTy pe>(m_genericFamily); } 138 GenericFamilyType genericFamily() const { return static_cast<GenericFamilyTy pe>(m_genericFamily); }
123 #if OS(MACOSX) 139 #if OS(MACOSX)
124 bool usePrinterFont() const { return false; } 140 bool usePrinterFont() const { return false; }
125 #else 141 #else
126 bool usePrinterFont() const { return m_usePrinterFont; } 142 bool usePrinterFont() const { return m_usePrinterFont; }
127 #endif 143 #endif
128 // only use fixed default size when there is only one font family, and that family is "monospace" 144 // only use fixed default size when there is only one font family, and that family is "monospace"
129 bool useFixedDefaultSize() const { return genericFamily() == MonospaceFamily && !family().next() && family().family() == FontFamilyNames::webkit_monospace; } 145 bool useFixedDefaultSize() const { return genericFamily() == MonospaceFamily && !family().next() && family().family() == FontFamilyNames::webkit_monospace; }
(...skipping 24 matching lines...) Expand all
154 170
155 void setFamily(const FontFamily& family) { m_familyList = family; } 171 void setFamily(const FontFamily& family) { m_familyList = family; }
156 void setComputedSize(float s) { m_computedSize = clampToFloat(s); } 172 void setComputedSize(float s) { m_computedSize = clampToFloat(s); }
157 void setSpecifiedSize(float s) { m_specifiedSize = clampToFloat(s); } 173 void setSpecifiedSize(float s) { m_specifiedSize = clampToFloat(s); }
158 void setItalic(FontItalic i) { m_italic = i; } 174 void setItalic(FontItalic i) { m_italic = i; }
159 void setItalic(bool i) { setItalic(i ? FontItalicOn : FontItalicOff); } 175 void setItalic(bool i) { setItalic(i ? FontItalicOn : FontItalicOff); }
160 void setSmallCaps(FontSmallCaps c) { m_smallCaps = c; } 176 void setSmallCaps(FontSmallCaps c) { m_smallCaps = c; }
161 void setSmallCaps(bool c) { setSmallCaps(c ? FontSmallCapsOn : FontSmallCaps Off); } 177 void setSmallCaps(bool c) { setSmallCaps(c ? FontSmallCapsOn : FontSmallCaps Off); }
162 void setIsAbsoluteSize(bool s) { m_isAbsoluteSize = s; } 178 void setIsAbsoluteSize(bool s) { m_isAbsoluteSize = s; }
163 void setWeight(FontWeight w) { m_weight = w; } 179 void setWeight(FontWeight w) { m_weight = w; }
180 void setStretch(FontStretch s) { m_stretch = s; }
164 void setGenericFamily(GenericFamilyType genericFamily) { m_genericFamily = g enericFamily; } 181 void setGenericFamily(GenericFamilyType genericFamily) { m_genericFamily = g enericFamily; }
165 void setUsePrinterFont(bool p) { m_usePrinterFont = p; } 182 void setUsePrinterFont(bool p) { m_usePrinterFont = p; }
166 void setKerning(Kerning kerning) { m_kerning = kerning; updateTypesettingFea tures(); } 183 void setKerning(Kerning kerning) { m_kerning = kerning; updateTypesettingFea tures(); }
167 void setCommonLigaturesState(LigaturesState commonLigaturesState) { m_common LigaturesState = commonLigaturesState; updateTypesettingFeatures(); } 184 void setCommonLigaturesState(LigaturesState commonLigaturesState) { m_common LigaturesState = commonLigaturesState; updateTypesettingFeatures(); }
168 void setDiscretionaryLigaturesState(LigaturesState discretionaryLigaturesSta te) { m_discretionaryLigaturesState = discretionaryLigaturesState; } 185 void setDiscretionaryLigaturesState(LigaturesState discretionaryLigaturesSta te) { m_discretionaryLigaturesState = discretionaryLigaturesState; }
169 void setHistoricalLigaturesState(LigaturesState historicalLigaturesState) { m_historicalLigaturesState = historicalLigaturesState; } 186 void setHistoricalLigaturesState(LigaturesState historicalLigaturesState) { m_historicalLigaturesState = historicalLigaturesState; }
170 void setKeywordSize(unsigned s) { m_keywordSize = s; } 187 void setKeywordSize(unsigned s) { m_keywordSize = s; }
171 void setFontSmoothing(FontSmoothingMode smoothing) { m_fontSmoothing = smoot hing; } 188 void setFontSmoothing(FontSmoothingMode smoothing) { m_fontSmoothing = smoot hing; }
172 void setTextRenderingMode(TextRenderingMode rendering) { m_textRendering = r endering; updateTypesettingFeatures(); } 189 void setTextRenderingMode(TextRenderingMode rendering) { m_textRendering = r endering; updateTypesettingFeatures(); }
173 void setIsSpecifiedFont(bool isSpecifiedFont) { m_isSpecifiedFont = isSpecif iedFont; } 190 void setIsSpecifiedFont(bool isSpecifiedFont) { m_isSpecifiedFont = isSpecif iedFont; }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 unsigned m_orientation : 1; // FontOrientation - Whether the font is renderi ng on a horizontal line or a vertical line. 223 unsigned m_orientation : 1; // FontOrientation - Whether the font is renderi ng on a horizontal line or a vertical line.
207 unsigned m_nonCJKGlyphOrientation : 1; // NonCJKGlyphOrientation - Only used by vertical text. Determines the default orientation for non-ideograph glyphs. 224 unsigned m_nonCJKGlyphOrientation : 1; // NonCJKGlyphOrientation - Only used by vertical text. Determines the default orientation for non-ideograph glyphs.
208 225
209 unsigned m_widthVariant : 2; // FontWidthVariant 226 unsigned m_widthVariant : 2; // FontWidthVariant
210 227
211 unsigned m_italic : 1; // FontItalic 228 unsigned m_italic : 1; // FontItalic
212 unsigned m_smallCaps : 1; // FontSmallCaps 229 unsigned m_smallCaps : 1; // FontSmallCaps
213 unsigned m_isAbsoluteSize : 1; // Whether or not CSS specified an explicit s ize 230 unsigned m_isAbsoluteSize : 1; // Whether or not CSS specified an explicit s ize
214 // (logical sizes like "medium" don't count). 231 // (logical sizes like "medium" don't count).
215 unsigned m_weight : 8; // FontWeight 232 unsigned m_weight : 8; // FontWeight
233 unsigned m_stretch : 4; // FontStretch
216 unsigned m_genericFamily : 3; // GenericFamilyType 234 unsigned m_genericFamily : 3; // GenericFamilyType
217 unsigned m_usePrinterFont : 1; 235 unsigned m_usePrinterFont : 1;
218 236
219 unsigned m_kerning : 2; // Kerning 237 unsigned m_kerning : 2; // Kerning
220 238
221 unsigned m_commonLigaturesState : 2; 239 unsigned m_commonLigaturesState : 2;
222 unsigned m_discretionaryLigaturesState : 2; 240 unsigned m_discretionaryLigaturesState : 2;
223 unsigned m_historicalLigaturesState : 2; 241 unsigned m_historicalLigaturesState : 2;
224 242
225 unsigned m_keywordSize : 4; // We cache whether or not a font is currently r epresented by a CSS keyword (e.g., medium). If so, 243 unsigned m_keywordSize : 4; // We cache whether or not a font is currently r epresented by a CSS keyword (e.g., medium). If so,
(...skipping 19 matching lines...) Expand all
245 { 263 {
246 return m_familyList == other.m_familyList 264 return m_familyList == other.m_familyList
247 && m_specifiedSize == other.m_specifiedSize 265 && m_specifiedSize == other.m_specifiedSize
248 && m_computedSize == other.m_computedSize 266 && m_computedSize == other.m_computedSize
249 && m_letterSpacing == other.m_letterSpacing 267 && m_letterSpacing == other.m_letterSpacing
250 && m_wordSpacing == other.m_wordSpacing 268 && m_wordSpacing == other.m_wordSpacing
251 && m_italic == other.m_italic 269 && m_italic == other.m_italic
252 && m_smallCaps == other.m_smallCaps 270 && m_smallCaps == other.m_smallCaps
253 && m_isAbsoluteSize == other.m_isAbsoluteSize 271 && m_isAbsoluteSize == other.m_isAbsoluteSize
254 && m_weight == other.m_weight 272 && m_weight == other.m_weight
273 && m_stretch == other.m_stretch
255 && m_genericFamily == other.m_genericFamily 274 && m_genericFamily == other.m_genericFamily
256 && m_usePrinterFont == other.m_usePrinterFont 275 && m_usePrinterFont == other.m_usePrinterFont
257 && m_kerning == other.m_kerning 276 && m_kerning == other.m_kerning
258 && m_commonLigaturesState == other.m_commonLigaturesState 277 && m_commonLigaturesState == other.m_commonLigaturesState
259 && m_discretionaryLigaturesState == other.m_discretionaryLigaturesState 278 && m_discretionaryLigaturesState == other.m_discretionaryLigaturesState
260 && m_historicalLigaturesState == other.m_historicalLigaturesState 279 && m_historicalLigaturesState == other.m_historicalLigaturesState
261 && m_keywordSize == other.m_keywordSize 280 && m_keywordSize == other.m_keywordSize
262 && m_fontSmoothing == other.m_fontSmoothing 281 && m_fontSmoothing == other.m_fontSmoothing
263 && m_textRendering == other.m_textRendering 282 && m_textRendering == other.m_textRendering
264 && m_isSpecifiedFont == other.m_isSpecifiedFont 283 && m_isSpecifiedFont == other.m_isSpecifiedFont
265 && m_orientation == other.m_orientation 284 && m_orientation == other.m_orientation
266 && m_nonCJKGlyphOrientation == other.m_nonCJKGlyphOrientation 285 && m_nonCJKGlyphOrientation == other.m_nonCJKGlyphOrientation
267 && m_widthVariant == other.m_widthVariant 286 && m_widthVariant == other.m_widthVariant
268 && m_script == other.m_script 287 && m_script == other.m_script
269 && m_syntheticBold == other.m_syntheticBold 288 && m_syntheticBold == other.m_syntheticBold
270 && m_syntheticItalic == other.m_syntheticItalic 289 && m_syntheticItalic == other.m_syntheticItalic
271 && m_featureSettings == other.m_featureSettings 290 && m_featureSettings == other.m_featureSettings
272 && m_subpixelTextPosition == other.m_subpixelTextPosition; 291 && m_subpixelTextPosition == other.m_subpixelTextPosition;
273 } 292 }
274 293
275 } 294 }
276 295
277 #endif 296 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698