summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos
diff options
context:
space:
mode:
authordmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-18 13:53:37 +0000
committerdmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-18 13:53:37 +0000
commit83548a4b7d23ca252944fa1dabfbe85bf5742157 (patch)
tree1c76116c200885db472e61b0778a8e22e0ca052c /chrome/browser/chromeos
parent7869f47d58149dc27a2e42de61d32f459c04d241 (diff)
downloadchromium_src-83548a4b7d23ca252944fa1dabfbe85bf5742157.zip
chromium_src-83548a4b7d23ca252944fa1dabfbe85bf5742157.tar.gz
chromium_src-83548a4b7d23ca252944fa1dabfbe85bf5742157.tar.bz2
Improve toolbar keyboard accessibility.
Design doc: https://docs.google.com/a/google.com/Doc?docid=0ATICCjR-gNReY2djdjkyNnNfNzl4ZnpiODQ2Mg&hl=en BUG=40745 BUG=36728 BUG=36222 TEST=New test added to focus_manager_unittest.cc Review URL: http://codereview.chromium.org/2737010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50234 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos')
-rw-r--r--chrome/browser/chromeos/frame/browser_view.cc14
-rw-r--r--chrome/browser/chromeos/frame/browser_view.h8
-rw-r--r--chrome/browser/chromeos/status/status_area_view.h3
3 files changed, 24 insertions, 1 deletions
diff --git a/chrome/browser/chromeos/frame/browser_view.cc b/chrome/browser/chromeos/frame/browser_view.cc
index c03141a..124ecca 100644
--- a/chrome/browser/chromeos/frame/browser_view.cc
+++ b/chrome/browser/chromeos/frame/browser_view.cc
@@ -490,6 +490,11 @@ void BrowserView::SetFocusToLocationBar(bool select_all) {
::BrowserView::SetFocusToLocationBar(select_all);
}
+void BrowserView::FocusChromeOSStatus() {
+ SaveFocusedView();
+ status_area_->SetToolbarFocus(last_focused_view_storage_id(), NULL);
+}
+
void BrowserView::ToggleCompactNavigationBar() {
UIStyle new_style = static_cast<UIStyle>((ui_style_ + 1) % 2);
if (new_style != StandardStyle && UseVerticalTabs())
@@ -595,6 +600,15 @@ void BrowserView::ShowCompactLocationBarUnderSelectedTab(bool select_all) {
}
////////////////////////////////////////////////////////////////////////////////
+// BrowserView protected:
+
+void BrowserView::GetAccessibleToolbars(
+ std::vector<AccessibleToolbarView*>* toolbars) {
+ ::BrowserView::GetAccessibleToolbars(toolbars);
+ toolbars->push_back(status_area_);
+}
+
+////////////////////////////////////////////////////////////////////////////////
// BrowserView private:
void BrowserView::InitSystemMenu() {
diff --git a/chrome/browser/chromeos/frame/browser_view.h b/chrome/browser/chromeos/frame/browser_view.h
index 2bdb029..8a53c97 100644
--- a/chrome/browser/chromeos/frame/browser_view.h
+++ b/chrome/browser/chromeos/frame/browser_view.h
@@ -5,9 +5,12 @@
#ifndef CHROME_BROWSER_CHROMEOS_FRAME_BROWSER_VIEW_H_
#define CHROME_BROWSER_CHROMEOS_FRAME_BROWSER_VIEW_H_
+#include <vector>
+
#include "chrome/browser/chromeos/status/status_area_host.h"
#include "chrome/browser/views/frame/browser_view.h"
+class AccessibleToolbarView;
class TabStripModel;
namespace menus {
@@ -59,6 +62,7 @@ class BrowserView : public ::BrowserView,
virtual void Show();
virtual bool IsToolbarVisible() const;
virtual void SetFocusToLocationBar(bool select_all);
+ virtual void FocusChromeOSStatus();
virtual void ToggleCompactNavigationBar();
virtual views::LayoutManager* CreateLayoutManager() const;
virtual void InitTabStrip(TabStripModel* tab_strip_model);
@@ -88,6 +92,10 @@ class BrowserView : public ::BrowserView,
return ui_style_ == CompactStyle;
}
+ protected:
+ virtual void GetAccessibleToolbars(
+ std::vector<AccessibleToolbarView*>* toolbars);
+
private:
friend class CompactLocationBarHostTest;
diff --git a/chrome/browser/chromeos/status/status_area_view.h b/chrome/browser/chromeos/status/status_area_view.h
index c760779..076ed34 100644
--- a/chrome/browser/chromeos/status/status_area_view.h
+++ b/chrome/browser/chromeos/status/status_area_view.h
@@ -6,6 +6,7 @@
#define CHROME_BROWSER_CHROMEOS_STATUS_STATUS_AREA_VIEW_H_
#include "base/basictypes.h"
+#include "chrome/browser/views/accessible_toolbar_view.h"
#include "views/view.h"
namespace chromeos {
@@ -19,7 +20,7 @@ class StatusAreaHost;
// This class is used to wrap the small informative widgets in the upper-right
// of the window title bar. It is used on ChromeOS only.
-class StatusAreaView : public views::View {
+class StatusAreaView : public AccessibleToolbarView {
public:
enum OpenTabsMode {
OPEN_TABS_ON_LEFT = 1,