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

Unified Diff: chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.cc

Issue 2815713004: Harmony - Dialog-specific conversion for Add to Desktop. (Closed)
Patch Set: fix merge with allen's patch 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.cc
diff --git a/chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.cc b/chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.cc
index 4b670432a20084575b5b124a4d40448e9101730b..e1e5aeb24b34c3cb8ce4135f977eca59ab219b1c 100644
--- a/chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.cc
+++ b/chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.cc
@@ -20,9 +20,9 @@
#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/image/image_skia_source.h"
#include "ui/views/controls/button/checkbox.h"
-#include "ui/views/controls/image_view.h"
#include "ui/views/controls/textfield/textfield.h"
-#include "ui/views/layout/box_layout.h"
+#include "ui/views/layout/grid_layout.h"
+#include "ui/views/layout/layout_provider.h"
#include "ui/views/widget/widget.h"
#include "ui/views/window/dialog_client_view.h"
@@ -30,8 +30,6 @@ namespace {
// Minimum width of the the bubble.
const int kMinBubbleWidth = 300;
-// Size of the icon.
-const int kIconSize = extension_misc::EXTENSION_ICON_MEDIUM;
class WebAppInfoImageSource : public gfx::ImageSkiaSource {
public:
@@ -74,32 +72,48 @@ BookmarkAppConfirmationView::BookmarkAppConfirmationView(
callback_(callback),
open_as_window_checkbox_(nullptr),
title_tf_(nullptr) {
- ChromeLayoutProvider* provider = ChromeLayoutProvider::Get();
- // Align the contents with the dialog buttons.
- views::BoxLayout* layout = new views::BoxLayout(
- views::BoxLayout::kHorizontal,
- provider->GetDistanceMetric(DISTANCE_DIALOG_BUTTON_MARGIN),
- provider->GetDistanceMetric(DISTANCE_PANEL_CONTENT_MARGIN),
- provider->GetDistanceMetric(DISTANCE_UNRELATED_CONTROL_HORIZONTAL_LARGE));
- layout->set_cross_axis_alignment(
- views::BoxLayout::CROSS_AXIS_ALIGNMENT_CENTER);
- SetLayoutManager(layout);
-
+ const ChromeLayoutProvider* layout_provider = ChromeLayoutProvider::Get();
+ views::GridLayout* layout = views::GridLayout::CreatePanel(this);
+ const int column_set_id = 0;
+
+ views::ColumnSet* column_set = layout->AddColumnSet(column_set_id);
+ column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER, 0,
+ views::GridLayout::USE_PREF, 0, 0);
+ column_set->AddPaddingColumn(0,
+ layout_provider->GetDistanceMetric(
+ views::DISTANCE_RELATED_CONTROL_HORIZONTAL));
+ constexpr int textfield_width = 320;
+ column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER, 0,
+ views::GridLayout::FIXED, textfield_width, 0);
+
+ const int icon_size = layout_provider->IsHarmonyMode()
+ ? extension_misc::EXTENSION_ICON_SMALL
+ : extension_misc::EXTENSION_ICON_MEDIUM;
views::ImageView* icon_image_view = new views::ImageView();
- gfx::Size image_size(kIconSize, kIconSize);
- gfx::ImageSkia image(new WebAppInfoImageSource(kIconSize, web_app_info_),
+ gfx::Size image_size(icon_size, icon_size);
+ gfx::ImageSkia image(new WebAppInfoImageSource(icon_size, web_app_info_),
image_size);
icon_image_view->SetImageSize(image_size);
icon_image_view->SetImage(image);
- AddChildView(icon_image_view);
+ layout->StartRow(0, column_set_id);
+ layout->AddView(icon_image_view);
title_tf_ = new views::Textfield();
title_tf_->SetText(web_app_info_.title);
title_tf_->SetAccessibleName(
l10n_util::GetStringUTF16(IDS_BOOKMARK_APP_AX_BUBBLE_NAME_LABEL));
title_tf_->set_controller(this);
- AddChildView(title_tf_);
- layout->SetFlexForView(title_tf_, 1);
+ layout->AddView(title_tf_);
+
+ layout->AddPaddingRow(
+ 0, layout_provider->GetDistanceMetric(DISTANCE_CONTROL_LIST_VERTICAL));
+
+ open_as_window_checkbox_ = new views::Checkbox(
+ l10n_util::GetStringUTF16(IDS_BOOKMARK_APP_BUBBLE_OPEN_AS_WINDOW));
+ open_as_window_checkbox_->SetChecked(web_app_info_.open_as_window);
+ layout->StartRow(0, column_set_id);
+ layout->SkipColumns(1);
+ layout->AddView(open_as_window_checkbox_);
title_tf_->SelectAll(true);
}
@@ -131,13 +145,6 @@ void BookmarkAppConfirmationView::WindowClosing() {
callback_.Run(false, web_app_info_);
}
-views::View* BookmarkAppConfirmationView::CreateExtraView() {
- open_as_window_checkbox_ = new views::Checkbox(
- l10n_util::GetStringUTF16(IDS_BOOKMARK_APP_BUBBLE_OPEN_AS_WINDOW));
- open_as_window_checkbox_->SetChecked(web_app_info_.open_as_window);
- return open_as_window_checkbox_;
-}
-
bool BookmarkAppConfirmationView::Accept() {
web_app_info_.title = GetTrimmedTitle();
web_app_info_.open_as_window = open_as_window_checkbox_->checked();

Powered by Google App Engine
This is Rietveld 408576698