private void OnUpdateStatusChanged(object sender, UpdateStatusEventArgs e) {
if (!this.Dispatcher.CheckAccess()) {
this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new UpdateStatusEventHandler((s, e2) => {
OnUpdateStatusChanged(sender, e2);
}), sender, e);
return;
}
UpdateMainProgressBar(e.Progress, e.MaxProgress);
UpdateSubProgressBar(e.SummaryProgress, e.SummaryMaxProgress);
string updateText = string.Empty;
switch (e.UpdateStage) {
case UpdateStatusEventArgs.Stage.DOWNLOADING:
updateText = string.Format(LanguageManager.Model.UpdateDownloading, e.CurrentPatch, e.MaxPatch, e.SummaryProgress, e.SummaryMaxProgress);
break;
case UpdateStatusEventArgs.Stage.EXTRACTING:
updateText = string.Format(LanguageManager.Model.UpdateExtracting, e.CurrentPatch, e.MaxPatch, e.SummaryProgress, e.SummaryMaxProgress);
break;
case UpdateStatusEventArgs.Stage.INSTALLING:
updateText = string.Format(LanguageManager.Model.UpdateInstalling, e.Progress, e.MaxProgress);
break;
}
this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new SetInfoText((text_) => {
UpdateText.Text = text_;
}), updateText);
}