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() { ...@@ -47,59 +47,17 @@ ChromeLayoutProvider::CreateLayoutProvider() {
} }
gfx::Insets ChromeLayoutProvider::GetInsetsMetric(int metric) const { gfx::Insets ChromeLayoutProvider::GetInsetsMetric(int metric) const {
switch (metric) { CHECK(false);
case ChromeInsetsMetric::INSETS_TOAST: return gfx::Insets();
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);
}
} }
int ChromeLayoutProvider::GetDistanceMetric(int metric) const { int ChromeLayoutProvider::GetDistanceMetric(int metric) const {
switch (metric) { CHECK(false);
case DISTANCE_BUTTON_MINIMUM_WIDTH: return 0;
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);
}
} }
const views::TypographyProvider& ChromeLayoutProvider::GetTypographyProvider() const views::TypographyProvider& ChromeLayoutProvider::GetTypographyProvider()
const { const {
CHECK(false);
// This is not a data member because then HarmonyLayoutProvider would inherit // This is not a data member because then HarmonyLayoutProvider would inherit
// it, even when it provides its own. // it, even when it provides its own.
CR_DEFINE_STATIC_LOCAL(LegacyTypographyProvider, legacy_provider, ()); CR_DEFINE_STATIC_LOCAL(LegacyTypographyProvider, legacy_provider, ());
...@@ -108,13 +66,16 @@ const views::TypographyProvider& ChromeLayoutProvider::GetTypographyProvider() ...@@ -108,13 +66,16 @@ const views::TypographyProvider& ChromeLayoutProvider::GetTypographyProvider()
views::GridLayout::Alignment views::GridLayout::Alignment
ChromeLayoutProvider::GetControlLabelGridAlignment() const { ChromeLayoutProvider::GetControlLabelGridAlignment() const {
CHECK(false);
return views::GridLayout::TRAILING; return views::GridLayout::TRAILING;
} }
bool ChromeLayoutProvider::UseExtraDialogPadding() const { bool ChromeLayoutProvider::UseExtraDialogPadding() const {
CHECK(false);
return true; return true;
} }
bool ChromeLayoutProvider::ShouldShowWindowIcon() const { bool ChromeLayoutProvider::ShouldShowWindowIcon() const {
CHECK(false);
return true; return true;
} }
...@@ -7,6 +7,10 @@ ...@@ -7,6 +7,10 @@
#include "ui/base/material_design/material_design_controller.h" #include "ui/base/material_design/material_design_controller.h"
namespace { 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 kSmallSnapPoint = 320;
constexpr int kMediumSnapPoint = 448; constexpr int kMediumSnapPoint = 448;
constexpr int kLargeSnapPoint = 512; constexpr int kLargeSnapPoint = 512;
...@@ -19,21 +23,25 @@ gfx::Insets HarmonyLayoutProvider::GetInsetsMetric(int metric) const { ...@@ -19,21 +23,25 @@ gfx::Insets HarmonyLayoutProvider::GetInsetsMetric(int metric) const {
case views::INSETS_DIALOG_SUBSECTION: case views::INSETS_DIALOG_SUBSECTION:
return gfx::Insets(kHarmonyLayoutUnit); return gfx::Insets(kHarmonyLayoutUnit);
case views::INSETS_CHECKBOX_RADIO_BUTTON: { 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 // Material Design requires that checkboxes and radio buttons are aligned
// flush to the left edge. // flush to the left edge.
return gfx::Insets(insets.top(), 0, insets.bottom(), insets.right()); return gfx::Insets(insets.top(), 0, insets.bottom(), insets.right());
} }
case views::INSETS_VECTOR_IMAGE_BUTTON: case views::INSETS_VECTOR_IMAGE_BUTTON:
return gfx::Insets(kHarmonyLayoutUnit / 4); return gfx::Insets(kHarmonyLayoutUnit / 4);
case INSETS_TOAST:
return gfx::Insets(0, kHarmonyLayoutUnit);
case views::InsetsMetric::INSETS_LABEL_BUTTON: case views::InsetsMetric::INSETS_LABEL_BUTTON:
if (ui::MaterialDesignController::IsTouchOptimizedUiEnabled()) if (ui::MaterialDesignController::IsTouchOptimizedUiEnabled())
return gfx::Insets(kHarmonyLayoutUnit / 2, kHarmonyLayoutUnit / 2); 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: default:
return ChromeLayoutProvider::GetInsetsMetric(metric); return LayoutProvider::GetInsetsMetric(metric);
} }
} }
...@@ -99,6 +107,10 @@ int HarmonyLayoutProvider::GetDistanceMetric(int metric) const { ...@@ -99,6 +107,10 @@ int HarmonyLayoutProvider::GetDistanceMetric(int metric) const {
return kHarmonyLayoutUnit * 12; return kHarmonyLayoutUnit * 12;
case DISTANCE_SUBSECTION_HORIZONTAL_INDENT: case DISTANCE_SUBSECTION_HORIZONTAL_INDENT:
return 0; return 0;
case DISTANCE_TOAST_CONTROL_VERTICAL:
return 8;
case DISTANCE_TOAST_LABEL_VERTICAL:
return 12;
case views::DISTANCE_TEXTFIELD_HORIZONTAL_TEXT_PADDING: case views::DISTANCE_TEXTFIELD_HORIZONTAL_TEXT_PADDING:
return kHarmonyLayoutUnit / 2; return kHarmonyLayoutUnit / 2;
case DISTANCE_UNRELATED_CONTROL_HORIZONTAL: case DISTANCE_UNRELATED_CONTROL_HORIZONTAL:
...@@ -114,7 +126,7 @@ int HarmonyLayoutProvider::GetDistanceMetric(int metric) const { ...@@ -114,7 +126,7 @@ int HarmonyLayoutProvider::GetDistanceMetric(int metric) const {
case DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH: case DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH:
return kMediumSnapPoint; return kMediumSnapPoint;
default: default:
return ChromeLayoutProvider::GetDistanceMetric(metric); return LayoutProvider::GetDistanceMetric(metric);
} }
} }
......
...@@ -11,9 +11,6 @@ ...@@ -11,9 +11,6 @@
class HarmonyLayoutProvider : public ChromeLayoutProvider { class HarmonyLayoutProvider : public ChromeLayoutProvider {
public: public:
// The Harmony layout unit. All distances are in terms of this unit.
static constexpr int kHarmonyLayoutUnit = 16;
HarmonyLayoutProvider() {} HarmonyLayoutProvider() {}
~HarmonyLayoutProvider() override {} ~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