Mercurial > hg > orthanc-stone
comparison 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 |
comparison
equal
deleted
inserted
replaced
326:612238b3f3e8 | 327:8716176ff7f0 |
---|---|
136 } | 136 } |
137 } | 137 } |
138 | 138 |
139 void QCairoWidget::keyPressEvent(QKeyEvent *event) | 139 void QCairoWidget::keyPressEvent(QKeyEvent *event) |
140 { | 140 { |
141 using namespace OrthancStone; | |
142 | |
141 OrthancStone::KeyboardModifiers stoneModifiers = GetKeyboardModifiers(event); | 143 OrthancStone::KeyboardModifiers stoneModifiers = GetKeyboardModifiers(event); |
142 | 144 |
143 context_->GetCentralViewport().KeyPressed(event->text()[0].toLatin1(), stoneModifiers); | 145 OrthancStone::KeyboardKeys keyType = OrthancStone::KeyboardKeys_Generic; |
146 char keyChar = event->text()[0].toLatin1(); | |
147 | |
148 #define CASE_QT_KEY_TO_ORTHANC(qt, o) case qt: keyType = o; break; | |
149 if (keyChar == 0) | |
150 { | |
151 switch (event->key()) | |
152 { | |
153 CASE_QT_KEY_TO_ORTHANC(Qt::Key_Up, KeyboardKeys_Up); | |
154 CASE_QT_KEY_TO_ORTHANC(Qt::Key_Down, KeyboardKeys_Down); | |
155 CASE_QT_KEY_TO_ORTHANC(Qt::Key_Left, KeyboardKeys_Left); | |
156 CASE_QT_KEY_TO_ORTHANC(Qt::Key_Right, KeyboardKeys_Right); | |
157 default: | |
158 break; | |
159 } | |
160 } | |
161 context_->GetCentralViewport().KeyPressed(keyType, keyChar, stoneModifiers); | |
144 } | 162 } |
145 | 163 |
146 | 164 |
147 void QCairoWidget::resizeEvent(QResizeEvent* event) | 165 void QCairoWidget::resizeEvent(QResizeEvent* event) |
148 { | 166 { |