Home | History | Annotate | Download | only in chromeos
      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_CHROMEOS_TRAY_CAPS_LOCK_H_
      6 #define ASH_SYSTEM_CHROMEOS_TRAY_CAPS_LOCK_H_
      7 
      8 #include "ash/system/tray/tray_image_item.h"
      9 #include "chromeos/ime/ime_keyboard.h"
     10 #include "ui/events/event_handler.h"
     11 
     12 namespace views {
     13 class ImageView;
     14 class View;
     15 }
     16 
     17 namespace ash {
     18 class CapsLockDefaultView;
     19 
     20 class TrayCapsLock : public TrayImageItem,
     21                      public chromeos::input_method::ImeKeyboard::Observer {
     22  public:
     23   explicit TrayCapsLock(SystemTray* system_tray);
     24   virtual ~TrayCapsLock();
     25 
     26  private:
     27   // Overriden from chromeos::input_method::ImeKeyboard::Observer:
     28   virtual void OnCapsLockChanged(bool enabled) OVERRIDE;
     29 
     30   // Overridden from TrayImageItem.
     31   virtual bool GetInitialVisibility() OVERRIDE;
     32   virtual views::View* CreateDefaultView(user::LoginStatus status) OVERRIDE;
     33   virtual views::View* CreateDetailedView(user::LoginStatus status) OVERRIDE;
     34   virtual void DestroyDefaultView() OVERRIDE;
     35   virtual void DestroyDetailedView() OVERRIDE;
     36 
     37   CapsLockDefaultView* default_;
     38   views::View* detailed_;
     39 
     40   bool caps_lock_enabled_;
     41   bool message_shown_;
     42 
     43   DISALLOW_COPY_AND_ASSIGN(TrayCapsLock);
     44 };
     45 
     46 }  // namespace ash
     47 
     48 #endif  // ASH_SYSTEM_CHROMEOS_TRAY_CAPS_LOCK_H_
     49