| | |
| | |
| |
|
| | #pragma once |
| |
|
| | #include <array> |
| | #include <memory> |
| |
|
| | #include <QKeyEvent> |
| | #include <QList> |
| | #include <QWidget> |
| |
|
| | namespace Core { |
| | class System; |
| | } |
| |
|
| | class QCheckBox; |
| | class QString; |
| | class QTimer; |
| |
|
| | class ConfigureInputAdvanced; |
| | class ConfigureInputPlayer; |
| |
|
| | class InputProfiles; |
| |
|
| | namespace InputCommon { |
| | class InputSubsystem; |
| | } |
| |
|
| | namespace Ui { |
| | class ConfigureInput; |
| | } |
| |
|
| | void OnDockedModeChanged(bool last_state, bool new_state, Core::System& system); |
| |
|
| | class ConfigureInput : public QWidget { |
| | Q_OBJECT |
| |
|
| | public: |
| | explicit ConfigureInput(Core::System& system_, QWidget* parent = nullptr); |
| | ~ConfigureInput() override; |
| |
|
| | |
| | void Initialize(InputCommon::InputSubsystem* input_subsystem_, std::size_t max_players = 8); |
| |
|
| | |
| | void ApplyConfiguration(); |
| |
|
| | QList<QWidget*> GetSubTabs() const; |
| |
|
| | private: |
| | void changeEvent(QEvent* event) override; |
| | void RetranslateUI(); |
| | void ClearAll(); |
| |
|
| | void UpdateDockedState(bool is_handheld); |
| | void UpdateAllInputDevices(); |
| | void UpdateAllInputProfiles(std::size_t player_index); |
| | |
| | void PropagatePlayerNumberChanged(size_t player_index, bool checked, |
| | bool reconnect_current = false); |
| |
|
| | |
| | void LoadConfiguration(); |
| | void LoadPlayerControllerIndices(); |
| |
|
| | |
| | void RestoreDefaults(); |
| |
|
| | std::unique_ptr<Ui::ConfigureInput> ui; |
| |
|
| | std::unique_ptr<InputProfiles> profiles; |
| |
|
| | std::array<ConfigureInputPlayer*, 8> player_controllers; |
| | std::array<QWidget*, 8> player_tabs; |
| | |
| | std::array<QCheckBox*, 8> connected_controller_checkboxes; |
| | ConfigureInputAdvanced* advanced; |
| |
|
| | Core::System& system; |
| | }; |
| |
|