Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1895)

Unified Diff: ui/views/controls/textfield/textfield.cc

Issue 10535046: Add Windows commandline switch --enable-views-textfield. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove unused includes. Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/views/controls/textfield/textfield.cc
diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc
index 66291060b17b615696ef37256aa8b715e2df19f2..4aedd4a9dd0936cfc8fb350b0dc7540a02299f64 100644
--- a/ui/views/controls/textfield/textfield.cc
+++ b/ui/views/controls/textfield/textfield.cc
@@ -6,15 +6,18 @@
#include <string>
+#include "base/command_line.h"
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/ime/text_input_type.h"
#include "ui/base/keycodes/keyboard_codes.h"
#include "ui/base/range/range.h"
+#include "ui/base/ui_base_switches.h"
#include "ui/gfx/insets.h"
#include "ui/gfx/selection_model.h"
#include "ui/views/controls/native/native_view_host.h"
+#include "ui/views/controls/textfield/native_textfield_views.h"
#include "ui/views/controls/textfield/native_textfield_wrapper.h"
#include "ui/views/controls/textfield/textfield_controller.h"
#include "ui/views/widget/widget.h"
@@ -23,7 +26,6 @@
#include "base/win/win_util.h"
// TODO(beng): this should be removed when the OS_WIN hack from
// ViewHierarchyChanged is removed.
-#include "ui/views/controls/textfield/native_textfield_views.h"
#include "ui/views/controls/textfield/native_textfield_win.h"
#endif
@@ -32,6 +34,13 @@ namespace {
// Default placeholder text color.
const SkColor kDefaultPlaceholderTextColor = SK_ColorLTGRAY;
+#if defined(OS_WIN) && !defined(USE_AURA)
+bool UseNativeTextfieldViews() {
+ CommandLine* command_line = CommandLine::ForCurrentProcess();
+ return command_line->HasSwitch(switches::kEnableViewsTextfield);
+}
+#endif
+
} // namespace
namespace views {
@@ -367,8 +376,7 @@ void Textfield::AboutToRequestFocusFromTabTraversal(bool reverse) {
bool Textfield::SkipDefaultKeyEventProcessing(const KeyEvent& e) {
// TODO(hamaji): Figure out which keyboard combinations we need to add here,
// similar to LocationBarView::SkipDefaultKeyEventProcessing.
- ui::KeyboardCode key = e.key_code();
- if (key == ui::VKEY_BACK)
+ if (e.key_code() == ui::VKEY_BACK)
return true; // We'll handle BackSpace ourselves.
#if defined(USE_AURA)
@@ -376,9 +384,7 @@ bool Textfield::SkipDefaultKeyEventProcessing(const KeyEvent& e) {
#elif defined(OS_WIN)
// We don't translate accelerators for ALT + NumPad digit on Windows, they are
// used for entering special characters. We do translate alt-home.
- if (e.IsAltDown() && (key != ui::VKEY_HOME) &&
- NativeTextfieldWin::IsNumPadDigit(key,
- (e.flags() & ui::EF_EXTENDED) != 0))
+ if (e.IsAltDown() && (e.key_code() != ui::VKEY_HOME) && e.IsNumPadDigit())
return true;
#endif
return false;
@@ -454,12 +460,13 @@ void Textfield::ViewHierarchyChanged(bool is_add, View* parent, View* child) {
UpdateAllProperties();
#if defined(OS_WIN) && !defined(USE_AURA)
- // TODO(beng): remove this once NativeTextfieldWin subclasses
+ // TODO(beng): Remove this once NativeTextfieldWin subclasses
// NativeControlWin. This is currently called to perform post-AddChildView
// initialization for the wrapper.
//
// Remove the include for native_textfield_win.h above when you fix this.
- static_cast<NativeTextfieldWin*>(native_wrapper_)->AttachHack();
+ if (!UseNativeTextfieldViews())
+ static_cast<NativeTextfieldWin*>(native_wrapper_)->AttachHack();
#endif
}
}
@@ -468,4 +475,17 @@ std::string Textfield::GetClassName() const {
return kViewClassName;
}
+////////////////////////////////////////////////////////////////////////////////
+// NativeTextfieldWrapper, public:
+
+// static
+NativeTextfieldWrapper* NativeTextfieldWrapper::CreateWrapper(
+ Textfield* field) {
+#if defined(OS_WIN) && !defined(USE_AURA)
+ if (!UseNativeTextfieldViews())
+ return new NativeTextfieldWin(field);
+#endif
+ return new NativeTextfieldViews(field);
+}
+
} // namespace views

Powered by Google App Engine
This is Rietveld 408576698