blob: ef1eba210eeaecc05d6a1b6d6c3520c406717103 [file] [log] [blame]
// 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