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/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 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 | 179 |
180 ContentSettingBubbleContents::~ContentSettingBubbleContents() { | 180 ContentSettingBubbleContents::~ContentSettingBubbleContents() { |
181 // Must remove the children here so the comboboxes get destroyed before | 181 // Must remove the children here so the comboboxes get destroyed before |
182 // their associated models. | 182 // their associated models. |
183 RemoveAllChildViews(true); | 183 RemoveAllChildViews(true); |
184 } | 184 } |
185 | 185 |
186 gfx::Size ContentSettingBubbleContents::GetPreferredSize() const { | 186 gfx::Size ContentSettingBubbleContents::GetPreferredSize() const { |
187 gfx::Size preferred_size(views::View::GetPreferredSize()); | 187 gfx::Size preferred_size(views::View::GetPreferredSize()); |
188 int preferred_width = LayoutDelegate::Get()->GetDialogPreferredWidth( | 188 int preferred_width = LayoutDelegate::Get()->GetDialogPreferredWidth( |
189 LayoutDelegate::DialogWidthType::SMALL); | 189 LayoutDelegate::DialogWidth::SMALL); |
190 if (!preferred_width) | 190 if (!preferred_width) |
191 preferred_width = (!content_setting_bubble_model_->bubble_content() | 191 preferred_width = (!content_setting_bubble_model_->bubble_content() |
192 .domain_lists.empty() && | 192 .domain_lists.empty() && |
193 (kMinMultiLineContentsWidth > preferred_size.width())) | 193 (kMinMultiLineContentsWidth > preferred_size.width())) |
194 ? kMinMultiLineContentsWidth | 194 ? kMinMultiLineContentsWidth |
195 : preferred_size.width(); | 195 : preferred_size.width(); |
196 else | 196 else |
197 preferred_width -= margins().width(); | 197 preferred_width -= margins().width(); |
198 if (content_setting_bubble_model_->AsSubresourceFilterBubbleModel()) { | 198 if (content_setting_bubble_model_->AsSubresourceFilterBubbleModel()) { |
199 preferred_size.set_width(std::min(preferred_width, | 199 preferred_size.set_width(std::min(preferred_width, |
200 kMaxDefaultContentsWidth)); | 200 kMaxDefaultContentsWidth)); |
201 } else { | 201 } else { |
202 preferred_size.set_width(std::min(preferred_width, kMaxContentsWidth)); | 202 preferred_size.set_width(std::min(preferred_width, kMaxContentsWidth)); |
203 } | 203 } |
204 return preferred_size; | 204 return preferred_size; |
205 } | 205 } |
206 | 206 |
207 void ContentSettingBubbleContents::Init() { | 207 void ContentSettingBubbleContents::Init() { |
208 using views::GridLayout; | 208 using views::GridLayout; |
209 | 209 |
210 GridLayout* layout = new views::GridLayout(this); | 210 GridLayout* layout = new views::GridLayout(this); |
211 SetLayoutManager(layout); | 211 SetLayoutManager(layout); |
212 const LayoutDelegate* layout_delegate = LayoutDelegate::Get(); | 212 const LayoutDelegate* layout_delegate = LayoutDelegate::Get(); |
213 const int related_control_horizontal_spacing = | 213 const int related_control_horizontal_spacing = layout_delegate->GetMetric( |
214 layout_delegate->GetLayoutDistance( | 214 LayoutDelegate::Metric::RELATED_CONTROL_HORIZONTAL_SPACING); |
215 LayoutDelegate::LayoutDistanceType:: | 215 const int related_control_vertical_spacing = layout_delegate->GetMetric( |
216 RELATED_CONTROL_HORIZONTAL_SPACING); | 216 LayoutDelegate::Metric::RELATED_CONTROL_VERTICAL_SPACING); |
217 const int related_control_vertical_spacing = | 217 const int unrelated_control_vertical_spacing = layout_delegate->GetMetric( |
218 layout_delegate->GetLayoutDistance( | 218 LayoutDelegate::Metric::UNRELATED_CONTROL_VERTICAL_SPACING); |
219 LayoutDelegate::LayoutDistanceType::RELATED_CONTROL_VERTICAL_SPACING); | |
220 const int unrelated_control_vertical_spacing = | |
221 layout_delegate->GetLayoutDistance( | |
222 LayoutDelegate::LayoutDistanceType:: | |
223 UNRELATED_CONTROL_VERTICAL_SPACING); | |
224 | 219 |
225 const int kSingleColumnSetId = 0; | 220 const int kSingleColumnSetId = 0; |
226 views::ColumnSet* column_set = layout->AddColumnSet(kSingleColumnSetId); | 221 views::ColumnSet* column_set = layout->AddColumnSet(kSingleColumnSetId); |
227 column_set->AddColumn(GridLayout::LEADING, GridLayout::FILL, 1, | 222 column_set->AddColumn(GridLayout::LEADING, GridLayout::FILL, 1, |
228 GridLayout::USE_PREF, 0, 0); | 223 GridLayout::USE_PREF, 0, 0); |
229 column_set->AddPaddingColumn(0, related_control_horizontal_spacing); | 224 column_set->AddPaddingColumn(0, related_control_horizontal_spacing); |
230 column_set->AddColumn(GridLayout::LEADING, GridLayout::FILL, 1, | 225 column_set->AddColumn(GridLayout::LEADING, GridLayout::FILL, 1, |
231 GridLayout::USE_PREF, 0, 0); | 226 GridLayout::USE_PREF, 0, 0); |
232 | 227 |
233 const ContentSettingBubbleModel::BubbleContent& bubble_content = | 228 const ContentSettingBubbleModel::BubbleContent& bubble_content = |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 row++; | 296 row++; |
302 bubble_content_empty = false; | 297 bubble_content_empty = false; |
303 } | 298 } |
304 } | 299 } |
305 | 300 |
306 const int indented_kSingleColumnSetId = 3; | 301 const int indented_kSingleColumnSetId = 3; |
307 // Insert a column set with greater indent. | 302 // Insert a column set with greater indent. |
308 views::ColumnSet* indented_single_column_set = | 303 views::ColumnSet* indented_single_column_set = |
309 layout->AddColumnSet(indented_kSingleColumnSetId); | 304 layout->AddColumnSet(indented_kSingleColumnSetId); |
310 indented_single_column_set->AddPaddingColumn( | 305 indented_single_column_set->AddPaddingColumn( |
311 0, layout_delegate->GetLayoutDistance( | 306 0, |
312 LayoutDelegate::LayoutDistanceType::SUBSECTION_HORIZONTAL_INDENT)); | 307 layout_delegate->GetMetric( |
| 308 LayoutDelegate::Metric::SUBSECTION_HORIZONTAL_INDENT)); |
313 indented_single_column_set->AddColumn(GridLayout::LEADING, GridLayout::FILL, | 309 indented_single_column_set->AddColumn(GridLayout::LEADING, GridLayout::FILL, |
314 1, GridLayout::USE_PREF, 0, 0); | 310 1, GridLayout::USE_PREF, 0, 0); |
315 | 311 |
316 const ContentSettingBubbleModel::RadioGroup& radio_group = | 312 const ContentSettingBubbleModel::RadioGroup& radio_group = |
317 bubble_content.radio_group; | 313 bubble_content.radio_group; |
318 if (!radio_group.radio_items.empty()) { | 314 if (!radio_group.radio_items.empty()) { |
319 if (!bubble_content_empty) | 315 if (!bubble_content_empty) |
320 layout->AddPaddingRow(0, related_control_vertical_spacing); | 316 layout->AddPaddingRow(0, related_control_vertical_spacing); |
321 for (ContentSettingBubbleModel::RadioItems::const_iterator i( | 317 for (ContentSettingBubbleModel::RadioItems::const_iterator i( |
322 radio_group.radio_items.begin()); | 318 radio_group.radio_items.begin()); |
(...skipping 21 matching lines...) Expand all Loading... |
344 radio_group_[radio_group.default_item]->SetChecked(true); | 340 radio_group_[radio_group.default_item]->SetChecked(true); |
345 } | 341 } |
346 | 342 |
347 // Layout code for the media device menus. | 343 // Layout code for the media device menus. |
348 if (content_setting_bubble_model_->AsMediaStreamBubbleModel()) { | 344 if (content_setting_bubble_model_->AsMediaStreamBubbleModel()) { |
349 const int kMediaMenuColumnSetId = 4; | 345 const int kMediaMenuColumnSetId = 4; |
350 views::ColumnSet* menu_column_set = | 346 views::ColumnSet* menu_column_set = |
351 layout->AddColumnSet(kMediaMenuColumnSetId); | 347 layout->AddColumnSet(kMediaMenuColumnSetId); |
352 menu_column_set->AddPaddingColumn( | 348 menu_column_set->AddPaddingColumn( |
353 0, | 349 0, |
354 layout_delegate->GetLayoutDistance( | 350 layout_delegate->GetMetric( |
355 LayoutDelegate::LayoutDistanceType::SUBSECTION_HORIZONTAL_INDENT)); | 351 LayoutDelegate::Metric::SUBSECTION_HORIZONTAL_INDENT)); |
356 menu_column_set->AddColumn(GridLayout::LEADING, GridLayout::FILL, 0, | 352 menu_column_set->AddColumn(GridLayout::LEADING, GridLayout::FILL, 0, |
357 GridLayout::USE_PREF, 0, 0); | 353 GridLayout::USE_PREF, 0, 0); |
358 menu_column_set->AddPaddingColumn(0, related_control_horizontal_spacing); | 354 menu_column_set->AddPaddingColumn(0, related_control_horizontal_spacing); |
359 menu_column_set->AddColumn(GridLayout::LEADING, GridLayout::FILL, 1, | 355 menu_column_set->AddColumn(GridLayout::LEADING, GridLayout::FILL, 1, |
360 GridLayout::USE_PREF, 0, 0); | 356 GridLayout::USE_PREF, 0, 0); |
361 | 357 |
362 for (ContentSettingBubbleModel::MediaMenuMap::const_iterator i( | 358 for (ContentSettingBubbleModel::MediaMenuMap::const_iterator i( |
363 bubble_content.media_menus.begin()); | 359 bubble_content.media_menus.begin()); |
364 i != bubble_content.media_menus.end(); ++i) { | 360 i != bubble_content.media_menus.end(); ++i) { |
365 if (!bubble_content_empty) | 361 if (!bubble_content_empty) |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 DCHECK(i != list_item_links_.end()); | 507 DCHECK(i != list_item_links_.end()); |
512 content_setting_bubble_model_->OnListItemClicked(i->second); | 508 content_setting_bubble_model_->OnListItemClicked(i->second); |
513 } | 509 } |
514 | 510 |
515 void ContentSettingBubbleContents::OnPerformAction(views::Combobox* combobox) { | 511 void ContentSettingBubbleContents::OnPerformAction(views::Combobox* combobox) { |
516 MediaComboboxModel* model = | 512 MediaComboboxModel* model = |
517 static_cast<MediaComboboxModel*>(combobox->model()); | 513 static_cast<MediaComboboxModel*>(combobox->model()); |
518 content_setting_bubble_model_->OnMediaMenuClicked( | 514 content_setting_bubble_model_->OnMediaMenuClicked( |
519 model->type(), model->GetDevices()[combobox->selected_index()].id); | 515 model->type(), model->GetDevices()[combobox->selected_index()].id); |
520 } | 516 } |
OLD | NEW |