 Chromium Code Reviews
 Chromium Code Reviews Issue 2753243002:
  Views/Harmony: Replace layout constants in chrome/browser/ui/views/extensions.  (Closed)
    
  
    Issue 2753243002:
  Views/Harmony: Replace layout constants in chrome/browser/ui/views/extensions.  (Closed) 
  | Index: chrome/browser/ui/views/extensions/extension_install_dialog_view.cc | 
| diff --git a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc | 
| index 4ccf6d36576cb67b477d04dec83f4388c0a3df68..506480da904d07c509dd0b5ca115d3ff5918343c 100644 | 
| --- a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc | 
| +++ b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc | 
| @@ -49,7 +49,6 @@ | 
| #include "ui/views/controls/separator.h" | 
| #include "ui/views/layout/box_layout.h" | 
| #include "ui/views/layout/grid_layout.h" | 
| -#include "ui/views/layout/layout_constants.h" | 
| #include "ui/views/widget/widget.h" | 
| using content::OpenURLParams; | 
| @@ -79,6 +78,17 @@ const int kNoPermissionsLeftColumnWidth = 200; | 
| // this case, so make it wider than normal. | 
| const int kExternalInstallLeftColumnWidth = 350; | 
| +// Get the appropriate indentation for an item if its parent is using bullet | 
| +// points. If the parent is using bullets for its items, then a padding of one | 
| +// unit will make the child item (which has no bullet) look like a sibling of | 
| +// its parent. Therefore increase the indentation by one more unit to show that | 
| +// it is in fact a child item (with no missing bullet) and not a sibling. | 
| +int GetLeftPaddingForBulletedItems(const bool parent_bulleted) { | 
| 
tapted
2017/03/22 03:05:59
nit: no need for `const`
 
Patti Lor
2017/03/22 05:57:40
Done.
 | 
| + return LayoutDelegate::Get()->GetMetric( | 
| + LayoutDelegate::Metric::RELATED_BUTTON_HORIZONTAL_SPACING) * | 
| + (parent_bulleted ? 2 : 1); | 
| +} | 
| + | 
| void AddResourceIcon(const gfx::ImageSkia* skia_image, void* data) { | 
| views::View* parent = static_cast<views::View*>(data); | 
| views::ImageView* image_view = new views::ImageView(); | 
| @@ -247,17 +257,20 @@ void ExtensionInstallDialogView::InitView() { | 
| layout->AddView(user_count); | 
| } | 
| + LayoutDelegate* layout_delegate = LayoutDelegate::Get(); | 
| + const int vertical_padding = layout_delegate->GetMetric( | 
| + LayoutDelegate::Metric::RELATED_CONTROL_VERTICAL_SPACING); | 
| if (prompt_->ShouldShowPermissions()) { | 
| - layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 
| + layout->AddPaddingRow(0, vertical_padding); | 
| layout->StartRow(0, column_set_id); | 
| layout->AddView(new views::Separator(), 3, 1, views::GridLayout::FILL, | 
| views::GridLayout::FILL); | 
| } | 
| - const int content_width = left_column_width + | 
| - LayoutDelegate::Get()->GetMetric( | 
| - LayoutDelegate::Metric::PANEL_CONTENT_MARGIN) + | 
| - kIconSize; | 
| + const int content_width = | 
| + left_column_width + | 
| + layout_delegate->GetMetric(LayoutDelegate::Metric::PANEL_CONTENT_MARGIN) + | 
| + kIconSize; | 
| // Create the scrollable view which will contain the permissions and retained | 
| // files/devices. It will span the full content width. | 
| @@ -274,7 +287,9 @@ void ExtensionInstallDialogView::InitView() { | 
| views::GridLayout::USE_PREF, content_width, content_width); | 
| // Pad to the very right of the dialog, so the scrollbar will be on the edge. | 
| - scrollable_column_set->AddPaddingColumn(0, views::kButtonHEdgeMarginNew); | 
| + const int button_margin = | 
| + layout_delegate->GetMetric(LayoutDelegate::Metric::DIALOG_BUTTON_MARGIN); | 
| + scrollable_column_set->AddPaddingColumn(0, button_margin); | 
| layout->StartRow(0, column_set_id); | 
| scroll_view_ = new views::ScrollView(); | 
| @@ -294,7 +309,7 @@ void ExtensionInstallDialogView::InitView() { | 
| scroll_layout, rb, column_set_id, content_width, | 
| ExtensionInstallPrompt::PermissionsType::WITHHELD_PERMISSIONS); | 
| } else { | 
| - scroll_layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 
| + scroll_layout->AddPaddingRow(0, vertical_padding); | 
| scroll_layout->StartRow(0, column_set_id); | 
| views::Label* permission_label = new views::Label( | 
| l10n_util::GetStringUTF16(IDS_EXTENSION_NO_SPECIAL_PERMISSIONS)); | 
| @@ -306,7 +321,7 @@ void ExtensionInstallDialogView::InitView() { | 
| } | 
| if (prompt_->GetRetainedFileCount()) { | 
| - scroll_layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 
| + scroll_layout->AddPaddingRow(0, vertical_padding); | 
| scroll_layout->StartRow(0, column_set_id); | 
| views::Label* retained_files_header = | 
| @@ -327,7 +342,7 @@ void ExtensionInstallDialogView::InitView() { | 
| } | 
| if (prompt_->GetRetainedDeviceCount()) { | 
| - scroll_layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 
| + scroll_layout->AddPaddingRow(0, vertical_padding); | 
| scroll_layout->StartRow(0, column_set_id); | 
| views::Label* retained_devices_header = | 
| @@ -356,9 +371,8 @@ void ExtensionInstallDialogView::InitView() { | 
| 0, | 
| std::min(kScrollViewMaxHeight, scrollable->GetPreferredSize().height())); | 
| - dialog_size_ = gfx::Size( | 
| - content_width + 2 * views::kButtonHEdgeMarginNew, | 
| - container_->GetPreferredSize().height()); | 
| + dialog_size_ = gfx::Size(content_width + 2 * button_margin, | 
| + container_->GetPreferredSize().height()); | 
| std::string event_name = ExperienceSamplingEvent::kExtensionInstallDialog; | 
| event_name.append( | 
| @@ -375,7 +389,9 @@ bool ExtensionInstallDialogView::AddPermissions( | 
| if (prompt_->GetPermissionCount(perm_type) == 0) | 
| return false; | 
| - layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 
| + const int vertical_padding = LayoutDelegate::Get()->GetMetric( | 
| + LayoutDelegate::Metric::RELATED_CONTROL_VERTICAL_SPACING); | 
| + layout->AddPaddingRow(0, vertical_padding); | 
| layout->StartRow(0, column_set_id); | 
| views::Label* permissions_header = | 
| @@ -386,7 +402,7 @@ bool ExtensionInstallDialogView::AddPermissions( | 
| layout->AddView(permissions_header); | 
| for (size_t i = 0; i < prompt_->GetPermissionCount(perm_type); ++i) { | 
| - layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 
| + layout->AddPaddingRow(0, vertical_padding); | 
| layout->StartRow(0, column_set_id); | 
| views::Label* permission_label = | 
| new views::Label(prompt_->GetPermission(i, perm_type)); | 
| @@ -414,14 +430,20 @@ views::GridLayout* ExtensionInstallDialogView::CreateLayout( | 
| int left_column_width, | 
| int column_set_id) { | 
| container_ = new views::View(); | 
| - // This is basically views::GridLayout::CreatePanel, but without a top or | 
| - // right margin (we effectively get a top margin anyway from the empty dialog | 
| - // title, and we add an explicit padding column as a right margin below). | 
| + LayoutDelegate* layout_delegate = LayoutDelegate::Get(); | 
| + const int horizontal_margin = | 
| + layout_delegate->GetMetric(LayoutDelegate::Metric::DIALOG_BUTTON_MARGIN); | 
| + const int bottom_margin = | 
| + layout_delegate->GetMetric(LayoutDelegate::Metric::PANEL_CONTENT_MARGIN); | 
| + | 
| + // This is views::GridLayout::CreatePanel(), but without a top or right | 
| + // margin. The empty dialog title will then become the top margin, and a | 
| + // padding column will be manually added to handle a right margin. This is | 
| + // done so that the extension icon can be shown on the right of the dialog | 
| + // title, but on the same y-axis, and the scroll view used to contain other | 
| + // content can have its scrollbar aligned with the right edge of the dialog. | 
| views::GridLayout* layout = new views::GridLayout(container_); | 
| - layout->SetInsets(0, views::kButtonHEdgeMarginNew, | 
| - LayoutDelegate::Get()->GetMetric( | 
| - LayoutDelegate::Metric::PANEL_CONTENT_MARGIN), | 
| - 0); | 
| + layout->SetInsets(0, horizontal_margin, bottom_margin, 0); | 
| container_->SetLayoutManager(layout); | 
| AddChildView(container_); | 
| @@ -432,14 +454,14 @@ views::GridLayout* ExtensionInstallDialogView::CreateLayout( | 
| 0, // no fixed width | 
| left_column_width); | 
| column_set->AddPaddingColumn( | 
| - 0, LayoutDelegate::Get()->GetMetric( | 
| - LayoutDelegate::Metric::PANEL_CONTENT_MARGIN)); | 
| + 0, layout_delegate->GetMetric( | 
| + LayoutDelegate::Metric::UNRELATED_CONTROL_HORIZONTAL_SPACING)); | 
| column_set->AddColumn(views::GridLayout::TRAILING, views::GridLayout::LEADING, | 
| 0, // no resizing | 
| views::GridLayout::USE_PREF, | 
| 0, // no fixed width | 
| kIconSize); | 
| - column_set->AddPaddingColumn(0, views::kButtonHEdgeMarginNew); | 
| + column_set->AddPaddingColumn(0, horizontal_margin); | 
| layout->StartRow(0, column_set_id); | 
| views::Label* title = | 
| @@ -582,12 +604,7 @@ ExpandableContainerView::DetailsView::DetailsView(int horizontal_space, | 
| state_(0) { | 
| SetLayoutManager(layout_); | 
| views::ColumnSet* column_set = layout_->AddColumnSet(0); | 
| - // If the parent is using bullets for its items, then a padding of one unit | 
| - // will make the child item (which has no bullet) look like a sibling of its | 
| - // parent. Therefore increase the indentation by one more unit to show that it | 
| - // is in fact a child item (with no missing bullet) and not a sibling. | 
| - int padding = | 
| - views::kRelatedControlHorizontalSpacing * (parent_bulleted ? 2 : 1); | 
| + int padding = GetLeftPaddingForBulletedItems(parent_bulleted); | 
| 
tapted
2017/03/22 03:05:59
nit: inline below (`padding` temporary no required
 
Patti Lor
2017/03/22 05:57:41
Done - replaced in 2 places.
 | 
| column_set->AddPaddingColumn(0, padding); | 
| column_set->AddColumn(views::GridLayout::LEADING, | 
| views::GridLayout::LEADING, | 
| @@ -599,8 +616,10 @@ ExpandableContainerView::DetailsView::DetailsView(int horizontal_space, | 
| void ExpandableContainerView::DetailsView::AddDetail( | 
| const base::string16& detail) { | 
| - layout_->StartRowWithPadding(0, 0, | 
| - 0, views::kRelatedControlSmallVerticalSpacing); | 
| + layout_->StartRowWithPadding( | 
| + 0, 0, 0, | 
| + LayoutDelegate::Get()->GetMetric( | 
| + LayoutDelegate::Metric::RELATED_CONTROL_HORIZONTAL_SPACING)); | 
| 
tapted
2017/03/22 03:05:59
For this, I suggest
constexpr int kPaddingAboveDe
 
Patti Lor
2017/03/22 05:57:41
Done. I also updated all the constants in the anon
 | 
| views::Label* detail_label = | 
| new views::Label(PrepareForDisplay(detail, false)); | 
| detail_label->SetMultiLine(true); | 
| @@ -649,8 +668,7 @@ ExpandableContainerView::ExpandableContainerView( | 
| details_view_->AddDetail(details[i]); | 
| // Make sure the link width column is as wide as needed for both Show and | 
| - // Hide details, so that the arrow doesn't shift horizontally when we | 
| - // toggle. | 
| + // Hide details, so that the arrow doesn't shift horizontally when we toggle. | 
| views::Link* link = new views::Link( | 
| l10n_util::GetStringUTF16(IDS_EXTENSIONS_HIDE_DETAILS)); | 
| int link_col_width = link->GetPreferredSize().width(); | 
| @@ -658,13 +676,9 @@ ExpandableContainerView::ExpandableContainerView( | 
| link_col_width = std::max(link_col_width, link->GetPreferredSize().width()); | 
| column_set = layout->AddColumnSet(++column_set_id); | 
| - // Padding to the left of the More Details column. If the parent is using | 
| - // bullets for its items, then a padding of one unit will make the child | 
| - // item (which has no bullet) look like a sibling of its parent. Therefore | 
| - // increase the indentation by one more unit to show that it is in fact a | 
| - // child item (with no missing bullet) and not a sibling. | 
| - column_set->AddPaddingColumn( | 
| - 0, views::kRelatedControlHorizontalSpacing * (parent_bulleted ? 2 : 1)); | 
| + // Padding to the left of the More Details column. | 
| + column_set->AddPaddingColumn(0, | 
| + GetLeftPaddingForBulletedItems(parent_bulleted)); | 
| // The More Details column. | 
| column_set->AddColumn(views::GridLayout::LEADING, | 
| views::GridLayout::LEADING, |