configure_input_advanced.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <array>
  5. #include <memory>
  6. #include <QWidget>
  7. class QColor;
  8. class QPushButton;
  9. namespace Ui {
  10. class ConfigureInputAdvanced;
  11. }
  12. namespace Core::HID {
  13. class HIDCore;
  14. } // namespace Core::HID
  15. class ConfigureInputAdvanced : public QWidget {
  16. Q_OBJECT
  17. public:
  18. explicit ConfigureInputAdvanced(Core::HID::HIDCore& hid_core_, QWidget* parent = nullptr);
  19. ~ConfigureInputAdvanced() override;
  20. void ApplyConfiguration();
  21. signals:
  22. void CallDebugControllerDialog();
  23. void CallMouseConfigDialog();
  24. void CallTouchscreenConfigDialog();
  25. void CallMotionTouchConfigDialog();
  26. void CallRingControllerDialog();
  27. void CallCameraDialog();
  28. private:
  29. void changeEvent(QEvent* event) override;
  30. void RetranslateUI();
  31. void UpdateUIEnabled();
  32. void OnControllerButtonClick(std::size_t player_idx, std::size_t button_idx);
  33. void LoadConfiguration();
  34. std::unique_ptr<Ui::ConfigureInputAdvanced> ui;
  35. std::array<std::array<QColor, 4>, 8> controllers_colors;
  36. std::array<std::array<QPushButton*, 4>, 8> controllers_color_buttons;
  37. Core::HID::HIDCore& hid_core;
  38. };