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;
}
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) {
if (!this->IsActive()) {
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()) {
case WXK_UP:
case WXK_NUMPAD_UP:
@ -1838,19 +1864,11 @@ int AppFrame::OnGlobalKeyDown(wxKeyEvent &event) {
case 'V':
return 1;
case ']':
if (lastDemod) {
lastDemod->setFrequency(lastDemod->getFrequency()+snap);
lastDemod->updateLabel(lastDemod->getFrequency());
}
gkNudgeRight(lastDemod, snap);
return 1;
break;
case '[':
if (lastDemod) {
lastDemod->setFrequency(lastDemod->getFrequency()-snap);
lastDemod->updateLabel(lastDemod->getFrequency());
}
gkNudgeLeft(lastDemod, snap);
return 1;
break;
case 'A':
case 'F':
case 'L':
@ -1885,7 +1903,6 @@ int AppFrame::OnGlobalKeyDown(wxKeyEvent &event) {
wxGetApp().getDemodMgr().setActiveDemodulator(demod, false);
}
return 1;
break;
default:
break;
}
@ -1906,6 +1923,15 @@ int AppFrame::OnGlobalKeyUp(wxKeyEvent &event) {
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()) {
case WXK_SPACE:
if (!demodTuner->getMouseTracker()->mouseInView()) {

View File

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