summaryrefslogtreecommitdiffstats
path: root/base/event_synthesis_gtk.h
diff options
context:
space:
mode:
Diffstat (limited to 'base/event_synthesis_gtk.h')
-rw-r--r--base/event_synthesis_gtk.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/base/event_synthesis_gtk.h b/base/event_synthesis_gtk.h
new file mode 100644
index 0000000..9612ae1
--- /dev/null
+++ b/base/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 BASE_EVENT_SYNTHESIS_GTK_
+#define BASE_EVENT_SYNTHESIS_GTK_
+#pragma once
+
+#include <gdk/gdk.h>
+#include <gdk/gdkkeysyms.h>
+#include <vector>
+
+#include "base/keyboard_codes.h"
+
+namespace base {
+
+// 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,
+ base::KeyboardCode key,
+ bool control, bool shift, bool alt,
+ std::vector<GdkEvent*>* events);
+
+} // namespace base
+
+#endif // BASE_EVENT_SYNTHESIS_GTK_