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

Side by Side Diff: ppapi/thunk/ppb_input_event_thunk.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/c/pp_errors.h"
6 #include "ppapi/thunk/thunk.h"
7 #include "ppapi/thunk/enter.h"
8 #include "ppapi/thunk/ppb_input_event_api.h"
9 #include "ppapi/thunk/ppb_instance_api.h"
10 #include "ppapi/thunk/resource_creation_api.h"
11
12 namespace ppapi {
13 namespace thunk {
14
15 namespace {
16
17 typedef EnterFunction<PPB_Instance_FunctionAPI> EnterInstance;
18 typedef EnterResource<PPB_InputEvent_API> EnterInputEvent;
19
20 int32_t RequestInputEvents(PP_Instance instance, uint32_t event_classes) {
21 EnterInstance enter(instance, true);
22 if (enter.failed())
23 return PP_ERROR_BADARGUMENT;
24 return enter.functions()->RequestInputEvents(instance, event_classes);
25 }
26
27 int32_t RequestFilteringInputEvents(PP_Instance instance,
28 uint32_t event_classes) {
29 EnterInstance enter(instance, true);
30 if (enter.failed())
31 return PP_ERROR_BADARGUMENT;
32 return enter.functions()->RequestFilteringInputEvents(instance,
33 event_classes);
34 }
35
36 void ClearInputEventRequest(PP_Instance instance,
37 uint32_t event_classes) {
38 EnterInstance enter(instance, true);
39 if (enter.succeeded())
40 enter.functions()->ClearInputEventRequest(instance, event_classes);
41 }
42
43 PP_Bool IsInputEvent(PP_Resource resource) {
44 EnterInputEvent enter(resource, false);
45 return enter.succeeded() ? PP_TRUE : PP_FALSE;
46 }
47
48 PP_InputEvent_Type GetEventType(PP_Resource event) {
49 EnterInputEvent enter(event, true);
50 if (enter.failed())
51 return PP_INPUTEVENT_TYPE_UNDEFINED;
52 return enter.object()->GetEventType();
53 }
54
55 PP_TimeTicks GetEventTimeStamp(PP_Resource event) {
56 EnterInputEvent enter(event, true);
57 if (enter.failed())
58 return 0.0;
59 return enter.object()->GetEventTimeStamp();
60 }
61
62 uint32_t GetEventModifiers(PP_Resource event) {
63 EnterInputEvent enter(event, true);
64 if (enter.failed())
65 return 0;
66 return enter.object()->GetEventModifiers();
67 }
68
69 PP_InputEvent_MouseButton GetMouseButton(PP_Resource mouse_event) {
70 EnterInputEvent enter(mouse_event, true);
71 if (enter.failed())
72 return PP_INPUTEVENT_MOUSEBUTTON_NONE;
73 return enter.object()->GetMouseButton();
74 }
75
76 PP_Point GetMousePosition(PP_Resource mouse_event) {
77 EnterInputEvent enter(mouse_event, true);
78 if (enter.failed())
79 return PP_MakePoint(0, 0);
80 return enter.object()->GetMousePosition();
81 }
82
83 int32_t GetMouseClickCount(PP_Resource mouse_event) {
84 EnterInputEvent enter(mouse_event, true);
85 if (enter.failed())
86 return 0;
87 return enter.object()->GetMouseClickCount();
88 }
89
90 PP_FloatPoint GetWheelDelta(PP_Resource wheel_event) {
91 EnterInputEvent enter(wheel_event, true);
92 if (enter.failed())
93 return PP_MakeFloatPoint(0.0f, 0.0f);
94 return enter.object()->GetWheelDelta();
95 }
96
97 PP_FloatPoint GetWheelTicks(PP_Resource wheel_event) {
98 EnterInputEvent enter(wheel_event, true);
99 if (enter.failed())
100 return PP_MakeFloatPoint(0.0f, 0.0f);
101 return enter.object()->GetWheelTicks();
102 }
103
104 PP_Bool GetWheelScrollByPage(PP_Resource wheel_event) {
105 EnterInputEvent enter(wheel_event, true);
106 if (enter.failed())
107 return PP_FALSE;
108 return enter.object()->GetWheelScrollByPage();
109 }
110
111 uint32_t GetKeyCode(PP_Resource key_event) {
112 EnterInputEvent enter(key_event, true);
113 if (enter.failed())
114 return 0;
115 return enter.object()->GetKeyCode();
116 }
117
118 PP_Var GetCharacterText(PP_Resource character_event) {
119 EnterInputEvent enter(character_event, true);
120 if (enter.failed())
121 return PP_MakeUndefined();
122 return enter.object()->GetCharacterText();
123 }
124
125 const PPB_InputEvent g_ppb_input_event_thunk = {
126 &RequestInputEvents,
127 &RequestFilteringInputEvents,
128 &ClearInputEventRequest,
129 &IsInputEvent,
130 &GetEventType,
131 &GetEventTimeStamp,
132 &GetEventModifiers,
133 &GetMouseButton,
134 &GetMousePosition,
135 &GetMouseClickCount,
136 &GetWheelDelta,
137 &GetWheelTicks,
138 &GetWheelScrollByPage,
139 &GetKeyCode,
140 &GetCharacterText
141 };
142
143 } // namespace
144
145 const PPB_InputEvent* GetPPB_InputEvent_Thunk() {
146 return &g_ppb_input_event_thunk;
147 }
148
149 } // namespace thunk
150 } // namespace ppapi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698