diff options
author | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-09 23:48:30 +0000 |
---|---|---|
committer | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-09 23:48:30 +0000 |
commit | 5c9e97acabd4cdab5adb20d2412a5766b3382856 (patch) | |
tree | ead11654548e0e110cf8c8dce962801d530d54f7 /views/controls/textfield/textfield.cc | |
parent | 7f01f83fd464fc13cbdb9d377493d1781decf363 (diff) | |
download | chromium_src-5c9e97acabd4cdab5adb20d2412a5766b3382856.zip chromium_src-5c9e97acabd4cdab5adb20d2412a5766b3382856.tar.gz chromium_src-5c9e97acabd4cdab5adb20d2412a5766b3382856.tar.bz2 |
First cut at implementation of FindBar for views / gtk
Also had to implement change notification for TextField on views / gtk
Review URL: http://codereview.chromium.org/200035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25819 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/controls/textfield/textfield.cc')
-rw-r--r-- | views/controls/textfield/textfield.cc | 55 |
1 files changed, 33 insertions, 22 deletions
diff --git a/views/controls/textfield/textfield.cc b/views/controls/textfield/textfield.cc index 3887697..97240c7 100644 --- a/views/controls/textfield/textfield.cc +++ b/views/controls/textfield/textfield.cc @@ -4,10 +4,15 @@ #include "views/controls/textfield/textfield.h" +#if defined(OS_LINUX) +#include <gdk/gdkkeysyms.h> +#endif + #include "app/gfx/insets.h" #if defined(OS_WIN) #include "app/win_util.h" #endif + #include "base/string_util.h" #include "views/controls/textfield/native_textfield_wrapper.h" #include "views/widget/widget.h" @@ -167,28 +172,6 @@ void Textfield::SyncText() { text_ = native_wrapper_->GetText(); } -// static -bool Textfield::IsKeystrokeEnter(const Keystroke& key) { -#if defined(OS_WIN) - return key.key == VK_RETURN; -#else - // TODO(port): figure out VK_constants - NOTIMPLEMENTED(); - return false; -#endif -} - -// static -bool Textfield::IsKeystrokeEscape(const Keystroke& key) { -#if defined(OS_WIN) - return key.key == VK_ESCAPE; -#else - // TODO(port): figure out VK_constants - NOTIMPLEMENTED(); - return false; -#endif -} - //////////////////////////////////////////////////////////////////////////////// // Textfield, View overrides: @@ -296,4 +279,32 @@ NativeTextfieldWrapper* Textfield::CreateWrapper() { return native_wrapper; } +base::KeyboardCode Textfield::Keystroke::GetKeyboardCode() const { +#if defined(OS_WIN) + return static_cast<base::KeyboardCode>(key_); +#else + return static_cast<base::KeyboardCode>(event_.keyval); +#endif +} + +#if defined(OS_WIN) +bool Textfield::Keystroke::IsControlHeld() const { + return GetKeyState(VK_CONTROL) >= 0; +} + +bool Textfield::Keystroke::IsShiftHeld() const { + return GetKeyState(VK_SHIFT) >= 0; +} +#else +bool Textfield::Keystroke::IsControlHeld() const { + return (event_.state & gtk_accelerator_get_default_mod_mask()) == + GDK_CONTROL_MASK; +} + +bool Textfield::Keystroke::IsShiftHeld() const { + return (event_.state & gtk_accelerator_get_default_mod_mask()) == + GDK_SHIFT_MASK; +} +#endif + } // namespace views |