OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2008, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2008, 2010 Apple Inc. All rights reserved. |
3 * Copyright (C) 2010 Google Inc. All rights reserved. | 3 * Copyright (C) 2010 Google Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 inline SpinButtonElement::SpinButtonElement(Document& document, SpinButtonOwner&
spinButtonOwner) | 45 inline SpinButtonElement::SpinButtonElement(Document& document, SpinButtonOwner&
spinButtonOwner) |
46 : HTMLDivElement(document) | 46 : HTMLDivElement(document) |
47 , m_spinButtonOwner(&spinButtonOwner) | 47 , m_spinButtonOwner(&spinButtonOwner) |
48 , m_capturing(false) | 48 , m_capturing(false) |
49 , m_upDownState(Indeterminate) | 49 , m_upDownState(Indeterminate) |
50 , m_pressStartingState(Indeterminate) | 50 , m_pressStartingState(Indeterminate) |
51 , m_repeatingTimer(this, &SpinButtonElement::repeatingTimerFired) | 51 , m_repeatingTimer(this, &SpinButtonElement::repeatingTimerFired) |
52 { | 52 { |
53 } | 53 } |
54 | 54 |
55 PassRefPtr<SpinButtonElement> SpinButtonElement::create(Document& document, Spin
ButtonOwner& spinButtonOwner) | 55 PassRefPtrWillBeRawPtr<SpinButtonElement> SpinButtonElement::create(Document& do
cument, SpinButtonOwner& spinButtonOwner) |
56 { | 56 { |
57 RefPtr<SpinButtonElement> element = adoptRef(new SpinButtonElement(document,
spinButtonOwner)); | 57 RefPtrWillBeRawPtr<SpinButtonElement> element = adoptRefWillBeRefCountedGarb
ageCollected(new SpinButtonElement(document, spinButtonOwner)); |
58 element->setShadowPseudoId(AtomicString("-webkit-inner-spin-button", AtomicS
tring::ConstructFromLiteral)); | 58 element->setShadowPseudoId(AtomicString("-webkit-inner-spin-button", AtomicS
tring::ConstructFromLiteral)); |
59 element->setAttribute(idAttr, ShadowElementNames::spinButton()); | 59 element->setAttribute(idAttr, ShadowElementNames::spinButton()); |
60 return element.release(); | 60 return element.release(); |
61 } | 61 } |
62 | 62 |
63 void SpinButtonElement::detach(const AttachContext& context) | 63 void SpinButtonElement::detach(const AttachContext& context) |
64 { | 64 { |
65 releaseCapture(EventDispatchDisallowed); | 65 releaseCapture(EventDispatchDisallowed); |
66 HTMLDivElement::detach(context); | 66 HTMLDivElement::detach(context); |
67 } | 67 } |
(...skipping 19 matching lines...) Expand all Loading... |
87 return; | 87 return; |
88 } | 88 } |
89 | 89 |
90 MouseEvent* mouseEvent = toMouseEvent(event); | 90 MouseEvent* mouseEvent = toMouseEvent(event); |
91 IntPoint local = roundedIntPoint(box->absoluteToLocal(mouseEvent->absoluteLo
cation(), UseTransforms)); | 91 IntPoint local = roundedIntPoint(box->absoluteToLocal(mouseEvent->absoluteLo
cation(), UseTransforms)); |
92 if (mouseEvent->type() == EventTypeNames::mousedown && mouseEvent->button()
== LeftButton) { | 92 if (mouseEvent->type() == EventTypeNames::mousedown && mouseEvent->button()
== LeftButton) { |
93 if (box->pixelSnappedBorderBoxRect().contains(local)) { | 93 if (box->pixelSnappedBorderBoxRect().contains(local)) { |
94 // The following functions of HTMLInputElement may run JavaScript | 94 // The following functions of HTMLInputElement may run JavaScript |
95 // code which detaches this shadow node. We need to take a reference | 95 // code which detaches this shadow node. We need to take a reference |
96 // and check renderer() after such function calls. | 96 // and check renderer() after such function calls. |
97 RefPtr<Node> protector(this); | 97 RefPtrWillBeRawPtr<Node> protector(this); |
98 if (m_spinButtonOwner) | 98 if (m_spinButtonOwner) |
99 m_spinButtonOwner->focusAndSelectSpinButtonOwner(); | 99 m_spinButtonOwner->focusAndSelectSpinButtonOwner(); |
100 if (renderer()) { | 100 if (renderer()) { |
101 if (m_upDownState != Indeterminate) { | 101 if (m_upDownState != Indeterminate) { |
102 // A JavaScript event handler called in doStepAction() below | 102 // A JavaScript event handler called in doStepAction() below |
103 // might change the element state and we might need to | 103 // might change the element state and we might need to |
104 // cancel the repeating timer by the state change. If we | 104 // cancel the repeating timer by the state change. If we |
105 // started the timer after doStepAction(), we would have no | 105 // started the timer after doStepAction(), we would have no |
106 // chance to cancel the timer. | 106 // chance to cancel the timer. |
107 startRepeatingTimer(); | 107 startRepeatingTimer(); |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 return !m_spinButtonOwner || m_spinButtonOwner->shouldSpinButtonRespondToMou
seEvents(); | 257 return !m_spinButtonOwner || m_spinButtonOwner->shouldSpinButtonRespondToMou
seEvents(); |
258 } | 258 } |
259 | 259 |
260 void SpinButtonElement::trace(Visitor* visitor) | 260 void SpinButtonElement::trace(Visitor* visitor) |
261 { | 261 { |
262 visitor->trace(m_spinButtonOwner); | 262 visitor->trace(m_spinButtonOwner); |
263 HTMLDivElement::trace(visitor); | 263 HTMLDivElement::trace(visitor); |
264 } | 264 } |
265 | 265 |
266 } | 266 } |
OLD | NEW |