blob: 6a6820fe74abd9d921dbf4733375807ccc7efdc8 [file] [log] [blame]
// Copyright 2014 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.
#include "ui/events/ozone/evdev/events_ozone_evdev_export.h"
#include "ui/gfx/geometry/point_f.h"
#include "ui/gfx/native_widget_types.h"
namespace gfx {
class Vector2dF;
class Rect;
namespace ui {
class EVENTS_OZONE_EVDEV_EXPORT CursorDelegateEvdev {
virtual ~CursorDelegateEvdev() {}
// Move the cursor from the Evdev thread.
virtual void MoveCursor(const gfx::Vector2dF& delta) = 0;
// Move the cursor from the UI thread only.
virtual void MoveCursorTo(gfx::AcceleratedWidget widget,
const gfx::PointF& location) = 0;
// Move the cursor from the UI thread only.
virtual void MoveCursorTo(const gfx::PointF& location) = 0;
// Location in screen. Either thread, IPC-free.
virtual gfx::PointF GetLocation() = 0;
// Cursor visibility. Either thread, IPC-free.
virtual bool IsCursorVisible() = 0;
// The bounds that the cursor is confined to. Either thread, IPC-free.
virtual gfx::Rect GetCursorConfinedBounds() = 0;
// Any necessary initialization from Evdev thread.
virtual void InitializeOnEvdev() = 0;
} // namespace ui