Home | History | Annotate | Download | only in ime
      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_IME_TRAY_IME_H_
      6 #define ASH_SYSTEM_IME_TRAY_IME_H_
      7 
      8 #include "ash/system/ime/ime_observer.h"
      9 #include "ash/system/tray/system_tray_item.h"
     10 
     11 namespace views {
     12 class Label;
     13 }
     14 
     15 namespace ash {
     16 struct IMEInfo;
     17 
     18 namespace tray {
     19 class IMEDefaultView;
     20 class IMEDetailedView;
     21 class IMENotificationView;
     22 }
     23 
     24 class TrayItemView;
     25 
     26 class TrayIME : public SystemTrayItem,
     27                 public IMEObserver {
     28  public:
     29   explicit TrayIME(SystemTray* system_tray);
     30   virtual ~TrayIME();
     31 
     32  private:
     33   void UpdateTrayLabel(const IMEInfo& info, size_t count);
     34 
     35   // Overridden from SystemTrayItem.
     36   virtual views::View* CreateTrayView(user::LoginStatus status) OVERRIDE;
     37   virtual views::View* CreateDefaultView(user::LoginStatus status) OVERRIDE;
     38   virtual views::View* CreateDetailedView(user::LoginStatus status) OVERRIDE;
     39   virtual void DestroyTrayView() OVERRIDE;
     40   virtual void DestroyDefaultView() OVERRIDE;
     41   virtual void DestroyDetailedView() OVERRIDE;
     42   virtual void UpdateAfterLoginStatusChange(user::LoginStatus status) OVERRIDE;
     43   virtual void UpdateAfterShelfAlignmentChange(
     44       ShelfAlignment alignment) OVERRIDE;
     45 
     46   // Overridden from IMEObserver.
     47   virtual void OnIMERefresh() OVERRIDE;
     48 
     49   TrayItemView* tray_label_;
     50   tray::IMEDefaultView* default_;
     51   tray::IMEDetailedView* detailed_;
     52 
     53   DISALLOW_COPY_AND_ASSIGN(TrayIME);
     54 };
     55 
     56 }  // namespace ash
     57 
     58 #endif  // ASH_SYSTEM_IME_TRAY_IME_H_
     59