// Copyright (c) 2024 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using System;
using UnityEngine;
namespace Vuplex.WebView {
///
/// An interface that can be passed to WebViewPrefab.SetPointerInputDetector()
/// CanvasWebViewPrefab.SetPointerInputDetector() to override how the prefab detects pointer input.
/// For example implementations of this interface, please see 3D WebView's DefaultPointerInputDetector.cs
/// and CanvasPointerInputDetector.cs scripts.
///
public interface IPointerInputDetector {
///
/// Indicates the normalized point for the beginning of a drag interaction.
///
event EventHandler> BeganDrag;
///
/// Indicates the normalized point for the continuation of a drag interaction.
///
event EventHandler> Dragged;
///
/// Indicates a pointer down interaction occurred.
///
event EventHandler PointerDown;
///
/// Indicates that the pointer entered.
///
event EventHandler PointerEntered;
///
/// Indicates the normalized point where the pointer exited.
///
event EventHandler> PointerExited;
///
/// Indicates the normalized point where the pointer moved.
///
event EventHandler> PointerMoved;
///
/// Indicates a pointer up interaction occurred.
///
event EventHandler PointerUp;
///
/// Indicates a scroll interaction occurred.
///
event EventHandler Scrolled;
///
/// The prefab sets this property to indicate whether
/// the PointerMoved event should be enabled.
///
bool PointerMovedEnabled { get; set; }
}
}