Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3171)

Unified Diff: chrome/browser/themes/theme_properties.cc

Issue 1164333002: ToolbarView MaterialDesign in ThemeProvider (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
Peter Kasting 2015/07/03 20:13:08 Nit: No comma
jonross 2015/07/06 18:36:20 Done.
+// 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;
Peter Kasting 2015/07/03 20:13:08 This file can be simpler and easier to maintain.
jonross 2015/07/06 18:36:20 Great idea! I've switched this around to use the
+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) {
Peter Kasting 2015/07/03 20:13:08 I'm not sure why the word "internal" is used here
jonross 2015/07/06 18:36:20 These methods have been removed.
+ 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);
}

Powered by Google App Engine
This is Rietveld 408576698