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

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..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);
}

Powered by Google App Engine
This is Rietveld 408576698