OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ash/common/system/tray/tray_image_item.h" | 5 #include "ash/common/system/tray/tray_image_item.h" |
6 | 6 |
7 #include "ash/common/material_design/material_design_controller.h" | 7 #include "ash/common/material_design/material_design_controller.h" |
8 #include "ash/common/shelf/wm_shelf_util.h" | 8 #include "ash/common/shelf/wm_shelf_util.h" |
9 #include "ash/common/system/tray/system_tray.h" | 9 #include "ash/common/system/tray/system_tray.h" |
10 #include "ash/common/system/tray/tray_constants.h" | 10 #include "ash/common/system/tray/tray_constants.h" |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 return vector_id; | 52 return vector_id; |
53 } | 53 } |
54 | 54 |
55 } // namespace | 55 } // namespace |
56 | 56 |
57 TrayImageItem::TrayImageItem(SystemTray* system_tray, | 57 TrayImageItem::TrayImageItem(SystemTray* system_tray, |
58 int resource_id, | 58 int resource_id, |
59 UmaType uma_type) | 59 UmaType uma_type) |
60 : SystemTrayItem(system_tray, uma_type), | 60 : SystemTrayItem(system_tray, uma_type), |
61 resource_id_(resource_id), | 61 resource_id_(resource_id), |
| 62 icon_color_(kTrayIconColor), |
62 tray_view_(nullptr) {} | 63 tray_view_(nullptr) {} |
63 | 64 |
64 TrayImageItem::~TrayImageItem() {} | 65 TrayImageItem::~TrayImageItem() {} |
65 | 66 |
66 views::View* TrayImageItem::tray_view() { | 67 views::View* TrayImageItem::tray_view() { |
67 return tray_view_; | 68 return tray_view_; |
68 } | 69 } |
69 | 70 |
70 views::View* TrayImageItem::CreateTrayView(LoginStatus status) { | 71 views::View* TrayImageItem::CreateTrayView(LoginStatus status) { |
71 CHECK(!tray_view_); | 72 CHECK(!tray_view_); |
72 tray_view_ = new TrayItemView(this); | 73 tray_view_ = new TrayItemView(this); |
73 tray_view_->CreateImageView(); | 74 tray_view_->CreateImageView(); |
74 | 75 UpdateImageOnImageView(); |
75 if (MaterialDesignController::UseMaterialDesignSystemIcons()) { | |
76 tray_view_->image_view()->SetImage(CreateVectorIcon( | |
77 ResourceIdToVectorIconId(resource_id_), kTrayIconSize, kTrayIconColor)); | |
78 } else { | |
79 tray_view_->image_view()->SetImage(ui::ResourceBundle::GetSharedInstance() | |
80 .GetImageNamed(resource_id_) | |
81 .ToImageSkia()); | |
82 } | |
83 | |
84 tray_view_->SetVisible(GetInitialVisibility()); | 76 tray_view_->SetVisible(GetInitialVisibility()); |
85 SetItemAlignment(system_tray()->shelf_alignment()); | 77 SetItemAlignment(system_tray()->shelf_alignment()); |
86 return tray_view_; | 78 return tray_view_; |
87 } | 79 } |
88 | 80 |
89 views::View* TrayImageItem::CreateDefaultView(LoginStatus status) { | 81 views::View* TrayImageItem::CreateDefaultView(LoginStatus status) { |
90 return nullptr; | 82 return nullptr; |
91 } | 83 } |
92 | 84 |
93 views::View* TrayImageItem::CreateDetailedView(LoginStatus status) { | 85 views::View* TrayImageItem::CreateDetailedView(LoginStatus status) { |
94 return nullptr; | 86 return nullptr; |
95 } | 87 } |
96 | 88 |
97 void TrayImageItem::UpdateAfterLoginStatusChange(LoginStatus status) {} | 89 void TrayImageItem::UpdateAfterLoginStatusChange(LoginStatus status) {} |
98 | 90 |
99 void TrayImageItem::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) { | 91 void TrayImageItem::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) { |
100 SetTrayImageItemBorder(tray_view_, alignment); | 92 SetTrayImageItemBorder(tray_view_, alignment); |
101 SetItemAlignment(alignment); | 93 SetItemAlignment(alignment); |
102 } | 94 } |
103 | 95 |
104 void TrayImageItem::DestroyTrayView() { | 96 void TrayImageItem::DestroyTrayView() { |
105 tray_view_ = nullptr; | 97 tray_view_ = nullptr; |
106 } | 98 } |
107 | 99 |
108 void TrayImageItem::DestroyDefaultView() {} | 100 void TrayImageItem::DestroyDefaultView() {} |
109 | 101 |
110 void TrayImageItem::DestroyDetailedView() {} | 102 void TrayImageItem::DestroyDetailedView() {} |
111 | 103 |
112 // TODO(tdanderson): Consider moving or renaming this function, as it is only | 104 void TrayImageItem::SetIconColor(SkColor color) { |
113 // used by TrayUpdate to modify the update severity. See crbug.com/625692. | 105 icon_color_ = color; |
| 106 UpdateImageOnImageView(); |
| 107 } |
| 108 |
114 void TrayImageItem::SetImageFromResourceId(int resource_id) { | 109 void TrayImageItem::SetImageFromResourceId(int resource_id) { |
115 resource_id_ = resource_id; | 110 resource_id_ = resource_id; |
116 if (!tray_view_) | 111 UpdateImageOnImageView(); |
117 return; | |
118 tray_view_->image_view()->SetImage(ui::ResourceBundle::GetSharedInstance() | |
119 .GetImageNamed(resource_id_) | |
120 .ToImageSkia()); | |
121 } | 112 } |
122 | 113 |
123 void TrayImageItem::SetItemAlignment(ShelfAlignment alignment) { | 114 void TrayImageItem::SetItemAlignment(ShelfAlignment alignment) { |
124 // Center the item dependent on the orientation of the shelf. | 115 // Center the item dependent on the orientation of the shelf. |
125 views::BoxLayout::Orientation layout = IsHorizontalAlignment(alignment) | 116 views::BoxLayout::Orientation layout = IsHorizontalAlignment(alignment) |
126 ? views::BoxLayout::kHorizontal | 117 ? views::BoxLayout::kHorizontal |
127 : views::BoxLayout::kVertical; | 118 : views::BoxLayout::kVertical; |
128 tray_view_->SetLayoutManager(new views::BoxLayout(layout, 0, 0, 0)); | 119 tray_view_->SetLayoutManager(new views::BoxLayout(layout, 0, 0, 0)); |
129 tray_view_->Layout(); | 120 tray_view_->Layout(); |
130 } | 121 } |
131 | 122 |
| 123 void TrayImageItem::UpdateImageOnImageView() { |
| 124 if (!tray_view_) |
| 125 return; |
| 126 |
| 127 if (MaterialDesignController::UseMaterialDesignSystemIcons()) { |
| 128 tray_view_->image_view()->SetImage(gfx::CreateVectorIcon( |
| 129 ResourceIdToVectorIconId(resource_id_), kTrayIconSize, icon_color_)); |
| 130 } else { |
| 131 tray_view_->image_view()->SetImage(ui::ResourceBundle::GetSharedInstance() |
| 132 .GetImageNamed(resource_id_) |
| 133 .ToImageSkia()); |
| 134 } |
| 135 } |
| 136 |
132 } // namespace ash | 137 } // namespace ash |
OLD | NEW |