Implement new TextMetrics, returned by canvas measureText()
[WebKit-https.git] / Source / WebCore / html / TextMetrics.h
index 7702b92c0d2612a2410b617836195d5e463a5909..0fccffe76edf5d16678e233453d67d7c213afa5b 100644 (file)
@@ -23,8 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-#ifndef TextMetrics_h
-#define TextMetrics_h
+#pragma once
 
 #include <wtf/Ref.h>
 #include <wtf/RefCounted.h>
@@ -38,14 +37,52 @@ public:
     float width() const { return m_width; }
     void setWidth(float w) { m_width = w; }
 
-private:
-    TextMetrics()
-        : m_width(0)
-    { }
+    float actualBoundingBoxLeft() const { return m_actualBoundingBoxLeft; }
+    void setActualBoundingBoxLeft(float value) { m_actualBoundingBoxLeft = value; }
+
+    float actualBoundingBoxRight() const { return m_actualBoundingBoxRight; }
+    void setActualBoundingBoxRight(float value) { m_actualBoundingBoxRight = value; }
+
+    float fontBoundingBoxAscent() const { return m_fontBoundingBoxAscent; }
+    void setFontBoundingBoxAscent(float value) {  m_fontBoundingBoxAscent = value; }
+
+    float fontBoundingBoxDescent() const { return m_fontBoundingBoxDescent; }
+    void setFontBoundingBoxDescent(float value) {  m_fontBoundingBoxDescent = value; }
+
+    float actualBoundingBoxAscent() const { return m_actualBoundingBoxAscent; }
+    void setActualBoundingBoxAscent(float value) {  m_actualBoundingBoxAscent = value; }
+
+    float actualBoundingBoxDescent() const { return m_actualBoundingBoxDescent; }
+    void setActualBoundingBoxDescent(float value) {  m_actualBoundingBoxDescent = value; }
+
+    float emHeightAscent() const { return m_emHeightAscent; }
+    void setEmHeightAscent(float value) {  m_emHeightAscent = value; }
 
-    float m_width;
+    float emHeightDescent() const { return m_emHeightDescent; }
+    void setEmHeightDescent(float value) {  m_emHeightDescent = value; }
+
+    float hangingBaseline() const { return m_hangingBaseline; }
+    void setHangingBaseline(float value) {  m_hangingBaseline = value; }
+
+    float alphabeticBaseline() const { return m_alphabeticBaseline; }
+    void setAlphabeticBaseline(float value) {  m_alphabeticBaseline = value; }
+
+    float ideographicBaseline() const { return m_ideographicBaseline; }
+    void setIdeographicBaseline(float value) {  m_ideographicBaseline = value; }
+
+private:
+    float m_width { 0 };
+    float m_actualBoundingBoxLeft { 0 };
+    float m_actualBoundingBoxRight { 0 };
+    float m_fontBoundingBoxAscent { 0 };
+    float m_fontBoundingBoxDescent { 0 };
+    float m_actualBoundingBoxAscent { 0 };
+    float m_actualBoundingBoxDescent { 0 };
+    float m_emHeightAscent { 0 };
+    float m_emHeightDescent { 0 };
+    float m_hangingBaseline { 0 };
+    float m_alphabeticBaseline { 0 };
+    float m_ideographicBaseline { 0 };
 };
 
 } // namespace WebCore
-
-#endif // TextMetrics_h