summaryrefslogtreecommitdiffstats
path: root/views/controls/textfield/textfield.cc
diff options
context:
space:
mode:
authordavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-09 23:48:30 +0000
committerdavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-09 23:48:30 +0000
commit5c9e97acabd4cdab5adb20d2412a5766b3382856 (patch)
treeead11654548e0e110cf8c8dce962801d530d54f7 /views/controls/textfield/textfield.cc
parent7f01f83fd464fc13cbdb9d377493d1781decf363 (diff)
downloadchromium_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.cc55
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