using Pilz.UI.Telerik; using Pilz.Updating.Client.Gui.LangRes; using Telerik.WinControls; namespace Pilz.Updating.Client.Gui; internal partial class UpdateWindow : Telerik.WinControls.UI.RadForm { // P r o p e r t i e s public bool AllowClose { get; set; } // C o n s t r u c t o r s public UpdateWindow(string applicationName) { // Init Form InitializeComponent(); // Events Shown += Main_Shown; FormClosed += Main_FormClosed; FormClosing += Main_FormClosing; // Init Application Header Text string header; if (!string.IsNullOrEmpty(applicationName)) header = string.Format(StatusLangRes.String_UpdatingApplicationX, applicationName); else header = StatusLangRes.String_UpdateIsRunning; radLabel_Header.Text = $"{header}"; } // F e a t u r e s public void SetStatus(UpdateStatus status) { var newStatusText = string.Empty; RadSvgImage newStatusImage = null; switch (status) { case UpdateStatus.Copying: newStatusText = StatusLangRes.Status_CopyingFiles; break; case UpdateStatus.Done: newStatusText = StatusLangRes.Status_Done; break; case UpdateStatus.Extracting: newStatusText = StatusLangRes.Status_Extracting; break; case UpdateStatus.Cleanup: newStatusText = StatusLangRes.Status_RemovingFiles; break; case UpdateStatus.Waiting: newStatusText = StatusLangRes.Status_Waiting; break; } switch (status) { case UpdateStatus.Copying: newStatusImage = GlobalSymbolFactory.Instance.GetSvgImage(GlobalSymbols.copy, SvgImageSize.Small); break; case UpdateStatus.Extracting: newStatusImage = GlobalSymbolFactory.Instance.GetSvgImage(GlobalSymbols.open_archive, SvgImageSize.Small); break; case UpdateStatus.Cleanup: newStatusImage = GlobalSymbolFactory.Instance.GetSvgImage(GlobalSymbols.recycle_bin, SvgImageSize.Small); break; case UpdateStatus.Waiting: newStatusImage = GlobalSymbolFactory.Instance.GetSvgImage(GlobalSymbols.timer, SvgImageSize.Small); break; case UpdateStatus.Done: newStatusImage = GlobalSymbolFactory.Instance.GetSvgImage(GlobalSymbols.done, SvgImageSize.Small); break; } radLabel_Status.Text = newStatusText; radLabel_Status.SvgImage = newStatusImage; } private void Main_Shown(object sender, EventArgs e) { radWaitingBar1.StartWaiting(); } private void Main_FormClosed(object sender, FormClosedEventArgs e) { radWaitingBar1.StopWaiting(); } private void Main_FormClosing(object sender, FormClosingEventArgs e) { if (!AllowClose) e.Cancel = true; } }