public ButtonDialog()
            : base()
        {
            _buttonCaptions = new List<string>();
            _buttons = new Dictionary<string, Button>();
            _worldPosition = Vector2.Zero;
            _frame = new Rectangle(0, 0, (int)Definitions.Back_Buffer_Width, 0);
            _defaultButtonCaption = "";
            _cancelButtonCaption = "";

            _entryMotionEngine = new BounceEntryMotionEngine();
            _entryMotionEngine.ObjectToTrack = this;
            _entryMotionEngine.RecoilMultiplier = Recoil_Multiplier;
            _entryMotionEngine.CompletionCallback = HandleDialogEntryCompletion;

            _exitMotionEngine = new BounceExitMotionEngine();
            _exitMotionEngine.ObjectToTrack = this;
            _exitMotionEngine.RecoilMultiplier = Recoil_Multiplier;
            _exitMotionEngine.CompletionCallback = HandleDialogExitCompletion;

            MotionEngine = null;
            Active = false;
            Visible = false;
            TopYWhenActive = 0.0f;
            SelectionCallback = null;
            ExitCallback = null;

            InputSources = new List<InputProcessorBase>();

            _boxCaption = "";

            ChangeSelectionSoundEffectName = Default_Selection_Change_Sound_Effect;
            ActivateSelectionSoundEffectName = Default_Selection_Activate_Sound_Effect;
        }
        public PowerUpHelper()
        {
            _entryMotionEngine = new BounceEntryMotionEngine();
            _entryMotionEngine.ObjectToTrack = this;
            _entryMotionEngine.RecoilMultiplier = Default_Recoil_Multiplier;
            _entryMotionEngine.CompletionCallback = HandleEntryCompletion;

            _exitMotionEngine = new BounceExitMotionEngine();
            _exitMotionEngine.ObjectToTrack = this;
            _exitMotionEngine.RecoilMultiplier = Default_Recoil_Multiplier;
            _exitMotionEngine.CompletionCallback = Reset;
        }