| 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 10 matching lines...) Expand all Loading... |
| 21 * Boston, MA 02110-1301, USm_ | 21 * Boston, MA 02110-1301, USm_ |
| 22 * | 22 * |
| 23 */ | 23 */ |
| 24 | 24 |
| 25 #ifndef FontDescription_h | 25 #ifndef FontDescription_h |
| 26 #define FontDescription_h | 26 #define FontDescription_h |
| 27 | 27 |
| 28 #include "FontFamily.h" | 28 #include "FontFamily.h" |
| 29 #include "FontRenderingMode.h" | 29 #include "FontRenderingMode.h" |
| 30 #include "FontTraitsMask.h" | 30 #include "FontTraitsMask.h" |
| 31 #include <unicode/uscript.h> | |
| 32 | 31 |
| 33 namespace WebCore { | 32 namespace WebCore { |
| 34 | 33 |
| 35 enum FontWeight { | 34 enum FontWeight { |
| 36 FontWeight100, | 35 FontWeight100, |
| 37 FontWeight200, | 36 FontWeight200, |
| 38 FontWeight300, | 37 FontWeight300, |
| 39 FontWeight400, | 38 FontWeight400, |
| 40 FontWeight500, | 39 FontWeight500, |
| 41 FontWeight600, | 40 FontWeight600, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 55 : m_specifiedSize(0) | 54 : m_specifiedSize(0) |
| 56 , m_computedSize(0) | 55 , m_computedSize(0) |
| 57 , m_italic(false) | 56 , m_italic(false) |
| 58 , m_smallCaps(false) | 57 , m_smallCaps(false) |
| 59 , m_isAbsoluteSize(false) | 58 , m_isAbsoluteSize(false) |
| 60 , m_weight(FontWeightNormal) | 59 , m_weight(FontWeightNormal) |
| 61 , m_genericFamily(NoFamily) | 60 , m_genericFamily(NoFamily) |
| 62 , m_usePrinterFont(false) | 61 , m_usePrinterFont(false) |
| 63 , m_renderingMode(NormalRenderingMode) | 62 , m_renderingMode(NormalRenderingMode) |
| 64 , m_keywordSize(0) | 63 , m_keywordSize(0) |
| 65 , m_dominantScript(USCRIPT_INVALID_CODE) | |
| 66 { | 64 { |
| 67 } | 65 } |
| 68 | 66 |
| 69 bool operator==(const FontDescription&) const; | 67 bool operator==(const FontDescription&) const; |
| 70 bool operator!=(const FontDescription& other) const { return !(*this == othe
r); } | 68 bool operator!=(const FontDescription& other) const { return !(*this == othe
r); } |
| 71 | 69 |
| 72 const FontFamily& family() const { return m_familyList; } | 70 const FontFamily& family() const { return m_familyList; } |
| 73 FontFamily& firstFamily() { return m_familyList; } | 71 FontFamily& firstFamily() { return m_familyList; } |
| 74 float specifiedSize() const { return m_specifiedSize; } | 72 float specifiedSize() const { return m_specifiedSize; } |
| 75 float computedSize() const { return m_computedSize; } | 73 float computedSize() const { return m_computedSize; } |
| 76 bool italic() const { return m_italic; } | 74 bool italic() const { return m_italic; } |
| 77 int computedPixelSize() const { return int(m_computedSize + 0.5f); } | 75 int computedPixelSize() const { return int(m_computedSize + 0.5f); } |
| 78 bool smallCaps() const { return m_smallCaps; } | 76 bool smallCaps() const { return m_smallCaps; } |
| 79 bool isAbsoluteSize() const { return m_isAbsoluteSize; } | 77 bool isAbsoluteSize() const { return m_isAbsoluteSize; } |
| 80 FontWeight weight() const { return static_cast<FontWeight>(m_weight); } | 78 FontWeight weight() const { return static_cast<FontWeight>(m_weight); } |
| 81 FontWeight lighterWeight() const; | 79 FontWeight lighterWeight() const; |
| 82 FontWeight bolderWeight() const; | 80 FontWeight bolderWeight() const; |
| 83 GenericFamilyType genericFamily() const { return static_cast<GenericFamilyTy
pe>(m_genericFamily); } | 81 GenericFamilyType genericFamily() const { return static_cast<GenericFamilyTy
pe>(m_genericFamily); } |
| 84 bool usePrinterFont() const { return m_usePrinterFont; } | 82 bool usePrinterFont() const { return m_usePrinterFont; } |
| 85 FontRenderingMode renderingMode() const { return static_cast<FontRenderingMo
de>(m_renderingMode); } | 83 FontRenderingMode renderingMode() const { return static_cast<FontRenderingMo
de>(m_renderingMode); } |
| 86 int keywordSize() const { return m_keywordSize; } | 84 int keywordSize() const { return m_keywordSize; } |
| 87 UScriptCode dominantScript() const { return m_dominantScript; } | |
| 88 | 85 |
| 89 FontTraitsMask traitsMask() const; | 86 FontTraitsMask traitsMask() const; |
| 90 | 87 |
| 91 void setFamily(const FontFamily& family) { m_familyList = family; } | 88 void setFamily(const FontFamily& family) { m_familyList = family; } |
| 92 void setComputedSize(float s) { m_computedSize = s; } | 89 void setComputedSize(float s) { m_computedSize = s; } |
| 93 void setSpecifiedSize(float s) { m_specifiedSize = s; } | 90 void setSpecifiedSize(float s) { m_specifiedSize = s; } |
| 94 void setItalic(bool i) { m_italic = i; } | 91 void setItalic(bool i) { m_italic = i; } |
| 95 void setSmallCaps(bool c) { m_smallCaps = c; } | 92 void setSmallCaps(bool c) { m_smallCaps = c; } |
| 96 void setIsAbsoluteSize(bool s) { m_isAbsoluteSize = s; } | 93 void setIsAbsoluteSize(bool s) { m_isAbsoluteSize = s; } |
| 97 void setWeight(FontWeight w) { m_weight = w; } | 94 void setWeight(FontWeight w) { m_weight = w; } |
| 98 void setGenericFamily(GenericFamilyType genericFamily) { m_genericFamily = g
enericFamily; } | 95 void setGenericFamily(GenericFamilyType genericFamily) { m_genericFamily = g
enericFamily; } |
| 99 void setUsePrinterFont(bool p) { m_usePrinterFont = p; } | 96 void setUsePrinterFont(bool p) { m_usePrinterFont = p; } |
| 100 void setRenderingMode(FontRenderingMode mode) { m_renderingMode = mode; } | 97 void setRenderingMode(FontRenderingMode mode) { m_renderingMode = mode; } |
| 101 void setKeywordSize(int s) { m_keywordSize = s; } | 98 void setKeywordSize(int s) { m_keywordSize = s; } |
| 102 void setDominantScript(UScriptCode s) { m_dominantScript = s; } | |
| 103 | 99 |
| 104 private: | 100 private: |
| 105 FontFamily m_familyList; // The list of font families to be used. | 101 FontFamily m_familyList; // The list of font families to be used. |
| 106 | 102 |
| 107 float m_specifiedSize; // Specified CSS value. Independent of rendering is
sues such as integer | 103 float m_specifiedSize; // Specified CSS value. Independent of rendering is
sues such as integer |
| 108 // rounding, minimum font sizes, and zooming. | 104 // rounding, minimum font sizes, and zooming. |
| 109 float m_computedSize; // Computed size adjusted for the minimum font size
and the zoom factor. | 105 float m_computedSize; // Computed size adjusted for the minimum font size
and the zoom factor. |
| 110 | 106 |
| 111 bool m_italic : 1; | 107 bool m_italic : 1; |
| 112 bool m_smallCaps : 1; | 108 bool m_smallCaps : 1; |
| 113 bool m_isAbsoluteSize : 1; // Whether or not CSS specified an explicit siz
e | 109 bool m_isAbsoluteSize : 1; // Whether or not CSS specified an explicit siz
e |
| 114 // (logical sizes like "medium" don't count). | 110 // (logical sizes like "medium" don't count). |
| 115 unsigned m_weight : 8; // FontWeight | 111 unsigned m_weight : 8; // FontWeight |
| 116 unsigned m_genericFamily : 3; // GenericFamilyType | 112 unsigned m_genericFamily : 3; // GenericFamilyType |
| 117 bool m_usePrinterFont : 1; | 113 bool m_usePrinterFont : 1; |
| 118 | 114 |
| 119 unsigned m_renderingMode : 1; // Used to switch between CG and GDI text on
Windows. | 115 unsigned m_renderingMode : 1; // Used to switch between CG and GDI text on
Windows. |
| 120 | 116 |
| 121 int m_keywordSize : 4; // We cache whether or not a font is currently repres
ented by a CSS keyword (e.g., medium). If so, | 117 int m_keywordSize : 4; // We cache whether or not a font is currently repres
ented by a CSS keyword (e.g., medium). If so, |
| 122 // then we can accurately translate across different
generic families to adjust for different preference settings | 118 // then we can accurately translate across different
generic families to adjust for different preference settings |
| 123 // (e.g., 13px monospace vs. 16px everything else).
Sizes are 1-8 (like the HTML size values for <font>). | 119 // (e.g., 13px monospace vs. 16px everything else).
Sizes are 1-8 (like the HTML size values for <font>). |
| 124 UScriptCode m_dominantScript; // See the comment in Document.h | |
| 125 | |
| 126 }; | 120 }; |
| 127 | 121 |
| 128 inline bool FontDescription::operator==(const FontDescription& other) const | 122 inline bool FontDescription::operator==(const FontDescription& other) const |
| 129 { | 123 { |
| 130 return m_familyList == other.m_familyList | 124 return m_familyList == other.m_familyList |
| 131 && m_specifiedSize == other.m_specifiedSize | 125 && m_specifiedSize == other.m_specifiedSize |
| 132 && m_computedSize == other.m_computedSize | 126 && m_computedSize == other.m_computedSize |
| 133 && m_italic == other.m_italic | 127 && m_italic == other.m_italic |
| 134 && m_smallCaps == other.m_smallCaps | 128 && m_smallCaps == other.m_smallCaps |
| 135 && m_isAbsoluteSize == other.m_isAbsoluteSize | 129 && m_isAbsoluteSize == other.m_isAbsoluteSize |
| 136 && m_weight == other.m_weight | 130 && m_weight == other.m_weight |
| 137 && m_genericFamily == other.m_genericFamily | 131 && m_genericFamily == other.m_genericFamily |
| 138 && m_usePrinterFont == other.m_usePrinterFont | 132 && m_usePrinterFont == other.m_usePrinterFont |
| 139 && m_renderingMode == other.m_renderingMode | 133 && m_renderingMode == other.m_renderingMode |
| 140 && m_keywordSize == other.m_keywordSize; | 134 && m_keywordSize == other.m_keywordSize; |
| 141 } | 135 } |
| 142 | 136 |
| 143 } | 137 } |
| 144 | 138 |
| 145 #endif | 139 #endif |
| OLD | NEW |