1// Copyright 2013 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 UI_AURA_TEST_TEST_CURSOR_CLIENT_H_ 6#define UI_AURA_TEST_TEST_CURSOR_CLIENT_H_ 7 8#include "base/basictypes.h" 9#include "base/compiler_specific.h" 10#include "base/observer_list.h" 11#include "ui/aura/client/cursor_client.h" 12 13namespace ui { 14class KeyEvent; 15} 16 17namespace aura { 18namespace test { 19 20class TestCursorClient : public aura::client::CursorClient { 21 public: 22 explicit TestCursorClient(aura::Window* root_window); 23 virtual ~TestCursorClient(); 24 25 // Used to track the number of times SetCursor() was called. 26 int calls_to_set_cursor() const { return calls_to_set_cursor_; } 27 void reset_calls_to_set_cursor() { calls_to_set_cursor_ = 0; } 28 29 // Set whether or not to hide cursor on key events. 30 void set_should_hide_cursor_on_key_event(bool hide) { 31 should_hide_cursor_on_key_event_ = hide; 32 } 33 34 // Overridden from aura::client::CursorClient: 35 virtual void SetCursor(gfx::NativeCursor cursor) OVERRIDE; 36 virtual gfx::NativeCursor GetCursor() const OVERRIDE; 37 virtual void ShowCursor() OVERRIDE; 38 virtual void HideCursor() OVERRIDE; 39 virtual void SetCursorSet(ui::CursorSetType cursor_set) OVERRIDE; 40 virtual ui::CursorSetType GetCursorSet() const OVERRIDE; 41 virtual bool IsCursorVisible() const OVERRIDE; 42 virtual void EnableMouseEvents() OVERRIDE; 43 virtual void DisableMouseEvents() OVERRIDE; 44 virtual bool IsMouseEventsEnabled() const OVERRIDE; 45 virtual void SetDisplay(const gfx::Display& display) OVERRIDE; 46 virtual void LockCursor() OVERRIDE; 47 virtual void UnlockCursor() OVERRIDE; 48 virtual bool IsCursorLocked() const OVERRIDE; 49 virtual void AddObserver( 50 aura::client::CursorClientObserver* observer) OVERRIDE; 51 virtual void RemoveObserver( 52 aura::client::CursorClientObserver* observer) OVERRIDE; 53 virtual bool ShouldHideCursorOnKeyEvent( 54 const ui::KeyEvent& event) const OVERRIDE; 55 56 private: 57 bool visible_; 58 bool should_hide_cursor_on_key_event_; 59 bool mouse_events_enabled_; 60 int cursor_lock_count_; 61 int calls_to_set_cursor_; 62 ObserverList<aura::client::CursorClientObserver> observers_; 63 aura::Window* root_window_; 64 65 DISALLOW_COPY_AND_ASSIGN(TestCursorClient); 66}; 67 68} // namespace test 69} // namespace aura 70 71#endif // UI_AURA_TEST_TEST_CURSOR_CLIENT_H_ 72