| 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;
|
|
|