Home | History | Annotate | Download | only in test
      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 
     13 namespace ui {
     14 class KeyEvent;
     15 }
     16 
     17 namespace aura {
     18 namespace test {
     19 
     20 class 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