summaryrefslogtreecommitdiffstats
path: root/views/events/event_gtk.cc
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-09 18:27:53 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-09 18:27:53 +0000
commitc4ad24f808242ec7e2d33a4c718e6d4e25b15270 (patch)
tree766692ec8cff863bccca44fcca12cc4c9770804f /views/events/event_gtk.cc
parentc86b2ce7ee623ddbbd4a75e005d1a6a9322a3a20 (diff)
downloadchromium_src-c4ad24f808242ec7e2d33a4c718e6d4e25b15270.zip
chromium_src-c4ad24f808242ec7e2d33a4c718e6d4e25b15270.tar.gz
chromium_src-c4ad24f808242ec7e2d33a4c718e6d4e25b15270.tar.bz2
Move Event files into views/events
BUG=none TEST=none TBR=sky Review URL: http://codereview.chromium.org/6459024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74305 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/events/event_gtk.cc')
-rw-r--r--views/events/event_gtk.cc47
1 files changed, 47 insertions, 0 deletions
diff --git a/views/events/event_gtk.cc b/views/events/event_gtk.cc
new file mode 100644
index 0000000..e06ee32
--- /dev/null
+++ b/views/events/event_gtk.cc
@@ -0,0 +1,47 @@
+// Copyright (c) 2009 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.
+
+#include "views/events/event.h"
+
+#include <gdk/gdk.h>
+
+#include "ui/base/keycodes/keyboard_code_conversion_gtk.h"
+
+namespace views {
+
+KeyEvent::KeyEvent(const GdkEventKey* event)
+ : Event(event->type == GDK_KEY_PRESS ?
+ Event::ET_KEY_PRESSED : Event::ET_KEY_RELEASED,
+ GetFlagsFromGdkState(event->state)),
+ // TODO(erg): All these values are iffy.
+ key_code_(ui::WindowsKeyCodeForGdkKeyCode(event->keyval)),
+ repeat_count_(0),
+ message_flags_(0)
+#if !defined(TOUCH_UI)
+ , native_event_(event)
+#endif
+{
+}
+
+// static
+int Event::GetFlagsFromGdkState(int state) {
+ int flags = 0;
+ if (state & GDK_LOCK_MASK)
+ flags |= Event::EF_CAPS_LOCK_DOWN;
+ if (state & GDK_CONTROL_MASK)
+ flags |= Event::EF_CONTROL_DOWN;
+ if (state & GDK_SHIFT_MASK)
+ flags |= Event::EF_SHIFT_DOWN;
+ if (state & GDK_MOD1_MASK)
+ flags |= Event::EF_ALT_DOWN;
+ if (state & GDK_BUTTON1_MASK)
+ flags |= Event::EF_LEFT_BUTTON_DOWN;
+ if (state & GDK_BUTTON2_MASK)
+ flags |= Event::EF_MIDDLE_BUTTON_DOWN;
+ if (state & GDK_BUTTON3_MASK)
+ flags |= Event::EF_RIGHT_BUTTON_DOWN;
+ return flags;
+}
+
+} // namespace views