2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 #include "bindings/core/v8/ScriptWrappable.h"
30 #include "core/CoreExport.h"
31 #include "platform/heap/Handle.h"
35 class CORE_EXPORT TextMetrics final
: public GarbageCollected
<TextMetrics
>, public ScriptWrappable
{
36 DEFINE_WRAPPERTYPEINFO();
38 static TextMetrics
* create()
40 return new TextMetrics
;
43 float width() const { return m_width
; }
44 void setWidth(float w
) { m_width
= w
; }
46 float actualBoundingBoxLeft() const { return m_actualBoundingBoxLeft
; }
47 void setActualBoundingBoxLeft(float actualBoundingBoxLeft
) { m_actualBoundingBoxLeft
= actualBoundingBoxLeft
; }
49 float actualBoundingBoxRight() const { return m_actualBoundingBoxRight
; }
50 void setActualBoundingBoxRight(float actualBoundingBoxRight
) { m_actualBoundingBoxRight
= actualBoundingBoxRight
; }
52 float fontBoundingBoxAscent() const { return m_fontBoundingBoxAscent
; }
53 void setFontBoundingBoxAscent(float fontBoundingBoxAscent
) { m_fontBoundingBoxAscent
= fontBoundingBoxAscent
; }
55 float fontBoundingBoxDescent() const { return m_fontBoundingBoxDescent
; }
56 void setFontBoundingBoxDescent(float fontBoundingBoxDescent
) { m_fontBoundingBoxDescent
= fontBoundingBoxDescent
; }
58 float actualBoundingBoxAscent() const { return m_actualBoundingBoxAscent
; }
59 void setActualBoundingBoxAscent(float actualBoundingBoxAscent
) { m_actualBoundingBoxAscent
= actualBoundingBoxAscent
; }
61 float actualBoundingBoxDescent() const { return m_actualBoundingBoxDescent
; }
62 void setActualBoundingBoxDescent(float actualBoundingBoxDescent
) { m_actualBoundingBoxDescent
= actualBoundingBoxDescent
; }
64 float emHeightAscent() const { return m_emHeightAscent
; }
65 void setEmHeightAscent(float emHeightAscent
) { m_emHeightAscent
= emHeightAscent
; }
67 float emHeightDescent() const { return m_emHeightDescent
; }
68 void setEmHeightDescent(float emHeightDescent
) { m_emHeightDescent
= emHeightDescent
; }
70 float hangingBaseline() const { return m_hangingBaseline
; }
71 void setHangingBaseline(float hangingBaseline
) { m_hangingBaseline
= hangingBaseline
; }
73 float alphabeticBaseline() const { return m_alphabeticBaseline
; }
74 void setAlphabeticBaseline(float alphabeticBaseline
) { m_alphabeticBaseline
= alphabeticBaseline
; }
76 float ideographicBaseline() const { return m_ideographicBaseline
; }
77 void setIdeographicBaseline(float ideographicBaseline
) { m_ideographicBaseline
= ideographicBaseline
; }
79 DEFINE_INLINE_TRACE() { }
84 , m_actualBoundingBoxLeft(0)
85 , m_actualBoundingBoxRight(0)
86 , m_fontBoundingBoxAscent(0)
87 , m_fontBoundingBoxDescent(0)
88 , m_actualBoundingBoxAscent(0)
89 , m_actualBoundingBoxDescent(0)
91 , m_emHeightDescent(0)
92 , m_hangingBaseline(0)
93 , m_alphabeticBaseline(0)
94 , m_ideographicBaseline(0) { }
98 float m_actualBoundingBoxLeft
;
99 float m_actualBoundingBoxRight
;
102 float m_fontBoundingBoxAscent
;
103 float m_fontBoundingBoxDescent
;
104 float m_actualBoundingBoxAscent
;
105 float m_actualBoundingBoxDescent
;
106 float m_emHeightAscent
;
107 float m_emHeightDescent
;
108 float m_hangingBaseline
;
109 float m_alphabeticBaseline
;
110 float m_ideographicBaseline
;
115 #endif // TextMetrics_h