Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. | 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. |
| 4 * Copyright (C) 2013 Google Inc. All rights reserved. | 4 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 5 * | 5 * |
| 6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
| 7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
| 8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
| 9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
| 10 * | 10 * |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 28 #include "platform/fonts/FontDescription.h" | 28 #include "platform/fonts/FontDescription.h" |
| 29 #include "platform/heap/Handle.h" | 29 #include "platform/heap/Handle.h" |
| 30 #include "wtf/PassRefPtr.h" | 30 #include "wtf/PassRefPtr.h" |
| 31 | 31 |
| 32 namespace blink { | 32 namespace blink { |
| 33 | 33 |
| 34 class CSSValue; | 34 class CSSValue; |
| 35 class FontSelector; | 35 class FontSelector; |
| 36 class RenderStyle; | 36 class RenderStyle; |
| 37 | 37 |
| 38 class FontDescriptionChangeScope; | |
| 39 | |
| 40 class FontBuilder { | 38 class FontBuilder { |
| 41 STACK_ALLOCATED(); | 39 STACK_ALLOCATED(); |
| 42 WTF_MAKE_NONCOPYABLE(FontBuilder); | 40 WTF_MAKE_NONCOPYABLE(FontBuilder); |
| 43 public: | 41 public: |
| 44 FontBuilder(const Document&); | 42 FontBuilder(const Document&); |
| 45 | 43 |
| 46 void setFontDescription(const FontDescription& fd) { m_fontDescription = fd; } | |
| 47 const FontDescription& fontDescription() const { return m_fontDescription; } | |
| 48 | |
| 49 void setInitial(float effectiveZoom); | 44 void setInitial(float effectiveZoom); |
| 50 | 45 |
| 51 void didChangeFontParameters(bool); | 46 void didChangeEffectiveZoom(bool); |
| 52 | 47 void didChangeTextOrientation(bool); |
| 53 void inheritFrom(const FontDescription&); | 48 void didChangeWritingMode(bool); |
|
rune
2015/02/03 12:25:40
I would have removed the bool parameters and check
andersr
2015/02/03 15:35:08
Done.
| |
| 54 | 49 |
| 55 FontFamily standardFontFamily() const; | 50 FontFamily standardFontFamily() const; |
| 56 AtomicString standardFontFamilyName() const; | 51 AtomicString standardFontFamilyName() const; |
| 57 AtomicString genericFontFamilyName(FontDescription::GenericFamilyType) const ; | 52 AtomicString genericFontFamilyName(FontDescription::GenericFamilyType) const ; |
| 58 | 53 |
| 59 void setWeight(FontWeight); | 54 void setWeight(FontWeight); |
| 60 void setSize(const FontDescription::Size&); | 55 void setSize(const FontDescription::Size&); |
| 61 void setStretch(FontStretch); | 56 void setStretch(FontStretch); |
| 62 void setFamilyDescription(const FontDescription::FamilyDescription&); | 57 void setFamilyDescription(const FontDescription::FamilyDescription&); |
| 63 void setFeatureSettings(PassRefPtr<FontFeatureSettings>); | 58 void setFeatureSettings(PassRefPtr<FontFeatureSettings>); |
| 64 void setScript(const String& locale); | 59 void setScript(const String& locale); |
| 65 void setStyle(FontStyle); | 60 void setStyle(FontStyle); |
| 66 void setVariant(FontVariant); | 61 void setVariant(FontVariant); |
| 67 void setVariantLigatures(const FontDescription::VariantLigatures&); | 62 void setVariantLigatures(const FontDescription::VariantLigatures&); |
| 68 void setTextRendering(TextRenderingMode); | 63 void setTextRendering(TextRenderingMode); |
| 69 void setKerning(FontDescription::Kerning); | 64 void setKerning(FontDescription::Kerning); |
| 70 void setFontSmoothing(FontSmoothingMode); | 65 void setFontSmoothing(FontSmoothingMode); |
| 71 | 66 |
| 72 // FIXME: These need to just vend a Font object eventually. | 67 // FIXME: These need to just vend a Font object eventually. |
| 73 void createFont(PassRefPtrWillBeRawPtr<FontSelector>, RenderStyle*, const Re nderStyle* parentStyle); | 68 void createFont(PassRefPtrWillBeRawPtr<FontSelector>, RenderStyle*); |
| 74 | 69 |
| 75 void createFontForDocument(PassRefPtrWillBeRawPtr<FontSelector>, RenderStyle *); | 70 void createFontForDocument(PassRefPtrWillBeRawPtr<FontSelector>, RenderStyle *); |
| 76 | 71 |
| 77 // FIXME: These should not be necessary eventually. | 72 bool fontDirty() const { return m_flags; } |
| 78 void setFontDirty(bool fontDirty) { m_fontDirty = fontDirty; } | |
| 79 // FIXME: This is only used by an ASSERT in StyleResolver. Remove? | |
| 80 bool fontDirty() const { return m_fontDirty; } | |
| 81 | 73 |
| 82 static FontDescription::FamilyDescription initialFamilyDescription() { retur n FontDescription::FamilyDescription(initialGenericFamily()); } | 74 static FontDescription::FamilyDescription initialFamilyDescription() { retur n FontDescription::FamilyDescription(initialGenericFamily()); } |
| 83 static FontFeatureSettings* initialFeatureSettings() { return nullptr; } | 75 static FontFeatureSettings* initialFeatureSettings() { return nullptr; } |
| 84 static FontDescription::GenericFamilyType initialGenericFamily() { return Fo ntDescription::StandardFamily; } | 76 static FontDescription::GenericFamilyType initialGenericFamily() { return Fo ntDescription::StandardFamily; } |
| 85 static FontDescription::Size initialSize() { return FontDescription::Size(Fo ntSize::initialKeywordSize(), 0.0f, false); } | 77 static FontDescription::Size initialSize() { return FontDescription::Size(Fo ntSize::initialKeywordSize(), 0.0f, false); } |
| 86 static TextRenderingMode initialTextRendering() { return AutoTextRendering; } | 78 static TextRenderingMode initialTextRendering() { return AutoTextRendering; } |
| 87 static FontVariant initialVariant() { return FontVariantNormal; } | 79 static FontVariant initialVariant() { return FontVariantNormal; } |
| 88 static FontDescription::VariantLigatures initialVariantLigatures() { return FontDescription::VariantLigatures(); } | 80 static FontDescription::VariantLigatures initialVariantLigatures() { return FontDescription::VariantLigatures(); } |
| 89 static FontStyle initialStyle() { return FontStyleNormal; } | 81 static FontStyle initialStyle() { return FontStyleNormal; } |
| 90 static FontDescription::Kerning initialKerning() { return FontDescription::A utoKerning; } | 82 static FontDescription::Kerning initialKerning() { return FontDescription::A utoKerning; } |
| 91 static FontSmoothingMode initialFontSmoothing() { return AutoSmoothing; } | 83 static FontSmoothingMode initialFontSmoothing() { return AutoSmoothing; } |
| 92 static FontStretch initialStretch() { return FontStretchNormal; } | 84 static FontStretch initialStretch() { return FontStretchNormal; } |
| 93 static FontWeight initialWeight() { return FontWeightNormal; } | 85 static FontWeight initialWeight() { return FontWeightNormal; } |
| 94 | 86 |
| 95 friend class FontDescriptionChangeScope; | |
| 96 | |
| 97 private: | 87 private: |
| 98 | 88 |
| 99 void setFamilyDescription(FontDescription&, const FontDescription::FamilyDes cription&); | 89 void setFamilyDescription(FontDescription&, const FontDescription::FamilyDes cription&); |
| 100 void setSize(FontDescription&, const FontDescription::Size&); | 90 void setSize(FontDescription&, const FontDescription::Size&); |
| 101 void checkForOrientationChange(RenderStyle*); | 91 void updateOrientation(FontDescription&, RenderStyle*); |
| 102 // This function fixes up the default font size if it detects that the curre nt generic font family has changed. -dwh | 92 // This function fixes up the default font size if it detects that the curre nt generic font family has changed. -dwh |
| 103 void checkForGenericFamilyChange(RenderStyle*, const RenderStyle* parentStyl e); | 93 void checkForGenericFamilyChange(const FontDescription&, FontDescription&); |
| 104 void updateComputedSize(RenderStyle*, const RenderStyle* parentStyle); | 94 void updateSpecifiedSize(FontDescription&, RenderStyle*); |
| 105 void updateComputedSize(FontDescription&, RenderStyle*); | 95 void updateComputedSize(FontDescription&, RenderStyle*); |
| 106 | 96 |
| 107 float getComputedSizeFromSpecifiedSize(FontDescription&, float effectiveZoom , float specifiedSize); | 97 float getComputedSizeFromSpecifiedSize(FontDescription&, float effectiveZoom , float specifiedSize); |
| 108 | 98 |
| 109 const Document& m_document; | 99 const Document& m_document; |
| 110 FontDescription m_fontDescription; | 100 FontDescription m_fontDescription; |
| 111 | 101 |
| 112 // Fontbuilder is responsbile for creating the Font() | 102 enum class IsSetFlag { |
|
rune
2015/02/03 12:25:40
How about something more descriptive like Descript
andersr
2015/02/03 15:35:08
Do you mean DescriptionFlag?
| |
| 113 // object on RenderStyle from various other font-related | 103 Weight, |
| 114 // properties on RenderStyle. Whenever one of those | 104 Size, |
| 115 // is changed, FontBuilder tracks the need to update | 105 Stretch, |
| 116 // style->font() with this bool. | 106 Family, |
| 117 bool m_fontDirty; | 107 FeatureSettings, |
| 108 Script, | |
| 109 Style, | |
| 110 Variant, | |
| 111 VariantLigatures, | |
| 112 TextRendering, | |
| 113 Kerning, | |
| 114 FontSmoothing, | |
| 115 | |
| 116 EffectiveZoom, | |
| 117 TextOrientation, | |
| 118 WritingMode | |
| 119 }; | |
| 120 | |
| 121 void set(IsSetFlag flag) { m_flags |= (1 << unsigned(flag)); } | |
| 122 bool isSet(IsSetFlag flag) const { return m_flags & (1 << unsigned(flag)); } | |
| 123 | |
| 124 unsigned m_flags; | |
| 118 }; | 125 }; |
| 119 | 126 |
| 120 } | 127 } |
| 121 | 128 |
| 122 #endif | 129 #endif |
| OLD | NEW |