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

Side by Side Diff: chrome/browser/ui/views/content_setting_bubble_contents.cc

Issue 2785683003: views: implement width snapping for DialogDelegateViews (Closed)
Patch Set: Created 3 years, 8 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/content_setting_bubble_contents.h" 5 #include "chrome/browser/ui/views/content_setting_bubble_contents.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 set_anchor_view_insets(gfx::Insets( 177 set_anchor_view_insets(gfx::Insets(
178 GetLayoutConstant(LOCATION_BAR_BUBBLE_ANCHOR_VERTICAL_INSET), 0)); 178 GetLayoutConstant(LOCATION_BAR_BUBBLE_ANCHOR_VERTICAL_INSET), 0));
179 } 179 }
180 180
181 ContentSettingBubbleContents::~ContentSettingBubbleContents() { 181 ContentSettingBubbleContents::~ContentSettingBubbleContents() {
182 // Must remove the children here so the comboboxes get destroyed before 182 // Must remove the children here so the comboboxes get destroyed before
183 // their associated models. 183 // their associated models.
184 RemoveAllChildViews(true); 184 RemoveAllChildViews(true);
185 } 185 }
186 186
187 gfx::Size ContentSettingBubbleContents::GetPreferredSize() const { 187 gfx::Size ContentSettingBubbleContents::GetUnsnappedPreferredSize() const {
188 gfx::Size preferred_size(views::View::GetPreferredSize()); 188 gfx::Size preferred_size(views::View::GetPreferredSize());
189 int preferred_width = LayoutDelegate::Get()->GetDialogPreferredWidth( 189 int preferred_width =
190 LayoutDelegate::DialogWidth::SMALL); 190 (!content_setting_bubble_model_->bubble_content().domain_lists.empty() &&
191 if (!preferred_width) 191 (kMinMultiLineContentsWidth > preferred_size.width()))
192 preferred_width = (!content_setting_bubble_model_->bubble_content() 192 ? kMinMultiLineContentsWidth
193 .domain_lists.empty() && 193 : preferred_size.width();
194 (kMinMultiLineContentsWidth > preferred_size.width()))
195 ? kMinMultiLineContentsWidth
196 : preferred_size.width();
197 else
198 preferred_width -= margins().width();
199 if (content_setting_bubble_model_->AsSubresourceFilterBubbleModel()) { 194 if (content_setting_bubble_model_->AsSubresourceFilterBubbleModel()) {
200 preferred_size.set_width(std::min(preferred_width, 195 preferred_size.set_width(std::min(preferred_width,
201 kMaxDefaultContentsWidth)); 196 kMaxDefaultContentsWidth));
202 } else { 197 } else {
203 preferred_size.set_width(std::min(preferred_width, kMaxContentsWidth)); 198 preferred_size.set_width(std::min(preferred_width, kMaxContentsWidth));
204 } 199 }
Peter Kasting 2017/03/30 00:35:34 Ugh. This is all a mess. Can you add a TODO here
205 return preferred_size; 200 return preferred_size;
206 } 201 }
207 202
208 void ContentSettingBubbleContents::Init() { 203 void ContentSettingBubbleContents::Init() {
209 using views::GridLayout; 204 using views::GridLayout;
210 205
211 GridLayout* layout = new views::GridLayout(this); 206 GridLayout* layout = new views::GridLayout(this);
212 SetLayoutManager(layout); 207 SetLayoutManager(layout);
213 const LayoutDelegate* layout_delegate = LayoutDelegate::Get(); 208 const LayoutDelegate* layout_delegate = LayoutDelegate::Get();
214 const int related_control_horizontal_spacing = layout_delegate->GetMetric( 209 const int related_control_horizontal_spacing = layout_delegate->GetMetric(
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 DCHECK(i != list_item_links_.end()); 502 DCHECK(i != list_item_links_.end());
508 content_setting_bubble_model_->OnListItemClicked(i->second); 503 content_setting_bubble_model_->OnListItemClicked(i->second);
509 } 504 }
510 505
511 void ContentSettingBubbleContents::OnPerformAction(views::Combobox* combobox) { 506 void ContentSettingBubbleContents::OnPerformAction(views::Combobox* combobox) {
512 MediaComboboxModel* model = 507 MediaComboboxModel* model =
513 static_cast<MediaComboboxModel*>(combobox->model()); 508 static_cast<MediaComboboxModel*>(combobox->model());
514 content_setting_bubble_model_->OnMediaMenuClicked( 509 content_setting_bubble_model_->OnMediaMenuClicked(
515 model->type(), model->GetDevices()[combobox->selected_index()].id); 510 model->type(), model->GetDevices()[combobox->selected_index()].id);
516 } 511 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698