summaryrefslogtreecommitdiffstats
path: root/app/event_synthesis_gtk.h
diff options
context:
space:
mode:
Diffstat (limited to 'app/event_synthesis_gtk.h')
-rw-r--r--app/event_synthesis_gtk.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/app/event_synthesis_gtk.h b/app/event_synthesis_gtk.h
new file mode 100644
index 0000000..72d8279
--- /dev/null
+++ b/app/event_synthesis_gtk.h
@@ -0,0 +1,37 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// This file declares routines for creating fake GDK events (at the moment,
+// only keyboard events). This is useful for a variety of testing purposes.
+// NOTE: This should not be used outside of testing.
+
+#ifndef APP_EVENT_SYNTHESIS_GTK_
+#define APP_EVENT_SYNTHESIS_GTK_
+#pragma once
+
+#include <gdk/gdk.h>
+#include <gdk/gdkkeysyms.h>
+#include <vector>
+
+#include "app/keyboard_codes.h"
+
+namespace app {
+
+// Creates and returns a key event. Passes ownership to the caller.
+GdkEvent* SynthesizeKeyEvent(GdkWindow* event_window,
+ bool press,
+ guint gdk_key,
+ guint state);
+
+// Creates the proper sequence of key events for a key press + release.
+// Ownership of the events in the vector is passed to the caller.
+void SynthesizeKeyPressEvents(
+ GdkWindow* window,
+ app::KeyboardCode key,
+ bool control, bool shift, bool alt,
+ std::vector<GdkEvent*>* events);
+
+} // namespace app
+
+#endif // APP_EVENT_SYNTHESIS_GTK_