#pragma once #include #include #include 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; } } }; }