Start typing number to set center frequency

This commit is contained in:
Charles J. Cliffe 2016-02-07 19:32:05 -05:00
parent 2295b47d69
commit d7bb214d42
5 changed files with 26 additions and 6 deletions

View File

@ -1564,6 +1564,19 @@ int AppFrame::OnGlobalKeyDown(wxKeyEvent &event) {
case 'L': case 'L':
case 'U': case 'U':
return 0; return 0;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
wxGetApp().showFrequencyInput(FrequencyDialog::FDIALOG_TARGET_DEFAULT, std::to_string(event.GetKeyCode() - '0'));
return 0;
break;
default: default:
break; break;
} }

View File

@ -650,7 +650,7 @@ int CubicSDR::getPPM() {
} }
void CubicSDR::showFrequencyInput(FrequencyDialog::FrequencyDialogTarget targetMode) { void CubicSDR::showFrequencyInput(FrequencyDialog::FrequencyDialogTarget targetMode, wxString initString) {
const wxString demodTitle("Set Demodulator Frequency"); const wxString demodTitle("Set Demodulator Frequency");
const wxString freqTitle("Set Center Frequency"); const wxString freqTitle("Set Center Frequency");
const wxString bwTitle("Set Demodulator Bandwidth"); const wxString bwTitle("Set Demodulator Bandwidth");
@ -668,7 +668,7 @@ void CubicSDR::showFrequencyInput(FrequencyDialog::FrequencyDialogTarget targetM
break; break;
} }
FrequencyDialog fdialog(appframe, -1, title, demodMgr.getActiveDemodulator(), wxPoint(-100,-100), wxSize(320, 75 ), wxDEFAULT_DIALOG_STYLE, targetMode); FrequencyDialog fdialog(appframe, -1, title, demodMgr.getActiveDemodulator(), wxPoint(-100,-100), wxSize(320, 75 ), wxDEFAULT_DIALOG_STYLE, targetMode, initString);
fdialog.ShowModal(); fdialog.ShowModal();
} }

View File

@ -125,7 +125,7 @@ public:
void setPPM(int ppm_in); void setPPM(int ppm_in);
int getPPM(); int getPPM();
void showFrequencyInput(FrequencyDialog::FrequencyDialogTarget targetMode = FrequencyDialog::FDIALOG_TARGET_DEFAULT); void showFrequencyInput(FrequencyDialog::FrequencyDialogTarget targetMode = FrequencyDialog::FDIALOG_TARGET_DEFAULT, wxString initString = "");
AppFrame *getAppFrame(); AppFrame *getAppFrame();
bool areDevicesReady(); bool areDevicesReady();

View File

@ -9,7 +9,7 @@ EVT_CHAR_HOOK(FrequencyDialog::OnChar)
wxEND_EVENT_TABLE() wxEND_EVENT_TABLE()
FrequencyDialog::FrequencyDialog(wxWindow * parent, wxWindowID id, const wxString & title, DemodulatorInstance *demod, const wxPoint & position, FrequencyDialog::FrequencyDialog(wxWindow * parent, wxWindowID id, const wxString & title, DemodulatorInstance *demod, const wxPoint & position,
const wxSize & size, long style, FrequencyDialogTarget targetMode) : const wxSize & size, long style, FrequencyDialogTarget targetMode, wxString initString) :
wxDialog(parent, id, title, position, size, style) { wxDialog(parent, id, title, position, size, style) {
wxString freqStr; wxString freqStr;
activeDemod = demod; activeDemod = demod;
@ -38,7 +38,13 @@ FrequencyDialog::FrequencyDialog(wxWindow * parent, wxWindowID id, const wxStrin
Centre(); Centre();
if (initString != "") {
dialogText->SetValue(initString);
dialogText->SetSelection(initString.length(), initString.length());
dialogText->SetFocus();
} else {
dialogText->SetSelection(-1, -1); dialogText->SetSelection(-1, -1);
}
} }

View File

@ -17,7 +17,8 @@ public:
const wxPoint & pos = wxDefaultPosition, const wxPoint & pos = wxDefaultPosition,
const wxSize & size = wxDefaultSize, const wxSize & size = wxDefaultSize,
long style = wxDEFAULT_DIALOG_STYLE, long style = wxDEFAULT_DIALOG_STYLE,
FrequencyDialogTarget targetMode = FDIALOG_TARGET_DEFAULT); FrequencyDialogTarget targetMode = FDIALOG_TARGET_DEFAULT,
wxString initString = "");
wxTextCtrl * dialogText; wxTextCtrl * dialogText;