1 // Copyright (c) 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.
5 #ifndef UI_WM_CORE_NATIVE_CURSOR_MANAGER_H_
6 #define UI_WM_CORE_NATIVE_CURSOR_MANAGER_H_
8 #include "base/strings/string16.h"
9 #include "ui/base/cursor/cursor.h"
10 #include "ui/wm/core/native_cursor_manager_delegate.h"
11 #include "ui/wm/wm_export.h"
19 // Interface where platforms such as Ash or Desktop aura are notified of
20 // requested changes to cursor state. When requested, implementer should tell
21 // the CursorManager of any actual state changes performed through the
23 class WM_EXPORT NativeCursorManager
{
25 virtual ~NativeCursorManager() {}
27 // A request to set the screen DPI. Can cause changes in the current cursor.
28 virtual void SetDisplay(
29 const gfx::Display
& display
,
30 NativeCursorManagerDelegate
* delegate
) = 0;
32 // A request to set the cursor to |cursor|. At minimum, implementer should
33 // call NativeCursorManagerDelegate::CommitCursor() with whatever cursor is
35 virtual void SetCursor(
36 gfx::NativeCursor cursor
,
37 NativeCursorManagerDelegate
* delegate
) = 0;
39 // A request to set the visibility of the cursor. At minimum, implementer
40 // should call NativeCursorManagerDelegate::CommitVisibility() with whatever
42 virtual void SetVisibility(
44 NativeCursorManagerDelegate
* delegate
) = 0;
46 // A request to set the cursor set.
47 virtual void SetCursorSet(
48 ui::CursorSetType cursor_set
,
49 NativeCursorManagerDelegate
* delegate
) = 0;
51 // A request to set whether mouse events are disabled. At minimum,
52 // implementer should call NativeCursorManagerDelegate::
53 // CommitMouseEventsEnabled() with whether mouse events are actually enabled.
54 virtual void SetMouseEventsEnabled(
56 NativeCursorManagerDelegate
* delegate
) = 0;
61 #endif // UI_WM_CORE_NATIVE_CURSOR_MANAGER_H_