Mercurial > hg > orthanc-stone
diff Applications/Qt/QCairoWidget.cpp @ 327:8716176ff7f0 am-2
added support for arrow keys
author | am@osimis.io |
---|---|
date | Tue, 16 Oct 2018 15:25:21 +0200 |
parents | 3a4ca166fafa |
children | 557c8ff1db5c |
line wrap: on
line diff
--- a/Applications/Qt/QCairoWidget.cpp Tue Oct 16 12:57:38 2018 +0200 +++ b/Applications/Qt/QCairoWidget.cpp Tue Oct 16 15:25:21 2018 +0200 @@ -138,9 +138,27 @@ void QCairoWidget::keyPressEvent(QKeyEvent *event) { + using namespace OrthancStone; + OrthancStone::KeyboardModifiers stoneModifiers = GetKeyboardModifiers(event); - context_->GetCentralViewport().KeyPressed(event->text()[0].toLatin1(), stoneModifiers); + OrthancStone::KeyboardKeys keyType = OrthancStone::KeyboardKeys_Generic; + char keyChar = event->text()[0].toLatin1(); + +#define CASE_QT_KEY_TO_ORTHANC(qt, o) case qt: keyType = o; break; + if (keyChar == 0) + { + switch (event->key()) + { + CASE_QT_KEY_TO_ORTHANC(Qt::Key_Up, KeyboardKeys_Up); + CASE_QT_KEY_TO_ORTHANC(Qt::Key_Down, KeyboardKeys_Down); + CASE_QT_KEY_TO_ORTHANC(Qt::Key_Left, KeyboardKeys_Left); + CASE_QT_KEY_TO_ORTHANC(Qt::Key_Right, KeyboardKeys_Right); + default: + break; + } + } + context_->GetCentralViewport().KeyPressed(keyType, keyChar, stoneModifiers); }