blob: 75e4c8580a5fe6057b4e15da15f9364fbeabf295 [file] [log] [blame]
// Copyright (c) 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.
#ifndef UI_VIEWS_COREWM_NATIVE_CURSOR_MANAGER_H_
#define UI_VIEWS_COREWM_NATIVE_CURSOR_MANAGER_H_
#include "base/strings/string16.h"
#include "ui/views/corewm/native_cursor_manager_delegate.h"
#include "ui/views/views_export.h"
namespace gfx {
class Display;
}
namespace views {
namespace corewm {
// 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 VIEWS_EXPORT NativeCursorManager {
public:
virtual ~NativeCursorManager() {}
// A request to set the screen DPI. Can cause changes in the current cursor.
virtual void SetDisplay(
const gfx::Display& display,
views::corewm::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,
views::corewm::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,
views::corewm::NativeCursorManagerDelegate* delegate) = 0;
// A request to set the scale of the cursor icon.
virtual void SetScale(
float scale,
views::corewm::NativeCursorManagerDelegate* delegate) = 0;
// A request to set the scale of the cursor icon.
virtual void SetCursorSet(
ui::CursorSetType cursor_set,
views::corewm::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,
views::corewm::NativeCursorManagerDelegate* delegate) = 0;
};
} // namespace corewm
} // namespace views
#endif // UI_VIEWS_COREWM_NATIVE_CURSOR_MANAGER_H_