void MainWindow::keyPressEvent(QKeyEvent *event) { bool hide_win = (event->key() == Qt::Key_Escape); bool quit_app = false; SelMove mv = SELMOVE_NO; if(event->modifiers() && Qt::ControlModifier) { switch(event->key()) { case Qt::Key_H: mv = SELMOVE_TOP; break; case Qt::Key_L: mv = SELMOVE_BTM; break; case Qt::Key_K: mv = SELMOVE_UP; break; case Qt::Key_J: mv = SELMOVE_DWN; break; case Qt::Key_M: mv = SELMOVE_MID; break; case Qt::Key_C: hide_win = true; break; #ifndef QT_NO_DEBUG case Qt::Key_X: quit_app = true; break; #endif } } else { switch(event->key()) { case Qt::Key_Home: mv = SELMOVE_TOP; break; case Qt::Key_End: mv = SELMOVE_BTM; break; case Qt::Key_Up: mv = SELMOVE_UP; break; case Qt::Key_Down: mv = SELMOVE_DWN; break; } } moveSel(mv); if(hide_win) { hide(); } // TODO: Debug only! Remove later... if(quit_app) { quitMain(); } }
void MainWindow::onHotkey(void) { if((HWND)this->winId() == GetActiveWindow()) { // Already active window. moveSel(SELMOVE_DWN); } else { showMain(); } }
void TCluster::setState(ushort aState, Boolean enable) { TView::setState(aState, enable); if (aState == sfSelected) { int i = 0, s = sel - 1; do { i++; s++; if (s >= strings->getCount()) s = 0; } while (!(buttonState(s) || i > strings->getCount())); moveSel(i, s); } drawView(); }
void TCluster::handleEvent(TEvent &event) { TView::handleEvent(event); if (!(options & ofSelectable)) return; if (event.what == evMouseDown) { TPoint mouse = makeLocal(event.mouse.where); int i = findSel(mouse); if ((i != -1) && buttonState(i)) sel = i; drawView(); do { mouse = makeLocal(event.mouse.where); if ((findSel(mouse) == sel) && buttonState(sel)) showCursor(); else hideCursor(); } while (mouseEvent(event, evMouseMove)); showCursor(); mouse = makeLocal(event.mouse.where); if (findSel(mouse) == sel) { press(sel); drawView(); } clearEvent(event); } else if (event.what == evKeyDown) { int s = sel; switch (ctrlToArrow(event.keyDown.keyCode)) { case kbUp: if ((state & sfFocused) != 0) { int i = 0; do { i++; s--; if (s < 0) s = strings->getCount() - 1; } while (!(buttonState(s) || (i > strings->getCount()))); moveSel(i, s); clearEvent(event); } break; case kbDown: if ((state & sfFocused) != 0) { int i = 0; do { i++; s++; if (s >= strings->getCount()) s = 0; } while (!(buttonState(s) || (i > strings->getCount()))); moveSel(i, s); clearEvent(event); } break; case kbRight: if ((state & sfFocused) != 0) { int i = 0; do { i++; s += size.y; if (s >= strings->getCount()) { // BUG FIX - EFW - 10/25/94 s = (s + 1) % size.y; if (s >= strings->getCount()) s = 0; } } while (!(buttonState(s) || (i > strings->getCount()))); moveSel(i, s); // BUG FIX - EFW - 10/25/94 clearEvent(event); } break; case kbLeft: if ((state & sfFocused) != 0) { int i = 0; do { i++; if (s > 0) { s -= size.y; if (s < 0) { s = ((strings->getCount() + size.y - 1) / size.y) * size.y + s - 1; if (s >= strings->getCount()) s = strings->getCount() - 1; } } else s = strings->getCount() - 1; } while (!(buttonState(s) || (i > strings->getCount()))); moveSel(i, s); // BUG FIX - EFW - 10/25/94 clearEvent(event); } break; default: for (int i = 0; i < strings->getCount(); i++) { char c = hotKey((char *)(strings->at(i))); if (getAltCode(c) == event.keyDown.keyCode || ((owner->phase == phPostProcess || (state & sfFocused) != 0 ) && c != 0 && toupper(event.keyDown.charScan.charCode) == c ) ) { if (buttonState(i)) { if (focus()) { sel = i; movedTo(sel); press(sel); drawView(); } clearEvent(event); } return; } } if (event.keyDown.charScan.charCode == ' ' && (state & sfFocused) != 0 ) { press(sel); drawView(); clearEvent(event); } } } }