OLD | NEW |
1 // Copyright 2011, Google Inc. | 1 // Copyright 2011, Google Inc. |
2 // All rights reserved. | 2 // All rights reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // * Redistributions of source code must retain the above copyright | 8 // * 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 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
(...skipping 15 matching lines...) Expand all Loading... |
26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 | 29 |
30 #include "config.h" | 30 #include "config.h" |
31 #include "DartElement.h" | 31 #include "DartElement.h" |
32 | 32 |
33 #include "DartElement.h" | 33 #include "DartElement.h" |
34 #include "DartHTMLElement.h" | 34 #include "DartHTMLElement.h" |
35 #include "DartSVGElement.h" | 35 #include "DartSVGElement.h" |
| 36 #include "RuntimeEnabledFeatures.h" |
36 #include "bindings/dart/DartDOMWrapper.h" | 37 #include "bindings/dart/DartDOMWrapper.h" |
37 | 38 |
38 namespace WebCore { | 39 namespace WebCore { |
39 | 40 |
40 Dart_Handle DartElement::createWrapper(DartDOMData* domData, Element* element) | 41 Dart_Handle DartElement::createWrapper(DartDOMData* domData, Element* element) |
41 { | 42 { |
42 if (!element) | 43 if (!element) |
43 return Dart_Null(); | 44 return Dart_Null(); |
44 | 45 |
45 if (element->isHTMLElement()) | 46 if (element->isHTMLElement()) |
46 return DartHTMLElement::createWrapper(domData, static_cast<HTMLElement*>
(element)); | 47 return DartHTMLElement::createWrapper(domData, static_cast<HTMLElement*>
(element)); |
47 if (element->isSVGElement()) | 48 if (element->isSVGElement()) |
48 return DartSVGElement::createWrapper(domData, static_cast<SVGElement*>(e
lement)); | 49 return DartSVGElement::createWrapper(domData, static_cast<SVGElement*>(e
lement)); |
49 return DartDOMWrapper::createWrapper<DartElement>(domData, element); | 50 return DartDOMWrapper::createWrapper<DartElement>(domData, element); |
50 } | 51 } |
51 | 52 |
52 namespace DartElementInternal { | 53 namespace DartElementInternal { |
53 | 54 |
54 void scrollLeftGetter(Dart_NativeArguments args) | |
55 { | |
56 { | |
57 Element* receiver = DartDOMWrapper::receiver< Element >(args); | |
58 | |
59 DartUtilities::setDartIntegerReturnValue(args, receiver->scrollLeft()); | |
60 return; | |
61 } | |
62 } | |
63 | |
64 void scrollTopGetter(Dart_NativeArguments args) | |
65 { | |
66 { | |
67 Element* receiver = DartDOMWrapper::receiver< Element >(args); | |
68 | |
69 DartUtilities::setDartIntegerReturnValue(args, receiver->scrollTop()); | |
70 return; | |
71 } | |
72 } | |
73 | 55 |
74 void scrollLeftSetter(Dart_NativeArguments args) | 56 void scrollLeftSetter(Dart_NativeArguments args) |
75 { | 57 { |
76 // FIXMEDART: implement | 58 Dart_Handle exception = 0; |
| 59 { |
| 60 Element* receiver = DartDOMWrapper::receiver<Element>(args); |
| 61 |
| 62 // FIXME: The IDL now specifies an option to pass in a dictionary |
| 63 // instead of just an integer. |
| 64 int scrollLeft = DartUtilities::dartToInt(args, 1, exception); |
| 65 if (exception) |
| 66 goto fail; |
| 67 |
| 68 receiver->setScrollLeft(scrollLeft); |
| 69 return; |
| 70 } |
| 71 |
| 72 fail: |
| 73 Dart_ThrowException(exception); |
77 ASSERT_NOT_REACHED(); | 74 ASSERT_NOT_REACHED(); |
78 } | 75 } |
79 | 76 |
80 void scrollTopSetter(Dart_NativeArguments args) | 77 void scrollTopSetter(Dart_NativeArguments args) |
81 { | 78 { |
82 // FIXMEDART: implement | 79 Dart_Handle exception = 0; |
| 80 { |
| 81 Element* receiver = DartDOMWrapper::receiver<Element>(args); |
| 82 |
| 83 // FIXME: The IDL now specifies an option to pass in a dictionary |
| 84 // instead of just an integer. |
| 85 int scrollTop = DartUtilities::dartToInt(args, 1, exception); |
| 86 if (exception) |
| 87 goto fail; |
| 88 |
| 89 receiver->setScrollTop(scrollTop); |
| 90 return; |
| 91 } |
| 92 |
| 93 fail: |
| 94 Dart_ThrowException(exception); |
83 ASSERT_NOT_REACHED(); | 95 ASSERT_NOT_REACHED(); |
84 } | 96 } |
85 | 97 |
86 } | 98 } |
87 | 99 |
88 } | 100 } |
OLD | NEW |