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