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

Side by Side Diff: chrome/browser/ui/views/extensions/media_galleries_dialog_views.cc

Issue 2753243002: Views/Harmony: Replace layout constants in chrome/browser/ui/views/extensions. (Closed)
Patch Set: Review comments. Created 3 years, 9 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/extensions/media_galleries_dialog_views.h" 5 #include "chrome/browser/ui/views/extensions/media_galleries_dialog_views.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
11 #include "chrome/browser/ui/views/extensions/media_gallery_checkbox_view.h" 11 #include "chrome/browser/ui/views/extensions/media_gallery_checkbox_view.h"
12 #include "chrome/browser/ui/views/harmony/layout_delegate.h" 12 #include "chrome/browser/ui/views/harmony/layout_delegate.h"
13 #include "chrome/grit/generated_resources.h" 13 #include "chrome/grit/generated_resources.h"
14 #include "chrome/grit/locale_settings.h" 14 #include "chrome/grit/locale_settings.h"
15 #include "components/constrained_window/constrained_window_views.h" 15 #include "components/constrained_window/constrained_window_views.h"
16 #include "components/web_modal/web_contents_modal_dialog_manager.h" 16 #include "components/web_modal/web_contents_modal_dialog_manager.h"
17 #include "content/public/browser/web_contents.h" 17 #include "content/public/browser/web_contents.h"
18 #include "ui/base/l10n/l10n_util.h" 18 #include "ui/base/l10n/l10n_util.h"
19 #include "ui/native_theme/native_theme.h" 19 #include "ui/native_theme/native_theme.h"
20 #include "ui/views/border.h" 20 #include "ui/views/border.h"
21 #include "ui/views/controls/button/checkbox.h" 21 #include "ui/views/controls/button/checkbox.h"
22 #include "ui/views/controls/button/image_button.h" 22 #include "ui/views/controls/button/image_button.h"
23 #include "ui/views/controls/button/md_text_button.h" 23 #include "ui/views/controls/button/md_text_button.h"
24 #include "ui/views/controls/label.h" 24 #include "ui/views/controls/label.h"
25 #include "ui/views/controls/menu/menu_runner.h" 25 #include "ui/views/controls/menu/menu_runner.h"
26 #include "ui/views/controls/scroll_view.h" 26 #include "ui/views/controls/scroll_view.h"
27 #include "ui/views/controls/separator.h" 27 #include "ui/views/controls/separator.h"
28 #include "ui/views/layout/box_layout.h" 28 #include "ui/views/layout/box_layout.h"
29 #include "ui/views/layout/grid_layout.h" 29 #include "ui/views/layout/grid_layout.h"
30 #include "ui/views/layout/layout_constants.h"
31 #include "ui/views/view.h" 30 #include "ui/views/view.h"
32 #include "ui/views/widget/widget.h" 31 #include "ui/views/widget/widget.h"
33 #include "ui/views/window/dialog_client_view.h" 32 #include "ui/views/window/dialog_client_view.h"
34 33
35 namespace { 34 namespace {
36 35
37 const int kScrollAreaHeight = 192; 36 const int kScrollAreaHeight = 192;
38 37
39 // This container has the right Layout() impl to use within a ScrollView. 38 // This container has the right Layout() impl to use within a ScrollView.
40 class ScrollableView : public views::View { 39 class ScrollableView : public views::View {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 int column_set_id = 0; 104 int column_set_id = 0;
106 views::ColumnSet* columns = layout->AddColumnSet(column_set_id); 105 views::ColumnSet* columns = layout->AddColumnSet(column_set_id);
107 columns->AddColumn(views::GridLayout::LEADING, 106 columns->AddColumn(views::GridLayout::LEADING,
108 views::GridLayout::LEADING, 107 views::GridLayout::LEADING,
109 1, 108 1,
110 views::GridLayout::FIXED, 109 views::GridLayout::FIXED,
111 dialog_content_width, 110 dialog_content_width,
112 0); 111 0);
113 112
114 // Message text. 113 // Message text.
114 LayoutDelegate* layout_delegate = LayoutDelegate::Get();
115 const int vertical_padding = layout_delegate->GetMetric(
116 LayoutDelegate::Metric::RELATED_CONTROL_VERTICAL_SPACING);
115 views::Label* subtext = new views::Label(controller_->GetSubtext()); 117 views::Label* subtext = new views::Label(controller_->GetSubtext());
116 subtext->SetMultiLine(true); 118 subtext->SetMultiLine(true);
117 subtext->SetHorizontalAlignment(gfx::ALIGN_LEFT); 119 subtext->SetHorizontalAlignment(gfx::ALIGN_LEFT);
118 layout->StartRow(0, column_set_id); 120 layout->StartRow(0, column_set_id);
119 layout->AddView( 121 layout->AddView(
120 subtext, 1, 1, 122 subtext, 1, 1,
121 views::GridLayout::FILL, views::GridLayout::LEADING, 123 views::GridLayout::FILL, views::GridLayout::LEADING,
122 dialog_content_width, subtext->GetHeightForWidth(dialog_content_width)); 124 dialog_content_width, subtext->GetHeightForWidth(dialog_content_width));
123 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); 125 layout->AddPaddingRow(0, vertical_padding);
124 126
125 // Scrollable area for checkboxes. 127 // Scrollable area for checkboxes.
128 const int small_vertical_padding = LayoutDelegate::Get()->GetMetric(
129 LayoutDelegate::Metric::RELATED_CONTROL_VERTICAL_SPACING_SMALL);
126 ScrollableView* scroll_container = new ScrollableView(); 130 ScrollableView* scroll_container = new ScrollableView();
127 scroll_container->SetLayoutManager(new views::BoxLayout( 131 scroll_container->SetLayoutManager(new views::BoxLayout(
128 views::BoxLayout::kVertical, 0, 0, 132 views::BoxLayout::kVertical, 0, 0, small_vertical_padding));
129 views::kRelatedControlSmallVerticalSpacing));
130 scroll_container->SetBorder( 133 scroll_container->SetBorder(
131 views::CreateEmptyBorder(views::kRelatedControlVerticalSpacing, 0, 134 views::CreateEmptyBorder(vertical_padding, 0, vertical_padding, 0));
132 views::kRelatedControlVerticalSpacing, 0));
133 135
134 std::vector<base::string16> section_headers = 136 std::vector<base::string16> section_headers =
135 controller_->GetSectionHeaders(); 137 controller_->GetSectionHeaders();
136 for (size_t i = 0; i < section_headers.size(); i++) { 138 for (size_t i = 0; i < section_headers.size(); i++) {
137 MediaGalleriesDialogController::Entries entries = 139 MediaGalleriesDialogController::Entries entries =
138 controller_->GetSectionEntries(i); 140 controller_->GetSectionEntries(i);
139 141
140 // Header and separator line. 142 // Header and separator line.
141 if (!section_headers[i].empty() && !entries.empty()) { 143 if (!section_headers[i].empty() && !entries.empty()) {
142 views::Separator* separator = new views::Separator(); 144 views::Separator* separator = new views::Separator();
143 scroll_container->AddChildView(separator); 145 scroll_container->AddChildView(separator);
144 146
145 views::Label* header = new views::Label(section_headers[i]); 147 views::Label* header = new views::Label(section_headers[i]);
146 header->SetMultiLine(true); 148 header->SetMultiLine(true);
147 header->SetHorizontalAlignment(gfx::ALIGN_LEFT); 149 header->SetHorizontalAlignment(gfx::ALIGN_LEFT);
148 header->SetBorder(views::CreateEmptyBorder( 150 header->SetBorder(views::CreateEmptyBorder(
149 views::kRelatedControlVerticalSpacing, 151 vertical_padding,
150 LayoutDelegate::Get()->GetMetric( 152 layout_delegate->GetMetric(
151 LayoutDelegate::Metric::PANEL_CONTENT_MARGIN), 153 LayoutDelegate::Metric::PANEL_CONTENT_MARGIN),
152 views::kRelatedControlVerticalSpacing, 0)); 154 vertical_padding, 0));
153 scroll_container->AddChildView(header); 155 scroll_container->AddChildView(header);
154 } 156 }
155 157
156 // Checkboxes. 158 // Checkboxes.
157 MediaGalleriesDialogController::Entries::const_iterator iter; 159 MediaGalleriesDialogController::Entries::const_iterator iter;
158 for (iter = entries.begin(); iter != entries.end(); ++iter) { 160 for (iter = entries.begin(); iter != entries.end(); ++iter) {
159 int spacing = 0; 161 int spacing = iter + 1 == entries.end() ? small_vertical_padding : 0;
160 if (iter + 1 == entries.end())
161 spacing = views::kRelatedControlSmallVerticalSpacing;
162 AddOrUpdateGallery(*iter, scroll_container, spacing); 162 AddOrUpdateGallery(*iter, scroll_container, spacing);
163 } 163 }
164 } 164 }
165 165
166 confirm_available_ = controller_->IsAcceptAllowed(); 166 confirm_available_ = controller_->IsAcceptAllowed();
167 167
168 // Add the scrollable area to the outer dialog view. It will squeeze against 168 // Add the scrollable area to the outer dialog view. It will squeeze against
169 // the title/subtitle and buttons to occupy all available space in the dialog. 169 // the title/subtitle and buttons to occupy all available space in the dialog.
170 views::ScrollView* scroll_view = 170 views::ScrollView* scroll_view =
171 views::ScrollView::CreateScrollViewWithBorder(); 171 views::ScrollView::CreateScrollViewWithBorder();
172 scroll_view->SetContents(scroll_container); 172 scroll_view->SetContents(scroll_container);
173 layout->StartRowWithPadding(1, column_set_id, 173 layout->StartRowWithPadding(1, column_set_id, 0, vertical_padding);
174 0, views::kRelatedControlVerticalSpacing);
175 layout->AddView(scroll_view, 1, 1, 174 layout->AddView(scroll_view, 1, 1,
176 views::GridLayout::FILL, views::GridLayout::FILL, 175 views::GridLayout::FILL, views::GridLayout::FILL,
177 dialog_content_width, kScrollAreaHeight); 176 dialog_content_width, kScrollAreaHeight);
178 } 177 }
179 178
180 void MediaGalleriesDialogViews::UpdateGalleries() { 179 void MediaGalleriesDialogViews::UpdateGalleries() {
181 InitChildViews(); 180 InitChildViews();
182 contents_->Layout(); 181 contents_->Layout();
183 182
184 if (ControllerHasWebContents()) 183 if (ControllerHasWebContents())
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 context_menu_runner_.reset(); 322 context_menu_runner_.reset();
324 } 323 }
325 324
326 // MediaGalleriesDialogViewsController ----------------------------------------- 325 // MediaGalleriesDialogViewsController -----------------------------------------
327 326
328 // static 327 // static
329 MediaGalleriesDialog* MediaGalleriesDialog::Create( 328 MediaGalleriesDialog* MediaGalleriesDialog::Create(
330 MediaGalleriesDialogController* controller) { 329 MediaGalleriesDialogController* controller) {
331 return new MediaGalleriesDialogViews(controller); 330 return new MediaGalleriesDialogViews(controller);
332 } 331 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698