// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using System.Threading.Tasks; using UnityEngine; namespace Microsoft.MixedReality.Toolkit.UI { public interface IProgressIndicator { /// /// The progress indicator's main transform. /// You can use this to attach follow scripts or solvers to the indicator. /// Transform MainTransform { get; } /// /// Used to determine whether it's appropriate to use this indicator. /// ProgressIndicatorState State { get; } /// /// The message to display during loading. /// string Message { set; } /// /// Loading progress value from 0 (just started) to 1 (complete) /// float Progress { set; } /// /// Opens the progress indicator before loading begins. Method is async to allow for animation to begin before loading. /// Task OpenAsync(); /// /// Returns after progress indicator completes its opening or closing transition. /// Task AwaitTransitionAsync(); /// /// Closes the progress indicator after loading is finished. Method is async to allow for animation to complete. /// Task CloseAsync(); /// /// Closes the progress indicator immediately. No fade out animation. All gameObjects for the progress indicator are reset to the correct values. /// void CloseImmediate(); } }