Not reviewed. (First) Build fix for Qt/Gtk.
[WebKit-https.git] / WebCore / platform / graphics / SimpleFontData.h
index bd6d9dc0c6cff3bf1acb0c44f38dd5bc1bea8b56..bd066c22edfe0117efe4fa1c35f529021ddb4e65 100644 (file)
 #ifndef SimpleFontData_h
 #define SimpleFontData_h
 
-#include "FontDataBaseClass.h"
+#include "FontData.h"
 #include "FontPlatformData.h"
 #include "GlyphPageTreeNode.h"
 #include "GlyphWidthMap.h"
 #include <wtf/OwnPtr.h>
+
 #if PLATFORM(MAC)
 typedef struct OpaqueATSUStyle* ATSUStyle;
 #endif
@@ -41,36 +42,14 @@ namespace WebCore {
 class FontDescription;
 class FontPlatformData;
 class SharedBuffer;
+class SVGFontData;
 class WidthMap;
 
-#if ENABLE(SVG_FONTS)
-class SVGFontFaceElement;
-
-struct SVGFontData {
-    SVGFontData(SVGFontFaceElement*);
-
-    // Helper function
-    static float convertEmUnitToPixel(float fontSize, float unitsPerEm, float value);
-
-    // Hold pointer to our creator
-    RefPtr<SVGFontFaceElement> fontFaceElement;
-
-    // SVG Font specific metrics
-    float horizontalOriginX;
-    float horizontalOriginY;
-    float horizontalAdvanceX;
-
-    float verticalOriginX;
-    float verticalOriginY;
-    float verticalAdvanceY;
-};
-#endif
-
 enum Pitch { UnknownPitch, FixedPitch, VariablePitch };
 
 class SimpleFontData : public FontData {
 public:
-    SimpleFontData(const FontPlatformData&, bool customFont = false, bool loading = false);
+    SimpleFontData(const FontPlatformData&, bool customFont = false, bool loading = false, SVGFontData* data = 0);
     virtual ~SimpleFontData();
 
 public:
@@ -78,11 +57,11 @@ public:
     SimpleFontData* smallCapsFontData(const FontDescription& fontDescription) const;
 
     // vertical metrics
-    int ascent(float fontSize) const;
-    int descent(float fontSize) const;
-    int lineSpacing(float fontSize) const;
-    int lineGap(float fontSize) const;
-    float xHeight(float fontSize) const;
+    int ascent() const { return m_ascent; }
+    int descent() const { return m_descent; }
+    int lineSpacing() const { return m_lineSpacing; }
+    int lineGap() const { return m_lineGap; }
+    float xHeight() const { return m_xHeight; }
     unsigned unitsPerEm() const { return m_unitsPerEm; }
 
     float widthForGlyph(Glyph) const;
@@ -95,8 +74,10 @@ public:
     Pitch pitch() const { return m_treatAsFixedPitch ? FixedPitch : VariablePitch; }
 
 #if ENABLE(SVG_FONTS)
-    bool isSVGFont() const { return m_svgFontData; }
     SVGFontData* svgFontData() const { return m_svgFontData.get(); }
+    virtual bool isSVGFont() const { return m_svgFontData; }
+#else
+    virtual bool isSVGFont() const { return false; }
 #endif
 
     virtual bool isCustomFont() const { return m_isCustomFont; }