1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
// Copyright 2018 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/material_refresh_layout_provider.h"
#include "ui/base/material_design/material_design_controller.h"
#include "ui/views/layout/layout_provider.h"
#include <algorithm>
int MaterialRefreshLayoutProvider::GetDistanceMetric(int metric) const {
switch (metric) {
case views::DistanceMetric::DISTANCE_CONTROL_VERTICAL_TEXT_PADDING:
return 6;
}
return ChromeLayoutProvider::GetDistanceMetric(metric);
}
gfx::Insets MaterialRefreshLayoutProvider::GetInsetsMetric(int metric) const {
switch (metric) {
case INSETS_BOOKMARKS_BAR_BUTTON:
// The paddings here are chosen so that the resulting inkdrops are
// circular for favicon-only bookmarks.
if (ui::MaterialDesignController::IsTouchOptimizedUiEnabled())
return gfx::Insets(8, 10);
break;
}
return ChromeLayoutProvider::GetInsetsMetric(metric);
}
int MaterialRefreshLayoutProvider::GetCornerRadiusMetric(
views::EmphasisMetric emphasis_metric,
const gfx::Size& size) const {
switch (emphasis_metric) {
case views::EMPHASIS_NONE:
NOTREACHED();
return 0;
case views::EMPHASIS_LOW:
case views::EMPHASIS_MEDIUM:
return 4;
case views::EMPHASIS_HIGH:
return 8;
case views::EMPHASIS_MAXIMUM:
return std::min(size.width(), size.height()) / 2;
}
}
int MaterialRefreshLayoutProvider::GetShadowElevationMetric(
views::EmphasisMetric emphasis_metric) const {
switch (emphasis_metric) {
case views::EMPHASIS_NONE:
NOTREACHED();
return 0;
case views::EMPHASIS_LOW:
return 1;
case views::EMPHASIS_MEDIUM:
return 2;
case views::EMPHASIS_HIGH:
return 3;
case views::EMPHASIS_MAXIMUM:
return 16;
}
}
gfx::ShadowValues MaterialRefreshLayoutProvider::MakeShadowValues(
int elevation,
SkColor color) const {
return gfx::ShadowValue::MakeRefreshShadowValues(elevation, color);
}
|