| OLD | NEW |
| 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/non_accessible_image_view.h" | 10 #include "chrome/browser/ui/views/website_settings/non_accessible_image_view.h" |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 base::string16 ComboboxModelAdapter::GetItemAt(int index) { | 166 base::string16 ComboboxModelAdapter::GetItemAt(int index) { |
| 167 return model_->GetLabelAt(index); | 167 return model_->GetLabelAt(index); |
| 168 } | 168 } |
| 169 | 169 |
| 170 // The |PermissionCombobox| provides a combobox for selecting a permission type. | 170 // The |PermissionCombobox| provides a combobox for selecting a permission type. |
| 171 // This is only used on platforms where the permission dialog uses a combobox | 171 // This is only used on platforms where the permission dialog uses a combobox |
| 172 // instead of a MenuButton (currently, Mac). | 172 // instead of a MenuButton (currently, Mac). |
| 173 class PermissionCombobox : public views::Combobox, | 173 class PermissionCombobox : public views::Combobox, |
| 174 public views::ComboboxListener { | 174 public views::ComboboxListener { |
| 175 public: | 175 public: |
| 176 PermissionCombobox(const base::string16& text, | 176 PermissionCombobox(ComboboxModelAdapter* model, |
| 177 ComboboxModelAdapter* model, | |
| 178 bool enabled, | 177 bool enabled, |
| 179 bool use_default); | 178 bool use_default); |
| 180 ~PermissionCombobox() override; | 179 ~PermissionCombobox() override; |
| 181 | 180 |
| 182 void UpdateSelectedIndex(bool use_default); | 181 void UpdateSelectedIndex(bool use_default); |
| 183 | 182 |
| 184 private: | 183 private: |
| 185 // views::Combobox: | 184 // views::Combobox: |
| 186 void OnPaintBorder(gfx::Canvas* canvas) override; | 185 void OnPaintBorder(gfx::Canvas* canvas) override; |
| 187 | 186 |
| 188 // views::ComboboxListener: | 187 // views::ComboboxListener: |
| 189 void OnPerformAction(Combobox* combobox) override; | 188 void OnPerformAction(Combobox* combobox) override; |
| 190 | 189 |
| 191 ComboboxModelAdapter* model_; | 190 ComboboxModelAdapter* model_; |
| 192 }; | 191 }; |
| 193 | 192 |
| 194 PermissionCombobox::PermissionCombobox(const base::string16& text, | 193 PermissionCombobox::PermissionCombobox(ComboboxModelAdapter* model, |
| 195 ComboboxModelAdapter* model, | |
| 196 bool enabled, | 194 bool enabled, |
| 197 bool use_default) | 195 bool use_default) |
| 198 : views::Combobox(model), model_(model) { | 196 : views::Combobox(model), model_(model) { |
| 199 set_listener(this); | 197 set_listener(this); |
| 200 SetEnabled(enabled); | 198 SetEnabled(enabled); |
| 201 UpdateSelectedIndex(use_default); | 199 UpdateSelectedIndex(use_default); |
| 202 if (ui::MaterialDesignController::IsSecondaryUiMaterial()) { | 200 if (ui::MaterialDesignController::IsSecondaryUiMaterial()) { |
| 203 set_size_to_largest_label(false); | 201 set_size_to_largest_label(false); |
| 204 ModelChanged(); | 202 ModelChanged(); |
| 205 } | 203 } |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 328 } | 326 } |
| 329 | 327 |
| 330 void PermissionSelectorRow::InitializeComboboxView( | 328 void PermissionSelectorRow::InitializeComboboxView( |
| 331 views::GridLayout* layout, | 329 views::GridLayout* layout, |
| 332 const WebsiteSettingsUI::PermissionInfo& permission) { | 330 const WebsiteSettingsUI::PermissionInfo& permission) { |
| 333 bool button_enabled = | 331 bool button_enabled = |
| 334 permission.source == content_settings::SETTING_SOURCE_USER; | 332 permission.source == content_settings::SETTING_SOURCE_USER; |
| 335 combobox_model_adapter_.reset( | 333 combobox_model_adapter_.reset( |
| 336 new internal::ComboboxModelAdapter(menu_model_.get())); | 334 new internal::ComboboxModelAdapter(menu_model_.get())); |
| 337 combobox_ = new internal::PermissionCombobox( | 335 combobox_ = new internal::PermissionCombobox( |
| 338 WebsiteSettingsUI::PermissionActionToUIString( | |
| 339 profile_, permission.type, permission.setting, | |
| 340 permission.default_setting, permission.source), | |
| 341 combobox_model_adapter_.get(), button_enabled, true); | 336 combobox_model_adapter_.get(), button_enabled, true); |
| 342 combobox_->SetEnabled(button_enabled); | 337 combobox_->SetEnabled(button_enabled); |
| 343 combobox_->SetAccessibleName( | 338 combobox_->SetAccessibleName( |
| 344 WebsiteSettingsUI::PermissionTypeToUIString(permission.type)); | 339 WebsiteSettingsUI::PermissionTypeToUIString(permission.type)); |
| 345 layout->AddView(combobox_); | 340 layout->AddView(combobox_); |
| 346 } | 341 } |
| 347 | 342 |
| 348 void PermissionSelectorRow::PermissionChanged( | 343 void PermissionSelectorRow::PermissionChanged( |
| 349 const WebsiteSettingsUI::PermissionInfo& permission) { | 344 const WebsiteSettingsUI::PermissionInfo& permission) { |
| 350 // Change the permission icon to reflect the selected setting. | 345 // Change the permission icon to reflect the selected setting. |
| 351 const gfx::Image& image = WebsiteSettingsUI::GetPermissionIcon(permission); | 346 const gfx::Image& image = WebsiteSettingsUI::GetPermissionIcon(permission); |
| 352 icon_->SetImage(image.ToImageSkia()); | 347 icon_->SetImage(image.ToImageSkia()); |
| 353 | 348 |
| 354 // Update the menu button text to reflect the new setting. | 349 // Update the menu button text to reflect the new setting. |
| 355 if (menu_button_) { | 350 if (menu_button_) { |
| 356 menu_button_->SetText(WebsiteSettingsUI::PermissionActionToUIString( | 351 menu_button_->SetText(WebsiteSettingsUI::PermissionActionToUIString( |
| 357 profile_, permission.type, permission.setting, | 352 profile_, permission.type, permission.setting, |
| 358 permission.default_setting, content_settings::SETTING_SOURCE_USER)); | 353 permission.default_setting, content_settings::SETTING_SOURCE_USER)); |
| 359 menu_button_->SizeToPreferredSize(); | 354 menu_button_->SizeToPreferredSize(); |
| 360 } else if (combobox_) { | 355 } else if (combobox_) { |
| 361 bool use_default = permission.setting == CONTENT_SETTING_DEFAULT; | 356 bool use_default = permission.setting == CONTENT_SETTING_DEFAULT; |
| 362 combobox_->UpdateSelectedIndex(use_default); | 357 combobox_->UpdateSelectedIndex(use_default); |
| 363 } | 358 } |
| 364 | 359 |
| 365 for (PermissionSelectorRowObserver& observer : observer_list_) | 360 for (PermissionSelectorRowObserver& observer : observer_list_) |
| 366 observer.OnPermissionChanged(permission); | 361 observer.OnPermissionChanged(permission); |
| 367 } | 362 } |
| OLD | NEW |