public void Push(MirrorOperation operation) { if (operation == null) { throw new ArgumentNullException("operation"); } var control = new MirrorOperationControl(operation) { Dock = DockStyle.Top }; panel.Controls.Add(control); control.BringToFront(); control.Aborted += (s, e) => { RemoveControl(control); }; operation.Finished += (s, e) => { RemoveControl(control); if (!OperationControls.Any()) { if (AllFinished != null) { AllFinished(this, EventArgs.Empty); } } else { TriggerNextOperation(); } }; TriggerNextOperation(); }
private void RemoveControl(MirrorOperationControl control) { if (panel.Controls.Contains(control)) { panel.Controls.Remove(control); } }
public Status(MirrorOperationControl control) { _control = control; }