/// <summary> /// Sets the new status message in the status bar. /// </summary> /// <param name="statusMsg">New Status Message</param> public void SetStatus(StatusMessage statusMsg) { if (statusMsg == null) return; SetStatus(statusMsg.Message, statusMsg.IsAnimated); }
/// <summary> /// Provides derived classes an opportunity to handle changes to the Message property. /// </summary> /// <param name="oldMessage">Old Value</param> /// <param name="newMessage">New Value</param> protected virtual void OnMessageChanged(StatusMessage oldMessage, StatusMessage newMessage) { SetStatus(newMessage ?? StatusMessage.Empty); }
public FluidStatusBar() { InitializeComponent(); _state = EngineState.Ready; _msgToProcess = StatusMessage.Empty; messageQueue = new Queue<StatusMessage>(); GetStoryboards(); }
// ------------------------------------------------------------------------------------- // FluidStatusBar // ------------------------------------------------------------------------------------- #region FluidStatusBar void DoWork(object sender, DoWorkEventArgs e) { if (bgWorker.CancellationPending) return; StatusMessage msg = new StatusMessage("Verifying Code!", true); bgWorker.ReportProgress(0, msg); Thread.Sleep(200 + _rnd.Next(600)); if (bgWorker.CancellationPending) return; msg.Message = "Verifying : 10%"; msg.IsAnimated = true; bgWorker.ReportProgress(0, msg); Thread.Sleep(100 + _rnd.Next(400)); for (int i = 1; i < 10; i++) { if (bgWorker.CancellationPending) return; msg.Message = String.Format("Verifying : {0}%", (i + 1) * 10); msg.IsAnimated = false; bgWorker.ReportProgress(0, msg); Thread.Sleep(200 + _rnd.Next(200)); } Thread.Sleep(750); if (bgWorker.CancellationPending) return; msg.Message = "Compiling Code!"; msg.IsAnimated = true; bgWorker.ReportProgress(0, msg); Thread.Sleep(300 + _rnd.Next(200)); if (bgWorker.CancellationPending) return; msg.Message = "Compiling : 10%"; msg.IsAnimated = true; bgWorker.ReportProgress(0, msg); Thread.Sleep(100 + _rnd.Next(200)); for (int i = 1; i < 10; i++) { if (bgWorker.CancellationPending) return; msg.Message = String.Format("Compiling : {0}%", (i + 1) * 10); msg.IsAnimated = false; bgWorker.ReportProgress(0, msg); Thread.Sleep(300); } Thread.Sleep(200 + _rnd.Next(600)); if (bgWorker.CancellationPending) return; msg.Message = "Linking!"; msg.IsAnimated = true; bgWorker.ReportProgress(0, msg); Thread.Sleep(200 + _rnd.Next(600)); if (bgWorker.CancellationPending) return; msg.Message = "Linking : 10%"; msg.IsAnimated = true; bgWorker.ReportProgress(0, msg); Thread.Sleep(100 + _rnd.Next(300)); for (int i = 1; i < 10; i++) { if (bgWorker.CancellationPending) return; msg.Message = String.Format("Linking : {0}%", (i + 1) * 10); msg.IsAnimated = false; bgWorker.ReportProgress(0, msg); Thread.Sleep(200 + _rnd.Next(100)); } Thread.Sleep(200 + _rnd.Next(300)); if (bgWorker.CancellationPending) return; msg.Message = "Build Completed!"; msg.IsAnimated = true; bgWorker.ReportProgress(0, msg); }
/// <summary> /// Provides derived classes an opportunity to handle changes to the Message property. /// </summary> /// <param name="oldMessage">Old Value</param> /// <param name="newMessage">New Value</param> protected virtual void OnMessageChanged(StatusMessage oldMessage, StatusMessage newMessage) { if (newMessage != null) { SetStatus(newMessage); } }
/// <summary> /// Sets the new status message in the status bar. /// </summary> /// <param name="statusMsg">New Status Message</param> public void SetStatus(StatusMessage statusMsg) { if (statusMsg == null) return; lock (messageQueue) { messageQueue.Enqueue(statusMsg); } ProcessAnimationQueue(); }