#pragma once #include "core/types.h" #include #include #include #include #include #include #include #include #include class QTimer; class QtHostInterface; class InputButtonBindingWidget; class PortSettingsWidget : public QWidget { Q_OBJECT public: PortSettingsWidget(QtHostInterface* host_interface, QWidget* parent = nullptr); ~PortSettingsWidget(); private: QtHostInterface* m_host_interface; QTabWidget* m_tab_widget; struct PortSettingsUI { QWidget* widget; QVBoxLayout* layout; QComboBox* controller_type; QLineEdit* memory_card_path; QPushButton* memory_card_path_browse; QWidget* button_binding_container; }; void createUi(); void createPortSettingsUi(int index, PortSettingsUI* ui); void createPortBindingSettingsUi(int index, PortSettingsUI* ui, ControllerType ctype); void onControllerTypeChanged(int index); std::array m_port_ui = {}; };