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

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

Issue 2069733002: MD - Use real comboboxes in website settings popup. Hide borders (but (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add comment Created 4 years, 6 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_view.h" 5 #include "chrome/browser/ui/views/website_settings/permission_selector_view.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"
16 #include "ui/base/material_design/material_design_controller.h"
16 #include "ui/base/models/combobox_model.h" 17 #include "ui/base/models/combobox_model.h"
17 #include "ui/gfx/image/image.h" 18 #include "ui/gfx/image/image.h"
18 #include "ui/views/controls/button/menu_button.h" 19 #include "ui/views/controls/button/menu_button.h"
19 #include "ui/views/controls/combobox/combobox.h" 20 #include "ui/views/controls/combobox/combobox.h"
20 #include "ui/views/controls/combobox/combobox_listener.h" 21 #include "ui/views/controls/combobox/combobox_listener.h"
21 #include "ui/views/controls/image_view.h" 22 #include "ui/views/controls/image_view.h"
22 #include "ui/views/controls/label.h" 23 #include "ui/views/controls/label.h"
23 #include "ui/views/controls/menu/menu_runner.h" 24 #include "ui/views/controls/menu/menu_runner.h"
24 #include "ui/views/layout/grid_layout.h" 25 #include "ui/views/layout/grid_layout.h"
25 #include "ui/views/view.h" 26 #include "ui/views/view.h"
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 public: 174 public:
174 PermissionCombobox(const base::string16& text, 175 PermissionCombobox(const base::string16& text,
175 ComboboxModelAdapter* model, 176 ComboboxModelAdapter* model,
176 bool enabled, 177 bool enabled,
177 bool use_default); 178 bool use_default);
178 ~PermissionCombobox() override; 179 ~PermissionCombobox() override;
179 180
180 void UpdateSelectedIndex(bool use_default); 181 void UpdateSelectedIndex(bool use_default);
181 182
182 private: 183 private:
184 // views::Combobox:
185 void OnPaintBorder(gfx::Canvas* canvas) override;
186
183 // views::ComboboxListener: 187 // views::ComboboxListener:
184 void OnPerformAction(Combobox* combobox) override; 188 void OnPerformAction(Combobox* combobox) override;
185 189
186 ComboboxModelAdapter* model_; 190 ComboboxModelAdapter* model_;
187 }; 191 };
188 192
189 PermissionCombobox::PermissionCombobox(const base::string16& text, 193 PermissionCombobox::PermissionCombobox(const base::string16& text,
190 ComboboxModelAdapter* model, 194 ComboboxModelAdapter* model,
191 bool enabled, 195 bool enabled,
192 bool use_default) 196 bool use_default)
193 : views::Combobox(model), model_(model) { 197 : views::Combobox(model), model_(model) {
194 set_listener(this); 198 set_listener(this);
195 SetEnabled(enabled); 199 SetEnabled(enabled);
196 UpdateSelectedIndex(use_default); 200 UpdateSelectedIndex(use_default);
201 if (ui::MaterialDesignController::IsSecondaryUiMaterial()) {
202 set_size_to_largest_label(false);
203 ModelChanged();
204 }
197 } 205 }
198 206
199 PermissionCombobox::~PermissionCombobox() {} 207 PermissionCombobox::~PermissionCombobox() {}
200 208
201 void PermissionCombobox::UpdateSelectedIndex(bool use_default) { 209 void PermissionCombobox::UpdateSelectedIndex(bool use_default) {
202 int index = model_->GetCheckedIndex(); 210 int index = model_->GetCheckedIndex();
203 if (use_default && index == -1) 211 if (use_default && index == -1)
204 index = 0; 212 index = 0;
205 SetSelectedIndex(index); 213 SetSelectedIndex(index);
206 } 214 }
207 215
216 void PermissionCombobox::OnPaintBorder(gfx::Canvas* canvas) {
217 // No border except a focus indicator for MD mode.
218 if (ui::MaterialDesignController::IsSecondaryUiMaterial() && !HasFocus())
219 return;
220 Combobox::OnPaintBorder(canvas);
221 }
222
208 void PermissionCombobox::OnPerformAction(Combobox* combobox) { 223 void PermissionCombobox::OnPerformAction(Combobox* combobox) {
209 model_->OnPerformAction(combobox->selected_index()); 224 model_->OnPerformAction(combobox->selected_index());
210 } 225 }
211 226
212 } // namespace internal 227 } // namespace internal
213 228
214 /////////////////////////////////////////////////////////////////////////////// 229 ///////////////////////////////////////////////////////////////////////////////
215 // PermissionSelectorView 230 // PermissionSelectorView
216 /////////////////////////////////////////////////////////////////////////////// 231 ///////////////////////////////////////////////////////////////////////////////
217 232
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 1, 276 1,
262 1, 277 1,
263 views::GridLayout::LEADING, 278 views::GridLayout::LEADING,
264 views::GridLayout::CENTER); 279 views::GridLayout::CENTER);
265 // Create the menu model. 280 // Create the menu model.
266 menu_model_.reset(new PermissionMenuModel( 281 menu_model_.reset(new PermissionMenuModel(
267 url, 282 url,
268 permission, 283 permission,
269 base::Bind(&PermissionSelectorView::PermissionChanged, 284 base::Bind(&PermissionSelectorView::PermissionChanged,
270 base::Unretained(this)))); 285 base::Unretained(this))));
286
271 // Create the permission menu button. 287 // Create the permission menu button.
272 #if defined(OS_MACOSX) 288 #if defined(OS_MACOSX)
273 InitializeComboboxView(layout, permission); 289 bool use_real_combobox = true;
274 #else 290 #else
275 InitializeMenuButtonView(layout, permission); 291 bool use_real_combobox =
292 ui::MaterialDesignController::IsSecondaryUiMaterial();
276 #endif 293 #endif
294 if (use_real_combobox)
295 InitializeComboboxView(layout, permission);
296 else
297 InitializeMenuButtonView(layout, permission);
277 } 298 }
278 299
279 void PermissionSelectorView::AddObserver( 300 void PermissionSelectorView::AddObserver(
280 PermissionSelectorViewObserver* observer) { 301 PermissionSelectorViewObserver* observer) {
281 observer_list_.AddObserver(observer); 302 observer_list_.AddObserver(observer);
282 } 303 }
283 304
284 void PermissionSelectorView::ChildPreferredSizeChanged(View* child) { 305 void PermissionSelectorView::ChildPreferredSizeChanged(View* child) {
285 SizeToPreferredSize(); 306 SizeToPreferredSize();
286 // FIXME: The parent is only a plain |View| that is used as a 307 // FIXME: The parent is only a plain |View| that is used as a
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 menu_button_->SizeToPreferredSize(); 375 menu_button_->SizeToPreferredSize();
355 } else if (combobox_) { 376 } else if (combobox_) {
356 bool use_default = permission.setting == CONTENT_SETTING_DEFAULT; 377 bool use_default = permission.setting == CONTENT_SETTING_DEFAULT;
357 combobox_->UpdateSelectedIndex(use_default); 378 combobox_->UpdateSelectedIndex(use_default);
358 } 379 }
359 380
360 FOR_EACH_OBSERVER(PermissionSelectorViewObserver, 381 FOR_EACH_OBSERVER(PermissionSelectorViewObserver,
361 observer_list_, 382 observer_list_,
362 OnPermissionChanged(permission)); 383 OnPermissionChanged(permission));
363 } 384 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698