OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). | 2 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 13 matching lines...) Expand all Loading... |
24 | 24 |
25 #include "bindings/core/v8/ExceptionMessages.h" | 25 #include "bindings/core/v8/ExceptionMessages.h" |
26 #include "bindings/core/v8/ExceptionState.h" | 26 #include "bindings/core/v8/ExceptionState.h" |
27 #include "bindings/core/v8/ExceptionStatePlaceholder.h" | 27 #include "bindings/core/v8/ExceptionStatePlaceholder.h" |
28 #include "core/HTMLNames.h" | 28 #include "core/HTMLNames.h" |
29 #include "core/dom/ExceptionCode.h" | 29 #include "core/dom/ExceptionCode.h" |
30 #include "core/dom/shadow/ShadowRoot.h" | 30 #include "core/dom/shadow/ShadowRoot.h" |
31 #include "core/frame/UseCounter.h" | 31 #include "core/frame/UseCounter.h" |
32 #include "core/html/parser/HTMLParserIdioms.h" | 32 #include "core/html/parser/HTMLParserIdioms.h" |
33 #include "core/html/shadow/MeterShadowElement.h" | 33 #include "core/html/shadow/MeterShadowElement.h" |
| 34 #include "core/layout/LayoutMeter.h" |
34 #include "core/layout/LayoutTheme.h" | 35 #include "core/layout/LayoutTheme.h" |
35 #include "core/rendering/RenderMeter.h" | |
36 | 36 |
37 namespace blink { | 37 namespace blink { |
38 | 38 |
39 using namespace HTMLNames; | 39 using namespace HTMLNames; |
40 | 40 |
41 HTMLMeterElement::HTMLMeterElement(Document& document) | 41 HTMLMeterElement::HTMLMeterElement(Document& document) |
42 : LabelableElement(meterTag, document) | 42 : LabelableElement(meterTag, document) |
43 { | 43 { |
44 UseCounter::count(document, UseCounter::MeterElement); | 44 UseCounter::count(document, UseCounter::MeterElement); |
45 } | 45 } |
46 | 46 |
47 HTMLMeterElement::~HTMLMeterElement() | 47 HTMLMeterElement::~HTMLMeterElement() |
48 { | 48 { |
49 } | 49 } |
50 | 50 |
51 PassRefPtrWillBeRawPtr<HTMLMeterElement> HTMLMeterElement::create(Document& docu
ment) | 51 PassRefPtrWillBeRawPtr<HTMLMeterElement> HTMLMeterElement::create(Document& docu
ment) |
52 { | 52 { |
53 RefPtrWillBeRawPtr<HTMLMeterElement> meter = adoptRefWillBeNoop(new HTMLMete
rElement(document)); | 53 RefPtrWillBeRawPtr<HTMLMeterElement> meter = adoptRefWillBeNoop(new HTMLMete
rElement(document)); |
54 meter->ensureClosedShadowRoot(); | 54 meter->ensureClosedShadowRoot(); |
55 return meter.release(); | 55 return meter.release(); |
56 } | 56 } |
57 | 57 |
58 LayoutObject* HTMLMeterElement::createRenderer(const LayoutStyle& style) | 58 LayoutObject* HTMLMeterElement::createRenderer(const LayoutStyle& style) |
59 { | 59 { |
60 if (hasOpenShadowRoot() || !LayoutTheme::theme().supportsMeter(style.appeara
nce())) | 60 if (hasOpenShadowRoot() || !LayoutTheme::theme().supportsMeter(style.appeara
nce())) |
61 return LayoutObject::createObject(this, style); | 61 return LayoutObject::createObject(this, style); |
62 return new RenderMeter(this); | 62 return new LayoutMeter(this); |
63 } | 63 } |
64 | 64 |
65 void HTMLMeterElement::parseAttribute(const QualifiedName& name, const AtomicStr
ing& value) | 65 void HTMLMeterElement::parseAttribute(const QualifiedName& name, const AtomicStr
ing& value) |
66 { | 66 { |
67 if (name == valueAttr || name == minAttr || name == maxAttr || name == lowAt
tr || name == highAttr || name == optimumAttr) | 67 if (name == valueAttr || name == minAttr || name == maxAttr || name == lowAt
tr || name == highAttr || name == optimumAttr) |
68 didElementStateChange(); | 68 didElementStateChange(); |
69 else | 69 else |
70 LabelableElement::parseAttribute(name, value); | 70 LabelableElement::parseAttribute(name, value); |
71 } | 71 } |
72 | 72 |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 | 175 |
176 if (max <= min) | 176 if (max <= min) |
177 return 0; | 177 return 0; |
178 return (value - min) / (max - min); | 178 return (value - min) / (max - min); |
179 } | 179 } |
180 | 180 |
181 void HTMLMeterElement::didElementStateChange() | 181 void HTMLMeterElement::didElementStateChange() |
182 { | 182 { |
183 m_value->setWidthPercentage(valueRatio()*100); | 183 m_value->setWidthPercentage(valueRatio()*100); |
184 m_value->updatePseudo(); | 184 m_value->updatePseudo(); |
185 if (RenderMeter* render = renderMeter()) | 185 if (LayoutMeter* render = layoutMeter()) |
186 render->updateFromElement(); | 186 render->updateFromElement(); |
187 } | 187 } |
188 | 188 |
189 RenderMeter* HTMLMeterElement::renderMeter() const | 189 LayoutMeter* HTMLMeterElement::layoutMeter() const |
190 { | 190 { |
191 if (renderer() && renderer()->isMeter()) | 191 if (renderer() && renderer()->isMeter()) |
192 return toRenderMeter(renderer()); | 192 return toLayoutMeter(renderer()); |
193 | 193 |
194 LayoutObject* layoutObject = closedShadowRoot()->firstChild()->renderer(); | 194 LayoutObject* layoutObject = closedShadowRoot()->firstChild()->renderer(); |
195 return toRenderMeter(layoutObject); | 195 return toLayoutMeter(layoutObject); |
196 } | 196 } |
197 | 197 |
198 void HTMLMeterElement::didAddClosedShadowRoot(ShadowRoot& root) | 198 void HTMLMeterElement::didAddClosedShadowRoot(ShadowRoot& root) |
199 { | 199 { |
200 ASSERT(!m_value); | 200 ASSERT(!m_value); |
201 | 201 |
202 RefPtrWillBeRawPtr<MeterInnerElement> inner = MeterInnerElement::create(docu
ment()); | 202 RefPtrWillBeRawPtr<MeterInnerElement> inner = MeterInnerElement::create(docu
ment()); |
203 root.appendChild(inner); | 203 root.appendChild(inner); |
204 | 204 |
205 RefPtrWillBeRawPtr<MeterBarElement> bar = MeterBarElement::create(document()
); | 205 RefPtrWillBeRawPtr<MeterBarElement> bar = MeterBarElement::create(document()
); |
(...skipping 11 matching lines...) Expand all Loading... |
217 lazyReattachIfAttached(); | 217 lazyReattachIfAttached(); |
218 } | 218 } |
219 | 219 |
220 DEFINE_TRACE(HTMLMeterElement) | 220 DEFINE_TRACE(HTMLMeterElement) |
221 { | 221 { |
222 visitor->trace(m_value); | 222 visitor->trace(m_value); |
223 LabelableElement::trace(visitor); | 223 LabelableElement::trace(visitor); |
224 } | 224 } |
225 | 225 |
226 } // namespace | 226 } // namespace |
OLD | NEW |