stella/src/gui/QuadTariDialog.hxx

70 lines
2.1 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-2020 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 JOYSTICK_DIALOG_HXX
#define JOYSTICK_DIALOG_HXX
class CommandSender;
class PopUpWidget;
#include "Dialog.hxx"
/**
* Allow assigning controllers to the four QuadTari ports.
*/
class QuadTariDialog: public Dialog
{
public:
QuadTariDialog(GuiObject* boss, const GUI::Font& font, int max_w, int max_h,
Properties& properties);
~QuadTariDialog() override = default;
/** Place the dialog onscreen */
void show(bool enableLeft, bool enableRight);
private:
void loadConfig() override;
void saveConfig() override;
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
void setDefaults() override;
void loadControllerProperties(const Properties& props);
private:
StaticTextWidget* myLeftPortLabel{nullptr};
PopUpWidget* myLeft1Port{nullptr};
PopUpWidget* myLeft2Port{nullptr};
StaticTextWidget* myRightPortLabel{nullptr};
PopUpWidget* myRight1Port{nullptr};
PopUpWidget* myRight2Port{nullptr};
// Game properties for currently loaded ROM
Properties& myGameProperties;
private:
// Following constructors and assignment operators not supported
QuadTariDialog() = delete;
QuadTariDialog(const QuadTariDialog&) = delete;
QuadTariDialog(QuadTariDialog&&) = delete;
QuadTariDialog& operator=(const QuadTariDialog&) = delete;
QuadTariDialog& operator=(QuadTariDialog&&) = delete;
};
#endif