39 lines
1.8 KiB
C#
39 lines
1.8 KiB
C#
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT License.
|
|
|
|
using UnityEngine.EventSystems;
|
|
|
|
namespace Microsoft.MixedReality.Toolkit.Input
|
|
{
|
|
/// <summary>
|
|
/// Interface to implement to react to focus changed events.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// <para>The events on this interface are related to those of <see cref="IMixedRealityFocusHandler"/>, whose event have
|
|
/// a known ordering with this interface:</para>
|
|
/// <para>IMixedRealityFocusChangedHandler::OnBeforeFocusChange</para>
|
|
/// <para>IMixedRealityFocusHandler::OnFocusEnter</para>
|
|
/// <para>IMixedRealityFocusHandler::OnFocusExit</para>
|
|
/// <para>IMixedRealityFocusChangedHandler::OnFocusChanged</para>
|
|
/// <para>Because these two interfaces are different, consumers must be wary about having nested
|
|
/// hierarchies where some game objects will implement both interfaces, and more deeply nested
|
|
/// object within the same parent-child chain that implement a single one of these - such
|
|
/// a presence can lead to scenarios where one interface is invoked on the child object, and then
|
|
/// the other interface is invoked on the parent object (thus, the parent would "miss" getting
|
|
/// the event that the child had already processed).</para>
|
|
/// </remarks>
|
|
public interface IMixedRealityFocusChangedHandler : IEventSystemHandler
|
|
{
|
|
/// <summary>
|
|
/// Focus event that is raised before the focus is actually changed.
|
|
/// </summary>
|
|
/// <remarks>Useful for logic that needs to take place before focus changes.</remarks>
|
|
void OnBeforeFocusChange(FocusEventData eventData);
|
|
|
|
/// <summary>
|
|
/// Focus event that is raised when the focused object is changed.
|
|
/// </summary>
|
|
void OnFocusChanged(FocusEventData eventData);
|
|
}
|
|
}
|