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

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

Issue 2306673003: Material Page Info (Views, 3/3): Update site settings section. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove redundant this->? Created 4 years, 2 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
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_row.h" 5 #include "chrome/browser/ui/views/website_settings/permission_selector_row.h"
6 6
7 #include "base/i18n/rtl.h" 7 #include "base/i18n/rtl.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/browser/ui/views/website_settings/website_settings_popup_view.h " 10 #include "chrome/browser/ui/views/website_settings/website_settings_popup_view.h "
11 #include "chrome/browser/ui/website_settings/permission_menu_model.h" 11 #include "chrome/browser/ui/website_settings/permission_menu_model.h"
12 #include "chrome/browser/ui/website_settings/website_settings_ui.h" 12 #include "chrome/browser/ui/website_settings/website_settings_ui.h"
13 #include "chrome/grit/generated_resources.h" 13 #include "chrome/grit/generated_resources.h"
14 #include "ui/accessibility/ax_view_state.h" 14 #include "ui/accessibility/ax_view_state.h"
15 #include "ui/base/l10n/l10n_util.h" 15 #include "ui/base/l10n/l10n_util.h"
msw 2016/10/08 00:21:57 nit: remove
16 #include "ui/base/material_design/material_design_controller.h" 16 #include "ui/base/material_design/material_design_controller.h"
17 #include "ui/base/models/combobox_model.h" 17 #include "ui/base/models/combobox_model.h"
18 #include "ui/gfx/image/image.h" 18 #include "ui/gfx/image/image.h"
19 #include "ui/views/controls/button/menu_button.h" 19 #include "ui/views/controls/button/menu_button.h"
20 #include "ui/views/controls/combobox/combobox.h" 20 #include "ui/views/controls/combobox/combobox.h"
21 #include "ui/views/controls/combobox/combobox_listener.h" 21 #include "ui/views/controls/combobox/combobox_listener.h"
22 #include "ui/views/controls/image_view.h" 22 #include "ui/views/controls/image_view.h"
23 #include "ui/views/controls/label.h" 23 #include "ui/views/controls/label.h"
24 #include "ui/views/controls/menu/menu_runner.h" 24 #include "ui/views/controls/menu/menu_runner.h"
25 #include "ui/views/layout/grid_layout.h" 25 #include "ui/views/layout/grid_layout.h"
26 #include "ui/views/view.h" 26 #include "ui/views/view.h"
27 #include "ui/views/widget/widget.h" 27 #include "ui/views/widget/widget.h"
28 28
29 namespace {
30 // Minimum distance between the label and its corresponding menu.
31 const int kMinSeparationBetweenLabelAndMenu = 16;
32 }
33
29 namespace internal { 34 namespace internal {
30 35
31 // The |PermissionMenuButton| provides a menu for selecting a setting a 36 // The |PermissionMenuButton| provides a menu for selecting a setting a
32 // permissions type. 37 // permissions type.
33 class PermissionMenuButton : public views::MenuButton, 38 class PermissionMenuButton : public views::MenuButton,
34 public views::MenuButtonListener { 39 public views::MenuButtonListener {
35 public: 40 public:
36 // Creates a new |PermissionMenuButton| with the passed |text|. The ownership 41 // Creates a new |PermissionMenuButton| with the passed |text|. The ownership
37 // of the |model| remains with the caller and is not transfered to the 42 // of the |model| remains with the caller and is not transfered to the
38 // |PermissionMenuButton|. If the |show_menu_marker| flag is true, then a 43 // |PermissionMenuButton|. If the |show_menu_marker| flag is true, then a
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 /////////////////////////////////////////////////////////////////////////////// 232 ///////////////////////////////////////////////////////////////////////////////
228 233
229 PermissionSelectorRow::PermissionSelectorRow( 234 PermissionSelectorRow::PermissionSelectorRow(
230 const GURL& url, 235 const GURL& url,
231 const WebsiteSettingsUI::PermissionInfo& permission) 236 const WebsiteSettingsUI::PermissionInfo& permission)
232 : icon_(NULL), menu_button_(NULL), combobox_(NULL) { 237 : icon_(NULL), menu_button_(NULL), combobox_(NULL) {
233 views::GridLayout* layout = new views::GridLayout(this); 238 views::GridLayout* layout = new views::GridLayout(this);
234 SetLayoutManager(layout); 239 SetLayoutManager(layout);
235 const int column_set_id = 0; 240 const int column_set_id = 0;
236 views::ColumnSet* column_set = layout->AddColumnSet(column_set_id); 241 views::ColumnSet* column_set = layout->AddColumnSet(column_set_id);
237 column_set->AddColumn(views::GridLayout::FILL, 242 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 0,
238 views::GridLayout::FILL, 243 views::GridLayout::FIXED, kPermissionIconColumnWidth,
239 1,
240 views::GridLayout::FIXED,
241 kPermissionIconColumnWidth,
242 0); 244 0);
243 column_set->AddPaddingColumn(0, kPermissionIconMarginLeft); 245 column_set->AddPaddingColumn(0, kPermissionIconMarginLeft);
244 column_set->AddColumn(views::GridLayout::FILL, 246 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 0,
245 views::GridLayout::FILL, 247 views::GridLayout::USE_PREF, 0, 0);
246 1, 248 column_set->AddPaddingColumn(1, kMinSeparationBetweenLabelAndMenu);
247 views::GridLayout::USE_PREF, 249 column_set->AddColumn(views::GridLayout::TRAILING, views::GridLayout::FILL, 0,
248 0, 250 views::GridLayout::USE_PREF, 0, 0);
249 0);
250 column_set->AddColumn(views::GridLayout::FILL,
251 views::GridLayout::FILL,
252 1,
253 views::GridLayout::USE_PREF,
254 0,
255 0);
256 251
257 layout->StartRow(1, column_set_id); 252 layout->StartRow(1, column_set_id);
258 // Create the permission icon. 253 // Create the permission icon.
259 icon_ = new views::ImageView(); 254 icon_ = new views::ImageView();
260 const gfx::Image& image = WebsiteSettingsUI::GetPermissionIcon(permission); 255 const gfx::Image& image = WebsiteSettingsUI::GetPermissionIcon(permission);
261 icon_->SetImage(image.ToImageSkia()); 256 icon_->SetImage(image.ToImageSkia());
262 layout->AddView(icon_, 257 layout->AddView(icon_,
263 1, 258 1,
264 1, 259 1,
265 views::GridLayout::CENTER, 260 views::GridLayout::CENTER,
266 views::GridLayout::CENTER); 261 views::GridLayout::CENTER);
267 // Create the label that displays the permission type. 262 // Create the label that displays the permission type.
268 views::Label* label = new views::Label(l10n_util::GetStringFUTF16( 263 views::Label* label = new views::Label(
269 IDS_WEBSITE_SETTINGS_PERMISSION_TYPE, 264 WebsiteSettingsUI::PermissionTypeToUIString(permission.type));
270 WebsiteSettingsUI::PermissionTypeToUIString(permission.type)));
271 layout->AddView(label, 265 layout->AddView(label,
272 1, 266 1,
273 1, 267 1,
274 views::GridLayout::LEADING, 268 views::GridLayout::LEADING,
275 views::GridLayout::CENTER); 269 views::GridLayout::CENTER);
276 // Create the menu model. 270 // Create the menu model.
277 menu_model_.reset(new PermissionMenuModel( 271 menu_model_.reset(new PermissionMenuModel(
278 url, 272 url,
279 permission, 273 permission,
280 base::Bind(&PermissionSelectorRow::PermissionChanged, 274 base::Bind(&PermissionSelectorRow::PermissionChanged,
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 const WebsiteSettingsUI::PermissionInfo& permission) { 355 const WebsiteSettingsUI::PermissionInfo& permission) {
362 // Change the permission icon to reflect the selected setting. 356 // Change the permission icon to reflect the selected setting.
363 const gfx::Image& image = WebsiteSettingsUI::GetPermissionIcon(permission); 357 const gfx::Image& image = WebsiteSettingsUI::GetPermissionIcon(permission);
364 icon_->SetImage(image.ToImageSkia()); 358 icon_->SetImage(image.ToImageSkia());
365 359
366 // Update the menu button text to reflect the new setting. 360 // Update the menu button text to reflect the new setting.
367 if (menu_button_) { 361 if (menu_button_) {
368 menu_button_->SetText(WebsiteSettingsUI::PermissionActionToUIString( 362 menu_button_->SetText(WebsiteSettingsUI::PermissionActionToUIString(
369 permission.type, permission.setting, permission.default_setting, 363 permission.type, permission.setting, permission.default_setting,
370 content_settings::SETTING_SOURCE_USER)); 364 content_settings::SETTING_SOURCE_USER));
371 menu_button_->SizeToPreferredSize(); 365 ChildPreferredSizeChanged(menu_button_);
msw 2016/10/08 00:21:57 Can this just continue calling |menu_button_->Size
lgarron 2016/10/08 03:50:04 Yes, it can! That does seem to work.
372 } else if (combobox_) { 366 } else if (combobox_) {
373 bool use_default = permission.setting == CONTENT_SETTING_DEFAULT; 367 bool use_default = permission.setting == CONTENT_SETTING_DEFAULT;
374 combobox_->UpdateSelectedIndex(use_default); 368 combobox_->UpdateSelectedIndex(use_default);
375 } 369 }
376 370
377 FOR_EACH_OBSERVER(PermissionSelectorRowObserver, 371 FOR_EACH_OBSERVER(PermissionSelectorRowObserver,
378 observer_list_, 372 observer_list_,
379 OnPermissionChanged(permission)); 373 OnPermissionChanged(permission));
380 } 374 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698