Commit b8460344 authored by jonross's avatar jonross Committed by Commit bot

Update LabelButtons in the Toolbar for Material Design

Update PlatformStyle to return different borders for Material Design
LabelButtons. Removing asset borders on Chrome OS, and hover effects on Windows
and Linux.

Updated ToolbarButton to remove its local implementation of this behaviour.

Updated WrenchToolbarButton to use a image asset for Material Design, and to not
initialize WrenchIconPainter.

TEST=manual testing on device
BUG=505801, 495654

Review URL: https://codereview.chromium.org/1270343004

Cr-Commit-Position: refs/heads/master@{#342414}
parent f7982258
...@@ -161,24 +161,8 @@ void ToolbarButton::GetAccessibleState(ui::AXViewState* state) { ...@@ -161,24 +161,8 @@ void ToolbarButton::GetAccessibleState(ui::AXViewState* state) {
scoped_ptr<views::LabelButtonBorder> scoped_ptr<views::LabelButtonBorder>
ToolbarButton::CreateDefaultBorder() const { ToolbarButton::CreateDefaultBorder() const {
scoped_ptr<views::LabelButtonBorder> border; scoped_ptr<views::LabelButtonBorder> border =
if (ui::MaterialDesignController::IsModeMaterial()) { views::LabelButton::CreateDefaultBorder();
#if defined(OS_CHROMEOS)
border.reset(new views::LabelButtonBorder());
border->set_insets(views::LabelButtonAssetBorder::GetDefaultInsetsForStyle(
Button::STYLE_TEXTBUTTON));
#else
scoped_ptr<views::LabelButtonAssetBorder> asset_border(
new views::LabelButtonAssetBorder(Button::STYLE_TEXTBUTTON));
// 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.
asset_border->SetPainter(false, Button::STATE_HOVERED, nullptr);
border = asset_border.Pass();
#endif
} else {
border.reset(new views::LabelButtonAssetBorder(Button::STYLE_TEXTBUTTON));
}
ui::ThemeProvider* provider = GetThemeProvider(); ui::ThemeProvider* provider = GetThemeProvider();
if (provider && provider->UsingSystemTheme()) { if (provider && provider->UsingSystemTheme()) {
......
...@@ -813,6 +813,11 @@ void ToolbarView::LoadImages() { ...@@ -813,6 +813,11 @@ void ToolbarView::LoadImages() {
home_->SetImage(views::Button::STATE_NORMAL, home_->SetImage(views::Button::STATE_NORMAL,
*(tp->GetImageSkiaNamed(IDR_HOME))); *(tp->GetImageSkiaNamed(IDR_HOME)));
if (ui::MaterialDesignController::IsModeMaterial()) {
app_menu_->SetImage(views::Button::STATE_NORMAL,
*(tp->GetImageSkiaNamed(IDR_TOOLS)));
}
} }
void ToolbarView::ShowCriticalNotification() { void ToolbarView::ShowCriticalNotification() {
......
...@@ -8,11 +8,13 @@ ...@@ -8,11 +8,13 @@
#include "base/single_thread_task_runner.h" #include "base/single_thread_task_runner.h"
#include "base/thread_task_runner_handle.h" #include "base/thread_task_runner_handle.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "chrome/browser/themes/theme_properties.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/views/extensions/browser_action_drag_data.h" #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h"
#include "chrome/browser/ui/views/toolbar/toolbar_view.h" #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
#include "extensions/common/feature_switch.h" #include "extensions/common/feature_switch.h"
#include "grit/theme_resources.h" #include "grit/theme_resources.h"
#include "ui/base/resource/material_design/material_design_controller.h"
#include "ui/base/resource/resource_bundle.h" #include "ui/base/resource/resource_bundle.h"
#include "ui/base/theme_provider.h" #include "ui/base/theme_provider.h"
#include "ui/views/controls/button/label_button_border.h" #include "ui/views/controls/button/label_button_border.h"
...@@ -24,11 +26,14 @@ bool WrenchToolbarButton::g_open_wrench_immediately_for_testing = false; ...@@ -24,11 +26,14 @@ bool WrenchToolbarButton::g_open_wrench_immediately_for_testing = false;
WrenchToolbarButton::WrenchToolbarButton(ToolbarView* toolbar_view) WrenchToolbarButton::WrenchToolbarButton(ToolbarView* toolbar_view)
: views::MenuButton(NULL, base::string16(), toolbar_view, false), : views::MenuButton(NULL, base::string16(), toolbar_view, false),
wrench_icon_painter_(new WrenchIconPainter(this)), wrench_icon_painter_(nullptr),
toolbar_view_(toolbar_view), toolbar_view_(toolbar_view),
allow_extension_dragging_( allow_extension_dragging_(
extensions::FeatureSwitch::extension_action_redesign()->IsEnabled()), extensions::FeatureSwitch::extension_action_redesign()
->IsEnabled()),
weak_factory_(this) { weak_factory_(this) {
if (!ui::MaterialDesignController::IsModeMaterial())
wrench_icon_painter_.reset(new WrenchIconPainter(this));
} }
WrenchToolbarButton::~WrenchToolbarButton() { WrenchToolbarButton::~WrenchToolbarButton() {
...@@ -36,11 +41,25 @@ WrenchToolbarButton::~WrenchToolbarButton() { ...@@ -36,11 +41,25 @@ WrenchToolbarButton::~WrenchToolbarButton() {
void WrenchToolbarButton::SetSeverity(WrenchIconPainter::Severity severity, void WrenchToolbarButton::SetSeverity(WrenchIconPainter::Severity severity,
bool animate) { bool animate) {
if (ui::MaterialDesignController::IsModeMaterial())
return;
wrench_icon_painter_->SetSeverity(severity, animate); wrench_icon_painter_->SetSeverity(severity, animate);
SchedulePaint(); SchedulePaint();
} }
gfx::Size WrenchToolbarButton::GetPreferredSize() const { gfx::Size WrenchToolbarButton::GetPreferredSize() const {
if (ui::MaterialDesignController::IsModeMaterial()) {
gfx::Size size(image()->GetPreferredSize());
ui::ThemeProvider* provider = GetThemeProvider();
if (provider && provider->UsingSystemTheme()) {
int inset = provider->GetDisplayProperty(
ThemeProperties::PROPERTY_TOOLBAR_BUTTON_BORDER_INSET);
size.Enlarge(2 * inset, 2 * inset);
}
return size;
}
return ResourceBundle::GetSharedInstance(). return ResourceBundle::GetSharedInstance().
GetImageSkiaNamed(IDR_TOOLBAR_BEZEL_HOVER)->size(); GetImageSkiaNamed(IDR_TOOLBAR_BEZEL_HOVER)->size();
} }
...@@ -101,6 +120,8 @@ int WrenchToolbarButton::OnPerformDrop(const ui::DropTargetEvent& event) { ...@@ -101,6 +120,8 @@ int WrenchToolbarButton::OnPerformDrop(const ui::DropTargetEvent& event) {
void WrenchToolbarButton::OnPaint(gfx::Canvas* canvas) { void WrenchToolbarButton::OnPaint(gfx::Canvas* canvas) {
views::MenuButton::OnPaint(canvas); views::MenuButton::OnPaint(canvas);
if (ui::MaterialDesignController::IsModeMaterial())
return;
wrench_icon_painter_->Paint(canvas, wrench_icon_painter_->Paint(canvas,
GetThemeProvider(), GetThemeProvider(),
gfx::Rect(size()), gfx::Rect(size()),
......
...@@ -4,16 +4,39 @@ ...@@ -4,16 +4,39 @@
#include "ui/views/style/platform_style.h" #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.h"
#include "ui/views/controls/button/label_button_border.h" #include "ui/views/controls/button/label_button_border.h"
namespace views { namespace views {
#if !defined(OS_MACOSX) #if defined(OS_CHROMEOS)
// static // static
scoped_ptr<LabelButtonBorder> PlatformStyle::CreateLabelButtonBorder( scoped_ptr<LabelButtonBorder> PlatformStyle::CreateLabelButtonBorder(
Button::ButtonStyle style) { Button::ButtonStyle style) {
return make_scoped_ptr(new LabelButtonAssetBorder(style)); if (!ui::MaterialDesignController::IsModeMaterial() ||
style != Button::STYLE_TEXTBUTTON) {
return make_scoped_ptr(new LabelButtonAssetBorder(style));
}
// The material design spec for Chrome OS includes no visual effects for
// button states, so a non-asset border with insets is used.
scoped_ptr<LabelButtonBorder> border(new views::LabelButtonBorder());
border->set_insets(views::LabelButtonAssetBorder::GetDefaultInsetsForStyle(
Button::STYLE_TEXTBUTTON));
return border.Pass();
}
#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())
border->SetPainter(false, Button::STATE_HOVERED, nullptr);
return border.Pass();
} }
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment