38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
using Processor;
|
|
|
|
namespace UI_WinForms.Components;
|
|
|
|
public sealed partial class TranslationProgress : UserControl
|
|
{
|
|
public TranslationProgress()
|
|
{
|
|
this.InitializeComponent();
|
|
|
|
this.DoubleBuffered = true;
|
|
this.Load += this.OnLoad;
|
|
AppEvents.WhenTranslationChanged += async (_, _) => await this.TranslationChanged();
|
|
}
|
|
|
|
private async void OnLoad(object? sender, EventArgs e) => await this.CalculateTranslationProgress();
|
|
|
|
private async Task TranslationChanged() => await this.CalculateTranslationProgress();
|
|
|
|
private async Task CalculateTranslationProgress()
|
|
{
|
|
var result = await TranslationProcessor.CalculateTranslationProgress();
|
|
if (this.nxProgressBar.InvokeRequired)
|
|
this.nxProgressBar.Invoke(() => SetProgress(result));
|
|
else
|
|
SetProgress(result);
|
|
|
|
void SetProgress(ProcessorResult<int> resultData)
|
|
{
|
|
if (resultData.Successful)
|
|
this.nxProgressBar.PercentInt = resultData.Result;
|
|
else
|
|
this.nxProgressBar.PercentInt = 0;
|
|
|
|
this.nxProgressBar.Refresh();
|
|
}
|
|
}
|
|
} |