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

Side by Side Diff: remoting/client/plugin/pepper_input_handler.cc

Issue 7453003: Change Chromoting client to use Pepper's new Resource-base InputEvents. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tweaks 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
« no previous file with comments | « remoting/client/plugin/pepper_input_handler.h ('k') | remoting/client/plugin/pepper_view.h » ('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) 2011 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 "remoting/client/plugin/pepper_input_handler.h" 5 #include "remoting/client/plugin/pepper_input_handler.h"
6 6
7 #include "ppapi/c/pp_input_event.h"
8 #include "ppapi/cpp/input_event.h" 7 #include "ppapi/cpp/input_event.h"
9 #include "ppapi/cpp/point.h" 8 #include "ppapi/cpp/point.h"
10 #include "remoting/client/chromoting_view.h" 9 #include "remoting/client/plugin/pepper_view_proxy.h"
11 #include "ui/gfx/point.h"
12 10
13 namespace remoting { 11 namespace remoting {
14 12
15 using pp::KeyboardInputEvent; 13 using pp::KeyboardInputEvent;
16 using pp::MouseInputEvent; 14 using pp::MouseInputEvent;
17 using protocol::KeyEvent; 15 using protocol::KeyEvent;
18 using protocol::MouseEvent; 16 using protocol::MouseEvent;
19 17
20 PepperInputHandler::PepperInputHandler(ClientContext* context, 18 PepperInputHandler::PepperInputHandler(ClientContext* context,
21 protocol::ConnectionToHost* connection, 19 protocol::ConnectionToHost* connection,
22 ChromotingView* view) 20 PepperViewProxy* view)
23 : InputHandler(context, connection, view) { 21 : InputHandler(context, connection, view),
22 pepper_view_(view) {
24 } 23 }
25 24
26 PepperInputHandler::~PepperInputHandler() { 25 PepperInputHandler::~PepperInputHandler() {
27 } 26 }
28 27
29 void PepperInputHandler::Initialize() { 28 void PepperInputHandler::Initialize() {
30 } 29 }
31 30
32 void PepperInputHandler::HandleKeyEvent(bool keydown, 31 void PepperInputHandler::HandleKeyEvent(bool keydown,
33 const KeyboardInputEvent& event) { 32 const pp::KeyboardInputEvent& event) {
34 SendKeyEvent(keydown, event.GetKeyCode()); 33 SendKeyEvent(keydown, event.GetKeyCode());
35 } 34 }
36 35
37 void PepperInputHandler::HandleCharacterEvent(const KeyboardInputEvent& event) { 36 void PepperInputHandler::HandleCharacterEvent(
37 const pp::KeyboardInputEvent& event) {
38 // TODO(garykac): Coordinate key and char events. 38 // TODO(garykac): Coordinate key and char events.
39 } 39 }
40 40
41 void PepperInputHandler::HandleMouseMoveEvent(const MouseInputEvent& event) { 41 void PepperInputHandler::HandleMouseMoveEvent(
42 gfx::Point p(static_cast<int>(event.GetPosition().x()), 42 const pp::MouseInputEvent& event) {
43 static_cast<int>(event.GetPosition().y()));
44 // Pepper gives co-ordinates in the plugin instance's co-ordinate system, 43 // Pepper gives co-ordinates in the plugin instance's co-ordinate system,
45 // which may be different from the host desktop's co-ordinate system. 44 // which may be different from the host desktop's co-ordinate system.
46 p = view_->ConvertScreenToHost(p); 45 pp::Point p = pepper_view_->ConvertScreenToHost(event.GetPosition());
47 SendMouseMoveEvent(p.x(), p.y()); 46 SendMouseMoveEvent(p.x(), p.y());
48 } 47 }
49 48
50 void PepperInputHandler::HandleMouseButtonEvent(bool button_down, 49 void PepperInputHandler::HandleMouseButtonEvent(
51 const MouseInputEvent& event) { 50 bool button_down,
51 const pp::MouseInputEvent& event) {
52 MouseEvent::MouseButton button = MouseEvent::BUTTON_UNDEFINED; 52 MouseEvent::MouseButton button = MouseEvent::BUTTON_UNDEFINED;
53 if (event.GetButton() == PP_INPUTEVENT_MOUSEBUTTON_LEFT) { 53 switch (event.GetButton()) {
54 button = MouseEvent::BUTTON_LEFT; 54 case PP_INPUTEVENT_MOUSEBUTTON_LEFT:
55 } else if (event.GetButton() == PP_INPUTEVENT_MOUSEBUTTON_MIDDLE) { 55 button = MouseEvent::BUTTON_LEFT;
56 button = MouseEvent::BUTTON_MIDDLE; 56 break;
57 } else if (event.GetButton() == PP_INPUTEVENT_MOUSEBUTTON_RIGHT) { 57 case PP_INPUTEVENT_MOUSEBUTTON_MIDDLE:
58 button = MouseEvent::BUTTON_RIGHT; 58 button = MouseEvent::BUTTON_MIDDLE;
59 break;
60 case PP_INPUTEVENT_MOUSEBUTTON_RIGHT:
61 button = MouseEvent::BUTTON_RIGHT;
62 break;
63 case PP_INPUTEVENT_MOUSEBUTTON_NONE:
64 // Leave button undefined.
65 break;
59 } 66 }
60 67
61 if (button != MouseEvent::BUTTON_UNDEFINED) { 68 if (button != MouseEvent::BUTTON_UNDEFINED) {
62 SendMouseButtonEvent(button_down, button); 69 SendMouseButtonEvent(button_down, button);
63 } 70 }
64 } 71 }
65 72
66 } // namespace remoting 73 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/plugin/pepper_input_handler.h ('k') | remoting/client/plugin/pepper_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698