summaryrefslogtreecommitdiffstats
path: root/views
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-24 00:59:52 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-24 00:59:52 +0000
commit420138333ca7e2a5f6e5738a43f3780c98a03d42 (patch)
tree674b8f714ed45aa5f98a9e827f98bb49bcc92ba0 /views
parent901944666724e9e8df190aaf26bed6c6cda3ade4 (diff)
downloadchromium_src-420138333ca7e2a5f6e5738a43f3780c98a03d42.zip
chromium_src-420138333ca7e2a5f6e5738a43f3780c98a03d42.tar.gz
chromium_src-420138333ca7e2a5f6e5738a43f3780c98a03d42.tar.bz2
Rename WillGain/Lose/DidGainFocus, Focus methods. Now there are only two notifications:
OnFocus() OnBlur() View gains a Focus()/Blur() processing method pair. Cleans up code in FocusManager::SetFocusedView. Also adds OVERRIDE to a bunch of methods. BUG=72040 TEST=existing unittests. Review URL: http://codereview.chromium.org/6577010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75830 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views')
-rw-r--r--views/controls/button/checkbox.cc13
-rw-r--r--views/controls/button/checkbox.h41
-rw-r--r--views/controls/button/custom_button.cc2
-rw-r--r--views/controls/button/custom_button.h42
-rw-r--r--views/controls/button/native_button.cc6
-rw-r--r--views/controls/button/native_button.h17
-rw-r--r--views/controls/button/native_button_gtk.cc2
-rw-r--r--views/controls/button/native_button_win.cc2
-rw-r--r--views/controls/combobox/combobox.cc6
-rw-r--r--views/controls/combobox/combobox.h2
-rw-r--r--views/controls/combobox/native_combobox_gtk.cc2
-rw-r--r--views/controls/combobox/native_combobox_win.cc2
-rw-r--r--views/controls/native/native_view_host.cc2
-rw-r--r--views/controls/native/native_view_host.h2
-rw-r--r--views/controls/native_control.cc2
-rw-r--r--views/controls/native_control.h2
-rw-r--r--views/controls/native_control_gtk.cc2
-rw-r--r--views/controls/native_control_gtk.h2
-rw-r--r--views/controls/native_control_win.cc2
-rw-r--r--views/controls/native_control_win.h2
-rw-r--r--views/controls/slider/native_slider_gtk.cc2
-rw-r--r--views/controls/slider/slider.cc4
-rw-r--r--views/controls/slider/slider.h15
-rw-r--r--views/controls/tabbed_pane/native_tabbed_pane_gtk.cc2
-rw-r--r--views/controls/tabbed_pane/native_tabbed_pane_win.cc2
-rw-r--r--views/controls/tabbed_pane/tabbed_pane.cc6
-rw-r--r--views/controls/tabbed_pane/tabbed_pane.h2
-rw-r--r--views/controls/table/native_table_gtk.cc2
-rw-r--r--views/controls/table/native_table_win.cc2
-rw-r--r--views/controls/textfield/native_textfield_gtk.cc9
-rw-r--r--views/controls/textfield/native_textfield_gtk.h59
-rw-r--r--views/controls/textfield/native_textfield_views.cc20
-rw-r--r--views/controls/textfield/native_textfield_views.h90
-rw-r--r--views/controls/textfield/native_textfield_win.cc7
-rw-r--r--views/controls/textfield/native_textfield_win.h66
-rw-r--r--views/controls/textfield/native_textfield_wrapper.h7
-rw-r--r--views/controls/textfield/textfield.cc29
-rw-r--r--views/controls/textfield/textfield.h33
-rw-r--r--views/focus/focus_manager.cc31
-rw-r--r--views/focus/focus_manager.h1
-rw-r--r--views/focus/focus_manager_unittest.cc33
-rw-r--r--views/view.cc28
-rw-r--r--views/view.h24
43 files changed, 283 insertions, 344 deletions
diff --git a/views/controls/button/checkbox.cc b/views/controls/button/checkbox.cc
index 8d554909..719dfd8 100644
--- a/views/controls/button/checkbox.cc
+++ b/views/controls/button/checkbox.cc
@@ -121,15 +121,6 @@ void Checkbox::OnPaintFocusBorder(gfx::Canvas* canvas) {
// Our focus border is rendered by the label, so we don't do anything here.
}
-View* Checkbox::GetViewForPoint(const gfx::Point& point) {
- return GetViewForPoint(point, false);
-}
-
-View* Checkbox::GetViewForPoint(const gfx::Point& point,
- bool can_create_floating) {
- return GetLocalBounds().Contains(point) ? this : NULL;
-}
-
void Checkbox::OnMouseEntered(const MouseEvent& e) {
native_wrapper_->SetPushed(HitTestLabel(e));
}
@@ -159,11 +150,11 @@ bool Checkbox::OnMouseDragged(const MouseEvent& e) {
return false;
}
-void Checkbox::WillGainFocus() {
+void Checkbox::OnFocus() {
label_->set_paint_as_focused(true);
}
-void Checkbox::WillLoseFocus() {
+void Checkbox::OnBlur() {
label_->set_paint_as_focused(false);
}
diff --git a/views/controls/button/checkbox.h b/views/controls/button/checkbox.h
index c6ec53d..71d218d 100644
--- a/views/controls/button/checkbox.h
+++ b/views/controls/button/checkbox.h
@@ -42,36 +42,33 @@ class Checkbox : public NativeButton {
static int GetTextIndent();
// Overridden from View:
- virtual gfx::Size GetPreferredSize();
- virtual int GetHeightForWidth(int w);
- virtual void Layout();
- virtual void SetEnabled(bool enabled);
- virtual void OnPaintFocusBorder(gfx::Canvas* canvas);
- virtual View* GetViewForPoint(const gfx::Point& point);
- virtual View* GetViewForPoint(const gfx::Point& point,
- bool can_create_floating);
- virtual void OnMouseEntered(const MouseEvent& e);
- virtual void OnMouseMoved(const MouseEvent& e);
- virtual void OnMouseExited(const MouseEvent& e);
- virtual bool OnMousePressed(const MouseEvent& e);
- virtual void OnMouseReleased(const MouseEvent& e, bool canceled);
- virtual bool OnMouseDragged(const MouseEvent& e);
- virtual void WillGainFocus();
- virtual void WillLoseFocus();
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
+ virtual int GetHeightForWidth(int w) OVERRIDE;
+ virtual void Layout() OVERRIDE;
+ virtual void SetEnabled(bool enabled) OVERRIDE;
+ virtual void OnPaintFocusBorder(gfx::Canvas* canvas) OVERRIDE;
+ virtual void OnMouseEntered(const MouseEvent& e) OVERRIDE;
+ virtual void OnMouseMoved(const MouseEvent& e) OVERRIDE;
+ virtual void OnMouseExited(const MouseEvent& e) OVERRIDE;
+ virtual bool OnMousePressed(const MouseEvent& e) OVERRIDE;
+ virtual void OnMouseReleased(const MouseEvent& e, bool canceled) OVERRIDE;
+ virtual bool OnMouseDragged(const MouseEvent& e) OVERRIDE;
+ virtual void OnFocus() OVERRIDE;
+ virtual void OnBlur() OVERRIDE;
// Accessibility accessors, overridden from View.
- virtual AccessibilityTypes::Role GetAccessibleRole();
- virtual AccessibilityTypes::State GetAccessibleState();
+ virtual AccessibilityTypes::Role GetAccessibleRole() OVERRIDE;
+ virtual AccessibilityTypes::State GetAccessibleState() OVERRIDE;
// Overridden from NativeButton:
- virtual void SetLabel(const std::wstring& label);
+ virtual void SetLabel(const std::wstring& label) OVERRIDE;
protected:
- virtual std::string GetClassName() const;
+ virtual std::string GetClassName() const OVERRIDE;
// Overridden from NativeButton:
- virtual NativeButtonWrapper* CreateWrapper();
- virtual void InitBorder();
+ virtual NativeButtonWrapper* CreateWrapper() OVERRIDE;
+ virtual void InitBorder() OVERRIDE;
// Returns true if the event (in Checkbox coordinates) is within the bounds of
// the label.
diff --git a/views/controls/button/custom_button.cc b/views/controls/button/custom_button.cc
index 08a7e22..1696d14 100644
--- a/views/controls/button/custom_button.cc
+++ b/views/controls/button/custom_button.cc
@@ -256,7 +256,7 @@ bool CustomButton::IsHotTracked() const {
return state_ == BS_HOT;
}
-void CustomButton::WillLoseFocus() {
+void CustomButton::OnBlur() {
if (IsHotTracked())
SetState(BS_NORMAL);
}
diff --git a/views/controls/button/custom_button.h b/views/controls/button/custom_button.h
index e0dcb2b..17dafbf 100644
--- a/views/controls/button/custom_button.h
+++ b/views/controls/button/custom_button.h
@@ -48,10 +48,10 @@ class CustomButton : public Button,
void SetAnimationDuration(int duration);
// Overridden from View:
- virtual AccessibilityTypes::State GetAccessibleState();
- virtual void SetEnabled(bool enabled);
- virtual bool IsEnabled() const;
- virtual bool IsFocusable() const;
+ virtual AccessibilityTypes::State GetAccessibleState() OVERRIDE;
+ virtual void SetEnabled(bool enabled) OVERRIDE;
+ virtual bool IsEnabled() const OVERRIDE;
+ virtual bool IsFocusable() const OVERRIDE;
void set_triggerable_event_flags(int triggerable_event_flags) {
triggerable_event_flags_ = triggerable_event_flags;
@@ -90,24 +90,26 @@ class CustomButton : public Button,
virtual bool IsTriggerableEvent(const MouseEvent& e);
// Overridden from View:
- virtual bool AcceleratorPressed(const Accelerator& accelerator);
- virtual bool OnMousePressed(const MouseEvent& e);
- virtual bool OnMouseDragged(const MouseEvent& e);
- virtual void OnMouseReleased(const MouseEvent& e, bool canceled);
- virtual void OnMouseEntered(const MouseEvent& e);
- virtual void OnMouseMoved(const MouseEvent& e);
- virtual void OnMouseExited(const MouseEvent& e);
- virtual bool OnKeyPressed(const KeyEvent& e);
- virtual bool OnKeyReleased(const KeyEvent& e);
- virtual void OnDragDone();
- virtual void ShowContextMenu(const gfx::Point& p, bool is_mouse_gesture);
- virtual void ViewHierarchyChanged(bool is_add, View *parent, View *child);
- virtual void SetHotTracked(bool flag);
- virtual bool IsHotTracked() const;
- virtual void WillLoseFocus();
+ virtual bool AcceleratorPressed(const Accelerator& accelerator) OVERRIDE;
+ virtual bool OnMousePressed(const MouseEvent& e) OVERRIDE;
+ virtual bool OnMouseDragged(const MouseEvent& e) OVERRIDE;
+ virtual void OnMouseReleased(const MouseEvent& e, bool canceled) OVERRIDE;
+ virtual void OnMouseEntered(const MouseEvent& e) OVERRIDE;
+ virtual void OnMouseMoved(const MouseEvent& e) OVERRIDE;
+ virtual void OnMouseExited(const MouseEvent& e) OVERRIDE;
+ virtual bool OnKeyPressed(const KeyEvent& e) OVERRIDE;
+ virtual bool OnKeyReleased(const KeyEvent& e) OVERRIDE;
+ virtual void OnDragDone() OVERRIDE;
+ virtual void ShowContextMenu(const gfx::Point& p,
+ bool is_mouse_gesture) OVERRIDE;
+ virtual void ViewHierarchyChanged(bool is_add, View* parent,
+ View* child) OVERRIDE;
+ virtual void SetHotTracked(bool flag) OVERRIDE;
+ virtual bool IsHotTracked() const OVERRIDE;
+ virtual void OnBlur() OVERRIDE;
// Overridden from ui::AnimationDelegate:
- virtual void AnimationProgressed(const ui::Animation* animation);
+ virtual void AnimationProgressed(const ui::Animation* animation) OVERRIDE;
// Returns true if the button should become pressed when the user
// holds the mouse down over the button. For this implementation,
diff --git a/views/controls/button/native_button.cc b/views/controls/button/native_button.cc
index 5cf1511..9cee97b 100644
--- a/views/controls/button/native_button.cc
+++ b/views/controls/button/native_button.cc
@@ -201,13 +201,13 @@ bool NativeButton::AcceleratorPressed(const Accelerator& accelerator) {
return false;
}
-void NativeButton::Focus() {
+void NativeButton::OnFocus() {
// Forward the focus to the wrapper.
if (native_wrapper_)
native_wrapper_->SetFocus();
else
- Button::Focus(); // Will focus the RootView window (so we still get
- // keyboard messages).
+ Button::OnFocus(); // Will focus the RootView window (so we still get
+ // keyboard messages).
}
void NativeButton::OnPaintFocusBorder(gfx::Canvas* canvas) {
diff --git a/views/controls/button/native_button.h b/views/controls/button/native_button.h
index f4d21d4..2e1337a 100644
--- a/views/controls/button/native_button.h
+++ b/views/controls/button/native_button.h
@@ -52,16 +52,17 @@ class NativeButton : public Button {
void ButtonPressed();
// Overridden from View:
- virtual gfx::Size GetPreferredSize();
- virtual void Layout();
- virtual void SetEnabled(bool flag);
- virtual void Focus();
- virtual void OnPaintFocusBorder(gfx::Canvas* canvas);
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
+ virtual void Layout() OVERRIDE;
+ virtual void SetEnabled(bool flag) OVERRIDE;
+ virtual void OnFocus() OVERRIDE;
+ virtual void OnPaintFocusBorder(gfx::Canvas* canvas) OVERRIDE;
protected:
- virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child);
- virtual std::string GetClassName() const;
- virtual bool AcceleratorPressed(const Accelerator& accelerator);
+ virtual void ViewHierarchyChanged(bool is_add, View* parent,
+ View* child) OVERRIDE;
+ virtual std::string GetClassName() const OVERRIDE;
+ virtual bool AcceleratorPressed(const Accelerator& accelerator) OVERRIDE;
// Create the button wrapper and returns it. Ownership of the returned
// value is passed to the caller.
diff --git a/views/controls/button/native_button_gtk.cc b/views/controls/button/native_button_gtk.cc
index 7659f48..9ae7d96 100644
--- a/views/controls/button/native_button_gtk.cc
+++ b/views/controls/button/native_button_gtk.cc
@@ -74,7 +74,7 @@ View* NativeButtonGtk::GetView() {
void NativeButtonGtk::SetFocus() {
// Focus the associated widget.
- Focus();
+ OnFocus();
}
bool NativeButtonGtk::UsesNativeLabel() const {
diff --git a/views/controls/button/native_button_win.cc b/views/controls/button/native_button_win.cc
index 9914638..fbba56a 100644
--- a/views/controls/button/native_button_win.cc
+++ b/views/controls/button/native_button_win.cc
@@ -92,7 +92,7 @@ View* NativeButtonWin::GetView() {
void NativeButtonWin::SetFocus() {
// Focus the associated HWND.
- Focus();
+ OnFocus();
}
bool NativeButtonWin::UsesNativeLabel() const {
diff --git a/views/controls/combobox/combobox.cc b/views/controls/combobox/combobox.cc
index 5f9af57..be7d719 100644
--- a/views/controls/combobox/combobox.cc
+++ b/views/controls/combobox/combobox.cc
@@ -97,13 +97,13 @@ string16 Combobox::GetAccessibleValue() {
return model_->GetItemAt(selected_item_);
}
-void Combobox::Focus() {
+void Combobox::OnFocus() {
// Forward the focus to the wrapper.
if (native_wrapper_)
native_wrapper_->SetFocus();
else
- View::Focus(); // Will focus the RootView window (so we still get
- // keyboard messages).
+ View::OnFocus(); // Will focus the RootView window (so we still get
+ // keyboard messages).
}
void Combobox::ViewHierarchyChanged(bool is_add, View* parent,
diff --git a/views/controls/combobox/combobox.h b/views/controls/combobox/combobox.h
index cb25968..1de06d6 100644
--- a/views/controls/combobox/combobox.h
+++ b/views/controls/combobox/combobox.h
@@ -68,7 +68,7 @@ class Combobox : public View {
virtual string16 GetAccessibleValue() OVERRIDE;
protected:
- virtual void Focus();
+ virtual void OnFocus();
virtual void ViewHierarchyChanged(bool is_add, View* parent,
View* child);
virtual std::string GetClassName() const;
diff --git a/views/controls/combobox/native_combobox_gtk.cc b/views/controls/combobox/native_combobox_gtk.cc
index e596328..cfa2dc9 100644
--- a/views/controls/combobox/native_combobox_gtk.cc
+++ b/views/controls/combobox/native_combobox_gtk.cc
@@ -94,7 +94,7 @@ View* NativeComboboxGtk::GetView() {
}
void NativeComboboxGtk::SetFocus() {
- Focus();
+ OnFocus();
}
gfx::NativeView NativeComboboxGtk::GetTestingHandle() const {
diff --git a/views/controls/combobox/native_combobox_win.cc b/views/controls/combobox/native_combobox_win.cc
index 2ea60e6..ebb91b5 100644
--- a/views/controls/combobox/native_combobox_win.cc
+++ b/views/controls/combobox/native_combobox_win.cc
@@ -135,7 +135,7 @@ View* NativeComboboxWin::GetView() {
}
void NativeComboboxWin::SetFocus() {
- Focus();
+ OnFocus();
}
gfx::NativeView NativeComboboxWin::GetTestingHandle() const {
diff --git a/views/controls/native/native_view_host.cc b/views/controls/native/native_view_host.cc
index 4566b80..9b6dff2 100644
--- a/views/controls/native/native_view_host.cc
+++ b/views/controls/native/native_view_host.cc
@@ -178,7 +178,7 @@ std::string NativeViewHost::GetClassName() const {
return kViewClassName;
}
-void NativeViewHost::Focus() {
+void NativeViewHost::OnFocus() {
native_wrapper_->SetFocus();
}
diff --git a/views/controls/native/native_view_host.h b/views/controls/native/native_view_host.h
index 9c06f35..e19aca2 100644
--- a/views/controls/native/native_view_host.h
+++ b/views/controls/native/native_view_host.h
@@ -80,7 +80,7 @@ class NativeViewHost : public View {
virtual void Layout();
virtual void OnPaint(gfx::Canvas* canvas);
virtual void VisibilityChanged(View* starting_from, bool is_visible);
- virtual void Focus();
+ virtual void OnFocus();
virtual bool ContainsNativeView(gfx::NativeView native_view) const;
protected:
diff --git a/views/controls/native_control.cc b/views/controls/native_control.cc
index 4e6e2f3..34e243e 100644
--- a/views/controls/native_control.cc
+++ b/views/controls/native_control.cc
@@ -277,7 +277,7 @@ void NativeControl::OnContextMenu(const POINT& location) {
ShowContextMenu(gfx::Point(location), true);
}
-void NativeControl::Focus() {
+void NativeControl::OnFocus() {
if (container_) {
DCHECK(container_->GetControl());
::SetFocus(container_->GetControl());
diff --git a/views/controls/native_control.h b/views/controls/native_control.h
index b08ff53..1273920 100644
--- a/views/controls/native_control.h
+++ b/views/controls/native_control.h
@@ -59,7 +59,7 @@ class NativeControl : public View {
virtual void OnContextMenu(const POINT& location);
// Overridden so to set the native focus to the native control.
- virtual void Focus();
+ virtual void OnFocus();
// Invoked when the native control sends a WM_DESTORY message to its parent.
virtual void OnDestroy() { }
diff --git a/views/controls/native_control_gtk.cc b/views/controls/native_control_gtk.cc
index eb97394..a17c4cb 100644
--- a/views/controls/native_control_gtk.cc
+++ b/views/controls/native_control_gtk.cc
@@ -63,7 +63,7 @@ void NativeControlGtk::VisibilityChanged(View* starting_from, bool is_visible) {
}
}
-void NativeControlGtk::Focus() {
+void NativeControlGtk::OnFocus() {
DCHECK(native_view());
gtk_widget_grab_focus(native_view());
diff --git a/views/controls/native_control_gtk.h b/views/controls/native_control_gtk.h
index ab2aa36..8146ed4 100644
--- a/views/controls/native_control_gtk.h
+++ b/views/controls/native_control_gtk.h
@@ -24,7 +24,7 @@ class NativeControlGtk : public NativeViewHost {
protected:
virtual void ViewHierarchyChanged(bool is_add, View *parent, View *child);
virtual void VisibilityChanged(View* starting_from, bool is_visible);
- virtual void Focus();
+ virtual void OnFocus();
// Called when the NativeControlGtk is attached to a View hierarchy with a
// valid Widget. The NativeControlGtk should use this opportunity to create
diff --git a/views/controls/native_control_win.cc b/views/controls/native_control_win.cc
index 9eaf25e..7e7312b 100644
--- a/views/controls/native_control_win.cc
+++ b/views/controls/native_control_win.cc
@@ -96,7 +96,7 @@ void NativeControlWin::VisibilityChanged(View* starting_from, bool is_visible) {
}
}
-void NativeControlWin::Focus() {
+void NativeControlWin::OnFocus() {
DCHECK(native_view());
SetFocus(native_view());
diff --git a/views/controls/native_control_win.h b/views/controls/native_control_win.h
index 289c679..aeed914 100644
--- a/views/controls/native_control_win.h
+++ b/views/controls/native_control_win.h
@@ -42,7 +42,7 @@ class NativeControlWin : public ChildWindowMessageProcessor,
protected:
virtual void ViewHierarchyChanged(bool is_add, View *parent, View *child);
virtual void VisibilityChanged(View* starting_from, bool is_visible);
- virtual void Focus();
+ virtual void OnFocus();
// Called by the containing WidgetWin when a WM_CONTEXTMENU message is
// received from the HWND created by an object derived from NativeControlWin.
diff --git a/views/controls/slider/native_slider_gtk.cc b/views/controls/slider/native_slider_gtk.cc
index ec490a8..0fa30b5 100644
--- a/views/controls/slider/native_slider_gtk.cc
+++ b/views/controls/slider/native_slider_gtk.cc
@@ -43,7 +43,7 @@ void NativeSliderGtk::SetValue(double value) {
}
void NativeSliderGtk::SetFocus() {
- Focus();
+ OnFocus();
}
gfx::Size NativeSliderGtk::GetPreferredSize() {
diff --git a/views/controls/slider/slider.cc b/views/controls/slider/slider.cc
index 993e524..70dc13e 100644
--- a/views/controls/slider/slider.cc
+++ b/views/controls/slider/slider.cc
@@ -74,14 +74,14 @@ void Slider::SetEnabled(bool enabled) {
native_wrapper_->UpdateEnabled();
}
-void Slider::Focus() {
+void Slider::OnFocus() {
if (native_wrapper_) {
// Forward the focus to the wrapper if it exists.
native_wrapper_->SetFocus();
} else {
// If there is no wrapper, cause the RootView to be focused so that we still
// get keyboard messages.
- View::Focus();
+ View::OnFocus();
}
}
diff --git a/views/controls/slider/slider.h b/views/controls/slider/slider.h
index c61da1e..fe9bfbf 100644
--- a/views/controls/slider/slider.h
+++ b/views/controls/slider/slider.h
@@ -68,15 +68,16 @@ class Slider : public View {
double step() const { return step_; }
// Overridden from View:
- virtual void Layout();
- virtual gfx::Size GetPreferredSize();
- virtual void SetEnabled(bool enabled);
- virtual void OnPaintFocusBorder(gfx::Canvas* canvas);
+ virtual void Layout() OVERRIDE;
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
+ virtual void SetEnabled(bool enabled) OVERRIDE;
+ virtual void OnPaintFocusBorder(gfx::Canvas* canvas) OVERRIDE;
protected:
- virtual void Focus();
- virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child);
- virtual std::string GetClassName() const;
+ virtual void OnFocus() OVERRIDE;
+ virtual void ViewHierarchyChanged(bool is_add, View* parent,
+ View* child) OVERRIDE;
+ virtual std::string GetClassName() const OVERRIDE;
// Creates a new native wrapper properly initialized and returns it. Ownership
// is passed to the caller.
diff --git a/views/controls/tabbed_pane/native_tabbed_pane_gtk.cc b/views/controls/tabbed_pane/native_tabbed_pane_gtk.cc
index a82e893..0b47abde 100644
--- a/views/controls/tabbed_pane/native_tabbed_pane_gtk.cc
+++ b/views/controls/tabbed_pane/native_tabbed_pane_gtk.cc
@@ -104,7 +104,7 @@ View* NativeTabbedPaneGtk::GetView() {
}
void NativeTabbedPaneGtk::SetFocus() {
- Focus();
+ OnFocus();
}
gfx::Size NativeTabbedPaneGtk::GetPreferredSize() {
diff --git a/views/controls/tabbed_pane/native_tabbed_pane_win.cc b/views/controls/tabbed_pane/native_tabbed_pane_win.cc
index aa651ac..ba4ffe6 100644
--- a/views/controls/tabbed_pane/native_tabbed_pane_win.cc
+++ b/views/controls/tabbed_pane/native_tabbed_pane_win.cc
@@ -235,7 +235,7 @@ View* NativeTabbedPaneWin::GetView() {
void NativeTabbedPaneWin::SetFocus() {
// Focus the associated HWND.
- Focus();
+ OnFocus();
}
gfx::Size NativeTabbedPaneWin::GetPreferredSize() {
diff --git a/views/controls/tabbed_pane/tabbed_pane.cc b/views/controls/tabbed_pane/tabbed_pane.cc
index 41f4432..eb9f971 100644
--- a/views/controls/tabbed_pane/tabbed_pane.cc
+++ b/views/controls/tabbed_pane/tabbed_pane.cc
@@ -112,7 +112,7 @@ void TabbedPane::Layout() {
native_tabbed_pane_->GetView()->SetBounds(0, 0, width(), height());
}
-void TabbedPane::Focus() {
+void TabbedPane::OnFocus() {
// Forward the focus to the wrapper.
if (native_tabbed_pane_) {
native_tabbed_pane_->SetFocus();
@@ -122,8 +122,8 @@ void TabbedPane::Focus() {
selected_tab->NotifyAccessibilityEvent(AccessibilityTypes::EVENT_FOCUS);
}
else
- View::Focus(); // Will focus the RootView window (so we still get keyboard
- // messages).
+ View::OnFocus(); // Will focus the RootView window (so we still get
+ // keyboard messages).
}
void TabbedPane::OnPaintFocusBorder(gfx::Canvas* canvas) {
diff --git a/views/controls/tabbed_pane/tabbed_pane.h b/views/controls/tabbed_pane/tabbed_pane.h
index 7c991c3..4fdb727 100644
--- a/views/controls/tabbed_pane/tabbed_pane.h
+++ b/views/controls/tabbed_pane/tabbed_pane.h
@@ -69,7 +69,7 @@ class TabbedPane : public View {
virtual bool AcceleratorPressed(const views::Accelerator& accelerator);
virtual std::string GetClassName() const;
virtual void Layout();
- virtual void Focus();
+ virtual void OnFocus();
virtual void OnPaintFocusBorder(gfx::Canvas* canvas);
virtual AccessibilityTypes::Role GetAccessibleRole();
virtual gfx::Size GetPreferredSize();
diff --git a/views/controls/table/native_table_gtk.cc b/views/controls/table/native_table_gtk.cc
index 87040bc..f87df59 100644
--- a/views/controls/table/native_table_gtk.cc
+++ b/views/controls/table/native_table_gtk.cc
@@ -56,7 +56,7 @@ View* NativeTableGtk::GetView() {
void NativeTableGtk::SetFocus() {
// Focus the associated widget.
- Focus();
+ OnFocus();
}
gfx::NativeView NativeTableGtk::GetTestingHandle() const {
diff --git a/views/controls/table/native_table_win.cc b/views/controls/table/native_table_win.cc
index bc40a55..fd7fb4b 100644
--- a/views/controls/table/native_table_win.cc
+++ b/views/controls/table/native_table_win.cc
@@ -104,7 +104,7 @@ View* NativeTableWin::GetView() {
void NativeTableWin::SetFocus() {
// Focus the associated HWND.
- Focus();
+ OnFocus();
}
gfx::NativeView NativeTableWin::GetTestingHandle() const {
diff --git a/views/controls/textfield/native_textfield_gtk.cc b/views/controls/textfield/native_textfield_gtk.cc
index cbe7a2c..f3b1ff5 100644
--- a/views/controls/textfield/native_textfield_gtk.cc
+++ b/views/controls/textfield/native_textfield_gtk.cc
@@ -327,7 +327,7 @@ void NativeTextfieldGtk::UpdateVerticalMargins() {
}
bool NativeTextfieldGtk::SetFocus() {
- Focus();
+ OnFocus();
return true;
}
@@ -364,13 +364,10 @@ bool NativeTextfieldGtk::HandleKeyReleased(const views::KeyEvent& e) {
return false;
}
-void NativeTextfieldGtk::HandleWillGainFocus() {
+void NativeTextfieldGtk::HandleFocus() {
}
-void NativeTextfieldGtk::HandleDidGainFocus() {
-}
-
-void NativeTextfieldGtk::HandleWillLoseFocus() {
+void NativeTextfieldGtk::HandleBlur() {
}
// static
diff --git a/views/controls/textfield/native_textfield_gtk.h b/views/controls/textfield/native_textfield_gtk.h
index 9f2d1f7..bfbc839 100644
--- a/views/controls/textfield/native_textfield_gtk.h
+++ b/views/controls/textfield/native_textfield_gtk.h
@@ -28,38 +28,37 @@ class NativeTextfieldGtk : public NativeControlGtk,
static gfx::Insets GetTextViewInnerBorder(GtkTextView* text_view);
// Overridden from NativeTextfieldWrapper:
- virtual string16 GetText() const;
- virtual void UpdateText();
- virtual void AppendText(const string16& text);
- virtual string16 GetSelectedText() const;
- virtual void SelectAll();
- virtual void ClearSelection();
- virtual void UpdateBorder();
- virtual void UpdateTextColor();
- virtual void UpdateBackgroundColor();
- virtual void UpdateReadOnly();
- virtual void UpdateFont();
- virtual void UpdateIsPassword();
- virtual void UpdateEnabled();
- virtual gfx::Insets CalculateInsets();
- virtual void UpdateHorizontalMargins();
- virtual void UpdateVerticalMargins();
- virtual bool SetFocus();
- virtual View* GetView();
- virtual gfx::NativeView GetTestingHandle() const;
- virtual bool IsIMEComposing() const;
- virtual void GetSelectedRange(TextRange* range) const;
- virtual void SelectRange(const TextRange& range);
- virtual size_t GetCursorPosition() const;
- virtual bool HandleKeyPressed(const views::KeyEvent& e);
- virtual bool HandleKeyReleased(const views::KeyEvent& e);
- virtual void HandleWillGainFocus();
- virtual void HandleDidGainFocus();
- virtual void HandleWillLoseFocus();
+ virtual string16 GetText() const OVERRIDE;
+ virtual void UpdateText() OVERRIDE;
+ virtual void AppendText(const string16& text) OVERRIDE;
+ virtual string16 GetSelectedText() const OVERRIDE;
+ virtual void SelectAll() OVERRIDE;
+ virtual void ClearSelection() OVERRIDE;
+ virtual void UpdateBorder() OVERRIDE;
+ virtual void UpdateTextColor() OVERRIDE;
+ virtual void UpdateBackgroundColor() OVERRIDE;
+ virtual void UpdateReadOnly() OVERRIDE;
+ virtual void UpdateFont() OVERRIDE;
+ virtual void UpdateIsPassword() OVERRIDE;
+ virtual void UpdateEnabled() OVERRIDE;
+ virtual gfx::Insets CalculateInsets() OVERRIDE;
+ virtual void UpdateHorizontalMargins() OVERRIDE;
+ virtual void UpdateVerticalMargins() OVERRIDE;
+ virtual bool SetFocus() OVERRIDE;
+ virtual View* GetView() OVERRIDE;
+ virtual gfx::NativeView GetTestingHandle() const OVERRIDE;
+ virtual bool IsIMEComposing() const OVERRIDE;
+ virtual void GetSelectedRange(TextRange* range) const OVERRIDE;
+ virtual void SelectRange(const TextRange& range) OVERRIDE;
+ virtual size_t GetCursorPosition() const OVERRIDE;
+ virtual bool HandleKeyPressed(const views::KeyEvent& e) OVERRIDE;
+ virtual bool HandleKeyReleased(const views::KeyEvent& e) OVERRIDE;
+ virtual void HandleFocus() OVERRIDE;
+ virtual void HandleBlur() OVERRIDE;
// Overridden from NativeControlGtk:
- virtual void CreateNativeControl();
- virtual void NativeControlCreated(GtkWidget* widget);
+ virtual void CreateNativeControl() OVERRIDE;
+ virtual void NativeControlCreated(GtkWidget* widget) OVERRIDE;
// Returns true if the textfield is for password.
bool IsPassword();
diff --git a/views/controls/textfield/native_textfield_views.cc b/views/controls/textfield/native_textfield_views.cc
index 5642ef9..b49fcb6 100644
--- a/views/controls/textfield/native_textfield_views.cc
+++ b/views/controls/textfield/native_textfield_views.cc
@@ -102,9 +102,8 @@ void NativeTextfieldViews::OnMouseReleased(const views::MouseEvent& e,
}
bool NativeTextfieldViews::OnKeyPressed(const views::KeyEvent& e) {
- // OnKeyPressed/OnKeyReleased/WillGainFocus/DidGainFocus/WillLoseFocus
- // will never be invoked on NativeTextfieldViews as it will never
- // gain focus.
+ // OnKeyPressed/OnKeyReleased/OnFocus/OnBlur will never be invoked on
+ // NativeTextfieldViews as it will never gain focus.
NOTREACHED();
return false;
}
@@ -126,15 +125,11 @@ void NativeTextfieldViews::OnBoundsChanged() {
UpdateCursorBoundsAndTextOffset();
}
-void NativeTextfieldViews::WillGainFocus() {
+void NativeTextfieldViews::OnFocus() {
NOTREACHED();
}
-void NativeTextfieldViews::DidGainFocus() {
- NOTREACHED();
-}
-
-void NativeTextfieldViews::WillLoseFocus() {
+void NativeTextfieldViews::OnBlur() {
NOTREACHED();
}
@@ -310,10 +305,7 @@ bool NativeTextfieldViews::HandleKeyReleased(const views::KeyEvent& e) {
return true;
}
-void NativeTextfieldViews::HandleWillGainFocus() {
-}
-
-void NativeTextfieldViews::HandleDidGainFocus() {
+void NativeTextfieldViews::HandleFocus() {
is_cursor_visible_ = true;
SchedulePaint();
// Start blinking cursor.
@@ -323,7 +315,7 @@ void NativeTextfieldViews::HandleDidGainFocus() {
kCursorVisibleTimeMs);
}
-void NativeTextfieldViews::HandleWillLoseFocus() {
+void NativeTextfieldViews::HandleBlur() {
// Stop blinking cursor.
cursor_timer_.RevokeAll();
if (is_cursor_visible_) {
diff --git a/views/controls/textfield/native_textfield_views.h b/views/controls/textfield/native_textfield_views.h
index 8f5764d..89484dc 100644
--- a/views/controls/textfield/native_textfield_views.h
+++ b/views/controls/textfield/native_textfield_views.h
@@ -47,60 +47,60 @@ class NativeTextfieldViews : public views::View,
~NativeTextfieldViews();
// views::View overrides:
- virtual bool OnMousePressed(const views::MouseEvent& e);
- virtual bool OnMouseDragged(const views::MouseEvent& e);
- virtual void OnMouseReleased(const views::MouseEvent& e, bool canceled);
- virtual bool OnKeyPressed(const views::KeyEvent& e);
- virtual bool OnKeyReleased(const views::KeyEvent& e);
- virtual void OnPaint(gfx::Canvas* canvas);
- virtual void OnBoundsChanged();
- virtual void WillGainFocus();
- virtual void DidGainFocus();
- virtual void WillLoseFocus();
+ virtual bool OnMousePressed(const views::MouseEvent& e) OVERRIDE;
+ virtual bool OnMouseDragged(const views::MouseEvent& e) OVERRIDE;
+ virtual void OnMouseReleased(const views::MouseEvent& e,
+ bool canceled) OVERRIDE;
+ virtual bool OnKeyPressed(const views::KeyEvent& e) OVERRIDE;
+ virtual bool OnKeyReleased(const views::KeyEvent& e) OVERRIDE;
+ virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
+ virtual void OnBoundsChanged() OVERRIDE;
+ virtual void OnFocus() OVERRIDE;
+ virtual void OnBlur() OVERRIDE;
virtual gfx::NativeCursor GetCursorForPoint(ui::EventType event_type,
- const gfx::Point& p);
+ const gfx::Point& p) OVERRIDE;
// views::ContextMenuController overrides:
virtual void ShowContextMenu(View* source,
const gfx::Point& p,
- bool is_mouse_gesture);
+ bool is_mouse_gesture) OVERRIDE;
// NativeTextfieldWrapper overrides:
- virtual string16 GetText() const;
- virtual void UpdateText();
- virtual void AppendText(const string16& text);
- virtual string16 GetSelectedText() const;
- virtual void SelectAll();
- virtual void ClearSelection();
- virtual void UpdateBorder();
- virtual void UpdateTextColor();
- virtual void UpdateBackgroundColor();
- virtual void UpdateReadOnly();
- virtual void UpdateFont();
- virtual void UpdateIsPassword();
- virtual void UpdateEnabled();
- virtual gfx::Insets CalculateInsets();
- virtual void UpdateHorizontalMargins();
- virtual void UpdateVerticalMargins();
- virtual bool SetFocus();
- virtual View* GetView();
- virtual gfx::NativeView GetTestingHandle() const;
- virtual bool IsIMEComposing() const;
- virtual void GetSelectedRange(TextRange* range) const;
- virtual void SelectRange(const TextRange& range);
- virtual size_t GetCursorPosition() const;
- virtual bool HandleKeyPressed(const views::KeyEvent& e);
- virtual bool HandleKeyReleased(const views::KeyEvent& e);
- virtual void HandleWillGainFocus();
- virtual void HandleDidGainFocus();
- virtual void HandleWillLoseFocus();
+ virtual string16 GetText() const OVERRIDE;
+ virtual void UpdateText() OVERRIDE;
+ virtual void AppendText(const string16& text) OVERRIDE;
+ virtual string16 GetSelectedText() const OVERRIDE;
+ virtual void SelectAll() OVERRIDE;
+ virtual void ClearSelection() OVERRIDE;
+ virtual void UpdateBorder() OVERRIDE;
+ virtual void UpdateTextColor() OVERRIDE;
+ virtual void UpdateBackgroundColor() OVERRIDE;
+ virtual void UpdateReadOnly() OVERRIDE;
+ virtual void UpdateFont() OVERRIDE;
+ virtual void UpdateIsPassword() OVERRIDE;
+ virtual void UpdateEnabled() OVERRIDE;
+ virtual gfx::Insets CalculateInsets() OVERRIDE;
+ virtual void UpdateHorizontalMargins() OVERRIDE;
+ virtual void UpdateVerticalMargins() OVERRIDE;
+ virtual bool SetFocus() OVERRIDE;
+ virtual View* GetView() OVERRIDE;
+ virtual gfx::NativeView GetTestingHandle() const OVERRIDE;
+ virtual bool IsIMEComposing() const OVERRIDE;
+ virtual void GetSelectedRange(TextRange* range) const OVERRIDE;
+ virtual void SelectRange(const TextRange& range) OVERRIDE;
+ virtual size_t GetCursorPosition() const OVERRIDE;
+ virtual bool HandleKeyPressed(const views::KeyEvent& e) OVERRIDE;
+ virtual bool HandleKeyReleased(const views::KeyEvent& e) OVERRIDE;
+ virtual void HandleFocus() OVERRIDE;
+ virtual void HandleBlur() OVERRIDE;
// ui::SimpleMenuModel::Delegate overrides
- virtual bool IsCommandIdChecked(int command_id) const;
- virtual bool IsCommandIdEnabled(int command_id) const;
- virtual bool GetAcceleratorForCommandId(int command_id,
- ui::Accelerator* accelerator);
- virtual void ExecuteCommand(int command_id);
+ virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
+ virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
+ virtual bool GetAcceleratorForCommandId(
+ int command_id,
+ ui::Accelerator* accelerator) OVERRIDE;
+ virtual void ExecuteCommand(int command_id) OVERRIDE;
// class name of internal
static const char kViewClassName[];
diff --git a/views/controls/textfield/native_textfield_win.cc b/views/controls/textfield/native_textfield_win.cc
index 5ceb2a4d..e08be41 100644
--- a/views/controls/textfield/native_textfield_win.cc
+++ b/views/controls/textfield/native_textfield_win.cc
@@ -356,13 +356,10 @@ bool NativeTextfieldWin::HandleKeyReleased(const views::KeyEvent& e) {
return false;
}
-void NativeTextfieldWin::HandleWillGainFocus() {
+void NativeTextfieldWin::HandleFocus() {
}
-void NativeTextfieldWin::HandleDidGainFocus() {
-}
-
-void NativeTextfieldWin::HandleWillLoseFocus() {
+void NativeTextfieldWin::HandleBlur() {
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/views/controls/textfield/native_textfield_win.h b/views/controls/textfield/native_textfield_win.h
index d5a354e..bea98c2 100644
--- a/views/controls/textfield/native_textfield_win.h
+++ b/views/controls/textfield/native_textfield_win.h
@@ -59,41 +59,41 @@ class NativeTextfieldWin
void AttachHack();
// Overridden from NativeTextfieldWrapper:
- virtual string16 GetText() const;
- virtual void UpdateText();
- virtual void AppendText(const string16& text);
- virtual string16 GetSelectedText() const;
- virtual void SelectAll();
- virtual void ClearSelection();
- virtual void UpdateBorder();
- virtual void UpdateTextColor();
- virtual void UpdateBackgroundColor();
- virtual void UpdateReadOnly();
- virtual void UpdateFont();
- virtual void UpdateIsPassword();
- virtual void UpdateEnabled();
- virtual gfx::Insets CalculateInsets();
- virtual void UpdateHorizontalMargins();
- virtual void UpdateVerticalMargins();
- virtual bool SetFocus();
- virtual View* GetView();
- virtual gfx::NativeView GetTestingHandle() const;
- virtual bool IsIMEComposing() const;
- virtual void GetSelectedRange(TextRange* range) const;
- virtual void SelectRange(const TextRange& range);
- virtual size_t GetCursorPosition() const;
- virtual bool HandleKeyPressed(const views::KeyEvent& e);
- virtual bool HandleKeyReleased(const views::KeyEvent& e);
- virtual void HandleWillGainFocus();
- virtual void HandleDidGainFocus();
- virtual void HandleWillLoseFocus();
+ virtual string16 GetText() const OVERRIDE;
+ virtual void UpdateText() OVERRIDE;
+ virtual void AppendText(const string16& text) OVERRIDE;
+ virtual string16 GetSelectedText() const OVERRIDE;
+ virtual void SelectAll() OVERRIDE;
+ virtual void ClearSelection() OVERRIDE;
+ virtual void UpdateBorder() OVERRIDE;
+ virtual void UpdateTextColor() OVERRIDE;
+ virtual void UpdateBackgroundColor() OVERRIDE;
+ virtual void UpdateReadOnly() OVERRIDE;
+ virtual void UpdateFont() OVERRIDE;
+ virtual void UpdateIsPassword() OVERRIDE;
+ virtual void UpdateEnabled() OVERRIDE;
+ virtual gfx::Insets CalculateInsets() OVERRIDE;
+ virtual void UpdateHorizontalMargins() OVERRIDE;
+ virtual void UpdateVerticalMargins() OVERRIDE;
+ virtual bool SetFocus() OVERRIDE;
+ virtual View* GetView() OVERRIDE;
+ virtual gfx::NativeView GetTestingHandle() const OVERRIDE;
+ virtual bool IsIMEComposing() const OVERRIDE;
+ virtual void GetSelectedRange(TextRange* range) const OVERRIDE;
+ virtual void SelectRange(const TextRange& range) OVERRIDE;
+ virtual size_t GetCursorPosition() const OVERRIDE;
+ virtual bool HandleKeyPressed(const views::KeyEvent& e) OVERRIDE;
+ virtual bool HandleKeyReleased(const views::KeyEvent& e) OVERRIDE;
+ virtual void HandleFocus() OVERRIDE;
+ virtual void HandleBlur() OVERRIDE;
// Overridden from ui::SimpleMenuModel::Delegate:
- virtual bool IsCommandIdChecked(int command_id) const;
- virtual bool IsCommandIdEnabled(int command_id) const;
- virtual bool GetAcceleratorForCommandId(int command_id,
- ui::Accelerator* accelerator);
- virtual void ExecuteCommand(int command_id);
+ virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
+ virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
+ virtual bool GetAcceleratorForCommandId(
+ int command_id,
+ ui::Accelerator* accelerator) OVERRIDE;
+ virtual void ExecuteCommand(int command_id) OVERRIDE;
// Update accessibility information.
void InitializeAccessibilityInfo();
diff --git a/views/controls/textfield/native_textfield_wrapper.h b/views/controls/textfield/native_textfield_wrapper.h
index efe24be..1e98564 100644
--- a/views/controls/textfield/native_textfield_wrapper.h
+++ b/views/controls/textfield/native_textfield_wrapper.h
@@ -113,10 +113,9 @@ class NativeTextfieldWrapper {
virtual bool HandleKeyReleased(const views::KeyEvent& e) = 0;
// Invoked when focus is being moved from or to the Textfield.
- // See also View::WillGainFocus/DidGainFocus/WillLoseFocus.
- virtual void HandleWillGainFocus() = 0;
- virtual void HandleDidGainFocus() = 0;
- virtual void HandleWillLoseFocus() = 0;
+ // See also View::OnFocus/OnBlur.
+ virtual void HandleFocus() = 0;
+ virtual void HandleBlur() = 0;
// Creates an appropriate NativeTextfieldWrapper for the platform.
static NativeTextfieldWrapper* CreateWrapper(Textfield* field);
diff --git a/views/controls/textfield/textfield.cc b/views/controls/textfield/textfield.cc
index 6a3c40d..2a72712 100644
--- a/views/controls/textfield/textfield.cc
+++ b/views/controls/textfield/textfield.cc
@@ -342,19 +342,22 @@ bool Textfield::OnKeyReleased(const views::KeyEvent& e) {
return native_wrapper_ && native_wrapper_->HandleKeyReleased(e);
}
-void Textfield::WillGainFocus() {
+void Textfield::OnFocus() {
if (native_wrapper_)
- native_wrapper_->HandleWillGainFocus();
-}
+ native_wrapper_->HandleFocus();
-void Textfield::DidGainFocus() {
- if (native_wrapper_)
- native_wrapper_->HandleDidGainFocus();
+ // Forward the focus to the wrapper if it exists.
+ if (!native_wrapper_ || !native_wrapper_->SetFocus()) {
+ // If there is no wrapper or the wrapper didn't take focus, call
+ // View::Focus to clear the native focus so that we still get
+ // keyboard messages.
+ View::OnFocus();
+ }
}
-void Textfield::WillLoseFocus() {
+void Textfield::OnBlur() {
if (native_wrapper_)
- native_wrapper_->HandleWillLoseFocus();
+ native_wrapper_->HandleBlur();
}
AccessibilityTypes::Role Textfield::GetAccessibleRole() {
@@ -382,16 +385,6 @@ void Textfield::SetEnabled(bool enabled) {
native_wrapper_->UpdateEnabled();
}
-void Textfield::Focus() {
- // Forward the focus to the wrapper if it exists.
- if (!native_wrapper_ || !native_wrapper_->SetFocus()) {
- // If there is no wrapper or the wrapper din't take focus, call
- // View::Focus to clear the native focus so that we still get
- // keyboard messages.
- View::Focus();
- }
-}
-
void Textfield::ViewHierarchyChanged(bool is_add, View* parent, View* child) {
if (is_add && !native_wrapper_ && GetWidget() && !initialized_) {
initialized_ = true;
diff --git a/views/controls/textfield/textfield.h b/views/controls/textfield/textfield.h
index 7b6b756..c8484d5 100644
--- a/views/controls/textfield/textfield.h
+++ b/views/controls/textfield/textfield.h
@@ -257,29 +257,26 @@ class Textfield : public View {
#endif
// Overridden from View:
- virtual void Layout();
- virtual gfx::Size GetPreferredSize();
- virtual bool IsFocusable() const;
- virtual void AboutToRequestFocusFromTabTraversal(bool reverse);
- virtual bool SkipDefaultKeyEventProcessing(const KeyEvent& e);
- virtual void SetEnabled(bool enabled);
- virtual void OnPaintBackground(gfx::Canvas* canvas);
- virtual void OnPaintFocusBorder(gfx::Canvas* canvas);
- virtual bool OnKeyPressed(const views::KeyEvent& e);
- virtual bool OnKeyReleased(const views::KeyEvent& e);
- virtual void WillGainFocus();
- virtual void DidGainFocus();
- virtual void WillLoseFocus();
-
- // Accessibility accessors, overridden from View:
+ virtual void Layout() OVERRIDE;
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
+ virtual bool IsFocusable() const OVERRIDE;
+ virtual void AboutToRequestFocusFromTabTraversal(bool reverse) OVERRIDE;
+ virtual bool SkipDefaultKeyEventProcessing(const KeyEvent& e) OVERRIDE;
+ virtual void SetEnabled(bool enabled) OVERRIDE;
+ virtual void OnPaintBackground(gfx::Canvas* canvas) OVERRIDE;
+ virtual void OnPaintFocusBorder(gfx::Canvas* canvas) OVERRIDE;
+ virtual bool OnKeyPressed(const views::KeyEvent& e) OVERRIDE;
+ virtual bool OnKeyReleased(const views::KeyEvent& e) OVERRIDE;
+ virtual void OnFocus() OVERRIDE;
+ virtual void OnBlur() OVERRIDE;
virtual AccessibilityTypes::Role GetAccessibleRole() OVERRIDE;
virtual AccessibilityTypes::State GetAccessibleState() OVERRIDE;
virtual string16 GetAccessibleValue() OVERRIDE;
protected:
- virtual void Focus();
- virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child);
- virtual std::string GetClassName() const;
+ virtual void ViewHierarchyChanged(bool is_add, View* parent,
+ View* child) OVERRIDE;
+ virtual std::string GetClassName() const OVERRIDE;
// The object that actually implements the native text field.
NativeTextfieldWrapper* native_wrapper_;
diff --git a/views/focus/focus_manager.cc b/views/focus/focus_manager.cc
index 13a03da..baaf2a0 100644
--- a/views/focus/focus_manager.cc
+++ b/views/focus/focus_manager.cc
@@ -297,39 +297,22 @@ View* FocusManager::GetNextFocusableView(View* original_starting_view,
void FocusManager::SetFocusedViewWithReason(
View* view, FocusChangeReason reason) {
- focus_change_reason_ = reason;
-
if (focused_view_ == view)
return;
- View* prev_focused_view = focused_view_;
- if (focused_view_)
- focused_view_->WillLoseFocus();
-
- if (view)
- view->WillGainFocus();
-
- // Notified listeners that the focus changed.
+ // Notified listeners that the focus will change.
FocusChangeListenerList::const_iterator iter;
for (iter = focus_change_listeners_.begin();
iter != focus_change_listeners_.end(); ++iter) {
- (*iter)->FocusWillChange(prev_focused_view, view);
+ (*iter)->FocusWillChange(focused_view_, view);
}
+ focus_change_reason_ = reason;
+ if (focused_view_)
+ focused_view_->Blur();
focused_view_ = view;
-
- if (prev_focused_view)
- prev_focused_view->SchedulePaint(); // Remove focus artifacts.
-
- if (view) {
- view->SchedulePaint();
- view->Focus();
- if (view == focused_view_) {
- // Only tell the view it is focused if it's still our focused view. It's
- // possible for Focus to remove/delete the view.
- view->DidGainFocus();
- }
- }
+ if (focused_view_)
+ focused_view_->Focus();
}
void FocusManager::ClearFocus() {
diff --git a/views/focus/focus_manager.h b/views/focus/focus_manager.h
index 6d41b6b..e58577a 100644
--- a/views/focus/focus_manager.h
+++ b/views/focus/focus_manager.h
@@ -100,6 +100,7 @@ class FocusTraversable {
// This interface should be implemented by classes that want to be notified when
// the focus is about to change. See the Add/RemoveFocusChangeListener methods.
+// No change to focus state has occurred yet when this function is called.
class FocusChangeListener {
public:
virtual void FocusWillChange(View* focused_before, View* focused_now) = 0;
diff --git a/views/focus/focus_manager_unittest.cc b/views/focus/focus_manager_unittest.cc
index 2199b9f..f016b4b 100644
--- a/views/focus/focus_manager_unittest.cc
+++ b/views/focus/focus_manager_unittest.cc
@@ -749,9 +749,8 @@ void FocusTraversalTest::InitContentView() {
////////////////////////////////////////////////////////////////////////////////
enum FocusTestEventType {
- WILL_GAIN_FOCUS = 0,
- DID_GAIN_FOCUS,
- WILL_LOSE_FOCUS
+ ON_FOCUS = 0,
+ ON_BLUR
};
struct FocusTestEvent {
@@ -772,16 +771,12 @@ class SimpleTestView : public View {
SetID(view_id);
}
- virtual void WillGainFocus() {
- event_list_->push_back(FocusTestEvent(WILL_GAIN_FOCUS, GetID()));
+ virtual void OnFocus() {
+ event_list_->push_back(FocusTestEvent(ON_FOCUS, GetID()));
}
- virtual void DidGainFocus() {
- event_list_->push_back(FocusTestEvent(DID_GAIN_FOCUS, GetID()));
- }
-
- virtual void WillLoseFocus() {
- event_list_->push_back(FocusTestEvent(WILL_LOSE_FOCUS, GetID()));
+ virtual void OnBlur() {
+ event_list_->push_back(FocusTestEvent(ON_BLUR, GetID()));
}
private:
@@ -801,26 +796,22 @@ TEST_F(FocusManagerTest, ViewFocusCallbacks) {
content_view_->AddChildView(view2);
view1->RequestFocus();
- ASSERT_EQ(2, static_cast<int>(event_list.size()));
- EXPECT_EQ(WILL_GAIN_FOCUS, event_list[0].type);
- EXPECT_EQ(kView1ID, event_list[0].view_id);
- EXPECT_EQ(DID_GAIN_FOCUS, event_list[1].type);
+ ASSERT_EQ(1, static_cast<int>(event_list.size()));
+ EXPECT_EQ(ON_FOCUS, event_list[0].type);
EXPECT_EQ(kView1ID, event_list[0].view_id);
event_list.clear();
view2->RequestFocus();
- ASSERT_EQ(3, static_cast<int>(event_list.size()));
- EXPECT_EQ(WILL_LOSE_FOCUS, event_list[0].type);
+ ASSERT_EQ(2, static_cast<int>(event_list.size()));
+ EXPECT_EQ(ON_BLUR, event_list[0].type);
EXPECT_EQ(kView1ID, event_list[0].view_id);
- EXPECT_EQ(WILL_GAIN_FOCUS, event_list[1].type);
+ EXPECT_EQ(ON_FOCUS, event_list[1].type);
EXPECT_EQ(kView2ID, event_list[1].view_id);
- EXPECT_EQ(DID_GAIN_FOCUS, event_list[2].type);
- EXPECT_EQ(kView2ID, event_list[2].view_id);
event_list.clear();
GetFocusManager()->ClearFocus();
ASSERT_EQ(1, static_cast<int>(event_list.size()));
- EXPECT_EQ(WILL_LOSE_FOCUS, event_list[0].type);
+ EXPECT_EQ(ON_BLUR, event_list[0].type);
EXPECT_EQ(kView2ID, event_list[0].view_id);
}
diff --git a/views/view.cc b/views/view.cc
index a19d662..d616fc7 100644
--- a/views/view.cc
+++ b/views/view.cc
@@ -857,15 +857,6 @@ void View::RequestFocus() {
focus_manager->SetFocusedView(this);
}
-void View::WillGainFocus() {
-}
-
-void View::DidGainFocus() {
-}
-
-void View::WillLoseFocus() {
-}
-
// Tooltips --------------------------------------------------------------------
bool View::GetTooltipText(const gfx::Point& p, std::wstring* tooltip) {
@@ -1076,17 +1067,34 @@ bool View::IsFocusable() const {
return focusable_ && IsEnabled() && IsVisible();
}
-void View::Focus() {
+void View::OnFocus() {
+ // TODO(beng): Investigate whether it's possible for us to move this to
+ // Focus().
// By default, we clear the native focus. This ensures that no visible native
// view as the focus and that we still receive keyboard inputs.
FocusManager* focus_manager = GetFocusManager();
if (focus_manager)
focus_manager->ClearNativeFocus();
+ // TODO(beng): Investigate whether it's possible for us to move this to
+ // Focus().
// Notify assistive technologies of the focus change.
NotifyAccessibilityEvent(AccessibilityTypes::EVENT_FOCUS);
}
+void View::OnBlur() {
+}
+
+void View::Focus() {
+ SchedulePaint();
+ OnFocus();
+}
+
+void View::Blur() {
+ SchedulePaint();
+ OnBlur();
+}
+
// Tooltips --------------------------------------------------------------------
void View::TooltipTextChanged() {
diff --git a/views/view.h b/views/view.h
index 5ebdd3f..1c5761c 100644
--- a/views/view.h
+++ b/views/view.h
@@ -750,15 +750,6 @@ class View : public AcceleratorTarget {
// focused view.
virtual void RequestFocus();
- // Invoked when a view is about to gain focus
- virtual void WillGainFocus();
-
- // Invoked when a view just gained focus.
- virtual void DidGainFocus();
-
- // Invoked when a view is about lose focus
- virtual void WillLoseFocus();
-
// Invoked when a view is about to be requested for focus due to the focus
// traversal. Reverse is this request was generated going backward
// (Shift-Tab).
@@ -1092,14 +1083,13 @@ class View : public AcceleratorTarget {
// The FocusManager and other places use IsFocusableInRootView.
virtual bool IsFocusable() const;
- // Sets the keyboard focus to this View. The correct way to set the focus is
- // to call RequestFocus() on the view. This method is called when the focus is
- // set and gives an opportunity to subclasses to perform any extra focus steps
- // (for example native component set the native focus on their native
- // component). The default behavior is to set the native focus on the root
- // Widget, which is what is appropriate for views that have no native window
- // associated with them (so the root view gets the keyboard messages).
- virtual void Focus();
+ // Override to be notified when focus has changed either to or from this View.
+ virtual void OnFocus();
+ virtual void OnBlur();
+
+ // Handle view focus/blur events for this view.
+ void Focus();
+ void Blur();
// Whether the view can be focused.
bool focusable_;