Chromium Code Reviews| Index: ash/common/system/cast/tray_cast.cc |
| diff --git a/ash/common/system/cast/tray_cast.cc b/ash/common/system/cast/tray_cast.cc |
| index eab2437ea83f67c8295f4f786405fc65dd1566ce..1b62f7ac05e56945c14d6136865696e0c34dd453 100644 |
| --- a/ash/common/system/cast/tray_cast.cc |
| +++ b/ash/common/system/cast/tray_cast.cc |
| @@ -4,6 +4,7 @@ |
| #include "ash/common/system/cast/tray_cast.h" |
| +#include "ash/common/material_design/material_design_controller.h" |
| #include "ash/common/session/session_state_delegate.h" |
| #include "ash/common/shelf/shelf_types.h" |
| #include "ash/common/shelf/wm_shelf_util.h" |
| @@ -27,7 +28,9 @@ |
| #include "ui/base/l10n/l10n_util.h" |
| #include "ui/base/resource/resource_bundle.h" |
| #include "ui/gfx/image/image.h" |
| +#include "ui/gfx/paint_vector_icon.h" |
| #include "ui/gfx/text_elider.h" |
| +#include "ui/gfx/vector_icons_public.h" |
| #include "ui/views/controls/button/button.h" |
| #include "ui/views/controls/image_view.h" |
| #include "ui/views/controls/label.h" |
| @@ -57,6 +60,14 @@ base::string16 ElideString(const base::string16& text) { |
| return elided; |
| } |
| +// Returns a vectorized version of the Cast icon. The icon's interior region is |
| +// filled in if |is_casting| is true. |
| +gfx::ImageSkia GetCastIconForSystemMenu(bool is_casting) { |
| + return gfx::CreateVectorIcon( |
| + gfx::VectorIconId::SYSTEM_MENU_CAST, |
| + is_casting ? kMenuIconColor : SK_ColorTRANSPARENT); |
| +} |
| + |
| } // namespace |
| namespace tray { |
| @@ -80,7 +91,13 @@ CastSelectDefaultView::CastSelectDefaultView(SystemTrayItem* owner, |
| ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
| // Update the image and label. |
| - SetImage(rb.GetImageNamed(IDR_AURA_UBER_TRAY_CAST).ToImageSkia()); |
| + if (MaterialDesignController::IsSystemTrayMenuMaterial()) { |
| + gfx::ImageSkia image_md = GetCastIconForSystemMenu(false); |
| + SetImage(&image_md); |
|
Evan Stade
2016/08/10 22:07:56
can you make TrayItemMore support SetImage with a
tdanderson
2016/08/11 16:31:22
Done.
|
| + } else { |
| + SetImage(rb.GetImageNamed(IDR_AURA_UBER_TRAY_CAST).ToImageSkia()); |
| + } |
| + |
| base::string16 label = |
| rb.GetLocalizedString(IDS_ASH_STATUS_TRAY_CAST_DESKTOP); |
| SetLabel(label); |
| @@ -136,8 +153,12 @@ CastCastView::CastCastView() { |
| kTrayPopupPaddingHorizontal, 0, |
| kTrayPopupPaddingBetweenItems)); |
| icon_ = new FixedSizedImageView(0, GetTrayConstant(TRAY_POPUP_ITEM_HEIGHT)); |
| - icon_->SetImage( |
| - bundle.GetImageNamed(IDR_AURA_UBER_TRAY_CAST_ENABLED).ToImageSkia()); |
| + if (MaterialDesignController::IsSystemTrayMenuMaterial()) { |
| + icon_->SetImage(GetCastIconForSystemMenu(true)); |
| + } else { |
| + icon_->SetImage( |
| + bundle.GetImageNamed(IDR_AURA_UBER_TRAY_CAST_ENABLED).ToImageSkia()); |
| + } |
| AddChildView(icon_); |
| // The label which describes both what we are casting (ie, the desktop) and |
| @@ -342,10 +363,14 @@ class CastTrayView : public TrayItemView { |
| CastTrayView::CastTrayView(SystemTrayItem* tray_item) |
| : TrayItemView(tray_item) { |
| CreateImageView(); |
| - |
| - image_view()->SetImage(ui::ResourceBundle::GetSharedInstance() |
| - .GetImageNamed(IDR_AURA_UBER_TRAY_SCREENSHARE) |
| - .ToImageSkia()); |
| + if (MaterialDesignController::UseMaterialDesignSystemIcons()) { |
| + image_view()->SetImage(gfx::CreateVectorIcon( |
| + gfx::VectorIconId::SYSTEM_TRAY_CAST, kTrayIconColor)); |
| + } else { |
| + image_view()->SetImage(ui::ResourceBundle::GetSharedInstance() |
| + .GetImageNamed(IDR_AURA_UBER_TRAY_SCREENSHARE) |
| + .ToImageSkia()); |
| + } |
| } |
| CastTrayView::~CastTrayView() {} |