| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- // SPDX-FileCopyrightText: 2018 Citra Emulator Project
- // SPDX-License-Identifier: GPL-2.0-or-later
- #pragma once
- #include <memory>
- #include <QDialog>
- class QLabel;
- class QPushButton;
- class QStringListModel;
- class QVBoxLayout;
- namespace InputCommon {
- class InputSubsystem;
- }
- namespace InputCommon::CemuhookUDP {
- class CalibrationConfigurationJob;
- }
- namespace Ui {
- class ConfigureMotionTouch;
- }
- /// A dialog for touchpad calibration configuration.
- class CalibrationConfigurationDialog : public QDialog {
- Q_OBJECT
- public:
- explicit CalibrationConfigurationDialog(QWidget* parent, const std::string& host, u16 port);
- ~CalibrationConfigurationDialog() override;
- private:
- Q_INVOKABLE void UpdateLabelText(const QString& text);
- Q_INVOKABLE void UpdateButtonText(const QString& text);
- QVBoxLayout* layout;
- QLabel* status_label;
- QPushButton* cancel_button;
- std::unique_ptr<InputCommon::CemuhookUDP::CalibrationConfigurationJob> job;
- // Configuration results
- bool completed{};
- u16 min_x{};
- u16 min_y{};
- u16 max_x{};
- u16 max_y{};
- friend class ConfigureMotionTouch;
- };
- class ConfigureMotionTouch : public QDialog {
- Q_OBJECT
- public:
- explicit ConfigureMotionTouch(QWidget* parent, InputCommon::InputSubsystem* input_subsystem_);
- ~ConfigureMotionTouch() override;
- public slots:
- void ApplyConfiguration();
- private slots:
- void OnUDPAddServer();
- void OnUDPDeleteServer();
- void OnCemuhookUDPTest();
- void OnConfigureTouchCalibration();
- void OnConfigureTouchFromButton();
- private:
- void closeEvent(QCloseEvent* event) override;
- Q_INVOKABLE void ShowUDPTestResult(bool result);
- void SetConfiguration();
- void UpdateUiDisplay();
- void ConnectEvents();
- bool CanCloseDialog();
- std::string GetUDPServerString() const;
- InputCommon::InputSubsystem* input_subsystem;
- std::unique_ptr<Ui::ConfigureMotionTouch> ui;
- QStringListModel* udp_server_list_model;
- // Coordinate system of the CemuhookUDP touch provider
- int min_x{};
- int min_y{};
- int max_x{};
- int max_y{};
- bool udp_test_in_progress{};
- std::vector<Settings::TouchFromButtonMap> touch_from_button_maps;
- };
|