12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CHROME_TEST_CHROMEDRIVER_CHROME_UI_EVENTS_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CHROME_TEST_CHROMEDRIVER_CHROME_UI_EVENTS_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string>
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
10d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/keycodes/keyboard_codes.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Specifies the type of the mouse event.
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)enum MouseEventType {
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kPressedMouseEventType = 0,
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kReleasedMouseEventType,
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kMovedMouseEventType
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Specifies the mouse buttons.
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)enum MouseButton {
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kLeftMouseButton = 0,
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kMiddleMouseButton,
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kRightMouseButton,
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kNoneMouseButton
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct MouseEvent {
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  MouseEvent(MouseEventType type,
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)             MouseButton button,
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)             int x,
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)             int y,
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)             int modifiers,
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)             int click_count);
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ~MouseEvent();
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  MouseEventType type;
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  MouseButton button;
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int x;
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int y;
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  int modifiers;
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // |click_count| should not be negative.
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int click_count;
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
45d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch// Specifies the type of the touch event.
46d3868032626d59662ff73b372b5d584c1d144c53Ben Murdochenum TouchEventType {
47d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  kTouchStart = 0,
48d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  kTouchEnd,
49d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  kTouchMove,
50d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch};
51d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
52d3868032626d59662ff73b372b5d584c1d144c53Ben Murdochstruct TouchEvent {
53d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  TouchEvent(TouchEventType type,
54d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch             int x,
55d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch             int y);
56d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  ~TouchEvent();
57d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
58d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  TouchEventType type;
59d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  int x;
60d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  int y;
61d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch};
62d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Specifies the type of the keyboard event.
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)enum KeyEventType {
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kKeyDownEventType = 0,
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kKeyUpEventType,
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kRawKeyDownEventType,
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kCharEventType
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Specifies modifier keys as stated in
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// third_party/WebKit/Source/WebCore/inspector/Inspector.json.
732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Notice: |kNumLockKeyModifierMask| is for usage in the key_converter.cc
742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//         and keycode_text_conversion_x.cc only, not for inspector.
752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)enum KeyModifierMask {
762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kAltKeyModifierMask = 1 << 0,
772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kControlKeyModifierMask = 1 << 1,
782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kMetaKeyModifierMask = 1 << 2,
792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kShiftKeyModifierMask = 1 << 3,
802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  kNumLockKeyModifierMask = 1 << 4
812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct KeyEvent {
842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  KeyEvent(KeyEventType type,
852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)           int modifiers,
862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)           const std::string& modified_text,
872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)           const std::string& unmodified_text,
882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)           ui::KeyboardCode key_code);
892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ~KeyEvent();
902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  KeyEventType type;
922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int modifiers;
932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  std::string modified_text;
942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  std::string unmodified_text;
952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ui::KeyboardCode key_code;
962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // CHROME_TEST_CHROMEDRIVER_CHROME_UI_EVENTS_H_
99