summaryrefslogtreecommitdiffstats
path: root/views/controls/menu
diff options
context:
space:
mode:
authorjcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-04 00:39:07 +0000
committerjcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-04 00:39:07 +0000
commitbb837f9287259862c94155cc59cfc9e1bdfe1258 (patch)
treef23a7dabe56a4b4c9288ea022f65c090a4fc536b /views/controls/menu
parentd19e63d5bd3a61fc46bae0c527731c79abb94957 (diff)
downloadchromium_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.cc6
-rw-r--r--views/controls/menu/menu_item_view.cc18
-rw-r--r--views/controls/menu/menu_item_view.h6
-rw-r--r--views/controls/menu/menu_scroll_view_container.cc16
-rw-r--r--views/controls/menu/menu_scroll_view_container.h14
-rw-r--r--views/controls/menu/submenu_view.cc50
-rw-r--r--views/controls/menu/submenu_view.h24
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();