1 // Copyright 2013 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.
5 #ifndef UI_EVENTS_TEST_EVENTS_TEST_UTILS_X11_H_
6 #define UI_EVENTS_TEST_EVENTS_TEST_UTILS_X11_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "ui/events/devices/x11/device_data_manager_x11.h"
10 #include "ui/events/event_constants.h"
11 #include "ui/events/keycodes/keyboard_codes.h"
12 #include "ui/gfx/geometry/point.h"
13 #include "ui/gfx/x/x11_types.h"
15 typedef union _XEvent XEvent
;
20 Valuator(DeviceDataManagerX11::DataType type
, double v
)
21 : data_type(type
), value(v
) {}
23 DeviceDataManagerX11::DataType data_type
;
27 struct XEventDeleter
{
28 void operator()(XEvent
* event
);
31 class ScopedXI2Event
{
36 operator XEvent
*() { return event_
.get(); }
38 // Initializes a XEvent with for the appropriate type with the specified data.
39 // Note that ui::EF_ flags should be passed as |flags|, not the native ones in
41 void InitKeyEvent(EventType type
,
42 KeyboardCode key_code
,
44 void InitMotionEvent(const gfx::Point
& location
,
45 const gfx::Point
& root_location
,
48 // Initializes an Xinput2 key event.
49 // |deviceid| is the master, and |sourceid| is the slave device.
50 void InitGenericKeyEvent(int deviceid
,
53 KeyboardCode key_code
,
56 void InitGenericButtonEvent(int deviceid
,
58 const gfx::Point
& location
,
61 void InitGenericMouseWheelEvent(int deviceid
,
65 void InitScrollEvent(int deviceid
,
72 void InitFlingScrollEvent(int deviceid
,
75 int x_velocity_ordinal
,
76 int y_velocity_ordinal
,
79 void InitTouchEvent(int deviceid
,
82 const gfx::Point
& location
,
83 const std::vector
<Valuator
>& valuators
);
88 void SetUpValuators(const std::vector
<Valuator
>& valuators
);
90 scoped_ptr
<XEvent
, XEventDeleter
> event_
;
92 DISALLOW_COPY_AND_ASSIGN(ScopedXI2Event
);
95 // Initializes a test touchpad device for scroll events.
96 void SetUpTouchPadForTest(int deviceid
);
98 // Initializes a list of touchscreen devices for touch events.
99 void SetUpTouchDevicesForTest(const std::vector
<int>& devices
);
101 // Initializes a list of non-touch, non-cmt pointer devices.
102 void SetUpPointerDevicesForTest(const std::vector
<int>& devices
);
106 #endif // UI_EVENTS_TEST_EVENTS_TEST_UTILS_X11_H_