Chromium Code Reviews| 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..1992ad367bf4a90fb34c2421f41a5422ad7e2438 100644 |
| --- a/chrome/browser/themes/theme_properties.cc |
| +++ b/chrome/browser/themes/theme_properties.cc |
| @@ -4,11 +4,13 @@ |
| #include "chrome/browser/themes/theme_properties.h" |
| +#include "base/command_line.h" |
|
pkotwicz
2015/07/03 15:39:22
I don't think this include is necessary
jonross
2015/07/03 18:26:49
Done.
|
| #include "base/memory/scoped_ptr.h" |
| #include "base/strings/string_split.h" |
| #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 +98,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 +166,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 +386,18 @@ 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); |
| + default: |
|
pkotwicz
2015/07/03 15:39:22
Why the default statement?
jonross
2015/07/03 17:09:31
I've had some builds throw compilation errors if I
pkotwicz
2015/07/03 17:34:01
This could have to do with C++11 enum classes. We
jonross
2015/07/03 18:26:49
Done.
|
| + NOTREACHED(); |
| + break; |
| } |
| - |
| - return -1; |
| +#endif |
| + return GetDefaultDisplayPropertyInternal(id); |
| } |