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 {