// 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();
}
}