void mandibleMotionTrackBar_ValueChangeEnded(MandibleControlSlider source)
 {
     if (slideStartMusclePosition != null)
     {
         musclePositionController.pushUndoState(slideStartMusclePosition);
         slideStartMusclePosition = null;
     }
 }
        public MandibleMovementDialog(MovementSequenceController movementSequenceController, MusclePositionController musclePositionController)
            : base("DentalSim.GUI.MandibleMovement.MandibleMovementDialog.layout")
        {
            this.musclePositionController = musclePositionController;
            musclePositionController.OnUndoRedoChanged += musclePositionController_UndoRedoStateAltered;
            musclePositionController.OnRedo            += musclePositionController_UndoRedoStateAltered;
            musclePositionController.OnUndo            += musclePositionController_UndoRedoStateAltered;

            openTrackBar                     = new MandibleControlSlider(window.findWidget("Movement/HingeSlider") as ScrollBar);
            openTrackBar.Minimum             = -3;
            openTrackBar.Maximum             = 10;
            openTrackBar.ValueChangeStarted += mandibleMotionTrackBar_ValueChangeStarted;
            openTrackBar.ValueChangeEnded   += mandibleMotionTrackBar_ValueChangeEnded;

            rightForwardBack                     = new MandibleControlSlider(window.findWidget("Movement/ExcursionRightSlider") as ScrollBar);
            rightForwardBack.Minimum             = 0;
            rightForwardBack.Maximum             = 1;
            rightForwardBack.ValueChangeStarted += mandibleMotionTrackBar_ValueChangeStarted;
            rightForwardBack.ValueChangeEnded   += mandibleMotionTrackBar_ValueChangeEnded;

            leftForwardBack                     = new MandibleControlSlider(window.findWidget("Movement/ExcursionLeftSlider") as ScrollBar);
            leftForwardBack.Minimum             = 0;
            leftForwardBack.Maximum             = 1;
            leftForwardBack.ValueChangeStarted += mandibleMotionTrackBar_ValueChangeStarted;
            leftForwardBack.ValueChangeEnded   += mandibleMotionTrackBar_ValueChangeEnded;

            bothForwardBack                     = new MandibleControlSlider(window.findWidget("Movement/ProtrusionSlider") as ScrollBar);
            bothForwardBack.Minimum             = 0;
            bothForwardBack.Maximum             = 1;
            bothForwardBack.ValueChangeStarted += mandibleMotionTrackBar_ValueChangeStarted;
            bothForwardBack.ValueChangeEnded   += mandibleMotionTrackBar_ValueChangeEnded;

            forceSlider                     = new MandibleControlSlider(window.findWidget("Movement/ForceSlider") as ScrollBar);
            forceSlider.Minimum             = 0;
            forceSlider.Maximum             = 100;
            forceSlider.ValueChangeStarted += mandibleMotionTrackBar_ValueChangeStarted;
            forceSlider.ValueChangeEnded   += mandibleMotionTrackBar_ValueChangeEnded;

            resetButton = window.findWidget("Movement/Reset") as Button;
            undoButton  = window.findWidget("Undo") as Button;
            undoButton.MouseButtonClick += undoButton_MouseButtonClick;
            redoButton = window.findWidget("Redo") as Button;
            redoButton.MouseButtonClick += redoButton_MouseButtonClick;
            undoButton.Enabled           = musclePositionController.HasUndo;
            redoButton.Enabled           = musclePositionController.HasRedo;

            openTrackBar.ValueChanged     += openTrackBar_ValueChanged;
            rightForwardBack.ValueChanged += rightSliderValueChanged;
            leftForwardBack.ValueChanged  += leftSliderValueChanged;
            bothForwardBack.ValueChanged  += bothForwardBackChanged;
            forceSlider.ValueChanged      += forceSlider_ValueChanged;
            resetButton.MouseButtonClick  += resetButton_Click;

            movementSequenceController.PlaybackStarted += new MovementSequenceEvent(movementSequenceController_PlaybackStarted);
            movementSequenceController.PlaybackStopped += new MovementSequenceEvent(movementSequenceController_PlaybackStopped);
        }
 void mandibleMotionTrackBar_ValueChangeStarted(MandibleControlSlider source)
 {
     slideStartMusclePosition = new MusclePosition(true);
 }