diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-09 18:27:53 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-09 18:27:53 +0000 |
commit | c4ad24f808242ec7e2d33a4c718e6d4e25b15270 (patch) | |
tree | 766692ec8cff863bccca44fcca12cc4c9770804f /views/events/event_gtk.cc | |
parent | c86b2ce7ee623ddbbd4a75e005d1a6a9322a3a20 (diff) | |
download | chromium_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.cc | 47 |
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 |