- add sources.
[platform/framework/web/crosswalk.git] / src / ui / views / corewm / native_cursor_manager.h
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.
4
5 #ifndef UI_VIEWS_COREWM_NATIVE_CURSOR_MANAGER_H_
6 #define UI_VIEWS_COREWM_NATIVE_CURSOR_MANAGER_H_
7
8 #include "base/strings/string16.h"
9 #include "ui/views/corewm/native_cursor_manager_delegate.h"
10 #include "ui/views/views_export.h"
11
12 namespace gfx {
13 class Display;
14 }
15
16 namespace views {
17 namespace corewm {
18
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
22 // delegate.
23 class VIEWS_EXPORT NativeCursorManager {
24  public:
25   virtual ~NativeCursorManager() {}
26
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       views::corewm::NativeCursorManagerDelegate* delegate) = 0;
31
32   // A request to set the cursor to |cursor|. At minimum, implementer should
33   // call NativeCursorManagerDelegate::CommitCursor() with whatever cursor is
34   // actually used.
35   virtual void SetCursor(
36       gfx::NativeCursor cursor,
37       views::corewm::NativeCursorManagerDelegate* delegate) = 0;
38
39   // A request to set the visibility of the cursor. At minimum, implementer
40   // should call NativeCursorManagerDelegate::CommitVisibility() with whatever
41   // the visibility is.
42   virtual void SetVisibility(
43     bool visible,
44     views::corewm::NativeCursorManagerDelegate* delegate) = 0;
45
46   // A request to set the scale of the cursor icon.
47   virtual void SetScale(
48       float scale,
49       views::corewm::NativeCursorManagerDelegate* delegate) = 0;
50
51   // A request to set the scale of the cursor icon.
52   virtual void SetCursorSet(
53       ui::CursorSetType cursor_set,
54       views::corewm::NativeCursorManagerDelegate* delegate) = 0;
55
56   // A request to set whether mouse events are disabled. At minimum,
57   // implementer should call NativeCursorManagerDelegate::
58   // CommitMouseEventsEnabled() with whether mouse events are actually enabled.
59   virtual void SetMouseEventsEnabled(
60       bool enabled,
61       views::corewm::NativeCursorManagerDelegate* delegate) = 0;
62 };
63
64 }  // namespace corewm
65 }  // namespace views
66
67 #endif  // UI_VIEWS_COREWM_NATIVE_CURSOR_MANAGER_H_