using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace bs.Editor
{
///
/// Helper class for creating GUI elements used by various resource inspector windows.
///
internal class GUIReimportButton
{
private string path;
private GUIButton reimportButton = new GUIButton(new LocEdString("Reimport"));
private GUITexture guiSpinner = new GUITexture(EditorBuiltin.GetSprite(EditorSprites.Spinner));
///
/// Creates the reimport GUI elements in the provided layout.
///
/// Path of the resource that can be reimported.
/// Parent GUI layout to which to add the reimport GUI elements.
/// User provided callback that triggers when the reimport button is clicked.
internal GUIReimportButton(string path, GUILayout parent, Action doReimport)
{
this.path = path;
reimportButton.OnClick += () => doReimport();
GUILayout reimportButtonLayout = parent.AddLayoutX();
reimportButtonLayout.AddFlexibleSpace();
reimportButtonLayout.AddElement(reimportButton);
reimportButtonLayout.AddElement(guiSpinner);
bool isImporting = ProjectLibrary.GetImportProgress(path) < 1.0f;
guiSpinner.Active = isImporting;
reimportButton.Active = !isImporting;
}
///
/// Checks the current state of import and updates the GUI elements accordingly.
///
internal void Update()
{
bool isImporting = ProjectLibrary.GetImportProgress(path) < 1.0f;
guiSpinner.Active = isImporting;
reimportButton.Active = !isImporting;
}
}
}