stella/src/gui/InputDialog.hxx

116 lines
3.3 KiB
C++

//============================================================================
//
// SSSS tt lll lll
// SS SS tt ll ll
// SS tttttt eeee ll ll aaaa
// SSSS tt ee ee ll ll aa
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
// SS SS tt ee ll ll aa aa
// SSSS ttt eeeee llll llll aaaaa
//
// Copyright (c) 1995-2018 by Bradford W. Mott, Stephen Anthony
// and the Stella Team
//
// See the file "License.txt" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//============================================================================
#ifndef INPUT_DIALOG_HXX
#define INPUT_DIALOG_HXX
class OSystem;
class GuiObject;
class TabWidget;
class EventMappingWidget;
class CheckboxWidget;
class EditTextWidget;
class JoystickDialog;
class PopUpWidget;
class SliderWidget;
class StaticTextWidget;
namespace GUI {
class MessageBox;
}
#include "Dialog.hxx"
#include "bspf.hxx"
class InputDialog : public Dialog
{
public:
InputDialog(OSystem& osystem, DialogContainer& parent,
const GUI::Font& font, int max_w, int max_h);
virtual ~InputDialog();
private:
void handleKeyDown(StellaKey key, StellaMod mod) override;
void handleJoyDown(int stick, int button) override;
void handleJoyAxis(int stick, int axis, int value) override;
bool handleJoyHat(int stick, int hat, JoyHat value) override;
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
void loadConfig() override;
void saveConfig() override;
void setDefaults() override;
void addDevicePortTab(const GUI::Font& font);
void eraseEEPROM();
private:
enum {
kDeadzoneChanged = 'DZch',
kDPSpeedChanged = 'PDch',
kMPSpeedChanged = 'PMch',
kTBSpeedChanged = 'TBch',
kDBButtonPressed = 'DBbp',
kEEButtonPressed = 'EEbp',
kConfirmEEEraseCmd = 'EEcf'
};
TabWidget* myTab;
EventMappingWidget* myEmulEventMapper;
EventMappingWidget* myMenuEventMapper;
CheckboxWidget* mySAPort;
PopUpWidget* myMouseControl;
PopUpWidget* myCursorState;
EditTextWidget* myAVoxPort;
SliderWidget* myDeadzone;
StaticTextWidget* myDeadzoneLabel;
SliderWidget* myDPaddleSpeed;
SliderWidget* myMPaddleSpeed;
SliderWidget* myTrackBallSpeed;
StaticTextWidget* myDPaddleLabel;
StaticTextWidget* myMPaddleLabel;
StaticTextWidget* myTrackBallLabel;
CheckboxWidget* myAllowAll4;
CheckboxWidget* myGrabMouse;
CheckboxWidget* myCtrlCombo;
ButtonWidget* myJoyDlgButton;
ButtonWidget* myEraseEEPROMButton;
// Show the list of joysticks that the eventhandler knows about
unique_ptr<JoystickDialog> myJoyDialog;
// Show a message about the dangers of using this function
unique_ptr<GUI::MessageBox> myConfirmMsg;
// Maximum width and height for this dialog
int myMaxWidth, myMaxHeight;
private:
// Following constructors and assignment operators not supported
InputDialog() = delete;
InputDialog(const InputDialog&) = delete;
InputDialog(InputDialog&&) = delete;
InputDialog& operator=(const InputDialog&) = delete;
InputDialog& operator=(InputDialog&&) = delete;
};
#endif