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

Side by Side Diff: chrome/browser/ui/views/website_settings/permission_selector_view.cc

Issue 10961048: [Views] Make the permissions menus on the Website Settings UI focusable by the TAB key and provuide… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/website_settings/permission_selector_view.h" 5 #include "chrome/browser/ui/views/website_settings/permission_selector_view.h"
6 6
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/ui/website_settings/website_settings_ui.h" 8 #include "chrome/browser/ui/website_settings/website_settings_ui.h"
9 #include "grit/generated_resources.h" 9 #include "grit/generated_resources.h"
10 #include "ui/base/accessibility/accessible_view_state.h"
10 #include "ui/base/l10n/l10n_util.h" 11 #include "ui/base/l10n/l10n_util.h"
11 #include "ui/base/models/simple_menu_model.h" 12 #include "ui/base/models/simple_menu_model.h"
12 #include "ui/gfx/image/image.h" 13 #include "ui/gfx/image/image.h"
13 #include "ui/views/controls/button/menu_button.h" 14 #include "ui/views/controls/button/menu_button.h"
14 #include "ui/views/controls/image_view.h" 15 #include "ui/views/controls/image_view.h"
15 #include "ui/views/controls/label.h" 16 #include "ui/views/controls/label.h"
16 #include "ui/views/controls/menu/menu_model_adapter.h" 17 #include "ui/views/controls/menu/menu_model_adapter.h"
17 #include "ui/views/controls/menu/menu_runner.h" 18 #include "ui/views/controls/menu/menu_runner.h"
18 #include "ui/views/layout/grid_layout.h" 19 #include "ui/views/layout/grid_layout.h"
19 #include "ui/views/view.h" 20 #include "ui/views/view.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 PermissionMenuModel* model, 97 PermissionMenuModel* model,
97 bool show_menu_marker); 98 bool show_menu_marker);
98 virtual ~PermissionMenuButton(); 99 virtual ~PermissionMenuButton();
99 100
100 // Overridden from views::MenuButton. 101 // Overridden from views::MenuButton.
101 virtual gfx::Size GetPreferredSize() OVERRIDE; 102 virtual gfx::Size GetPreferredSize() OVERRIDE;
102 103
103 // Overridden from views::TextButton. 104 // Overridden from views::TextButton.
104 virtual void SetText(const string16& text) OVERRIDE; 105 virtual void SetText(const string16& text) OVERRIDE;
105 106
107 // Overridden from views::View.
108 virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
109
106 private: 110 private:
107 // Overridden from views::MenuButtonListener. 111 // Overridden from views::MenuButtonListener.
108 virtual void OnMenuButtonClicked(View* source, 112 virtual void OnMenuButtonClicked(View* source,
109 const gfx::Point& point) OVERRIDE; 113 const gfx::Point& point) OVERRIDE;
110 114
111 PermissionMenuModel* menu_model_; // Owned by |PermissionSelectorView|. 115 PermissionMenuModel* menu_model_; // Owned by |PermissionSelectorView|.
112 scoped_ptr<views::MenuRunner> menu_runner_; 116 scoped_ptr<views::MenuRunner> menu_runner_;
113 117
114 DISALLOW_COPY_AND_ASSIGN(PermissionMenuButton); 118 DISALLOW_COPY_AND_ASSIGN(PermissionMenuButton);
115 }; 119 };
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 0); 217 0);
214 } 218 }
215 return prefsize; 219 return prefsize;
216 } 220 }
217 221
218 void PermissionMenuButton::SetText(const string16& text) { 222 void PermissionMenuButton::SetText(const string16& text) {
219 MenuButton::SetText(text); 223 MenuButton::SetText(text);
220 SizeToPreferredSize(); 224 SizeToPreferredSize();
221 } 225 }
222 226
227 void PermissionMenuButton::GetAccessibleState(ui::AccessibleViewState* state) {
228 MenuButton::GetAccessibleState(state);
229 state->value = text();
230 }
231
223 void PermissionMenuButton::OnMenuButtonClicked(View* source, 232 void PermissionMenuButton::OnMenuButtonClicked(View* source,
224 const gfx::Point& point) { 233 const gfx::Point& point) {
225 views::MenuModelAdapter menu_model_adapter(menu_model_); 234 views::MenuModelAdapter menu_model_adapter(menu_model_);
226 menu_runner_.reset(new views::MenuRunner(menu_model_adapter.CreateMenu())); 235 menu_runner_.reset(new views::MenuRunner(menu_model_adapter.CreateMenu()));
227 236
228 gfx::Point p(point); 237 gfx::Point p(point);
229 p.Offset(-source->width(), 0); 238 p.Offset(-source->width(), 0);
230 if (menu_runner_->RunMenuAt( 239 if (menu_runner_->RunMenuAt(
231 source->GetWidget()->GetTopLevelWidget(), 240 source->GetWidget()->GetTopLevelWidget(),
232 this, 241 this,
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 menu_button_model_.reset(new internal::PermissionMenuModel( 309 menu_button_model_.reset(new internal::PermissionMenuModel(
301 type, default_setting, current_setting, this)); 310 type, default_setting, current_setting, this));
302 bool button_enabled = source == content_settings::SETTING_SOURCE_USER; 311 bool button_enabled = source == content_settings::SETTING_SOURCE_USER;
303 menu_button_ = new internal::PermissionMenuButton( 312 menu_button_ = new internal::PermissionMenuButton(
304 WebsiteSettingsUI::PermissionActionToUIString(current_setting, 313 WebsiteSettingsUI::PermissionActionToUIString(current_setting,
305 default_setting, 314 default_setting,
306 source), 315 source),
307 menu_button_model_.get(), 316 menu_button_model_.get(),
308 button_enabled); 317 button_enabled);
309 menu_button_->SetEnabled(button_enabled); 318 menu_button_->SetEnabled(button_enabled);
319 menu_button_->set_focusable(true);
msw 2012/09/21 22:32:46 nit: s/true/button_enabled/ ?
markusheintz_ 2012/09/24 14:08:31 Done. It actually doesn't matter since the is focu
320 menu_button_->SetAccessibleName(
msw 2012/09/21 22:32:46 How are this AccessibleName and the AccessibleView
dmazzoni 2012/09/21 22:45:19 I think this is right. If this is a multiple-choic
321 WebsiteSettingsUI::PermissionTypeToUIString(type));
310 layout->AddView(menu_button_); 322 layout->AddView(menu_button_);
311 } 323 }
312 324
313 void PermissionSelectorView::AddObserver( 325 void PermissionSelectorView::AddObserver(
314 PermissionSelectorViewObserver* observer) { 326 PermissionSelectorViewObserver* observer) {
315 observer_list_.AddObserver(observer); 327 observer_list_.AddObserver(observer);
316 } 328 }
317 329
318 void PermissionSelectorView::SelectionChanged() { 330 void PermissionSelectorView::SelectionChanged() {
319 // Update the icon to reflect the new setting. 331 // Update the icon to reflect the new setting.
(...skipping 27 matching lines...) Expand all
347 SizeToPreferredSize(); 359 SizeToPreferredSize();
348 // FIXME: The parent is only a plain |View| that is used as a 360 // FIXME: The parent is only a plain |View| that is used as a
349 // container/box/panel. The SizeToPreferredSize method of the parent is 361 // container/box/panel. The SizeToPreferredSize method of the parent is
350 // called here directly in order not to implement a custom |View| class with 362 // called here directly in order not to implement a custom |View| class with
351 // its own implementation of the ChildPreferredSizeChanged method. 363 // its own implementation of the ChildPreferredSizeChanged method.
352 parent()->SizeToPreferredSize(); 364 parent()->SizeToPreferredSize();
353 } 365 }
354 366
355 PermissionSelectorView::~PermissionSelectorView() { 367 PermissionSelectorView::~PermissionSelectorView() {
356 } 368 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698