Index: ui/views/style/platform_style.cc |
diff --git a/ui/views/style/platform_style.cc b/ui/views/style/platform_style.cc |
index c2179df3f4a5f0209bc28227ece5941e9639471a..205308436f5123210af5c9fd3a46a4702cc21bc0 100644 |
--- a/ui/views/style/platform_style.cc |
+++ b/ui/views/style/platform_style.cc |
@@ -4,17 +4,40 @@ |
#include "ui/views/style/platform_style.h" |
+#include "ui/base/resource/material_design/material_design_controller.h" |
#include "ui/views/controls/button/label_button.h" |
#include "ui/views/controls/button/label_button_border.h" |
namespace views { |
-#if !defined(OS_MACOSX) |
+#if defined(OS_CHROMEOS) |
// static |
scoped_ptr<LabelButtonBorder> PlatformStyle::CreateLabelButtonBorder( |
Button::ButtonStyle style) { |
+ // The material design spec for Chrome OS includes no visual effects for |
+ // button states, so a non-asset border with insets is used. |
+ if (ui::MaterialDesignController::IsModeMaterial() && |
+ style == Button::STYLE_TEXTBUTTON) { |
Peter Kasting
2015/08/07 15:36:16
Nit: Reverse this condition so you can do the simp
jonross
2015/08/07 15:57:15
Done.
|
+ scoped_ptr<LabelButtonBorder> border(new views::LabelButtonBorder()); |
+ border->set_insets(views::LabelButtonAssetBorder::GetDefaultInsetsForStyle( |
+ Button::STYLE_TEXTBUTTON)); |
+ return border.Pass(); |
+ } |
return make_scoped_ptr(new LabelButtonAssetBorder(style)); |
} |
+#elif !defined(OS_MACOSX) |
+// static |
+scoped_ptr<LabelButtonBorder> PlatformStyle::CreateLabelButtonBorder( |
+ Button::ButtonStyle style) { |
+ scoped_ptr<LabelButtonAssetBorder> border(new LabelButtonAssetBorder(style)); |
+ // The material design spec does not include a visual effect for the |
+ // STATE_HOVERED button state so we have to remove the default one added by |
+ // LabelButtonAssetBorder. |
+ if (ui::MaterialDesignController::IsModeMaterial()) { |
Peter Kasting
2015/08/07 15:36:16
No {}
jonross
2015/08/07 15:57:15
Done.
|
+ border->SetPainter(false, Button::STATE_HOVERED, nullptr); |
+ } |
+ return border.Pass(); |
+} |
#endif |
#if !defined(OS_LINUX) || defined(OS_CHROMEOS) |