// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ui/aura/test/test_cursor_client.h" #include "ui/aura/client/cursor_client_observer.h" namespace aura { namespace test { TestCursorClient::TestCursorClient(aura::Window* root_window) : visible_(true), should_hide_cursor_on_key_event_(true), mouse_events_enabled_(true), cursor_lock_count_(0), calls_to_set_cursor_(0), root_window_(root_window) { client::SetCursorClient(root_window, this); } TestCursorClient::~TestCursorClient() { client::SetCursorClient(root_window_, NULL); } void TestCursorClient::SetCursor(gfx::NativeCursor cursor) { calls_to_set_cursor_++; } gfx::NativeCursor TestCursorClient::GetCursor() const { return ui::kCursorNull; } void TestCursorClient::ShowCursor() { visible_ = true; FOR_EACH_OBSERVER(aura::client::CursorClientObserver, observers_, OnCursorVisibilityChanged(true)); } void TestCursorClient::HideCursor() { visible_ = false; FOR_EACH_OBSERVER(aura::client::CursorClientObserver, observers_, OnCursorVisibilityChanged(false)); } void TestCursorClient::SetCursorSet(ui::CursorSetType cursor_set) { } ui::CursorSetType TestCursorClient::GetCursorSet() const { return ui::CURSOR_SET_NORMAL; } bool TestCursorClient::IsCursorVisible() const { return visible_; } void TestCursorClient::EnableMouseEvents() { mouse_events_enabled_ = true; } void TestCursorClient::DisableMouseEvents() { mouse_events_enabled_ = false; } bool TestCursorClient::IsMouseEventsEnabled() const { return mouse_events_enabled_; } void TestCursorClient::SetDisplay(const gfx::Display& display) { } void TestCursorClient::LockCursor() { cursor_lock_count_++; } void TestCursorClient::UnlockCursor() { cursor_lock_count_--; if (cursor_lock_count_ < 0) cursor_lock_count_ = 0; } bool TestCursorClient::IsCursorLocked() const { return cursor_lock_count_ > 0; } void TestCursorClient::AddObserver( aura::client::CursorClientObserver* observer) { observers_.AddObserver(observer); } void TestCursorClient::RemoveObserver( aura::client::CursorClientObserver* observer) { observers_.RemoveObserver(observer); } bool TestCursorClient::ShouldHideCursorOnKeyEvent( const ui::KeyEvent& event) const { return should_hide_cursor_on_key_event_; } } // namespace test } // namespace aura