| Index: Source/core/css/CSSToLengthConversionData.h
|
| diff --git a/Source/core/css/CSSToLengthConversionData.h b/Source/core/css/CSSToLengthConversionData.h
|
| index e9595dea95e20eb2f705e28638713fd05d90536f..93493c22226558ae3f9cb1770a97cda918bfd612 100644
|
| --- a/Source/core/css/CSSToLengthConversionData.h
|
| +++ b/Source/core/css/CSSToLengthConversionData.h
|
| @@ -38,17 +38,50 @@ namespace blink {
|
|
|
| class RenderStyle;
|
| class RenderView;
|
| +class Font;
|
|
|
| class CSSToLengthConversionData {
|
| public:
|
| - CSSToLengthConversionData(const RenderStyle* currStyle, const RenderStyle* rootStyle, const RenderView*, float zoom, bool computingFontSize = false);
|
| - CSSToLengthConversionData(const RenderStyle* currStyle, const RenderStyle* rootStyle, const RenderView*, bool computingFontSize = false);
|
| - CSSToLengthConversionData(const RenderStyle* currStyle, const RenderStyle* rootStyle, float viewportWidth, float viewportHeight, float zoom, bool computingFontSize = false);
|
|
|
| - const RenderStyle& style() const { return *m_style; }
|
| - const RenderStyle* rootStyle() const { return m_rootStyle; }
|
| - float zoom() const;
|
| - bool computingFontSize() const { return m_computingFontSize; }
|
| + class FontSizes {
|
| + public:
|
| + FontSizes() : m_em(0), m_rem(0), m_font(nullptr) { }
|
| + FontSizes(float em, float rem, const Font*);
|
| + FontSizes(const RenderStyle*, const RenderStyle* rootStyle);
|
| +
|
| + float em() const { return m_em; }
|
| + float rem() const { return m_rem; }
|
| + float ex() const;
|
| + float ch() const;
|
| + private:
|
| + float m_em;
|
| + float m_rem;
|
| + const Font* m_font;
|
| + };
|
| +
|
| + class ViewportSize {
|
| + public:
|
| + ViewportSize() : m_width(0), m_height(0) { }
|
| + ViewportSize(double width, double height) : m_width(width), m_height(height) { }
|
| + explicit ViewportSize(const RenderView*);
|
| +
|
| + double width() const { return m_width; }
|
| + double height() const { return m_height; }
|
| + private:
|
| + double m_width;
|
| + double m_height;
|
| + };
|
| +
|
| + CSSToLengthConversionData() { }
|
| + CSSToLengthConversionData(const RenderStyle*, const FontSizes&, const ViewportSize&, float zoom);
|
| + CSSToLengthConversionData(const RenderStyle* currStyle, const RenderStyle* rootStyle, const RenderView*, float zoom);
|
| +
|
| + float zoom() const { return m_zoom; }
|
| +
|
| + float emFontSize() const { return m_fontSizes.em(); }
|
| + float remFontSize() const { return m_fontSizes.rem(); }
|
| + float exFontSize() const { return m_fontSizes.ex(); }
|
| + float chFontSize() const { return m_fontSizes.ch(); }
|
|
|
| // Accessing these marks the style as having viewport units
|
| double viewportWidthPercent() const;
|
| @@ -56,22 +89,19 @@ public:
|
| double viewportMinPercent() const;
|
| double viewportMaxPercent() const;
|
|
|
| - void setStyle(const RenderStyle* style) { m_style = style; }
|
| - void setRootStyle(const RenderStyle* rootStyle) { m_rootStyle = rootStyle; }
|
| + void setFontSizes(const FontSizes& fontSizes) { m_fontSizes = fontSizes; }
|
| + void setZoom(float zoom) { m_zoom = zoom; }
|
|
|
| CSSToLengthConversionData copyWithAdjustedZoom(float newZoom) const
|
| {
|
| - return CSSToLengthConversionData(m_style, m_rootStyle, m_viewportWidth, m_viewportHeight, newZoom, m_computingFontSize);
|
| + return CSSToLengthConversionData(m_style, m_fontSizes, m_viewportSize, newZoom);
|
| }
|
|
|
| private:
|
| const RenderStyle* m_style;
|
| - const RenderStyle* m_rootStyle;
|
| - float m_viewportWidth;
|
| - float m_viewportHeight;
|
| + FontSizes m_fontSizes;
|
| + ViewportSize m_viewportSize;
|
| float m_zoom;
|
| - bool m_useEffectiveZoom;
|
| - bool m_computingFontSize;
|
| };
|
|
|
| } // namespace blink
|
|
|