| 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 |