mirror of
https://github.com/RedWizardsLab/EchoHub.git
synced 2026-09-04 08:36:11 +02:00
62 lines
1.3 KiB
C#
62 lines
1.3 KiB
C#
using Terminal.Gui.App;
|
|
using Terminal.Gui.Views;
|
|
using Terminal.Gui.ViewBase;
|
|
|
|
namespace EchoHub.Client.UI;
|
|
|
|
public sealed class UpdateProgressDialog
|
|
{
|
|
private readonly Dialog _dialog;
|
|
private readonly ProgressBar _progressBar;
|
|
private readonly Label _infoLabel;
|
|
private readonly IApplication _app;
|
|
|
|
public UpdateProgressDialog(IApplication app, string newVersion)
|
|
{
|
|
_app = app;
|
|
|
|
_dialog = new Dialog { Title = $"Updating to {newVersion}", Width = 50, Height = 10 };
|
|
|
|
_infoLabel = new Label
|
|
{
|
|
Text = "Preparing update...",
|
|
X = 1,
|
|
Y = 1,
|
|
Width = Dim.Fill(2)
|
|
};
|
|
|
|
_progressBar = new ProgressBar
|
|
{
|
|
X = 1,
|
|
Y = 3,
|
|
Width = Dim.Fill(2),
|
|
Fraction = 0f
|
|
};
|
|
|
|
var cancelButton = new Button
|
|
{
|
|
Text = "Cancel",
|
|
X = Pos.Center(),
|
|
Y = 6
|
|
};
|
|
|
|
_dialog.Add(_infoLabel, _progressBar);
|
|
}
|
|
|
|
public void UpdateProgress(float fraction, string statusText)
|
|
{
|
|
_progressBar.Fraction = fraction;
|
|
_infoLabel.Text = statusText;
|
|
}
|
|
|
|
public void Show()
|
|
{
|
|
_app.Run(_dialog);
|
|
}
|
|
|
|
public void Close()
|
|
{
|
|
_app.RequestStop();
|
|
}
|
|
}
|