Home | History | Annotate | Download | only in system
      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_CAPS_LOCK_H_
      6 #define ASH_SYSTEM_TRAY_CAPS_LOCK_H_
      7 
      8 #include "ash/system/tray/tray_image_item.h"
      9 
     10 namespace views {
     11 class ImageView;
     12 class View;
     13 }
     14 
     15 namespace ash {
     16 
     17 class ASH_EXPORT CapsLockObserver {
     18  public:
     19   virtual ~CapsLockObserver() {}
     20 
     21   virtual void OnCapsLockChanged(bool enabled,
     22                                  bool search_mapped_to_caps_lock) = 0;
     23 };
     24 
     25 namespace internal {
     26 
     27 class CapsLockDefaultView;
     28 
     29 class TrayCapsLock : public TrayImageItem,
     30                      public CapsLockObserver {
     31  public:
     32   explicit TrayCapsLock(SystemTray* system_tray);
     33   virtual ~TrayCapsLock();
     34 
     35  private:
     36   // Overridden from TrayImageItem.
     37   virtual bool GetInitialVisibility() OVERRIDE;
     38   virtual views::View* CreateDefaultView(user::LoginStatus status) OVERRIDE;
     39   virtual views::View* CreateDetailedView(user::LoginStatus status) OVERRIDE;
     40   virtual void DestroyDefaultView() OVERRIDE;
     41   virtual void DestroyDetailedView() OVERRIDE;
     42 
     43   // Overridden from CapsLockObserver.
     44   virtual void OnCapsLockChanged(bool enabled,
     45                                  bool search_mapped_to_caps_lock) OVERRIDE;
     46 
     47   CapsLockDefaultView* default_;
     48   views::View* detailed_;
     49 
     50   bool search_mapped_to_caps_lock_;
     51   bool caps_lock_enabled_;
     52   bool message_shown_;
     53 
     54   DISALLOW_COPY_AND_ASSIGN(TrayCapsLock);
     55 };
     56 
     57 }  // namespace internal
     58 }  // namespace ash
     59 
     60 #endif  // ASH_SYSTEM_TRAY_CAPS_LOCK_H_
     61