1// Copyright 2014 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_WM_CURSOR_MANAGER_CHROMEOS_H_
6#define ASH_WM_CURSOR_MANAGER_CHROMEOS_H_
7
8#include "ash/ash_export.h"
9#include "base/basictypes.h"
10#include "base/compiler_specific.h"
11#include "base/memory/scoped_ptr.h"
12#include "ui/wm/core/cursor_manager.h"
13#include "ui/wm/core/native_cursor_manager_delegate.h"
14
15namespace ui {
16class KeyEvent;
17}
18
19namespace wm {
20class NativeCursorManager;
21}
22
23namespace ash {
24
25// This class overrides the cursor hiding behaviour on ChromeOS. The cursor is
26// hidden on certain key events only if the accessibility keyboard is not
27// enabled.
28class ASH_EXPORT CursorManager : public ::wm::CursorManager {
29 public:
30  explicit CursorManager(
31      scoped_ptr< ::wm::NativeCursorManager> delegate);
32  virtual ~CursorManager();
33
34  // aura::client::CursorClient:
35  virtual bool ShouldHideCursorOnKeyEvent(
36      const ui::KeyEvent& event) const OVERRIDE;
37 private:
38  DISALLOW_COPY_AND_ASSIGN(CursorManager);
39};
40
41}  // namespace ash
42
43#endif  // ASH_WM_CURSOR_MANAGER_CHROMEOS_H_
44