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

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

Issue 7285010: Implement an input event resource. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 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
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ppapi/cpp/input_event.h"
6
7 #include "ppapi/cpp/common.h"
8 #include "ppapi/cpp/instance.h"
9 #include "ppapi/cpp/module.h"
10 #include "ppapi/cpp/module_impl.h"
11 #include "ppapi/cpp/point.h"
12 #include "ppapi/cpp/var.h"
13
14 namespace pp {
15
16 namespace {
17
18 template <> const char* interface_name<PPB_InputEvent>() {
19 return PPB_INPUT_EVENT_INTERFACE;
20 }
21
22 template <> const char* interface_name<PPB_KeyboardInputEvent>() {
23 return PPB_KEYBOARD_INPUT_EVENT_INTERFACE;
24 }
25
26 template <> const char* interface_name<PPB_MouseInputEvent>() {
27 return PPB_MOUSE_INPUT_EVENT_INTERFACE;
28 }
29
30 template <> const char* interface_name<PPB_WheelInputEvent>() {
31 return PPB_WHEEL_INPUT_EVENT_INTERFACE;
32 }
33
34 } // namespace
35
36 // InputEvent ------------------------------------------------------------------
37
38 InputEvent::InputEvent() : Resource() {
39 }
40
41 InputEvent::InputEvent(PP_Resource input_event_resource) : Resource() {
42 // Type check the input event before setting it.
43 if (!has_interface<PPB_InputEvent>())
44 return;
45 if (get_interface<PPB_InputEvent>()->IsInputEvent(input_event_resource)) {
46 Module::Get()->core()->AddRefResource(input_event_resource);
47 PassRefFromConstructor(input_event_resource);
48 }
49 }
50
51 InputEvent::~InputEvent() {
52 }
53
54 PP_InputEvent_Type InputEvent::GetType() const {
55 if (!has_interface<PPB_InputEvent>())
56 return PP_INPUTEVENT_TYPE_UNDEFINED;
57 return get_interface<PPB_InputEvent>()->GetType(pp_resource());
58 }
59
60 PP_TimeTicks InputEvent::GetTimeStamp() const {
61 if (!has_interface<PPB_InputEvent>())
62 return 0.0f;
63 return get_interface<PPB_InputEvent>()->GetTimeStamp(pp_resource());
64 }
65
66 uint32_t InputEvent::GetModifiers() const {
67 if (!has_interface<PPB_InputEvent>())
68 return 0;
69 return get_interface<PPB_InputEvent>()->GetModifiers(pp_resource());
70 }
71
72 // MouseInputEvent -------------------------------------------------------------
73
74 MouseInputEvent::MouseInputEvent() : InputEvent() {
75 }
76
77 MouseInputEvent::MouseInputEvent(const InputEvent& event) : InputEvent() {
78 // Type check the input event before setting it.
79 if (!has_interface<PPB_MouseInputEvent>())
80 return;
81 if (get_interface<PPB_MouseInputEvent>()->IsMouseInputEvent(
82 event.pp_resource())) {
83 Module::Get()->core()->AddRefResource(event.pp_resource());
84 PassRefFromConstructor(event.pp_resource());
85 }
86 }
87
88 PP_InputEvent_MouseButton MouseInputEvent::GetMouseButton() const {
89 if (!has_interface<PPB_MouseInputEvent>())
90 return PP_INPUTEVENT_MOUSEBUTTON_NONE;
91 return get_interface<PPB_MouseInputEvent>()->GetMouseButton(pp_resource());
92 }
93
94 Point MouseInputEvent::GetMousePosition() const {
95 if (!has_interface<PPB_MouseInputEvent>())
96 return Point();
97 return get_interface<PPB_MouseInputEvent>()->GetMousePosition(pp_resource());
98 }
99
100 int32_t MouseInputEvent::GetMouseClickCount() const {
101 if (!has_interface<PPB_MouseInputEvent>())
102 return 0;
103 return get_interface<PPB_MouseInputEvent>()->GetMouseClickCount(
104 pp_resource());
105 }
106
107 // WheelInputEvent -------------------------------------------------------------
108
109 WheelInputEvent::WheelInputEvent() : InputEvent() {
110 }
111
112 WheelInputEvent::WheelInputEvent(const InputEvent& event) : InputEvent() {
113 // Type check the input event before setting it.
114 if (!has_interface<PPB_WheelInputEvent>())
115 return;
116 if (get_interface<PPB_WheelInputEvent>()->IsWheelInputEvent(
117 event.pp_resource())) {
118 Module::Get()->core()->AddRefResource(event.pp_resource());
119 PassRefFromConstructor(event.pp_resource());
120 }
121 }
122
123 FloatPoint WheelInputEvent::GetWheelDelta() const {
124 if (!has_interface<PPB_WheelInputEvent>())
125 return FloatPoint();
126 return get_interface<PPB_WheelInputEvent>()->GetWheelDelta(pp_resource());
127 }
128
129 FloatPoint WheelInputEvent::GetWheelTicks() const {
130 if (!has_interface<PPB_WheelInputEvent>())
131 return FloatPoint();
132 return get_interface<PPB_WheelInputEvent>()->GetWheelTicks(pp_resource());
133 }
134
135 bool WheelInputEvent::GetScrollByPage() const {
136 if (!has_interface<PPB_WheelInputEvent>())
137 return false;
138 return PP_ToBool(
139 get_interface<PPB_WheelInputEvent>()->GetScrollByPage(pp_resource()));
140 }
141
142 // KeyboardInputEvent ----------------------------------------------------------
143
144 KeyboardInputEvent::KeyboardInputEvent() : InputEvent() {
145 }
146
147 KeyboardInputEvent::KeyboardInputEvent(const InputEvent& event) : InputEvent() {
148 // Type check the input event before setting it.
149 if (!has_interface<PPB_KeyboardInputEvent>())
150 return;
151 if (get_interface<PPB_KeyboardInputEvent>()->IsKeyboardInputEvent(
152 event.pp_resource())) {
153 Module::Get()->core()->AddRefResource(event.pp_resource());
154 PassRefFromConstructor(event.pp_resource());
155 }
156 }
157
158 uint32_t KeyboardInputEvent::GetKeyCode() const {
159 if (!has_interface<PPB_KeyboardInputEvent>())
160 return 0;
161 return get_interface<PPB_KeyboardInputEvent>()->GetKeyCode(pp_resource());
162 }
163
164 Var KeyboardInputEvent::GetCharacterText() const {
165 if (!has_interface<PPB_KeyboardInputEvent>())
166 return PP_INPUTEVENT_TYPE_UNDEFINED;
167 return Var(Var::PassRef(),
168 get_interface<PPB_KeyboardInputEvent>()->GetCharacterText(
169 pp_resource()));
170 }
171
172 } // namespace pp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698