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

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

Issue 2654323002: harmony: convert device chooser (Closed)
Patch Set: fix dialog width Created 3 years, 11 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/chooser_dialog_view.cc
diff --git a/chrome/browser/ui/views/extensions/chooser_dialog_view.cc b/chrome/browser/ui/views/extensions/chooser_dialog_view.cc
index dffa13c118584bacee809b05478cd2443aae44e4..27017bc7303d284d2d0b623bab05fbe590cd590d 100644
--- a/chrome/browser/ui/views/extensions/chooser_dialog_view.cc
+++ b/chrome/browser/ui/views/extensions/chooser_dialog_view.cc
@@ -11,15 +11,32 @@
#include "chrome/browser/extensions/chrome_extension_chooser_dialog.h"
#include "chrome/browser/extensions/device_permissions_dialog_controller.h"
#include "chrome/browser/ui/views/device_chooser_content_view.h"
+#include "chrome/browser/ui/views/harmony/layout_delegate.h"
#include "components/constrained_window/constrained_window_views.h"
#include "components/web_modal/web_contents_modal_dialog_manager.h"
#include "content/public/browser/browser_thread.h"
#include "ui/gfx/geometry/insets.h"
+#include "ui/views/background.h"
#include "ui/views/controls/link.h"
#include "ui/views/controls/styled_label.h"
-#include "ui/views/layout/layout_constants.h"
+#include "ui/views/layout/fill_layout.h"
#include "ui/views/window/dialog_client_view.h"
+namespace {
+
+LayoutDelegate::LayoutDistanceType GetContentViewToButtonsDistanceType() {
+ // Hack: in the old layout, the buttons are related to the content view, but
+ // in the Harmony layout they are unrelated, so the layout distance type is
+ // variable.
Peter Kasting 2017/02/01 02:39:25 Unless the function of the buttons have changed, t
+ return LayoutDelegate::Get()->IsHarmonyMode()
+ ? LayoutDelegate::LayoutDistanceType::
+ UNRELATED_CONTROL_VERTICAL_SPACING
+ : LayoutDelegate::LayoutDistanceType::
+ RELATED_CONTROL_VERTICAL_SPACING;
+}
+
+} // namespace
+
ChooserDialogView::ChooserDialogView(
std::unique_ptr<ChooserController> chooser_controller) {
// ------------------------------------
@@ -40,6 +57,19 @@ ChooserDialogView::ChooserDialogView(
DCHECK(chooser_controller);
device_chooser_content_view_ =
new DeviceChooserContentView(this, std::move(chooser_controller));
+
+ LayoutDelegate* delegate = LayoutDelegate::Get();
+ if (delegate->IsHarmonyMode()) {
Peter Kasting 2017/02/01 02:39:26 I'd like to avoid IsHarmonyMode() here. The first
+ gfx::Size size = device_chooser_content_view_->GetPreferredSize();
+ int inset_width =
+ 2 *
+ delegate->GetLayoutDistance(
+ LayoutDelegate::LayoutDistanceType::PANEL_HORIZ_MARGIN);
+ size.set_width(delegate->GetDialogPreferredWidth(
+ LayoutDelegate::DialogWidthType::MEDIUM) -
+ 2 * inset_width);
Peter Kasting 2017/02/01 02:39:26 How come this is 2 * inset_width instead of just i
+ device_chooser_content_view_->SetPreferredSize(size);
+ }
}
ChooserDialogView::~ChooserDialogView() {}
@@ -72,7 +102,10 @@ views::View* ChooserDialogView::CreateFootnoteView() {
views::ClientView* ChooserDialogView::CreateClientView(views::Widget* widget) {
views::DialogClientView* client =
new views::DialogClientView(widget, GetContentsView());
- client->set_button_row_insets(gfx::Insets());
+ LayoutDelegate* delegate = LayoutDelegate::Get();
+ client->set_button_row_insets(gfx::Insets(
+ delegate->GetLayoutDistance(GetContentViewToButtonsDistanceType()), 0, 0,
+ 0));
return client;
}
@@ -81,9 +114,13 @@ views::NonClientFrameView* ChooserDialogView::CreateNonClientFrameView(
// ChooserDialogView always has a parent, so ShouldUseCustomFrame() should
// always be true.
DCHECK(ShouldUseCustomFrame());
+ LayoutDelegate* delegate = LayoutDelegate::Get();
return views::DialogDelegate::CreateDialogFrameView(
- widget, gfx::Insets(views::kPanelVertMargin, views::kPanelHorizMargin,
- views::kPanelVertMargin, views::kPanelHorizMargin));
+ widget,
+ gfx::Insets(delegate->GetLayoutDistance(
+ LayoutDelegate::LayoutDistanceType::PANEL_VERT_MARGIN),
+ delegate->GetLayoutDistance(
+ LayoutDelegate::LayoutDistanceType::PANEL_HORIZ_MARGIN)));
}
bool ChooserDialogView::Accept() {

Powered by Google App Engine
This is Rietveld 408576698