149 lines
2.7 KiB
C++
149 lines
2.7 KiB
C++
#pragma once
|
|
|
|
#include <Qt>
|
|
#include <QWidget>
|
|
#include <QKeyEvent>
|
|
|
|
namespace BGTU::ComputerGraphicsLabWork::Impl {
|
|
class KeyboardCatcherWidget : public QWidget {
|
|
Q_OBJECT
|
|
public:
|
|
inline KeyboardCatcherWidget(QWidget *parent = nullptr) : QWidget{parent} {
|
|
this->grabKeyboard();
|
|
}
|
|
|
|
signals:
|
|
|
|
void key_pressed_PageUp();
|
|
|
|
void key_pressed_PageDown();
|
|
|
|
void key_pressed_G();
|
|
|
|
void key_pressed_1();
|
|
|
|
void key_pressed_2();
|
|
|
|
void key_pressed_3();
|
|
|
|
void key_pressed_4();
|
|
|
|
void key_pressed_5();
|
|
|
|
void key_pressed_6();
|
|
|
|
void key_pressed_7();
|
|
|
|
void key_pressed_8();
|
|
|
|
void key_pressed_9();
|
|
|
|
void key_pressed_0();
|
|
|
|
void key_pressed_F1();
|
|
|
|
void key_pressed_F2();
|
|
|
|
void key_pressed_F3();
|
|
|
|
void key_pressed_F4();
|
|
|
|
void key_pressed_F5();
|
|
|
|
void key_pressed_F6();
|
|
|
|
void key_pressed_F7();
|
|
|
|
void key_pressed_F8();
|
|
|
|
void key_pressed_F9();
|
|
|
|
void key_pressed_F10();
|
|
|
|
void key_pressed_F11();
|
|
|
|
void key_pressed_F12();
|
|
|
|
protected:
|
|
void keyPressEvent(QKeyEvent *event) override {
|
|
switch (event->key()) {
|
|
case Qt::Key_PageUp:
|
|
emit this->key_pressed_PageUp();
|
|
return;
|
|
case Qt::Key_PageDown:
|
|
emit this->key_pressed_PageDown();
|
|
return;
|
|
case Qt::Key_G:
|
|
emit this->key_pressed_G();
|
|
return;
|
|
case Qt::Key_1:
|
|
emit this->key_pressed_1();
|
|
return;
|
|
case Qt::Key_2:
|
|
emit this->key_pressed_2();
|
|
return;
|
|
case Qt::Key_3:
|
|
emit this->key_pressed_3();
|
|
return;
|
|
case Qt::Key_4:
|
|
emit this->key_pressed_4();
|
|
return;
|
|
case Qt::Key_5:
|
|
emit this->key_pressed_5();
|
|
return;
|
|
case Qt::Key_6:
|
|
emit this->key_pressed_6();
|
|
return;
|
|
case Qt::Key_7:
|
|
emit this->key_pressed_7();
|
|
return;
|
|
case Qt::Key_8:
|
|
emit this->key_pressed_8();
|
|
return;
|
|
case Qt::Key_9:
|
|
emit this->key_pressed_9();
|
|
return;
|
|
case Qt::Key_0:
|
|
emit this->key_pressed_0();
|
|
return;
|
|
case Qt::Key_F1:
|
|
emit this->key_pressed_F1();
|
|
return;
|
|
case Qt::Key_F2:
|
|
emit this->key_pressed_F2();
|
|
return;
|
|
case Qt::Key_F3:
|
|
emit this->key_pressed_F3();
|
|
return;
|
|
case Qt::Key_F4:
|
|
emit this->key_pressed_F4();
|
|
return;
|
|
case Qt::Key_F5:
|
|
emit this->key_pressed_F5();
|
|
return;
|
|
case Qt::Key_F6:
|
|
emit this->key_pressed_F6();
|
|
return;
|
|
case Qt::Key_F7:
|
|
emit this->key_pressed_F7();
|
|
return;
|
|
case Qt::Key_F8:
|
|
emit this->key_pressed_F8();
|
|
return;
|
|
case Qt::Key_F9:
|
|
emit this->key_pressed_F9();
|
|
return;
|
|
case Qt::Key_F10:
|
|
emit this->key_pressed_F10();
|
|
return;
|
|
case Qt::Key_F11:
|
|
emit this->key_pressed_F11();
|
|
return;
|
|
case Qt::Key_F12:
|
|
emit this->key_pressed_F12();
|
|
return;
|
|
}
|
|
|
|
}
|
|
};
|
|
} |