tray_image_item.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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_views.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
14namespace ash {
15namespace internal {
16
17TrayImageItem::TrayImageItem(SystemTray* system_tray, int resource_id)
18    : SystemTrayItem(system_tray),
19      resource_id_(resource_id),
20      tray_view_(NULL) {
21}
22
23TrayImageItem::~TrayImageItem() {}
24
25views::View* TrayImageItem::tray_view() {
26  return tray_view_;
27}
28
29void 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
37views::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
47views::View* TrayImageItem::CreateDefaultView(user::LoginStatus status) {
48  return NULL;
49}
50
51views::View* TrayImageItem::CreateDetailedView(user::LoginStatus status) {
52  return NULL;
53}
54
55void TrayImageItem::UpdateAfterLoginStatusChange(user::LoginStatus status) {
56}
57
58void TrayImageItem::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) {
59  SetTrayImageItemBorder(tray_view_, alignment);
60}
61
62void TrayImageItem::DestroyTrayView() {
63  tray_view_ = NULL;
64}
65
66void TrayImageItem::DestroyDefaultView() {
67}
68
69void TrayImageItem::DestroyDetailedView() {
70}
71
72}  // namespace internal
73}  // namespace ash
74