Home | History | Annotate | Download | only in tray
      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 #ifndef ASH_SYSTEM_TRAY_TRAY_IMAGE_ITEM_H_
      6 #define ASH_SYSTEM_TRAY_TRAY_IMAGE_ITEM_H_
      7 
      8 #include "ash/system/tray/system_tray_item.h"
      9 
     10 namespace views {
     11 class ImageView;
     12 }
     13 
     14 namespace ash {
     15 namespace internal {
     16 
     17 class TrayItemView;
     18 
     19 class TrayImageItem : public SystemTrayItem {
     20  public:
     21   TrayImageItem(SystemTray* system_tray, int resource_id);
     22   virtual ~TrayImageItem();
     23 
     24   views::View* tray_view();
     25 
     26   // Changes the icon of the tray-view to the specified resource.
     27   void SetImageFromResourceId(int resource_id);
     28 
     29  protected:
     30   virtual bool GetInitialVisibility() = 0;
     31 
     32   // Overridden from SystemTrayItem.
     33   virtual views::View* CreateTrayView(user::LoginStatus status) OVERRIDE;
     34   virtual views::View* CreateDefaultView(user::LoginStatus status) OVERRIDE;
     35   virtual views::View* CreateDetailedView(user::LoginStatus status) OVERRIDE;
     36   virtual void DestroyTrayView() OVERRIDE;
     37   virtual void DestroyDefaultView() OVERRIDE;
     38   virtual void DestroyDetailedView() OVERRIDE;
     39   virtual void UpdateAfterLoginStatusChange(user::LoginStatus status) OVERRIDE;
     40   virtual void UpdateAfterShelfAlignmentChange(
     41       ShelfAlignment alignment) OVERRIDE;
     42 
     43  private:
     44   // Set the alignment of the image depending on the shelf alignment.
     45   void SetItemAlignment(ShelfAlignment alignment);
     46 
     47   int resource_id_;
     48   TrayItemView* tray_view_;
     49 
     50   DISALLOW_COPY_AND_ASSIGN(TrayImageItem);
     51 };
     52 
     53 }  // namespace internal
     54 }  // namespace ash
     55 
     56 #endif  // ASH_SYSTEM_TRAY_TRAY_IMAGE_ITEM_H_
     57