• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 // This file declares routines for creating fake GDK events (at the moment,
6 // only keyboard events). This is useful for a variety of testing purposes.
7 // NOTE: This should not be used outside of testing.
8 
9 #ifndef UI_BASE_GTK_EVENT_SYNTHESIS_GTK_
10 #define UI_BASE_GTK_EVENT_SYNTHESIS_GTK_
11 
12 #include <gdk/gdk.h>
13 #include <gdk/gdkkeysyms.h>
14 #include <vector>
15 
16 #include "ui/base/ui_export.h"
17 #include "ui/events/keycodes/keyboard_codes.h"
18 
19 namespace ui {
20 
21 // Creates and returns a key event. Passes ownership to the caller.
22 UI_EXPORT GdkEvent* SynthesizeKeyEvent(GdkWindow* event_window,
23                                        bool press,
24                                        guint gdk_key,
25                                        guint state);
26 
27 // Creates the proper sequence of key events for a key press + release.
28 // Ownership of the events in the vector is passed to the caller.
29 UI_EXPORT void SynthesizeKeyPressEvents(
30     GdkWindow* window,
31     KeyboardCode key,
32     bool control, bool shift, bool alt,
33     std::vector<GdkEvent*>* events);
34 
35 }  // namespace ui
36 
37 #endif  // UI_BASE_GTK_EVENT_SYNTHESIS_GTK_
38