Commit 72931112 authored by Peter Boström's avatar Peter Boström Committed by Commit Bot

Merge Chrome and Harmony LayoutProviders

Moves any values that were still handled by ChromeLayoutProvider into
HarmonyLayoutProvider and adds a bunch of CHECK(false) inside
ChromeLayoutProvider to make sure that it's not called.

The next step will merge all HarmonyLayoutProvider code back into
ChromeLayoutProvider and remove the HarmonyLayoutProvider class
completely (effectively making HarmonyLayoutProvider the new
ChromeLayoutProvider).

Moving code into HarmonyLayoutProvider as a first step is only done
because it generates an easier diff for review (less code had to move
from ChromeLayoutProvider than vice versa).

Bug: chromium:867557
Change-Id: I477925c09e37b328103102e0d606a9d9db605eb5
Reviewed-on: https://chromium-review.googlesource.com/1171191Reviewed-by: default avatarScott Violet <sky@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583045}
parent 77c2f6b3
......@@ -47,59 +47,17 @@ ChromeLayoutProvider::CreateLayoutProvider() {
}
gfx::Insets ChromeLayoutProvider::GetInsetsMetric(int metric) const {
switch (metric) {
case ChromeInsetsMetric::INSETS_TOAST:
return gfx::Insets(0, 8);
case INSETS_BOOKMARKS_BAR_BUTTON:
if (ui::MaterialDesignController::IsTouchOptimizedUiEnabled())
return gfx::Insets(8, 12);
return GetInsetsMetric(views::InsetsMetric::INSETS_LABEL_BUTTON);
default:
return views::LayoutProvider::GetInsetsMetric(metric);
}
CHECK(false);
return gfx::Insets();
}
int ChromeLayoutProvider::GetDistanceMetric(int metric) const {
switch (metric) {
case DISTANCE_BUTTON_MINIMUM_WIDTH:
return 48;
case DISTANCE_CONTENT_LIST_VERTICAL_SINGLE:
return 4;
case DISTANCE_CONTENT_LIST_VERTICAL_MULTI:
return 8;
case DISTANCE_CONTROL_LIST_VERTICAL:
return GetDistanceMetric(views::DISTANCE_RELATED_CONTROL_VERTICAL);
case DISTANCE_RELATED_CONTROL_HORIZONTAL_SMALL:
return 8;
case DISTANCE_RELATED_CONTROL_VERTICAL_SMALL:
return 4;
case DISTANCE_RELATED_LABEL_HORIZONTAL_LIST:
return 8;
case DISTANCE_SUBSECTION_HORIZONTAL_INDENT:
return 10;
case DISTANCE_UNRELATED_CONTROL_HORIZONTAL:
return 12;
case DISTANCE_UNRELATED_CONTROL_HORIZONTAL_LARGE:
return 20;
case DISTANCE_UNRELATED_CONTROL_VERTICAL_LARGE:
return 30;
case DISTANCE_TOAST_CONTROL_VERTICAL:
return 8;
case DISTANCE_TOAST_LABEL_VERTICAL:
return 12;
case DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH:
return 400;
case DISTANCE_LARGE_MODAL_DIALOG_PREFERRED_WIDTH:
return 512;
case DISTANCE_BUBBLE_PREFERRED_WIDTH:
return 320;
default:
return views::LayoutProvider::GetDistanceMetric(metric);
}
CHECK(false);
return 0;
}
const views::TypographyProvider& ChromeLayoutProvider::GetTypographyProvider()
const {
CHECK(false);
// This is not a data member because then HarmonyLayoutProvider would inherit
// it, even when it provides its own.
CR_DEFINE_STATIC_LOCAL(LegacyTypographyProvider, legacy_provider, ());
......@@ -108,13 +66,16 @@ const views::TypographyProvider& ChromeLayoutProvider::GetTypographyProvider()
views::GridLayout::Alignment
ChromeLayoutProvider::GetControlLabelGridAlignment() const {
CHECK(false);
return views::GridLayout::TRAILING;
}
bool ChromeLayoutProvider::UseExtraDialogPadding() const {
CHECK(false);
return true;
}
bool ChromeLayoutProvider::ShouldShowWindowIcon() const {
CHECK(false);
return true;
}
......@@ -7,6 +7,10 @@
#include "ui/base/material_design/material_design_controller.h"
namespace {
// TODO(pbos): Inline kHarmonyLayoutUnit calculations below as it's not really
// respected (there's 3 * unit / 4 in use to express 12).
// The Harmony layout unit. All distances are in terms of this unit.
constexpr int kHarmonyLayoutUnit = 16;
constexpr int kSmallSnapPoint = 320;
constexpr int kMediumSnapPoint = 448;
constexpr int kLargeSnapPoint = 512;
......@@ -19,21 +23,25 @@ gfx::Insets HarmonyLayoutProvider::GetInsetsMetric(int metric) const {
case views::INSETS_DIALOG_SUBSECTION:
return gfx::Insets(kHarmonyLayoutUnit);
case views::INSETS_CHECKBOX_RADIO_BUTTON: {
gfx::Insets insets = ChromeLayoutProvider::GetInsetsMetric(metric);
gfx::Insets insets = LayoutProvider::GetInsetsMetric(metric);
// Material Design requires that checkboxes and radio buttons are aligned
// flush to the left edge.
return gfx::Insets(insets.top(), 0, insets.bottom(), insets.right());
}
case views::INSETS_VECTOR_IMAGE_BUTTON:
return gfx::Insets(kHarmonyLayoutUnit / 4);
case INSETS_TOAST:
return gfx::Insets(0, kHarmonyLayoutUnit);
case views::InsetsMetric::INSETS_LABEL_BUTTON:
if (ui::MaterialDesignController::IsTouchOptimizedUiEnabled())
return gfx::Insets(kHarmonyLayoutUnit / 2, kHarmonyLayoutUnit / 2);
return ChromeLayoutProvider::GetInsetsMetric(metric);
return LayoutProvider::GetInsetsMetric(metric);
case INSETS_BOOKMARKS_BAR_BUTTON:
if (ui::MaterialDesignController::IsTouchOptimizedUiEnabled())
return gfx::Insets(8, 12);
return GetInsetsMetric(views::InsetsMetric::INSETS_LABEL_BUTTON);
case INSETS_TOAST:
return gfx::Insets(0, kHarmonyLayoutUnit);
default:
return ChromeLayoutProvider::GetInsetsMetric(metric);
return LayoutProvider::GetInsetsMetric(metric);
}
}
......@@ -99,6 +107,10 @@ int HarmonyLayoutProvider::GetDistanceMetric(int metric) const {
return kHarmonyLayoutUnit * 12;
case DISTANCE_SUBSECTION_HORIZONTAL_INDENT:
return 0;
case DISTANCE_TOAST_CONTROL_VERTICAL:
return 8;
case DISTANCE_TOAST_LABEL_VERTICAL:
return 12;
case views::DISTANCE_TEXTFIELD_HORIZONTAL_TEXT_PADDING:
return kHarmonyLayoutUnit / 2;
case DISTANCE_UNRELATED_CONTROL_HORIZONTAL:
......@@ -114,7 +126,7 @@ int HarmonyLayoutProvider::GetDistanceMetric(int metric) const {
case DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH:
return kMediumSnapPoint;
default:
return ChromeLayoutProvider::GetDistanceMetric(metric);
return LayoutProvider::GetDistanceMetric(metric);
}
}
......
......@@ -11,9 +11,6 @@
class HarmonyLayoutProvider : public ChromeLayoutProvider {
public:
// The Harmony layout unit. All distances are in terms of this unit.
static constexpr int kHarmonyLayoutUnit = 16;
HarmonyLayoutProvider() {}
~HarmonyLayoutProvider() override {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment