diff options
author | jcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-04 00:39:07 +0000 |
---|---|---|
committer | jcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-04 00:39:07 +0000 |
commit | bb837f9287259862c94155cc59cfc9e1bdfe1258 (patch) | |
tree | f23a7dabe56a4b4c9288ea022f65c090a4fc536b /views/controls/menu | |
parent | d19e63d5bd3a61fc46bae0c527731c79abb94957 (diff) | |
download | chromium_src-bb837f9287259862c94155cc59cfc9e1bdfe1258.zip chromium_src-bb837f9287259862c94155cc59cfc9e1bdfe1258.tar.gz chromium_src-bb837f9287259862c94155cc59cfc9e1bdfe1258.tar.bz2 |
Revert 76825 - Refactor Views accessibility.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6581010
TBR=dmazzoni@chromium.org
Review URL: http://codereview.chromium.org/6612035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76844 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/controls/menu')
-rw-r--r-- | views/controls/menu/menu_controller.cc | 6 | ||||
-rw-r--r-- | views/controls/menu/menu_item_view.cc | 18 | ||||
-rw-r--r-- | views/controls/menu/menu_item_view.h | 6 | ||||
-rw-r--r-- | views/controls/menu/menu_scroll_view_container.cc | 16 | ||||
-rw-r--r-- | views/controls/menu/menu_scroll_view_container.h | 14 | ||||
-rw-r--r-- | views/controls/menu/submenu_view.cc | 50 | ||||
-rw-r--r-- | views/controls/menu/submenu_view.h | 24 |
7 files changed, 60 insertions, 74 deletions
diff --git a/views/controls/menu/menu_controller.cc b/views/controls/menu/menu_controller.cc index 075b92e..906bd40 100644 --- a/views/controls/menu/menu_controller.cc +++ b/views/controls/menu/menu_controller.cc @@ -760,10 +760,8 @@ void MenuController::SetSelection(MenuItemView* menu_item, // Notify an accessibility focus event on all menu items except for the root. if (menu_item && (MenuDepth(menu_item) != 1 || - menu_item->GetType() != MenuItemView::SUBMENU)) { - menu_item->GetWidget()->NotifyAccessibilityEvent( - menu_item, ui::AccessibilityTypes::EVENT_FOCUS, true); - } + menu_item->GetType() != MenuItemView::SUBMENU)) + menu_item->NotifyAccessibilityEvent(AccessibilityTypes::EVENT_FOCUS); } // static diff --git a/views/controls/menu/menu_item_view.cc b/views/controls/menu/menu_item_view.cc index c729c2e..ed44c3a 100644 --- a/views/controls/menu/menu_item_view.cc +++ b/views/controls/menu/menu_item_view.cc @@ -6,7 +6,6 @@ #include "base/utf_string_conversions.h" #include "grit/app_strings.h" -#include "ui/base/accessibility/accessible_view_state.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/menu_model.h" #include "ui/gfx/canvas.h" @@ -117,23 +116,27 @@ bool MenuItemView::GetTooltipText(const gfx::Point& p, std::wstring* tooltip) { return false; } -void MenuItemView::GetAccessibleState(ui::AccessibleViewState* state) { - state->role = ui::AccessibilityTypes::ROLE_MENUITEM; - state->name = GetAccessibleNameForMenuItem(title_, GetAcceleratorText()); +AccessibilityTypes::Role MenuItemView::GetAccessibleRole() { + return AccessibilityTypes::ROLE_MENUITEM; +} + +AccessibilityTypes::State MenuItemView::GetAccessibleState() { + int state = 0; switch (GetType()) { case SUBMENU: - state->state |= ui::AccessibilityTypes::STATE_HASPOPUP; + state |= AccessibilityTypes::STATE_HASPOPUP; break; case CHECKBOX: case RADIO: - state->state |= GetDelegate()->IsItemChecked(GetCommand()) ? - ui::AccessibilityTypes::STATE_CHECKED : 0; + state |= GetDelegate()->IsItemChecked(GetCommand()) ? + AccessibilityTypes::STATE_CHECKED : 0; break; case NORMAL: case SEPARATOR: // No additional accessibility states currently for these menu states. break; } + return state; } // static @@ -317,6 +320,7 @@ SubmenuView* MenuItemView::CreateSubmenu() { void MenuItemView::SetTitle(const std::wstring& title) { title_ = WideToUTF16Hack(title); + SetAccessibleName(GetAccessibleNameForMenuItem(title_, GetAcceleratorText())); pref_size_.SetSize(0, 0); // Triggers preferred size recalculation. } diff --git a/views/controls/menu/menu_item_view.h b/views/controls/menu/menu_item_view.h index 89eab3c..5b5e09c 100644 --- a/views/controls/menu/menu_item_view.h +++ b/views/controls/menu/menu_item_view.h @@ -93,9 +93,9 @@ class MenuItemView : public View { virtual ~MenuItemView(); // Overridden from View: - virtual bool GetTooltipText(const gfx::Point& p, std::wstring* tooltip) - OVERRIDE; - virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; + virtual bool GetTooltipText(const gfx::Point& p, std::wstring* tooltip); + virtual AccessibilityTypes::Role GetAccessibleRole(); + virtual AccessibilityTypes::State GetAccessibleState(); // Returns the preferred height of menu items. This is only valid when the // menu is about to be shown. diff --git a/views/controls/menu/menu_scroll_view_container.cc b/views/controls/menu/menu_scroll_view_container.cc index 7a644b1..6089838 100644 --- a/views/controls/menu/menu_scroll_view_container.cc +++ b/views/controls/menu/menu_scroll_view_container.cc @@ -10,7 +10,6 @@ #include <Vssym32.h> #endif -#include "ui/base/accessibility/accessible_view_state.h" #include "ui/gfx/canvas_skia.h" #include "ui/gfx/color_utils.h" #include "views/border.h" @@ -163,8 +162,7 @@ class MenuScrollViewContainer::MenuScrollView : public View { // MenuScrollViewContainer ---------------------------------------------------- -MenuScrollViewContainer::MenuScrollViewContainer(SubmenuView* content_view) - : content_view_(content_view) { +MenuScrollViewContainer::MenuScrollViewContainer(SubmenuView* content_view) { scroll_up_button_ = new MenuScrollButton(content_view, true); scroll_down_button_ = new MenuScrollButton(content_view, false); AddChildView(scroll_up_button_); @@ -268,16 +266,14 @@ gfx::Size MenuScrollViewContainer::GetPreferredSize() { return prefsize; } -void MenuScrollViewContainer::GetAccessibleState( - ui::AccessibleViewState* state) { - // Get the name from the submenu view. - content_view_->GetAccessibleState(state); +AccessibilityTypes::Role MenuScrollViewContainer::GetAccessibleRole() { + return AccessibilityTypes::ROLE_MENUBAR; +} - // Now change the role. - state->role = ui::AccessibilityTypes::ROLE_MENUBAR; +AccessibilityTypes::State MenuScrollViewContainer::GetAccessibleState() { // Some AT (like NVDA) will not process focus events on menu item children // unless a parent claims to be focused. - state->state = ui::AccessibilityTypes::STATE_FOCUSED; + return AccessibilityTypes::STATE_FOCUSED; } } // namespace views diff --git a/views/controls/menu/menu_scroll_view_container.h b/views/controls/menu/menu_scroll_view_container.h index 48914af..5472091 100644 --- a/views/controls/menu/menu_scroll_view_container.h +++ b/views/controls/menu/menu_scroll_view_container.h @@ -24,11 +24,12 @@ class MenuScrollViewContainer : public View { View* scroll_up_button() const { return scroll_up_button_; } // View overrides. - virtual void OnPaintBackground(gfx::Canvas* canvas) OVERRIDE; - virtual void Layout() OVERRIDE; - virtual void OnBoundsChanged() OVERRIDE; - virtual gfx::Size GetPreferredSize() OVERRIDE; - virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; + virtual void OnPaintBackground(gfx::Canvas* canvas); + virtual void Layout(); + virtual void OnBoundsChanged(); + virtual gfx::Size GetPreferredSize(); + virtual AccessibilityTypes::Role GetAccessibleRole(); + virtual AccessibilityTypes::State GetAccessibleState(); private: class MenuScrollView; @@ -40,9 +41,6 @@ class MenuScrollViewContainer : public View { // The scroll view. MenuScrollView* scroll_view_; - // The content view. - SubmenuView* content_view_; - DISALLOW_COPY_AND_ASSIGN(MenuScrollViewContainer); }; diff --git a/views/controls/menu/submenu_view.cc b/views/controls/menu/submenu_view.cc index fb78762..7c1f69e 100644 --- a/views/controls/menu/submenu_view.cc +++ b/views/controls/menu/submenu_view.cc @@ -4,14 +4,12 @@ #include "views/controls/menu/submenu_view.h" -#include "ui/base/accessibility/accessible_view_state.h" #include "ui/gfx/canvas.h" #include "views/controls/menu/menu_config.h" #include "views/controls/menu/menu_controller.h" #include "views/controls/menu/menu_host.h" #include "views/controls/menu/menu_scroll_view_container.h" #include "views/widget/root_view.h" -#include "views/widget/widget.h" // Height of the drop indicator. This should be an even number. static const int kDropIndicatorHeight = 2; @@ -127,10 +125,8 @@ void SubmenuView::OnBoundsChanged() { SchedulePaint(); } -void SubmenuView::GetAccessibleState(ui::AccessibleViewState* state) { - // Inherit most of the state from the parent menu item, except the role. - GetMenuItem()->GetAccessibleState(state); - state->role = ui::AccessibilityTypes::ROLE_MENUPOPUP; +AccessibilityTypes::Role SubmenuView::GetAccessibleRole() { + return AccessibilityTypes::ROLE_MENUPOPUP; } void SubmenuView::PaintChildren(gfx::Canvas* canvas) { @@ -237,14 +233,10 @@ void SubmenuView::ShowAt(gfx::NativeWindow parent, if (host_) { host_->ShowMenuHost(do_capture); - GetScrollViewContainer()->GetWidget()->NotifyAccessibilityEvent( - GetScrollViewContainer(), - ui::AccessibilityTypes::EVENT_MENUSTART, - true); - GetWidget()->NotifyAccessibilityEvent( - this, - ui::AccessibilityTypes::EVENT_MENUPOPUPSTART, - true); + GetScrollViewContainer()->NotifyAccessibilityEvent( + AccessibilityTypes::EVENT_MENUSTART); + + NotifyAccessibilityEvent(AccessibilityTypes::EVENT_MENUPOPUPSTART); return; } @@ -255,14 +247,10 @@ void SubmenuView::ShowAt(gfx::NativeWindow parent, ScrollRectToVisible(gfx::Rect(gfx::Point(), gfx::Size(1, 1))); host_->Init(parent, bounds, scroll_view_container_, do_capture); - GetScrollViewContainer()->GetWidget()->NotifyAccessibilityEvent( - GetScrollViewContainer(), - ui::AccessibilityTypes::EVENT_MENUSTART, - true); - GetWidget()->NotifyAccessibilityEvent( - this, - ui::AccessibilityTypes::EVENT_MENUPOPUPSTART, - true); + GetScrollViewContainer()->NotifyAccessibilityEvent( + AccessibilityTypes::EVENT_MENUSTART); + + NotifyAccessibilityEvent(AccessibilityTypes::EVENT_MENUPOPUPSTART); } void SubmenuView::Reposition(const gfx::Rect& bounds) { @@ -272,14 +260,10 @@ void SubmenuView::Reposition(const gfx::Rect& bounds) { void SubmenuView::Close() { if (host_) { - GetWidget()->NotifyAccessibilityEvent( - this, - ui::AccessibilityTypes::EVENT_MENUPOPUPEND, - true); - GetScrollViewContainer()->GetWidget()->NotifyAccessibilityEvent( - GetScrollViewContainer(), - ui::AccessibilityTypes::EVENT_MENUEND, - true); + NotifyAccessibilityEvent(AccessibilityTypes::EVENT_MENUPOPUPEND); + + GetScrollViewContainer()->NotifyAccessibilityEvent( + AccessibilityTypes::EVENT_MENUEND); host_->DestroyMenuHost(); host_ = NULL; @@ -324,6 +308,12 @@ MenuScrollViewContainer* SubmenuView::GetScrollViewContainer() { scroll_view_container_ = new MenuScrollViewContainer(this); // Otherwise MenuHost would delete us. scroll_view_container_->set_parent_owned(false); + + // Use the parent menu item accessible name for the menu view. + string16 accessible_name; + GetMenuItem()->GetAccessibleName(&accessible_name); + scroll_view_container_->SetAccessibleName(accessible_name); + SetAccessibleName(accessible_name); } return scroll_view_container_; } diff --git a/views/controls/menu/submenu_view.h b/views/controls/menu/submenu_view.h index c16c081..cbe2674 100644 --- a/views/controls/menu/submenu_view.h +++ b/views/controls/menu/submenu_view.h @@ -50,15 +50,15 @@ class SubmenuView : public View { // Positions and sizes the child views. This tiles the views vertically, // giving each child the available width. - virtual void Layout() OVERRIDE; - virtual gfx::Size GetPreferredSize() OVERRIDE; + virtual void Layout(); + virtual gfx::Size GetPreferredSize(); // View method. Overridden to schedule a paint. We do this so that when // scrolling occurs, everything is repainted correctly. - virtual void OnBoundsChanged() OVERRIDE; + virtual void OnBoundsChanged(); // Override from View. - virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; + virtual AccessibilityTypes::Role GetAccessibleRole(); // Painting. void PaintChildren(gfx::Canvas* canvas); @@ -66,16 +66,16 @@ class SubmenuView : public View { // Drag and drop methods. These are forwarded to the MenuController. virtual bool GetDropFormats( int* formats, - std::set<OSExchangeData::CustomFormat>* custom_formats) OVERRIDE; - virtual bool AreDropTypesRequired() OVERRIDE; - virtual bool CanDrop(const OSExchangeData& data) OVERRIDE; - virtual void OnDragEntered(const DropTargetEvent& event) OVERRIDE; - virtual int OnDragUpdated(const DropTargetEvent& event) OVERRIDE; - virtual void OnDragExited() OVERRIDE; - virtual int OnPerformDrop(const DropTargetEvent& event) OVERRIDE; + std::set<OSExchangeData::CustomFormat>* custom_formats); + virtual bool AreDropTypesRequired(); + virtual bool CanDrop(const OSExchangeData& data); + virtual void OnDragEntered(const DropTargetEvent& event); + virtual int OnDragUpdated(const DropTargetEvent& event); + virtual void OnDragExited(); + virtual int OnPerformDrop(const DropTargetEvent& event); // Scrolls on menu item boundaries. - virtual bool OnMouseWheel(const MouseWheelEvent& e) OVERRIDE; + virtual bool OnMouseWheel(const MouseWheelEvent& e); // Returns true if the menu is showing. bool IsShowing(); |