1 //============================================================================ 2 // 3 // SSSS tt lll lll 4 // SS SS tt ll ll 5 // SS tttttt eeee ll ll aaaa 6 // SSSS tt ee ee ll ll aa 7 // SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator" 8 // SS SS tt ee ll ll aa aa 9 // SSSS ttt eeeee llll llll aaaaa 10 // 11 // Copyright (c) 1995-2021 by Bradford W. Mott, Stephen Anthony 12 // and the Stella Team 13 // 14 // See the file "License.txt" for information on usage and redistribution of 15 // this file, and for a DISCLAIMER OF ALL WARRANTIES. 16 //============================================================================ 17 18 #ifndef JOYSTICK_WIDGET_HXX 19 #define JOYSTICK_WIDGET_HXX 20 21 #include "Control.hxx" 22 #include "ControllerWidget.hxx" 23 24 class JoystickWidget : public ControllerWidget 25 { 26 public: 27 JoystickWidget(GuiObject* boss, const GUI::Font& font, int x, int y, 28 Controller& controller, bool embedded = false); 29 ~JoystickWidget() override = default; 30 31 private: 32 enum { kJUp = 0, kJDown, kJLeft, kJRight, kJFire }; 33 34 std::array<CheckboxWidget*, 5> myPins{nullptr}; 35 static constexpr std::array<Controller::DigitalPin, 5> ourPinNo = {{ 36 Controller::DigitalPin::One, Controller::DigitalPin::Two, 37 Controller::DigitalPin::Three, Controller::DigitalPin::Four, 38 Controller::DigitalPin::Six 39 }}; 40 41 private: 42 void loadConfig() override; 43 void handleCommand(CommandSender* sender, int cmd, int data, int id) override; 44 45 // Following constructors and assignment operators not supported 46 JoystickWidget() = delete; 47 JoystickWidget(const JoystickWidget&) = delete; 48 JoystickWidget(JoystickWidget&&) = delete; 49 JoystickWidget& operator=(const JoystickWidget&) = delete; 50 JoystickWidget& operator=(JoystickWidget&&) = delete; 51 }; 52 53 #endif 54