Universal [ nudge ] keys

This commit is contained in:
Charles J. Cliffe 2016-05-18 23:12:48 -04:00
parent c4826cab7b
commit a1c7d0b5f8
2 changed files with 40 additions and 11 deletions

View File

@ -1810,6 +1810,20 @@ FrequencyDialog::FrequencyDialogTarget AppFrame::getFrequencyDialogTarget() {
return target; return target;
} }
void AppFrame::gkNudgeLeft(DemodulatorInstance *demod, int snap) {
if (demod) {
demod->setFrequency(demod->getFrequency()-snap);
demod->updateLabel(demod->getFrequency());
}
}
void AppFrame::gkNudgeRight(DemodulatorInstance *demod, int snap) {
if (demod) {
demod->setFrequency(demod->getFrequency()+snap);
demod->updateLabel(demod->getFrequency());
}
}
int AppFrame::OnGlobalKeyDown(wxKeyEvent &event) { int AppFrame::OnGlobalKeyDown(wxKeyEvent &event) {
if (!this->IsActive()) { if (!this->IsActive()) {
return -1; return -1;
@ -1824,6 +1838,18 @@ int AppFrame::OnGlobalKeyDown(wxKeyEvent &event) {
} }
} }
#ifdef wxHAS_RAW_KEY_CODES
switch (event.GetRawKeyCode()) {
case 30:
gkNudgeRight(lastDemod, snap);
return 1;
case 33:
gkNudgeLeft(lastDemod, snap);
return 1;
}
#endif
switch (event.GetKeyCode()) { switch (event.GetKeyCode()) {
case WXK_UP: case WXK_UP:
case WXK_NUMPAD_UP: case WXK_NUMPAD_UP:
@ -1838,19 +1864,11 @@ int AppFrame::OnGlobalKeyDown(wxKeyEvent &event) {
case 'V': case 'V':
return 1; return 1;
case ']': case ']':
if (lastDemod) { gkNudgeRight(lastDemod, snap);
lastDemod->setFrequency(lastDemod->getFrequency()+snap);
lastDemod->updateLabel(lastDemod->getFrequency());
}
return 1; return 1;
break;
case '[': case '[':
if (lastDemod) { gkNudgeLeft(lastDemod, snap);
lastDemod->setFrequency(lastDemod->getFrequency()-snap);
lastDemod->updateLabel(lastDemod->getFrequency());
}
return 1; return 1;
break;
case 'A': case 'A':
case 'F': case 'F':
case 'L': case 'L':
@ -1885,7 +1903,6 @@ int AppFrame::OnGlobalKeyDown(wxKeyEvent &event) {
wxGetApp().getDemodMgr().setActiveDemodulator(demod, false); wxGetApp().getDemodMgr().setActiveDemodulator(demod, false);
} }
return 1; return 1;
break;
default: default:
break; break;
} }
@ -1906,6 +1923,15 @@ int AppFrame::OnGlobalKeyUp(wxKeyEvent &event) {
DemodulatorInstance *lastDemod = wxGetApp().getDemodMgr().getLastActiveDemodulator(); DemodulatorInstance *lastDemod = wxGetApp().getDemodMgr().getLastActiveDemodulator();
#ifdef wxHAS_RAW_KEY_CODES
switch (event.GetRawKeyCode()) {
case 30:
return 1;
case 33:
return 1;
}
#endif
switch (event.GetKeyCode()) { switch (event.GetKeyCode()) {
case WXK_SPACE: case WXK_SPACE:
if (!demodTuner->getMouseTracker()->mouseInView()) { if (!demodTuner->getMouseTracker()->mouseInView()) {

View File

@ -84,6 +84,9 @@ public:
void updateModemProperties(ModemArgInfoList args); void updateModemProperties(ModemArgInfoList args);
void setMainWaterfallFFTSize(int fftSize); void setMainWaterfallFFTSize(int fftSize);
void gkNudgeLeft(DemodulatorInstance *demod, int snap);
void gkNudgeRight(DemodulatorInstance *demod, int snap);
int OnGlobalKeyDown(wxKeyEvent &event); int OnGlobalKeyDown(wxKeyEvent &event);
int OnGlobalKeyUp(wxKeyEvent &event); int OnGlobalKeyUp(wxKeyEvent &event);