15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifndef ASH_SYSTEM_CHROMEOS_TRAY_CAPS_LOCK_H_
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define ASH_SYSTEM_CHROMEOS_TRAY_CAPS_LOCK_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/system/tray/tray_image_item.h"
9a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "chromeos/ime/ime_keyboard.h"
10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ui/events/event_handler.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace views {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ImageView;
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class View;
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash {
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CapsLockDefaultView;
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class TrayCapsLock : public TrayImageItem,
21a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch                     public chromeos::input_method::ImeKeyboard::Observer {
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  explicit TrayCapsLock(SystemTray* system_tray);
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~TrayCapsLock();
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
27a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  // Overriden from chromeos::input_method::ImeKeyboard::Observer:
28a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  virtual void OnCapsLockChanged(bool enabled) OVERRIDE;
29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Overridden from TrayImageItem.
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool GetInitialVisibility() OVERRIDE;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual views::View* CreateDefaultView(user::LoginStatus status) OVERRIDE;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual views::View* CreateDetailedView(user::LoginStatus status) OVERRIDE;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void DestroyDefaultView() OVERRIDE;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void DestroyDetailedView() OVERRIDE;
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CapsLockDefaultView* default_;
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::View* detailed_;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool caps_lock_enabled_;
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool message_shown_;
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(TrayCapsLock);
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ash
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif  // ASH_SYSTEM_CHROMEOS_TRAY_CAPS_LOCK_H_
49