/// <summary> /// Shows a tip for selecting a vertex to add sand to /// </summary> private void MovementEndedSandpileEventHandler(object sender, EventArgs e) { if (sender is int) { return; } SandpilePanel.Visible = true; SandpilePanel.BringToFront(); }
/// <summary> /// Prepares MovementModeling instance for modeling the movement /// </summary> /// <param name="type">Modeling type</param> /// <param name="actions">Additional actions</param> /// <param name="sandpileChartTypes">Sandpile chart types</param> private bool PrepareMovementModeling(MovementModelingType type, MovementModelingActions[] actions, SandpileChartType[] sandpileChartTypes) { movement = new MovementModeling(digraph, (double)SpeedNumeric.Value / 1000, type, actions) { GraphDrawing = graphDrawing, DrawingSurface = DrawingSurface, SandpileChartTypes = sandpileChartTypes }; isOnMovement = true; movement.Tick += UpdateElapsedTime; movement.MovementEnded += StopToolStripMenuItem_Click; MovementToolStripMenuItem.Text = @"Continue"; MovementToolStripMenuItem.Enabled = false; StopToolStripMenuItem.Enabled = true; if (type == MovementModelingType.Sandpile) { graphDrawing.DrawTheWholeGraphSandpile(digraph, true); DrawingSurface.Image = graphDrawing.Image; SandpilePanel.Visible = true; SandpilePanel.BringToFront(); return(true); } if (SaveGifCheckBox.Checked) { movement.MovementEnded += SaveGif; } movement.MovementEnded += (s, ea) => { movement.Tick -= UpdateElapsedTime; movement = null; }; TimeTextBox.Visible = true; TimeTextBox.BringToFront(); return(false); }