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 12namespace views { 13class ImageView; 14class View; 15} 16 17namespace ash { 18class CapsLockDefaultView; 19 20class 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