1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_WM_CORE_NATIVE_CURSOR_MANAGER_H_
#define UI_WM_CORE_NATIVE_CURSOR_MANAGER_H_
#include "base/component_export.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/wm/core/native_cursor_manager_delegate.h"
namespace display {
class Display;
}
namespace ui {
enum class CursorSize;
}
namespace wm {
// Interface where platforms such as Ash or Desktop aura are notified of
// requested changes to cursor state. When requested, implementer should tell
// the CursorManager of any actual state changes performed through the
// delegate.
class COMPONENT_EXPORT(UI_WM) NativeCursorManager {
public:
virtual ~NativeCursorManager() {}
// A request to set the screen DPI. Can cause changes in the current cursor.
virtual void SetDisplay(const display::Display& display,
NativeCursorManagerDelegate* delegate) = 0;
// A request to set the cursor to |cursor|. At minimum, implementer should
// call NativeCursorManagerDelegate::CommitCursor() with whatever cursor is
// actually used.
virtual void SetCursor(
gfx::NativeCursor cursor,
NativeCursorManagerDelegate* delegate) = 0;
// A request to set the visibility of the cursor. At minimum, implementer
// should call NativeCursorManagerDelegate::CommitVisibility() with whatever
// the visibility is.
virtual void SetVisibility(
bool visible,
NativeCursorManagerDelegate* delegate) = 0;
// A request to set the cursor size.
virtual void SetCursorSize(ui::CursorSize cursor_size,
NativeCursorManagerDelegate* delegate) = 0;
// A request to set the ui::CursorSize::kLarge dimensions in DIPs.
virtual void SetLargeCursorSizeInDip(
int large_cursor_size_in_dip,
NativeCursorManagerDelegate* delegate) = 0;
// A request to set whether mouse events are disabled. At minimum,
// implementer should call NativeCursorManagerDelegate::
// CommitMouseEventsEnabled() with whether mouse events are actually enabled.
virtual void SetMouseEventsEnabled(
bool enabled,
NativeCursorManagerDelegate* delegate) = 0;
// A request to set the color of the cursor.
virtual void SetCursorColor(SkColor color,
NativeCursorManagerDelegate* delegate) = 0;
};
} // namespace wm
#endif // UI_WM_CORE_NATIVE_CURSOR_MANAGER_H_
|