89 lines
1.9 KiB
C++
Executable File
89 lines
1.9 KiB
C++
Executable File
class InputCaptureWindow : public QObject {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
struct Window : public QWidget {
|
|
void closeEvent(QCloseEvent*);
|
|
} *window;
|
|
QVBoxLayout *layout;
|
|
QHBoxLayout *hlayout;
|
|
QLabel *title;
|
|
QPushButton *mouseAxes;
|
|
QPushButton *mouseButtons;
|
|
QWidget *imageSpacer;
|
|
struct ImageWidget : public QWidget {
|
|
void paintEvent(QPaintEvent*);
|
|
} *imageWidget;
|
|
QWidget *spacer;
|
|
|
|
void setup();
|
|
void activate(InputObject *object);
|
|
void activate(InputGroup *group);
|
|
void inputEvent(uint16_t code, bool forceAssign = false);
|
|
InputCaptureWindow();
|
|
|
|
public slots:
|
|
void assignMouseAxis();
|
|
void assignMouseButton();
|
|
|
|
private:
|
|
InputObject *activeObject;
|
|
InputGroup *activeGroup;
|
|
unsigned groupIndex;
|
|
bool inputLock;
|
|
|
|
friend class InputCaptureWindow::Window;
|
|
} *winInputCapture;
|
|
|
|
class InputMouseCaptureWindow : public QObject {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
enum Mode { AxisMode, ButtonMode };
|
|
|
|
QWidget *window;
|
|
QVBoxLayout *layout;
|
|
QLabel *info;
|
|
QLabel *captureBox;
|
|
QHBoxLayout *buttonLayout;
|
|
QPushButton *xAxis;
|
|
QPushButton *yAxis;
|
|
QWidget *spacer;
|
|
|
|
void setup();
|
|
void activate(Mode);
|
|
void inputEvent(uint16_t code);
|
|
|
|
public slots:
|
|
void assignAxisX();
|
|
void assignAxisY();
|
|
|
|
private:
|
|
Mode activeMode;
|
|
signed activeMouse;
|
|
} *winInputMouseCaptureWindow;
|
|
|
|
class InputCalibrationWindow : public QObject {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
struct Window : public QWidget {
|
|
void closeEvent(QCloseEvent*);
|
|
} *window;
|
|
QVBoxLayout *layout;
|
|
QLabel *info;
|
|
QPushButton *ok;
|
|
QWidget *spacer;
|
|
|
|
void setup();
|
|
void activate(unsigned joy);
|
|
|
|
public slots:
|
|
void dismiss();
|
|
|
|
private:
|
|
int activeJoypad;
|
|
|
|
friend class InputCalibrationWindow::Window;
|
|
} *winInputCalibration;
|