Implement new TextMetrics, returned by canvas measureText()
[WebKit-https.git] / Source / WebCore / html / TextMetrics.h
index b272ef664b87f72fccb7331fca74340e01fc0431..0fccffe76edf5d16678e233453d67d7c213afa5b 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-#ifndef TextMetrics_h
-#define TextMetrics_h
+#pragma once
 
-#include <wtf/PassRefPtr.h>
+#include <wtf/Ref.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
 class TextMetrics : public RefCounted<TextMetrics> {
 public:
-    static PassRefPtr<TextMetrics> create() { return adoptRef(new TextMetrics); }
+    static Ref<TextMetrics> create() { return adoptRef(*new TextMetrics); }
 
     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