Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(399)

Side by Side Diff: ppapi/cpp/input_event.cc

Issue 9700088: Check for specific PPB interface versions in C++ wrappers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix MouseInputEvent version check. Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ppapi/cpp/image_data.cc ('k') | ppapi/cpp/instance.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ppapi/cpp/input_event.h" 5 #include "ppapi/cpp/input_event.h"
6 6
7 #include "ppapi/cpp/instance_handle.h" 7 #include "ppapi/cpp/instance_handle.h"
8 #include "ppapi/cpp/module.h" 8 #include "ppapi/cpp/module.h"
9 #include "ppapi/cpp/module_impl.h" 9 #include "ppapi/cpp/module_impl.h"
10 #include "ppapi/cpp/point.h" 10 #include "ppapi/cpp/point.h"
11 #include "ppapi/cpp/var.h" 11 #include "ppapi/cpp/var.h"
12 12
13 namespace pp { 13 namespace pp {
14 14
15 namespace { 15 namespace {
16 16
17 template <> const char* interface_name<PPB_InputEvent>() { 17 template <> const char* interface_name<PPB_InputEvent_1_0>() {
18 return PPB_INPUT_EVENT_INTERFACE; 18 return PPB_INPUT_EVENT_INTERFACE_1_0;
19 } 19 }
20 20
21 template <> const char* interface_name<PPB_KeyboardInputEvent>() { 21 template <> const char* interface_name<PPB_KeyboardInputEvent_1_0>() {
22 return PPB_KEYBOARD_INPUT_EVENT_INTERFACE; 22 return PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_0;
23 } 23 }
24 24
25 template <> const char* interface_name<PPB_MouseInputEvent>() { 25 template <> const char* interface_name<PPB_MouseInputEvent_1_1>() {
26 return PPB_MOUSE_INPUT_EVENT_INTERFACE; 26 return PPB_MOUSE_INPUT_EVENT_INTERFACE_1_1;
27 } 27 }
28 28
29 template <> const char* interface_name<PPB_WheelInputEvent>() { 29 template <> const char* interface_name<PPB_WheelInputEvent_1_0>() {
30 return PPB_WHEEL_INPUT_EVENT_INTERFACE; 30 return PPB_WHEEL_INPUT_EVENT_INTERFACE_1_0;
31 } 31 }
32 32
33 } // namespace 33 } // namespace
34 34
35 // InputEvent ------------------------------------------------------------------ 35 // InputEvent ------------------------------------------------------------------
36 36
37 InputEvent::InputEvent() : Resource() { 37 InputEvent::InputEvent() : Resource() {
38 } 38 }
39 39
40 InputEvent::InputEvent(PP_Resource input_event_resource) : Resource() { 40 InputEvent::InputEvent(PP_Resource input_event_resource) : Resource() {
41 // Type check the input event before setting it. 41 // Type check the input event before setting it.
42 if (!has_interface<PPB_InputEvent>()) 42 if (!has_interface<PPB_InputEvent_1_0>())
43 return; 43 return;
44 if (get_interface<PPB_InputEvent>()->IsInputEvent(input_event_resource)) { 44 if (get_interface<PPB_InputEvent_1_0>()->IsInputEvent(input_event_resource)) {
45 Module::Get()->core()->AddRefResource(input_event_resource); 45 Module::Get()->core()->AddRefResource(input_event_resource);
46 PassRefFromConstructor(input_event_resource); 46 PassRefFromConstructor(input_event_resource);
47 } 47 }
48 } 48 }
49 49
50 InputEvent::~InputEvent() { 50 InputEvent::~InputEvent() {
51 } 51 }
52 52
53 PP_InputEvent_Type InputEvent::GetType() const { 53 PP_InputEvent_Type InputEvent::GetType() const {
54 if (!has_interface<PPB_InputEvent>()) 54 if (!has_interface<PPB_InputEvent_1_0>())
55 return PP_INPUTEVENT_TYPE_UNDEFINED; 55 return PP_INPUTEVENT_TYPE_UNDEFINED;
56 return get_interface<PPB_InputEvent>()->GetType(pp_resource()); 56 return get_interface<PPB_InputEvent_1_0>()->GetType(pp_resource());
57 } 57 }
58 58
59 PP_TimeTicks InputEvent::GetTimeStamp() const { 59 PP_TimeTicks InputEvent::GetTimeStamp() const {
60 if (!has_interface<PPB_InputEvent>()) 60 if (!has_interface<PPB_InputEvent_1_0>())
61 return 0.0f; 61 return 0.0f;
62 return get_interface<PPB_InputEvent>()->GetTimeStamp(pp_resource()); 62 return get_interface<PPB_InputEvent_1_0>()->GetTimeStamp(pp_resource());
63 } 63 }
64 64
65 uint32_t InputEvent::GetModifiers() const { 65 uint32_t InputEvent::GetModifiers() const {
66 if (!has_interface<PPB_InputEvent>()) 66 if (!has_interface<PPB_InputEvent_1_0>())
67 return 0; 67 return 0;
68 return get_interface<PPB_InputEvent>()->GetModifiers(pp_resource()); 68 return get_interface<PPB_InputEvent_1_0>()->GetModifiers(pp_resource());
69 } 69 }
70 70
71 // MouseInputEvent ------------------------------------------------------------- 71 // MouseInputEvent -------------------------------------------------------------
72 72
73 MouseInputEvent::MouseInputEvent() : InputEvent() { 73 MouseInputEvent::MouseInputEvent() : InputEvent() {
74 } 74 }
75 75
76 MouseInputEvent::MouseInputEvent(const InputEvent& event) : InputEvent() { 76 MouseInputEvent::MouseInputEvent(const InputEvent& event) : InputEvent() {
77 // Type check the input event before setting it. 77 // Type check the input event before setting it.
78 if (!has_interface<PPB_MouseInputEvent>()) 78 if (!has_interface<PPB_MouseInputEvent_1_1>())
79 return; 79 return;
80 if (get_interface<PPB_MouseInputEvent>()->IsMouseInputEvent( 80 if (get_interface<PPB_MouseInputEvent_1_1>()->IsMouseInputEvent(
81 event.pp_resource())) { 81 event.pp_resource())) {
82 Module::Get()->core()->AddRefResource(event.pp_resource()); 82 Module::Get()->core()->AddRefResource(event.pp_resource());
83 PassRefFromConstructor(event.pp_resource()); 83 PassRefFromConstructor(event.pp_resource());
84 } 84 }
85 } 85 }
86 86
87 MouseInputEvent::MouseInputEvent(const InstanceHandle& instance, 87 MouseInputEvent::MouseInputEvent(const InstanceHandle& instance,
88 PP_InputEvent_Type type, 88 PP_InputEvent_Type type,
89 PP_TimeTicks time_stamp, 89 PP_TimeTicks time_stamp,
90 uint32_t modifiers, 90 uint32_t modifiers,
91 PP_InputEvent_MouseButton mouse_button, 91 PP_InputEvent_MouseButton mouse_button,
92 const Point& mouse_position, 92 const Point& mouse_position,
93 int32_t click_count, 93 int32_t click_count,
94 const Point& mouse_movement) { 94 const Point& mouse_movement) {
95 // Type check the input event before setting it. 95 // Type check the input event before setting it.
96 if (!has_interface<PPB_MouseInputEvent>()) 96 if (!has_interface<PPB_MouseInputEvent_1_1>())
97 return; 97 return;
98 PassRefFromConstructor(get_interface<PPB_MouseInputEvent>()->Create( 98 PassRefFromConstructor(get_interface<PPB_MouseInputEvent_1_1>()->Create(
99 instance.pp_instance(), type, time_stamp, modifiers, mouse_button, 99 instance.pp_instance(), type, time_stamp, modifiers, mouse_button,
100 &mouse_position.pp_point(), click_count, &mouse_movement.pp_point())); 100 &mouse_position.pp_point(), click_count, &mouse_movement.pp_point()));
101 } 101 }
102 102
103 PP_InputEvent_MouseButton MouseInputEvent::GetButton() const { 103 PP_InputEvent_MouseButton MouseInputEvent::GetButton() const {
104 if (!has_interface<PPB_MouseInputEvent>()) 104 if (!has_interface<PPB_MouseInputEvent_1_1>())
105 return PP_INPUTEVENT_MOUSEBUTTON_NONE; 105 return PP_INPUTEVENT_MOUSEBUTTON_NONE;
106 return get_interface<PPB_MouseInputEvent>()->GetButton(pp_resource()); 106 return get_interface<PPB_MouseInputEvent_1_1>()->GetButton(pp_resource());
107 } 107 }
108 108
109 Point MouseInputEvent::GetPosition() const { 109 Point MouseInputEvent::GetPosition() const {
110 if (!has_interface<PPB_MouseInputEvent>()) 110 if (!has_interface<PPB_MouseInputEvent_1_1>())
111 return Point(); 111 return Point();
112 return get_interface<PPB_MouseInputEvent>()->GetPosition(pp_resource()); 112 return get_interface<PPB_MouseInputEvent_1_1>()->GetPosition(pp_resource());
113 } 113 }
114 114
115 int32_t MouseInputEvent::GetClickCount() const { 115 int32_t MouseInputEvent::GetClickCount() const {
116 if (!has_interface<PPB_MouseInputEvent>()) 116 if (!has_interface<PPB_MouseInputEvent_1_1>())
117 return 0; 117 return 0;
118 return get_interface<PPB_MouseInputEvent>()->GetClickCount(pp_resource()); 118 return get_interface<PPB_MouseInputEvent_1_1>()->GetClickCount(pp_resource());
119 } 119 }
120 120
121 Point MouseInputEvent::GetMovement() const { 121 Point MouseInputEvent::GetMovement() const {
122 if (!has_interface<PPB_MouseInputEvent>()) 122 if (!has_interface<PPB_MouseInputEvent_1_1>())
123 return Point(); 123 return Point();
124 return get_interface<PPB_MouseInputEvent>()->GetMovement(pp_resource()); 124 return get_interface<PPB_MouseInputEvent_1_1>()->GetMovement(pp_resource());
125 } 125 }
126 126
127 // WheelInputEvent ------------------------------------------------------------- 127 // WheelInputEvent -------------------------------------------------------------
128 128
129 WheelInputEvent::WheelInputEvent() : InputEvent() { 129 WheelInputEvent::WheelInputEvent() : InputEvent() {
130 } 130 }
131 131
132 WheelInputEvent::WheelInputEvent(const InputEvent& event) : InputEvent() { 132 WheelInputEvent::WheelInputEvent(const InputEvent& event) : InputEvent() {
133 // Type check the input event before setting it. 133 // Type check the input event before setting it.
134 if (!has_interface<PPB_WheelInputEvent>()) 134 if (!has_interface<PPB_WheelInputEvent_1_0>())
135 return; 135 return;
136 if (get_interface<PPB_WheelInputEvent>()->IsWheelInputEvent( 136 if (get_interface<PPB_WheelInputEvent_1_0>()->IsWheelInputEvent(
137 event.pp_resource())) { 137 event.pp_resource())) {
138 Module::Get()->core()->AddRefResource(event.pp_resource()); 138 Module::Get()->core()->AddRefResource(event.pp_resource());
139 PassRefFromConstructor(event.pp_resource()); 139 PassRefFromConstructor(event.pp_resource());
140 } 140 }
141 } 141 }
142 142
143 WheelInputEvent::WheelInputEvent(const InstanceHandle& instance, 143 WheelInputEvent::WheelInputEvent(const InstanceHandle& instance,
144 PP_TimeTicks time_stamp, 144 PP_TimeTicks time_stamp,
145 uint32_t modifiers, 145 uint32_t modifiers,
146 const FloatPoint& wheel_delta, 146 const FloatPoint& wheel_delta,
147 const FloatPoint& wheel_ticks, 147 const FloatPoint& wheel_ticks,
148 bool scroll_by_page) { 148 bool scroll_by_page) {
149 // Type check the input event before setting it. 149 // Type check the input event before setting it.
150 if (!has_interface<PPB_WheelInputEvent>()) 150 if (!has_interface<PPB_WheelInputEvent_1_0>())
151 return; 151 return;
152 PassRefFromConstructor(get_interface<PPB_WheelInputEvent>()->Create( 152 PassRefFromConstructor(get_interface<PPB_WheelInputEvent_1_0>()->Create(
153 instance.pp_instance(), time_stamp, modifiers, 153 instance.pp_instance(), time_stamp, modifiers,
154 &wheel_delta.pp_float_point(), &wheel_ticks.pp_float_point(), 154 &wheel_delta.pp_float_point(), &wheel_ticks.pp_float_point(),
155 PP_FromBool(scroll_by_page))); 155 PP_FromBool(scroll_by_page)));
156 } 156 }
157 157
158 FloatPoint WheelInputEvent::GetDelta() const { 158 FloatPoint WheelInputEvent::GetDelta() const {
159 if (!has_interface<PPB_WheelInputEvent>()) 159 if (!has_interface<PPB_WheelInputEvent_1_0>())
160 return FloatPoint(); 160 return FloatPoint();
161 return get_interface<PPB_WheelInputEvent>()->GetDelta(pp_resource()); 161 return get_interface<PPB_WheelInputEvent_1_0>()->GetDelta(pp_resource());
162 } 162 }
163 163
164 FloatPoint WheelInputEvent::GetTicks() const { 164 FloatPoint WheelInputEvent::GetTicks() const {
165 if (!has_interface<PPB_WheelInputEvent>()) 165 if (!has_interface<PPB_WheelInputEvent_1_0>())
166 return FloatPoint(); 166 return FloatPoint();
167 return get_interface<PPB_WheelInputEvent>()->GetTicks(pp_resource()); 167 return get_interface<PPB_WheelInputEvent_1_0>()->GetTicks(pp_resource());
168 } 168 }
169 169
170 bool WheelInputEvent::GetScrollByPage() const { 170 bool WheelInputEvent::GetScrollByPage() const {
171 if (!has_interface<PPB_WheelInputEvent>()) 171 if (!has_interface<PPB_WheelInputEvent_1_0>())
172 return false; 172 return false;
173 return PP_ToBool( 173 return PP_ToBool(
174 get_interface<PPB_WheelInputEvent>()->GetScrollByPage(pp_resource())); 174 get_interface<PPB_WheelInputEvent_1_0>()->GetScrollByPage(pp_resource()));
175 } 175 }
176 176
177 // KeyboardInputEvent ---------------------------------------------------------- 177 // KeyboardInputEvent ----------------------------------------------------------
178 178
179 KeyboardInputEvent::KeyboardInputEvent() : InputEvent() { 179 KeyboardInputEvent::KeyboardInputEvent() : InputEvent() {
180 } 180 }
181 181
182 KeyboardInputEvent::KeyboardInputEvent(const InputEvent& event) : InputEvent() { 182 KeyboardInputEvent::KeyboardInputEvent(const InputEvent& event) : InputEvent() {
183 // Type check the input event before setting it. 183 // Type check the input event before setting it.
184 if (!has_interface<PPB_KeyboardInputEvent>()) 184 if (!has_interface<PPB_KeyboardInputEvent_1_0>())
185 return; 185 return;
186 if (get_interface<PPB_KeyboardInputEvent>()->IsKeyboardInputEvent( 186 if (get_interface<PPB_KeyboardInputEvent_1_0>()->IsKeyboardInputEvent(
187 event.pp_resource())) { 187 event.pp_resource())) {
188 Module::Get()->core()->AddRefResource(event.pp_resource()); 188 Module::Get()->core()->AddRefResource(event.pp_resource());
189 PassRefFromConstructor(event.pp_resource()); 189 PassRefFromConstructor(event.pp_resource());
190 } 190 }
191 } 191 }
192 192
193 KeyboardInputEvent::KeyboardInputEvent(const InstanceHandle& instance, 193 KeyboardInputEvent::KeyboardInputEvent(const InstanceHandle& instance,
194 PP_InputEvent_Type type, 194 PP_InputEvent_Type type,
195 PP_TimeTicks time_stamp, 195 PP_TimeTicks time_stamp,
196 uint32_t modifiers, 196 uint32_t modifiers,
197 uint32_t key_code, 197 uint32_t key_code,
198 const Var& character_text) { 198 const Var& character_text) {
199 // Type check the input event before setting it. 199 // Type check the input event before setting it.
200 if (!has_interface<PPB_KeyboardInputEvent>()) 200 if (!has_interface<PPB_KeyboardInputEvent_1_0>())
201 return; 201 return;
202 PassRefFromConstructor(get_interface<PPB_KeyboardInputEvent>()->Create( 202 PassRefFromConstructor(get_interface<PPB_KeyboardInputEvent_1_0>()->Create(
203 instance.pp_instance(), type, time_stamp, modifiers, key_code, 203 instance.pp_instance(), type, time_stamp, modifiers, key_code,
204 character_text.pp_var())); 204 character_text.pp_var()));
205 } 205 }
206 206
207 uint32_t KeyboardInputEvent::GetKeyCode() const { 207 uint32_t KeyboardInputEvent::GetKeyCode() const {
208 if (!has_interface<PPB_KeyboardInputEvent>()) 208 if (!has_interface<PPB_KeyboardInputEvent_1_0>())
209 return 0; 209 return 0;
210 return get_interface<PPB_KeyboardInputEvent>()->GetKeyCode(pp_resource()); 210 return get_interface<PPB_KeyboardInputEvent_1_0>()->GetKeyCode(pp_resource());
211 } 211 }
212 212
213 Var KeyboardInputEvent::GetCharacterText() const { 213 Var KeyboardInputEvent::GetCharacterText() const {
214 if (!has_interface<PPB_KeyboardInputEvent>()) 214 if (!has_interface<PPB_KeyboardInputEvent_1_0>())
215 return Var(); 215 return Var();
216 return Var(PASS_REF, 216 return Var(PASS_REF,
217 get_interface<PPB_KeyboardInputEvent>()->GetCharacterText( 217 get_interface<PPB_KeyboardInputEvent_1_0>()->GetCharacterText(
218 pp_resource())); 218 pp_resource()));
219 } 219 }
220 220
221 } // namespace pp 221 } // namespace pp
OLDNEW
« no previous file with comments | « ppapi/cpp/image_data.cc ('k') | ppapi/cpp/instance.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698