Home | History | Annotate | Download | only in gtk
      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