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

Unified Diff: ash/common/system/tray/tray_item_more.cc

Issue 2244003002: Materialized font style for TrayItemMore type system tray rows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Improved the TrayPopupItemStyle concept. Created 4 years, 3 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: ash/common/system/tray/tray_item_more.cc
diff --git a/ash/common/system/tray/tray_item_more.cc b/ash/common/system/tray/tray_item_more.cc
index d9b8244db6f8c4e154b69976ac10f34f6b6a8f58..d9cc7b1d73957eb07a7ca4d98f0fa8c50af0f0ce 100644
--- a/ash/common/system/tray/tray_item_more.cc
+++ b/ash/common/system/tray/tray_item_more.cc
@@ -14,6 +14,7 @@
#include "ui/gfx/image/image.h"
#include "ui/gfx/paint_vector_icon.h"
#include "ui/gfx/vector_icons_public.h"
+#include "ui/native_theme/native_theme.h"
#include "ui/views/controls/image_view.h"
#include "ui/views/controls/label.h"
#include "ui/views/layout/box_layout.h"
@@ -23,9 +24,11 @@ namespace ash {
TrayItemMore::TrayItemMore(SystemTrayItem* owner, bool show_more)
: owner_(owner),
show_more_(show_more),
- icon_(NULL),
- label_(NULL),
- more_(NULL) {
+ icon_(nullptr),
+ label_(nullptr),
+ more_(nullptr),
+ style_(new TrayPopupItemStyle(GetNativeTheme(),
+ TrayPopupItemStyle::FontStyle::TITLE)) {
SetLayoutManager(new views::BoxLayout(views::BoxLayout::kHorizontal,
kTrayPopupPaddingHorizontal, 0,
kTrayPopupPaddingBetweenItems));
@@ -37,22 +40,12 @@ TrayItemMore::TrayItemMore(SystemTrayItem* owner, bool show_more)
label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
AddChildView(label_);
- if (show_more) {
- more_ = new views::ImageView;
- more_->EnableCanvasFlippingForRTLUI(true);
- if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
- more_->SetImage(gfx::CreateVectorIcon(
- gfx::VectorIconId::SYSTEM_MENU_ARROW_RIGHT, kMenuIconColor));
- } else {
- more_->SetImage(ui::ResourceBundle::GetSharedInstance()
- .GetImageNamed(IDR_AURA_UBER_TRAY_MORE)
- .ToImageSkia());
- }
- AddChildView(more_);
- }
+ UpdateChildren();
}
-TrayItemMore::~TrayItemMore() {}
+TrayItemMore::~TrayItemMore() {
+ style_->RemoveObserver(this);
+}
void TrayItemMore::SetLabel(const base::string16& label) {
label_->SetText(label);
@@ -69,10 +62,43 @@ void TrayItemMore::SetAccessibleName(const base::string16& name) {
accessible_name_ = name;
}
-void TrayItemMore::ReplaceIcon(views::View* view) {
- delete icon_;
- icon_ = NULL;
- AddChildViewAt(view, 0);
+void TrayItemMore::SetStyle(std::unique_ptr<TrayPopupItemStyle> style) {
+ DCHECK(style);
+ style_->RemoveObserver(this);
+ style_ = std::move(style);
+ style_->AddObserver(this);
+ OnTrayPopupItemStyleChanged();
+}
+
+void TrayItemMore::OnTrayPopupItemStyleChanged() {
+ SetEnabled(style_->color_style() != TrayPopupItemStyle::ColorStyle::DISABLED);
+ UpdateChildren();
+}
+
+void TrayItemMore::UpdateChildren() {
+ if (more_) {
+ delete more_;
+ more_ = nullptr;
+ }
+
+ if (MaterialDesignController::IsSystemTrayMenuMaterial())
+ style()->SetupLabel(label_);
tdanderson 2016/09/08 16:11:02 I wonder if it would be better to invoke this when
bruthig 2016/09/12 13:45:34 I'm not sure I follow 100%. The style will need t
tdanderson 2016/09/12 18:51:46 Ah, disregard my comment then - in my first skim t
+
+ if (show_more_) {
+ more_ = new views::ImageView;
+ more_->EnableCanvasFlippingForRTLUI(true);
+
+ if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
+ more_->SetImage(
+ gfx::CreateVectorIcon(gfx::VectorIconId::SYSTEM_MENU_ARROW_RIGHT,
+ style()->GetForegroundColor()));
+ } else {
+ more_->SetImage(ui::ResourceBundle::GetSharedInstance()
+ .GetImageNamed(IDR_AURA_UBER_TRAY_MORE)
+ .ToImageSkia());
+ }
+ AddChildView(more_);
+ }
}
bool TrayItemMore::PerformAction(const ui::Event& event) {
@@ -112,4 +138,8 @@ void TrayItemMore::GetAccessibleState(ui::AXViewState* state) {
state->name = accessible_name_;
}
+void TrayItemMore::OnThemeChanged() {
+ style_->SetTheme(GetNativeTheme());
+}
+
} // namespace ash

Powered by Google App Engine
This is Rietveld 408576698