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 3 // found in the LICENSE file. 4 5 #include "ash/system/tray/tray_image_item.h" 6 7 #include "ash/system/tray/tray_item_view.h" 8 #include "ash/system/tray/tray_utils.h" 9 #include "ui/base/resource/resource_bundle.h" 10 #include "ui/gfx/image/image.h" 11 #include "ui/views/controls/image_view.h" 12 #include "ui/views/layout/fill_layout.h" 13 14 namespace ash { 15 namespace internal { 16 17 TrayImageItem::TrayImageItem(SystemTray* system_tray, int resource_id) 18 : SystemTrayItem(system_tray), 19 resource_id_(resource_id), 20 tray_view_(NULL) { 21 } 22 23 TrayImageItem::~TrayImageItem() {} 24 25 views::View* TrayImageItem::tray_view() { 26 return tray_view_; 27 } 28 29 void TrayImageItem::SetImageFromResourceId(int resource_id) { 30 resource_id_ = resource_id; 31 if (!tray_view_) 32 return; 33 tray_view_->image_view()->SetImage(ui::ResourceBundle::GetSharedInstance(). 34 GetImageNamed(resource_id_).ToImageSkia()); 35 } 36 37 views::View* TrayImageItem::CreateTrayView(user::LoginStatus status) { 38 CHECK(tray_view_ == NULL); 39 tray_view_ = new TrayItemView(this); 40 tray_view_->CreateImageView(); 41 tray_view_->image_view()->SetImage(ui::ResourceBundle::GetSharedInstance(). 42 GetImageNamed(resource_id_).ToImageSkia()); 43 tray_view_->SetVisible(GetInitialVisibility()); 44 return tray_view_; 45 } 46 47 views::View* TrayImageItem::CreateDefaultView(user::LoginStatus status) { 48 return NULL; 49 } 50 51 views::View* TrayImageItem::CreateDetailedView(user::LoginStatus status) { 52 return NULL; 53 } 54 55 void TrayImageItem::UpdateAfterLoginStatusChange(user::LoginStatus status) { 56 } 57 58 void TrayImageItem::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) { 59 SetTrayImageItemBorder(tray_view_, alignment); 60 } 61 62 void TrayImageItem::DestroyTrayView() { 63 tray_view_ = NULL; 64 } 65 66 void TrayImageItem::DestroyDefaultView() { 67 } 68 69 void TrayImageItem::DestroyDetailedView() { 70 } 71 72 } // namespace internal 73 } // namespace ash 74