kopia lustrzana https://github.com/jamescoxon/dl-fldigi
				
				
				
			Remove contest menu
* Rename "On/Off" to "Contest fields" and add to View menu * Rename "Config" to "Contest" and add to Config menu * Save contest field display status across invocations * Make out serial number a read-only Fl_Input2 widgetpull/2/head
							rodzic
							
								
									433a3c5629
								
							
						
					
					
						commit
						a9459df7b9
					
				|  | @ -163,7 +163,7 @@ Fl_Input2			*inpLoc; | |||
| Fl_Input2			*inpState; | ||||
| Fl_Input2			*inpCountry; | ||||
| Fl_Input2			*inpSerNo; | ||||
| Fl_Output			*outSerNo; | ||||
| Fl_Input2			*outSerNo; | ||||
| Fl_Input2			*inpXchg1; | ||||
| Fl_Input2			*inpXchg2; | ||||
| Fl_Input2			*inpXchg3; | ||||
|  | @ -1205,7 +1205,7 @@ void cb_mnuViewer(Fl_Menu_ *, void *) { | |||
| 	openViewer(); | ||||
| } | ||||
| 
 | ||||
| void cb_mnuContest(Fl_Menu_ *, void *) { | ||||
| void cb_mnuContest(Fl_Menu_ *m, void *) { | ||||
| 	if (QsoInfoFrame1A->visible()) { | ||||
| 		QsoInfoFrame1A->hide(); | ||||
| 		QsoInfoFrame1B->show(); | ||||
|  | @ -1213,6 +1213,7 @@ void cb_mnuContest(Fl_Menu_ *, void *) { | |||
| 		QsoInfoFrame1B->hide(); | ||||
| 		QsoInfoFrame1A->show(); | ||||
| 	} | ||||
| 	progStatus.contest = m->mvalue()->value(); | ||||
| } | ||||
| 
 | ||||
| void cb_mnuPicViewer(Fl_Menu_ *, void *) { | ||||
|  | @ -1403,7 +1404,7 @@ void status_cb(Fl_Widget *b, void *arg) | |||
|                 if (!quick_change) | ||||
|                         return; | ||||
|                 const Fl_Menu_Item *m = quick_change->popup(Fl::event_x(), Fl::event_y()); | ||||
|                 if (m && m->callback_) | ||||
|                 if (m && m->callback()) | ||||
|                         m->do_callback(0); | ||||
|         } | ||||
| 
 | ||||
|  | @ -1576,6 +1577,7 @@ bool clean_exit(void) { | |||
| #define VIEW_MLABEL _("View") | ||||
| #define MFSK_IMAGE_MLABEL _("MFSK Image") | ||||
| #define CONTEST_MLABEL _("Contest") | ||||
| #define CONTEST_FIELDS_MLABEL _("Contest fields") | ||||
| 
 | ||||
| Fl_Menu_Item menu_[] = { | ||||
| {_("&Files"), 0,  0, 0, FL_SUBMENU, FL_NORMAL_LABEL, 0, 14, 0}, | ||||
|  | @ -1711,6 +1713,7 @@ Fl_Menu_Item menu_[] = { | |||
| { make_icon_label(_("Sound Card"), audio_card_icon), 0, (Fl_Callback*)cb_mnuConfigSoundCard, 0, FL_MENU_DIVIDER, _FL_MULTI_LABEL, 0, 14, 0}, | ||||
| { make_icon_label(_("IDs")), 0,  (Fl_Callback*)cb_mnuConfigID, 0, 0, _FL_MULTI_LABEL, 0, 14, 0}, | ||||
| { make_icon_label(_("Misc")), 0,  (Fl_Callback*)cb_mnuConfigMisc, 0, 0, _FL_MULTI_LABEL, 0, 14, 0}, | ||||
| { make_icon_label(CONTEST_MLABEL), 0,  (Fl_Callback*)cb_mnuConfigContest, 0, 0, _FL_MULTI_LABEL, 0, 14, 0}, | ||||
| { make_icon_label(_("QRZ"), net_icon), 0,  (Fl_Callback*)cb_mnuConfigQRZ, 0, FL_MENU_DIVIDER, _FL_MULTI_LABEL, 0, 14, 0}, | ||||
| { make_icon_label(_("Save Config"), save_icon), 0, (Fl_Callback*)cb_mnuSaveConfig, 0, 0, _FL_MULTI_LABEL, 0, 14, 0}, | ||||
| {0,0,0,0,0,0,0,0,0}, | ||||
|  | @ -1721,13 +1724,7 @@ Fl_Menu_Item menu_[] = { | |||
| { make_icon_label(_("PSK Browser")), 0, (Fl_Callback*)cb_mnuViewer, 0, 0, _FL_MULTI_LABEL, 0, 14, 0}, | ||||
| { make_icon_label(RIGCONTROL_MLABEL, multimedia_player_icon), 0, (Fl_Callback*)cb_mnuRig, 0, 0, _FL_MULTI_LABEL, 0, 14, 0}, | ||||
| { make_icon_label(_("Logbook")), 0, (Fl_Callback*)cb_mnuShowLogbook, 0, 0, _FL_MULTI_LABEL, 0, 14, 0}, | ||||
| 
 | ||||
| {0,0,0,0,0,0,0,0,0}, | ||||
| 
 | ||||
| { CONTEST_MLABEL, 0, 0, 0, FL_SUBMENU, FL_NORMAL_LABEL, 0, 14, 0}, | ||||
| { _("On/Off"), 0, (Fl_Callback*)cb_mnuContest, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, | ||||
| { _("Config"), 0,  (Fl_Callback*)cb_mnuConfigContest, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, | ||||
| 
 | ||||
| { CONTEST_FIELDS_MLABEL, 0, (Fl_Callback*)cb_mnuContest, 0, FL_MENU_TOGGLE, FL_NORMAL_LABEL, 0, 14, 0}, | ||||
| {0,0,0,0,0,0,0,0,0}, | ||||
| 
 | ||||
| {"     ", 0, 0, 0, FL_MENU_INACTIVE, FL_NORMAL_LABEL, 0, 14, 0}, | ||||
|  | @ -2053,11 +2050,6 @@ void create_fl_digi_main() { | |||
| 			} | ||||
| 			mnu->menu(menu_); | ||||
| 
 | ||||
| 			if (progStatus.LOGenabled) { | ||||
| 				Fl_Menu_Item* m = getMenuItem(LOG_TO_FILE_MLABEL); | ||||
| 				if (m) m->set(); | ||||
| 			} | ||||
| 
 | ||||
| 			// reset the message dialog font
 | ||||
| 			fl_message_font(FL_HELVETICA, FL_NORMAL_SIZE); | ||||
| 
 | ||||
|  | @ -2349,10 +2341,11 @@ void create_fl_digi_main() { | |||
| 
 | ||||
| 					Fl_Box *fm7box = new Fl_Box(rightof(inpSerNo) + pad, y3, w_fm6, qh - pad, _("#Out")); | ||||
| 					fm7box->align(FL_ALIGN_INSIDE); | ||||
| 					outSerNo = new Fl_Output(rightof(fm7box), y3, w_SerNo, qh - pad, ""); | ||||
| 					outSerNo = new Fl_Input2(rightof(fm7box), y3, w_SerNo, qh - pad, ""); | ||||
| 					outSerNo->align(FL_ALIGN_TOP | FL_ALIGN_LEFT); | ||||
| 					outSerNo->tooltip(_("Sent serial number (read only)")); | ||||
| 					 | ||||
| 					outSerNo->type(FL_NORMAL_OUTPUT); | ||||
| 
 | ||||
| 					Fl_Box *fm8box = new Fl_Box(rightof(outSerNo) + pad, y3, w_fm5, qh - pad, _("X1")); | ||||
| 					fm7box->align(FL_ALIGN_INSIDE); | ||||
| 					inpXchg1 = new Fl_Input2(rightof(fm8box), y3, w_Xchg, qh - pad, ""); | ||||
|  | @ -2685,6 +2678,24 @@ void create_fl_digi_main() { | |||
| 
 | ||||
| 	// ztimer must be run by FLTK's timeout handler
 | ||||
| 	Fl::add_timeout(0.0, ztimer, (void*)true); | ||||
| 
 | ||||
| 	// Set the state of toggle menu items
 | ||||
| 	struct { | ||||
| 		bool var; const char* label; | ||||
| 	} toggles[] = { | ||||
| 		{ progStatus.LOGenabled, LOG_TO_FILE_MLABEL }, | ||||
| 		{ progStatus.contest, CONTEST_FIELDS_MLABEL } | ||||
| 	}; | ||||
| 	Fl_Menu_Item* toggle; | ||||
| 	for (size_t i = 0; i < sizeof(toggles)/sizeof(*toggles); i++) { | ||||
| 		if (toggles[i].var && (toggle = getMenuItem(toggles[i].label))) { | ||||
| 			toggle->set(); | ||||
| 			if (toggle->callback()) { | ||||
| 				mnu->value(toggle); | ||||
| 				toggle->do_callback(reinterpret_cast<Fl_Widget*>(mnu)); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void put_freq(double frequency) | ||||
|  |  | |||
|  | @ -80,7 +80,7 @@ extern Fl_Input2		*inpQth; | |||
| extern Fl_Input2		*inpState; | ||||
| extern Fl_Input2		*inpCountry; | ||||
| extern Fl_Input2		*inpSerNo; | ||||
| extern Fl_Output		*outSerNo; | ||||
| extern Fl_Input2		*outSerNo; | ||||
| extern Fl_Input2		*inpXchg1; | ||||
| extern Fl_Input2		*inpXchg2; | ||||
| extern Fl_Input2		*inpXchg3; | ||||
|  |  | |||
|  | @ -40,7 +40,8 @@ struct status { | |||
| 	string	LastMacroFile; | ||||
| 	bool	spot_recv; | ||||
| 	bool	spot_log; | ||||
| 	 | ||||
| 	bool	contest; | ||||
| 
 | ||||
| 	int		logbook_x; | ||||
| 	int		logbook_y; | ||||
| 	int		logbook_w; | ||||
|  |  | |||
|  | @ -74,7 +74,8 @@ status progStatus = { | |||
| 	"macros.mdf",		// string LastMacroFile;
 | ||||
| 	false,			// bool spot_recv
 | ||||
| 	false,			// bool spot_log
 | ||||
| 	 | ||||
| 	false,			// bool contest
 | ||||
| 
 | ||||
| 	50,					// int logbook_x;
 | ||||
| 	50,					// int logbook_y;
 | ||||
| 	380,				// int logbook_w;
 | ||||
|  | @ -186,7 +187,9 @@ void status::saveLastState() | |||
| 
 | ||||
| 	spref.set("spot_recv", spot_recv); | ||||
| 	spref.set("spot_log", spot_recv); | ||||
| 	 | ||||
| 
 | ||||
| 	spref.set("contest", contest); | ||||
| 
 | ||||
| 	spref.set("logbook_x", logbook_x); | ||||
| 	spref.set("logbook_y", logbook_y); | ||||
| 	spref.set("logbook_w", logbook_w); | ||||
|  | @ -266,7 +269,9 @@ void status::loadLastState() | |||
| 
 | ||||
| 	spref.get("spot_recv", i, i); spot_recv = i; | ||||
| 	spref.get("spot_log", i, i); spot_log = i; | ||||
| 	 | ||||
| 
 | ||||
| 	spref.get("contest", i, i); contest = i; | ||||
| 
 | ||||
| 	spref.get("logbook_x", logbook_x, logbook_x); | ||||
| 	spref.get("logbook_y", logbook_y, logbook_y); | ||||
| 	spref.get("logbook_w", logbook_w, logbook_w); | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Stelios Bounanos
						Stelios Bounanos