1 // Copyright 2016 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 "content/common/input/synthetic_pointer_action_params.h" 6 7 namespace content { 8 9 SyntheticPointerActionParams::SyntheticPointerActionParams() = default; 10 SyntheticPointerActionParams(PointerActionType action_type)11SyntheticPointerActionParams::SyntheticPointerActionParams( 12 PointerActionType action_type) 13 : pointer_action_type_(action_type) {} 14 15 SyntheticPointerActionParams::SyntheticPointerActionParams( 16 const SyntheticPointerActionParams& other) = default; 17 18 SyntheticPointerActionParams::~SyntheticPointerActionParams() = default; 19 20 // static GetWebMouseEventModifier(SyntheticPointerActionParams::Button button)21unsigned SyntheticPointerActionParams::GetWebMouseEventModifier( 22 SyntheticPointerActionParams::Button button) { 23 switch (button) { 24 case SyntheticPointerActionParams::Button::LEFT: 25 return blink::WebMouseEvent::kLeftButtonDown; 26 case SyntheticPointerActionParams::Button::MIDDLE: 27 return blink::WebMouseEvent::kMiddleButtonDown; 28 case SyntheticPointerActionParams::Button::RIGHT: 29 return blink::WebMouseEvent::kRightButtonDown; 30 case SyntheticPointerActionParams::Button::BACK: 31 return blink::WebMouseEvent::kBackButtonDown; 32 case SyntheticPointerActionParams::Button::FORWARD: 33 return blink::WebMouseEvent::kForwardButtonDown; 34 case SyntheticPointerActionParams::Button::NO_BUTTON: 35 return blink::WebMouseEvent::kNoModifiers; 36 } 37 NOTREACHED(); 38 return blink::WebMouseEvent::kNoModifiers; 39 } 40 41 // static 42 blink::WebMouseEvent::Button GetWebMouseEventButton(SyntheticPointerActionParams::Button button)43SyntheticPointerActionParams::GetWebMouseEventButton( 44 SyntheticPointerActionParams::Button button) { 45 switch (button) { 46 case SyntheticPointerActionParams::Button::LEFT: 47 return blink::WebMouseEvent::Button::kLeft; 48 case SyntheticPointerActionParams::Button::MIDDLE: 49 return blink::WebMouseEvent::Button::kMiddle; 50 case SyntheticPointerActionParams::Button::RIGHT: 51 return blink::WebMouseEvent::Button::kRight; 52 case SyntheticPointerActionParams::Button::BACK: 53 return blink::WebMouseEvent::Button::kBack; 54 case SyntheticPointerActionParams::Button::FORWARD: 55 return blink::WebMouseEvent::Button::kForward; 56 case SyntheticPointerActionParams::Button::NO_BUTTON: 57 return blink::WebMouseEvent::Button::kNoButton; 58 } 59 NOTREACHED(); 60 return blink::WebMouseEvent::Button::kNoButton; 61 } 62 63 // static 64 blink::WebMouseEvent::Button GetWebMouseEventButtonFromModifier(unsigned modifiers)65SyntheticPointerActionParams::GetWebMouseEventButtonFromModifier( 66 unsigned modifiers) { 67 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::kNoButton; 68 if (modifiers & blink::WebMouseEvent::kLeftButtonDown) 69 button = blink::WebMouseEvent::Button::kLeft; 70 if (modifiers & blink::WebMouseEvent::kMiddleButtonDown) 71 button = blink::WebMouseEvent::Button::kMiddle; 72 if (modifiers & blink::WebMouseEvent::kRightButtonDown) 73 button = blink::WebMouseEvent::Button::kRight; 74 return button; 75 } 76 77 } // namespace content 78