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

Unified Diff: chrome/browser/ui/views/harmony/harmony_layout_delegate.cc

Issue 2758323002: Broke out layout metric information from ViewsDelegate to LayoutProvider (Closed)
Patch Set: Fix warning which causes one of the bots to fail 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/harmony/harmony_layout_delegate.cc
diff --git a/chrome/browser/ui/views/harmony/harmony_layout_delegate.cc b/chrome/browser/ui/views/harmony/harmony_layout_delegate.cc
index 8afd20369d3b97654914b2ba6851b72ac51e2eea..9a4f6802c96c31f954df623bdfd65581ab22c1c8 100644
--- a/chrome/browser/ui/views/harmony/harmony_layout_delegate.cc
+++ b/chrome/browser/ui/views/harmony/harmony_layout_delegate.cc
@@ -1,72 +1,80 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/views/harmony/harmony_layout_delegate.h"
-#include "base/lazy_instance.h"
-#include "base/logging.h"
-
-static base::LazyInstance<HarmonyLayoutDelegate>::DestructorAtExit
- harmony_layout_delegate_ = LAZY_INSTANCE_INITIALIZER;
-
-// static
-HarmonyLayoutDelegate* HarmonyLayoutDelegate::Get() {
- return harmony_layout_delegate_.Pointer();
+gfx::Insets HarmonyLayoutDelegate::GetInsetsMetric(
+ ChromeInsetsMetric metric) const {
+ switch (metric) {
+ case ChromeInsetsMetric::DIALOG_BUTTON:
+ case ChromeInsetsMetric::PANEL:
+ case ChromeInsetsMetric::BUBBLE_DIALOG:
+ return gfx::Insets(kHarmonyLayoutUnit);
+ case ChromeInsetsMetric::DIALOG_FRAME_VIEW: {
+ constexpr int top = kHarmonyLayoutUnit;
+ constexpr int side = kHarmonyLayoutUnit;
+ // Titles are inset at the top and sides, but not at the bottom.
+ return gfx::Insets(top, side, 0, side);
+ }
+ case ChromeInsetsMetric::VECTOR_IMAGE_BUTTON:
+ return gfx::Insets(kHarmonyLayoutUnit / 4);
+ }
+ NOTREACHED();
+ return gfx::Insets();
}
-int HarmonyLayoutDelegate::GetMetric(Metric metric) const {
+int HarmonyLayoutDelegate::GetDistanceMetric(
+ ChromeDistanceMetric metric) const {
switch (metric) {
- case Metric::BUTTON_HORIZONTAL_PADDING:
- return kHarmonyLayoutUnit;
- case Metric::DIALOG_BUTTON_MARGIN:
- return kHarmonyLayoutUnit;
- case Metric::BUTTON_MAX_LINKABLE_WIDTH:
- return kHarmonyLayoutUnit * 8;
- case Metric::BUTTON_MINIMUM_WIDTH:
- case Metric::DIALOG_BUTTON_MINIMUM_WIDTH:
- // Minimum label size plus padding.
- return 2 * kHarmonyLayoutUnit +
- 2 * GetMetric(Metric::BUTTON_HORIZONTAL_PADDING);
- case Metric::DIALOG_BUTTON_TOP_SPACING:
- return kHarmonyLayoutUnit;
- case Metric::DIALOG_CLOSE_BUTTON_MARGIN: {
+ case ChromeDistanceMetric::CLOSE_BUTTON_MARGIN: {
constexpr int kVisibleMargin = kHarmonyLayoutUnit / 2;
// The visible margin is based on the unpadded size, so to get the actual
// margin we need to subtract out the padding.
- return kVisibleMargin - GetMetric(Metric::VECTOR_IMAGE_BUTTON_PADDING);
+ return kVisibleMargin - kHarmonyLayoutUnit / 4;
}
- case Metric::PANEL_CONTENT_MARGIN:
- return kHarmonyLayoutUnit;
- case Metric::RELATED_BUTTON_HORIZONTAL_SPACING:
+ case ChromeDistanceMetric::RELATED_BUTTON_HORIZONTAL:
return kHarmonyLayoutUnit / 2;
- case Metric::RELATED_CONTROL_HORIZONTAL_SPACING:
+ case ChromeDistanceMetric::RELATED_CONTROL_HORIZONTAL:
return kHarmonyLayoutUnit;
- case Metric::RELATED_CONTROL_HORIZONTAL_SPACING_SMALL:
+ case ChromeDistanceMetric::RELATED_CONTROL_HORIZONTAL_SMALL:
return kHarmonyLayoutUnit;
- case Metric::RELATED_CONTROL_VERTICAL_SPACING:
+ case ChromeDistanceMetric::RELATED_CONTROL_VERTICAL:
return kHarmonyLayoutUnit / 2;
- case Metric::RELATED_CONTROL_VERTICAL_SPACING_SMALL:
+ case ChromeDistanceMetric::RELATED_CONTROL_VERTICAL_SMALL:
return kHarmonyLayoutUnit / 2;
- case Metric::RELATED_LABEL_HORIZONTAL_SPACING:
+ case ChromeDistanceMetric::DIALOG_BUTTON_MARGIN:
+ return kHarmonyLayoutUnit;
+ case ChromeDistanceMetric::DIALOG_BUTTON_TOP:
+ return kHarmonyLayoutUnit;
+ case ChromeDistanceMetric::DIALOG_BUTTON_MINIMUM_WIDTH:
+ case ChromeDistanceMetric::BUTTON_MINIMUM_WIDTH:
+ // Minimum label size plus padding.
+ return 2 * kHarmonyLayoutUnit +
+ 2 * GetDistanceMetric(
+ ChromeDistanceMetric::BUTTON_HORIZONTAL_PADDING);
+ case ChromeDistanceMetric::BUTTON_HORIZONTAL_PADDING:
+ return kHarmonyLayoutUnit;
+ case ChromeDistanceMetric::BUTTON_MAX_LINKABLE_WIDTH:
+ return kHarmonyLayoutUnit * 8;
+ case ChromeDistanceMetric::RELATED_LABEL_HORIZONTAL:
return kHarmonyLayoutUnit;
- case Metric::SUBSECTION_HORIZONTAL_INDENT:
+ case ChromeDistanceMetric::SUBSECTION_HORIZONTAL_INDENT:
return 0;
- case Metric::UNRELATED_CONTROL_HORIZONTAL_SPACING:
+ case ChromeDistanceMetric::PANEL_CONTENT_MARGIN:
return kHarmonyLayoutUnit;
- case Metric::UNRELATED_CONTROL_HORIZONTAL_SPACING_LARGE:
+ case ChromeDistanceMetric::UNRELATED_CONTROL_HORIZONTAL:
return kHarmonyLayoutUnit;
- case Metric::UNRELATED_CONTROL_VERTICAL_SPACING:
+ case ChromeDistanceMetric::UNRELATED_CONTROL_HORIZONTAL_LARGE:
return kHarmonyLayoutUnit;
- case Metric::UNRELATED_CONTROL_VERTICAL_SPACING_LARGE:
+ case ChromeDistanceMetric::UNRELATED_CONTROL_VERTICAL:
+ return kHarmonyLayoutUnit;
+ case ChromeDistanceMetric::UNRELATED_CONTROL_VERTICAL_LARGE:
return kHarmonyLayoutUnit;
- case Metric::VECTOR_IMAGE_BUTTON_PADDING:
- return 4;
}
NOTREACHED();
return 0;
}
-
views::GridLayout::Alignment
HarmonyLayoutDelegate::GetControlLabelGridAlignment() const {
return views::GridLayout::LEADING;

Powered by Google App Engine
This is Rietveld 408576698