computer-graphics-0/programs/labs1_5/src/keyboard_catcher_widget.hpp

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;
}
}
};
}