示例#1
0
 /// <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();
 }
示例#2
0
        /// <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);
        }