| Index: chrome/browser/themes/theme_properties.cc
|
| diff --git a/chrome/browser/themes/theme_properties.cc b/chrome/browser/themes/theme_properties.cc
|
| index f32530f28d53452f5f7b5f88a0fd00753d329b2b..1007a31a5b2b78dfdca8d239fcdcb066ec5983a6 100644
|
| --- a/chrome/browser/themes/theme_properties.cc
|
| +++ b/chrome/browser/themes/theme_properties.cc
|
| @@ -9,6 +9,7 @@
|
| #include "base/strings/string_util.h"
|
| #include "chrome/browser/themes/browser_theme_pack.h"
|
| #include "grit/theme_resources.h"
|
| +#include "ui/base/resource/material_design/material_design_controller.h"
|
| #include "ui/resources/grit/ui_resources.h"
|
|
|
| namespace {
|
| @@ -96,6 +97,35 @@ const SkColor kDefaultColorToolbarStrokeInactive = SkColorSetRGB(163, 163, 163);
|
| #endif
|
|
|
| // ----------------------------------------------------------------------------
|
| +// Defaults for layout properties, which are not stored in the browser theme
|
| +// pack.
|
| +
|
| +// The edge graphics have some built-in spacing/shadowing, so we have to adjust
|
| +// our spacing to make it match.
|
| +const int kToolbarViewLeftEdgeSpacing = 3;
|
| +const int kToolbarViewRightEdgeSpacing = 2;
|
| +
|
| +// Ash doesn't use a rounded content area and its top edge has an extra shadow.
|
| +const int kToolbarViewContentShadowHeightAsh = 2;
|
| +
|
| +// Non-ash uses a rounded content area with no shadow in the assets.
|
| +const int kToolbarViewContentShadowHeight = 0;
|
| +
|
| +#if defined(ENABLE_TOPCHROME_MD)
|
| +const int kToolbarViewLeftEdgeSpacingMD = 4;
|
| +const int kToolbarViewLeftEdgeSpacingMDHybrid = 8;
|
| +
|
| +const int kToolbarViewRightEdgeSpacingMD = 4;
|
| +const int kToolbarViewRightEdgeSpacingMDHybrid = 8;
|
| +
|
| +const int kToolbarViewContentShadowHeightAshMD = 0;
|
| +const int kToolbarViewContentShadowHeightAshMDHybrid = 0;
|
| +
|
| +const int kToolbarViewContentShadowHeightMD = 0;
|
| +const int kToolbarViewContentShadowHeightMDHybrid = 0;
|
| +#endif
|
| +
|
| +// ----------------------------------------------------------------------------
|
|
|
| // Strings used in alignment properties.
|
| const char kAlignmentCenter[] = "center";
|
| @@ -135,6 +165,62 @@ SkColor TintForUnderline(SkColor input) {
|
| return SkColorSetA(input, SkColorGetA(input) / 3);
|
| }
|
|
|
| +int GetDefaultDisplayPropertyInternal(int id) {
|
| + switch (id) {
|
| + case ThemeProperties::NTP_BACKGROUND_ALIGNMENT:
|
| + return kDefaultDisplayPropertyNTPAlignment;
|
| + case ThemeProperties::NTP_BACKGROUND_TILING:
|
| + return kDefaultDisplayPropertyNTPTiling;
|
| + case ThemeProperties::NTP_LOGO_ALTERNATE:
|
| + return kDefaultDisplayPropertyNTPAlternateLogo;
|
| + case ThemeProperties::PROPERTY_TOOLBAR_VIEW_LEFT_EDGE_SPACING:
|
| + return kToolbarViewLeftEdgeSpacing;
|
| + case ThemeProperties::PROPERTY_TOOLBAR_VIEW_RIGHT_EDGE_SPACING:
|
| + return kToolbarViewRightEdgeSpacing;
|
| + case ThemeProperties::PROPERTY_TOOLBAR_VIEW_CONTENT_SHADOW_HEIGHT_ASH:
|
| + return kToolbarViewContentShadowHeightAsh;
|
| + case ThemeProperties::PROPERTY_TOOLBAR_VIEW_CONTENT_SHADOW_HEIGHT:
|
| + return kToolbarViewContentShadowHeight;
|
| + }
|
| +
|
| + return -1;
|
| +}
|
| +
|
| +#if defined(ENABLE_TOPCHROME_MD)
|
| +int GetMaterialDefaultDisplayProperty(int id) {
|
| + switch (id) {
|
| + case ThemeProperties::PROPERTY_TOOLBAR_VIEW_LEFT_EDGE_SPACING:
|
| + return kToolbarViewLeftEdgeSpacingMD;
|
| + case ThemeProperties::PROPERTY_TOOLBAR_VIEW_RIGHT_EDGE_SPACING:
|
| + return kToolbarViewRightEdgeSpacingMD;
|
| + case ThemeProperties::PROPERTY_TOOLBAR_VIEW_CONTENT_SHADOW_HEIGHT_ASH:
|
| + return kToolbarViewContentShadowHeightAshMD;
|
| + case ThemeProperties::PROPERTY_TOOLBAR_VIEW_CONTENT_SHADOW_HEIGHT:
|
| + return kToolbarViewContentShadowHeightMD;
|
| + default:
|
| + return GetDefaultDisplayPropertyInternal(id);
|
| + }
|
| +
|
| + return -1;
|
| +}
|
| +
|
| +int GetMaterialHybridDefaultDisplayProperty(int id) {
|
| + switch (id) {
|
| + case ThemeProperties::PROPERTY_TOOLBAR_VIEW_LEFT_EDGE_SPACING:
|
| + return kToolbarViewLeftEdgeSpacingMDHybrid;
|
| + case ThemeProperties::PROPERTY_TOOLBAR_VIEW_RIGHT_EDGE_SPACING:
|
| + return kToolbarViewRightEdgeSpacingMDHybrid;
|
| + case ThemeProperties::PROPERTY_TOOLBAR_VIEW_CONTENT_SHADOW_HEIGHT_ASH:
|
| + return kToolbarViewContentShadowHeightAshMDHybrid;
|
| + case ThemeProperties::PROPERTY_TOOLBAR_VIEW_CONTENT_SHADOW_HEIGHT:
|
| + return kToolbarViewContentShadowHeightMDHybrid;
|
| + default:
|
| + return GetMaterialDefaultDisplayProperty(id);
|
| + }
|
| + return -1;
|
| +}
|
| +#endif
|
| +
|
| } // namespace
|
|
|
| // static
|
| @@ -299,14 +385,15 @@ SkColor ThemeProperties::GetDefaultColor(int id) {
|
|
|
| // static
|
| int ThemeProperties::GetDefaultDisplayProperty(int id) {
|
| - switch (id) {
|
| - case NTP_BACKGROUND_ALIGNMENT:
|
| - return kDefaultDisplayPropertyNTPAlignment;
|
| - case NTP_BACKGROUND_TILING:
|
| - return kDefaultDisplayPropertyNTPTiling;
|
| - case NTP_LOGO_ALTERNATE:
|
| - return kDefaultDisplayPropertyNTPAlternateLogo;
|
| +#if defined(ENABLE_TOPCHROME_MD)
|
| + switch (ui::MaterialDesignController::GetMode()) {
|
| + case (ui::MaterialDesignController::Mode::MATERIAL):
|
| + return GetMaterialDefaultDisplayProperty(id);
|
| + case (ui::MaterialDesignController::Mode::MATERIAL_HYBRID):
|
| + return GetMaterialHybridDefaultDisplayProperty(id);
|
| + case (ui::MaterialDesignController::Mode::NON_MATERIAL):
|
| + return GetDefaultDisplayPropertyInternal(id);
|
| }
|
| -
|
| - return -1;
|
| +#endif
|
| + return GetDefaultDisplayPropertyInternal(id);
|
| }
|
|
|