void TaskDefaultsConfigPanel::Prepare(ContainerWindow &parent, const PixelRect &rc) { WndProperty *wp; const ComputerSettings &settings_computer = XCSoarInterface::GetComputerSettings(); const TaskBehaviour &task_behaviour = settings_computer.task; OrderedTask temptask(task_behaviour); temptask.SetFactory(TaskFactoryType::RACING); RowFormWidget::Prepare(parent, rc); wp = AddEnum(_("Start point"), _("Default start type for new tasks you create."), this); if (wp) { const auto point_types = temptask.GetFactory().GetValidStartTypes(); DataFieldEnum* dfe = (DataFieldEnum*)wp->GetDataField(); dfe->EnableItemHelp(true); for (auto i = point_types.begin(), end = point_types.end(); i != end; ++i) { const AbstractTaskFactory::LegalPointType type = *i; dfe->addEnumText(OrderedTaskPointName(type), (unsigned)type, OrderedTaskPointDescription(type)); if (type == task_behaviour.sector_defaults.start_type) dfe->Set((unsigned)type); } wp->RefreshDisplay(); } AddFloat(Caption_GateWidth, _("Default radius or gate width of the start zone for new tasks."), _T("%.1f %s"), _T("%.1f"), fixed(0.1), fixed(100), fixed(1.0), true, UnitGroup::DISTANCE, task_behaviour.sector_defaults.start_radius); AddSpacer(); wp = AddEnum(_("Finish point"), _("Default finish type for new tasks you create."), this); if (wp) { const auto point_types = temptask.GetFactory().GetValidFinishTypes(); DataFieldEnum* dfe = (DataFieldEnum*)wp->GetDataField(); dfe->EnableItemHelp(true); for (auto i = point_types.begin(), end = point_types.end(); i != end; ++i) { const AbstractTaskFactory::LegalPointType type = *i; dfe->addEnumText(OrderedTaskPointName(type), (unsigned)type, OrderedTaskPointDescription(type)); if (type == task_behaviour.sector_defaults.finish_type) dfe->Set((unsigned)type); } wp->RefreshDisplay(); } AddFloat(Caption_GateWidth, _("Default radius or gate width of the finish zone in new tasks."), _T("%.1f %s"), _T("%.1f"), fixed(0.1), fixed(100), fixed(1.0), true, UnitGroup::DISTANCE, task_behaviour.sector_defaults.finish_radius); AddSpacer(); wp = AddEnum(_("Turn point"), _("Default turn point type for new tasks you create.")); if (wp) { const auto point_types = temptask.GetFactory().GetValidIntermediateTypes(); DataFieldEnum* dfe = (DataFieldEnum*)wp->GetDataField(); dfe->EnableItemHelp(true); for (auto i = point_types.begin(), end = point_types.end(); i != end; ++i) { const AbstractTaskFactory::LegalPointType type = *i; dfe->addEnumText(OrderedTaskPointName(type), (unsigned)type, OrderedTaskPointDescription(type)); if (type == task_behaviour.sector_defaults.turnpoint_type) { dfe->Set((unsigned)type); } } wp->RefreshDisplay(); } AddFloat(Caption_Radius, _("Default radius of turnpoint cylinders and sectors in new tasks."), _T("%.1f %s"), _T("%.1f"), fixed(0.1), fixed(100), fixed(1.0), true, UnitGroup::DISTANCE, task_behaviour.sector_defaults.turnpoint_radius); AddSpacer(); wp = AddEnum(_("Task"), _("Default task type for new tasks you create.")); if (wp) { const std::vector<TaskFactoryType> factory_types = temptask.GetFactoryTypes(); DataFieldEnum* dfe = (DataFieldEnum*)wp->GetDataField(); dfe->EnableItemHelp(true); for (unsigned i = 0; i < factory_types.size(); i++) { dfe->addEnumText(OrderedTaskFactoryName(factory_types[i]), (unsigned)factory_types[i], OrderedTaskFactoryDescription( factory_types[i])); if (factory_types[i] == task_behaviour.task_type_default) dfe->Set((unsigned)factory_types[i]); } wp->RefreshDisplay(); } AddTime(_("AAT min. time"), _("Default AAT min. time for new AAT tasks."), 60, 10 * 60 * 60, 60, (unsigned)task_behaviour.ordered_defaults.aat_min_time); AddTime(_("Optimisation margin"), _("Safety margin for AAT task optimisation. Optimisation " "seeks to complete the task at the minimum time plus this margin time."), 0, 30 * 60, 60, (unsigned)task_behaviour.optimise_targets_margin); SetExpertRow(AATTimeMargin); SetStartLabel(); SetFinishLabel(); }
static void RefreshCalculator(void) { WndProperty* wp; // update outputs wp = (WndProperty*)wf->FindByName(_T("prpAATEst")); if (wp) { wp->GetDataField()->SetAsFloat(( XCSoarInterface::Calculated().common_stats.task_time_remaining + XCSoarInterface::Calculated().common_stats.task_time_elapsed) / 60); wp->RefreshDisplay(); } // update outputs wp = (WndProperty*)wf->FindByName(_T("prpAATTime")); if (wp) { if (XCSoarInterface::Calculated().task_stats.has_targets) { wp->GetDataField()->SetAsFloat( protected_task_manager.get_ordered_task_behaviour().aat_min_time / 60); wp->RefreshDisplay(); } else { wp->hide(); } } wp = (WndProperty*)wf->FindByName(_T("prpDistance")); if (wp) { wp->GetDataField()->SetAsFloat(Units::ToUserDistance( XCSoarInterface::Calculated().task_stats.total.solution_planned.Vector.Distance)); wp->GetDataField()->SetUnits(Units::GetDistanceName()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpMacCready")); if (wp) { wp->GetDataField()->SetUnits(Units::GetVerticalSpeedName()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpEffectiveMacCready")); if (wp) { wp->GetDataField()->SetUnits(Units::GetVerticalSpeedName()); wp->GetDataField()->SetAsFloat(Units::ToUserVSpeed(emc)); wp->RefreshDisplay(); } /* wp = (WndProperty*)wf->FindByName(_T("prpRange")); if (wp) { wp->RefreshDisplay(); wp->set_visible(task.getSettings().AATEnabled && task.ValidTaskPoint(task.getActiveIndex() + 1)); wp->GetDataField()->SetAsFloat(Range*100.0); wp->RefreshDisplay(); } fixed v1; if (XCSoarInterface::Calculated().TaskTimeToGo>0) { v1 = XCSoarInterface::Calculated().TaskDistanceToGo/ XCSoarInterface::Calculated().TaskTimeToGo; } else { v1 = 0; } */ wp = (WndProperty*)wf->FindByName(_T("prpSpeedRemaining")); if (wp) { wp->GetDataField()->SetAsFloat(Units::ToUserTaskSpeed( XCSoarInterface::Calculated().task_stats.total.remaining_effective.get_speed())); wp->GetDataField()->SetUnits(Units::GetTaskSpeedName()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpSpeedAchieved")); if (wp) { wp->GetDataField()->SetAsFloat(Units::ToUserTaskSpeed( XCSoarInterface::Calculated().task_stats.total.travelled.get_speed())); wp->GetDataField()->SetUnits(Units::GetTaskSpeedName()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpCruiseEfficiency")); if (wp) { wp->GetDataField()->SetAsFloat(cruise_efficiency * 100); wp->RefreshDisplay(); } }
static void UpdateValuesSystem() { static unsigned extGPSCONNECT_last = XCSoarInterface::Basic().Connected; static int NAVWarning_last = XCSoarInterface::Basic().NAVWarning; static int SatellitesUsed_last = XCSoarInterface::Basic().SatellitesUsed; static int VarioAvailable_last = XCSoarInterface::Basic().VarioAvailable; static int FLARM_Available_last = XCSoarInterface::Basic().FLARM_Available; static bool LoggerActive_last = logger.isLoggerActive(); static bool DeclaredToDevice_last = logger.isTaskDeclared(); static double SupplyBatteryVoltage_last = XCSoarInterface::Basic().SupplyBatteryVoltage; static int PDABatteryPercent_last = PDABatteryPercent; if (first || (extGPSCONNECT_last != XCSoarInterface::Basic().Connected) || (NAVWarning_last != XCSoarInterface::Basic().NAVWarning) || (SatellitesUsed_last != XCSoarInterface::Basic().SatellitesUsed) || (VarioAvailable_last != XCSoarInterface::Basic().VarioAvailable) || (FLARM_Available_last != XCSoarInterface::Basic().FLARM_Available) || (LoggerActive_last != logger.isLoggerActive()) || (DeclaredToDevice_last != logger.isTaskDeclared()) || (SupplyBatteryVoltage_last != XCSoarInterface::Basic().SupplyBatteryVoltage) || (PDABatteryPercent_last != PDABatteryPercent)) { first = false; extGPSCONNECT_last = XCSoarInterface::Basic().Connected; NAVWarning_last = XCSoarInterface::Basic().NAVWarning; SatellitesUsed_last = XCSoarInterface::Basic().SatellitesUsed; VarioAvailable_last = XCSoarInterface::Basic().VarioAvailable; FLARM_Available_last = XCSoarInterface::Basic().FLARM_Available; LoggerActive_last = logger.isLoggerActive(); DeclaredToDevice_last = logger.isTaskDeclared(); SupplyBatteryVoltage_last = XCSoarInterface::Basic().SupplyBatteryVoltage; PDABatteryPercent_last = PDABatteryPercent; } else { return; } TCHAR Temp[80]; TCHAR Temp2[80]; WndProperty* wp; wp = (WndProperty*)wf->FindByName(TEXT("prpGPS")); if (wp) { if (XCSoarInterface::Basic().Connected) { if (XCSoarInterface::Basic().NAVWarning) { wp->SetText(gettext(TEXT("Fix invalid"))); } else { if (XCSoarInterface::Basic().SatellitesUsed==0) { wp->SetText(gettext(TEXT("No fix"))); } else { wp->SetText(gettext(TEXT("3D fix"))); } } wp->RefreshDisplay(); wp = (WndProperty*)wf->FindByName(TEXT("prpNumSat")); if (wp) { if (XCSoarInterface::Basic().SatellitesUsed >= 0) { // known numer of sats _stprintf(Temp,TEXT("%d"),XCSoarInterface::Basic().SatellitesUsed); } else { // valid but unknown number of sats _stprintf(Temp,TEXT(">3")); } wp->SetText(Temp); wp->RefreshDisplay(); } } else { wp->SetText(gettext(TEXT("Disconnected"))); wp->RefreshDisplay(); } } wp = (WndProperty*)wf->FindByName(TEXT("prpVario")); if (wp) { if (XCSoarInterface::Basic().VarioAvailable) { wp->SetText(gettext(TEXT("Connected"))); } else { wp->SetText(gettext(TEXT("Disconnected"))); } wp->RefreshDisplay(); } if (wp) { wp = (WndProperty*)wf->FindByName(TEXT("prpFLARM")); if (XCSoarInterface::Basic().FLARM_Available) { wp->SetText(gettext(TEXT("Connected"))); } else { wp->SetText(gettext(TEXT("Disconnected"))); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpLogger")); if (wp) { logger.LinkGRecordDLL(); if (logger.LoggerGActive()) { if (logger.isLoggerActive()) { wp->SetText(gettext(TEXT("ON (G)"))); } else { wp->SetText(gettext(TEXT("OFF (G)"))); } } else { // no G Record if (logger.isLoggerActive()) { wp->SetText(gettext(TEXT("ON (no G)"))); } else { wp->SetText(gettext(TEXT("OFF (no G)"))); } } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpDeclared")); if (wp) { if (logger.isTaskDeclared()) { wp->SetText(gettext(TEXT("YES"))); } else { wp->SetText(gettext(TEXT("NO"))); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpBattery")); if (wp) { _stprintf(Temp,TEXT("\0")); #if !defined(GNAV) && !defined(WINDOWSPC) && !defined(HAVE_POSIX) _stprintf(Temp2,TEXT("%d%% "), PDABatteryPercent); _tcscat(Temp, Temp2); #endif if (XCSoarInterface::Basic().SupplyBatteryVoltage == 0) { _stprintf(Temp2,TEXT("\0")); } else { _stprintf(Temp2,TEXT("%.1f V"),XCSoarInterface::Basic().SupplyBatteryVoltage); } _tcscat(Temp, Temp2); wp->SetText(Temp); wp->RefreshDisplay(); } }
static void OnSaveClicked(WindowControl * Sender, WndListFrame::ListInfo_t *ListInfo){ (void)ListInfo; (void)Sender; int file_index; TCHAR task_name[MAX_PATH]; TCHAR file_name[MAX_PATH]; WndProperty* wp; DataFieldFileReader *dfe; wp = (WndProperty*)wf->FindByName(TEXT("prpFile")); if (!wp) return; dfe = (DataFieldFileReader*)wp->GetDataField(); file_index = dfe->GetAsInteger(); // if (file_index==0) { if (1) { // TODO enhancement: suggest a good new name not already in the list _tcscpy(task_name,TEXT("NEW")); // 091216 era 0 dlgTextEntryShowModal(task_name, 10); // max length if (_tcslen(task_name)>0) { _tcscat(task_name, TEXT(LKS_TSK)); #if (!defined(WINDOWSPC) || (WINDOWSPC <=0) ) LocalPath(file_name,TEXT(LKD_TASKS)); _tcscat(file_name,TEXT("\\")); _tcscat(file_name,task_name); // 091101 #else SHGetSpecialFolderPath(hWndMainWindow, file_name, CSIDL_PERSONAL, false); _tcscat(file_name,TEXT("\\")); _tcscat(file_name,TEXT(XCSDATADIR)); _tcscat(file_name,_T("\\")); _tcscat(file_name,TEXT(LKD_TASKS)); // 091101 _tcscat(file_name,_T("\\")); _tcscat(file_name,task_name); // 091101 #endif dfe->Lookup(file_name); file_index = dfe->GetAsInteger(); if (file_index==0) { // good, this file is unique.. dfe->addFile(task_name, file_name); dfe->Lookup(file_name); wp->RefreshDisplay(); } } else { // TODO code: report error, task not saved since no name was given return; } } if (file_index>0) { // file already exists! ask if want to overwrite _stprintf(file_name, TEXT("%s: '%s'"), // LKTOKEN _@M696_ = "Task file already exists" gettext(TEXT("_@M696_")), dfe->GetAsString()); if(MessageBoxX(hWndMapWindow, file_name, // LKTOKEN _@M510_ = "Overwrite?" gettext(TEXT("_@M510_")), MB_YESNO|MB_ICONQUESTION) != IDYES) { return; } } SaveTask(dfe->GetPathFile()); UpdateCaption(); }
static void setVariables(void) { WndProperty *wp; wp = (WndProperty*)wf->FindByName(TEXT("prpIP11")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP11); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP12")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP12); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP13")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP13); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP14")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP14); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP15")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP15); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP16")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP16); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP17")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP17); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP21")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP21); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP22")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP22); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP23")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP23); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP24")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP24); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP31")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP31); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP32")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP32); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpIP33")); if (wp) { DataFieldBoolean * dfb = (DataFieldBoolean*) wp->GetDataField(); dfb->Set(ConfIP33); wp->RefreshDisplay(); } }
static void FillEnums(void) { WndProperty *wp; wp = (WndProperty*)wf->FindByName(_T("prpBaudRateA")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_T("Auto")); dfe->addEnumText(_T("4800")); dfe->addEnumText(_T("9600")); dfe->addEnumText(_T("19200")); dfe->addEnumText(_T("38400")); dfe->addEnumText(_T("57600")); dfe->addEnumText(_T("115200")); dfe->Set(0); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpHasTemperature")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_T("Off")); dfe->addEnumText(_T("On")); dfe->addEnumText(_T("AUTO")); dfe->Set(0); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpToneClimbComparisonType")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_T("None")); dfe->addEnumText(_T("Gross>MacCready")); dfe->addEnumText(_T("Gross>Average")); dfe->Set(0); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpToneCruiseLiftDetectionType")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_T("Disabled")); dfe->addEnumText(_T("Relative>0")); dfe->addEnumText(_T("Relative>MacCready/2")); dfe->addEnumText(_T("Gross>0")); dfe->addEnumText(_T("Net>MacCready/2")); dfe->addEnumText(_T("Relative>MacCready")); dfe->addEnumText(_T("Net>MacCready")); dfe->Set(0); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpVarioTimeConstantCircling")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_T(" 1.0s")); dfe->addEnumText(_T(" 1.3s")); dfe->addEnumText(_T(" 1.8s")); dfe->addEnumText(_T(" 2.7s")); dfe->Set(0); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpVarioTimeConstantCruise")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_T(" 1.0s")); dfe->addEnumText(_T(" 1.3s")); dfe->addEnumText(_T(" 1.8s")); dfe->addEnumText(_T(" 2.7s")); dfe->Set(0); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpToneAveragerVarioTimeScale")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_T(" 0.0s")); dfe->addEnumText(_T(" 0.8s")); dfe->addEnumText(_T(" 1.7s")); dfe->addEnumText(_T(" 3.5s")); dfe->addEnumText(_T(" 7.5s")); dfe->addEnumText(_T("15.0s")); dfe->addEnumText(_T("30.0s")); dfe->Set(0); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpToneAveragerCruiseTimeScale")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_T(" 0.0s")); dfe->addEnumText(_T(" 0.8s")); dfe->addEnumText(_T(" 1.7s")); dfe->addEnumText(_T(" 3.5s")); dfe->addEnumText(_T(" 7.5s")); dfe->addEnumText(_T("15.0s")); dfe->addEnumText(_T("30.0s")); dfe->Set(0); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpToneDeadbandCirclingType")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_T("Step")); dfe->addEnumText(_T("Ramp")); dfe->Set(0); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpToneDeadbandCruiseType")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_T("Step")); dfe->addEnumText(_T("Ramp")); dfe->Set(0); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpFlarmUserInterface")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumTexts(flarm_user_interfaces); dfe->Set(0); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpFlarmAircraftType")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumTexts(flarm_aircraft_types); dfe->Set(0); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpNeedleGaugeType")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumTexts(needle_gauge_types); dfe->Set(0); wp->RefreshDisplay(); } FillAllAudioEnums(); }
static void SetValues(int indexid) { //TCHAR *name = 0; //TCHAR *cn = 0; WndProperty* wp; TCHAR buffer[80]; //TCHAR status[10]; //static TCHAR Name[MAXFLARMNAME+1]; //static TCHAR Cn[MAXFLARMCN+1]; int wlen; if (indexid<0 || indexid>MAXTRAFFIC) { StartupStore(_T("--- LK setvalues invalid indexid=%d%s"),indexid,NEWLINE); // DoStatusMessage(_T("ERR-216 INVALID INDEXID")); return; } if ( LKTraffic[indexid].ID <=0 || LKTraffic[indexid].Status <LKT_REAL) { StartupStore(_T("--- LK setvalues invalid indexid=%d%s"),indexid,NEWLINE); // DoStatusMessage(_T("ERR-217 INVALID INDEXID")); return; } wp = (WndProperty*)wf->FindByName(TEXT("prpRegName")); if (wp) { wlen=wcslen(LKTraffic[indexid].Name); // a ? probably if (wlen==1) { _stprintf(buffer,_T("%06x"),LKTraffic[indexid].ID); buffer[MAXFLARMNAME]='\0'; } else { LK_tcsncpy(buffer,LKTraffic[indexid].Name,MAXFLARMNAME); ConvToUpper(buffer); } //name=Name; wp->SetText(buffer); wp->RefreshDisplay(); } #if 0 wp = (WndProperty*)wf->FindByName(TEXT("prpStatus")); if (wp) { switch(LKTraffic[indexid].Status) { case LKT_REAL: _tcscpy(status,_T("LIVE")); break; case LKT_GHOST: _tcscpy(status,_T("GHOST")); break; case LKT_ZOMBIE: _tcscpy(status,_T("ZOMBIE")); break; default: _tcscpy(status,_T("UNKNOWN")); break; } wp->SetText(status); wp->RefreshDisplay(); } #endif wp = (WndProperty*)wf->FindByName(TEXT("prpCn")); if (wp) { if ( _tcslen(LKTraffic[indexid].Cn) == 1 ) { if (LKTraffic[indexid].Cn[0] == _T('?')) { _tcscpy(buffer,_T("")); } else { LK_tcsncpy(buffer,LKTraffic[indexid].Cn,MAXFLARMCN); } } else { LK_tcsncpy(buffer,LKTraffic[indexid].Cn,MAXFLARMCN); } wp->SetText(buffer); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpDistance")); if (wp) { _stprintf(buffer,_T("%.1f %s"),LKTraffic[indexid].Distance*DISTANCEMODIFY, Units::GetDistanceName()); wp->SetText(buffer); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpAltitude")); if (wp) { _stprintf(buffer,_T("%.0f %s"),LKTraffic[indexid].Altitude*ALTITUDEMODIFY, Units::GetAltitudeName()); wp->SetText(buffer); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpAltDiff")); if (wp) { // this has to be reverted, because it is a relative altitude to us _stprintf(buffer,_T("%+.0f %s"),(CALCULATED_INFO.NavAltitude - LKTraffic[indexid].Altitude)*ALTITUDEMODIFY*-1, Units::GetAltitudeName()); wp->SetText(buffer); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpSpeed")); if (wp) { _stprintf(buffer,_T("%.0f %s"),LKTraffic[indexid].Speed*SPEEDMODIFY, Units::GetHorizontalSpeedName()); wp->SetText(buffer); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpVario")); if (wp) { _stprintf(buffer,_T("%+.1f %s"),LKTraffic[indexid].Average30s*LIFTMODIFY, Units::GetVerticalSpeedName()); wp->SetText(buffer); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpBearing")); if (wp) { _stprintf(buffer, TEXT(" %d")TEXT(DEG), iround(LKTraffic[indexid].Bearing)); wp->SetText(buffer); wp->RefreshDisplay(); } FlarmId* flarmId = file->GetFlarmIdItem(LKTraffic[indexid].ID); if (flarmId != NULL) { wp = (WndProperty*)wf->FindByName(TEXT("prpName")); if (wp) { _stprintf(buffer,_T("%s"),flarmId->name); wp->SetText(buffer); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpAirfield")); if (wp) { _stprintf(buffer,_T("%s"),flarmId->airfield); wp->SetText(buffer); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpType")); if (wp) { _stprintf(buffer,_T("%s"),flarmId->type); wp->SetText(buffer); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpFreq")); if (wp) { _stprintf(buffer,_T("%s"),flarmId->freq); wp->SetText(buffer); wp->RefreshDisplay(); } } }
static void Update() { WndProperty* wp; TCHAR Text[100]; Angle teammateBearing = XCSoarInterface::Calculated().TeammateBearing; double teammateRange = XCSoarInterface::Calculated().TeammateRange; if (XCSoarInterface::SettingsComputer().TeamCodeRefWaypoint >= 0) { double Value = (teammateBearing - XCSoarInterface::Basic().TrackBearing). as_delta().value_degrees(); if (Value > 1) _stprintf(Text, _T("%2.0f")_T(DEG)_T(">"), Value); else if (Value < -1) _stprintf(Text, _T("<%2.0f")_T(DEG), -Value); else _tcscpy(Text, _T("<>")); } else { _tcscpy(Text, _T("---")); } wp = (WndProperty*)wf->FindByName(_T("prpRelBearing")); if (wp) { wp->SetText(Text); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpBearing")); if (wp) { wp->GetDataField()->SetAsFloat(teammateBearing.value_degrees()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpRange")); if (wp) { wp->GetDataField()->SetAsFloat(Units::ToUserDistance(fixed(teammateRange))); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpOwnCode")); if (wp) { _tcsncpy(Text, XCSoarInterface::Calculated().OwnTeamCode, 5); Text[5] = '\0'; wp->SetText(Text); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpMateCode")); if (wp) { wp->SetText(XCSoarInterface::SettingsComputer().TeammateCode); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpFlarmLock")); if (wp) { wp->SetText(XCSoarInterface::SettingsComputer().TeamFlarmTracking ? XCSoarInterface::SettingsComputer().TeamFlarmCNTarget : _T("")); wp->RefreshDisplay(); } }
void InterfaceConfigPanel::Prepare(ContainerWindow &parent, const PixelRect &rc) { const UISettings &settings = CommonInterface::GetUISettings(); RowFormWidget::Prepare(parent, rc); AddInteger(_("Text size"), nullptr, _T("%d %%"), _T("%d"), 75, 200, 5, settings.scale); AddFile(_("Events"), _("The Input Events file defines the menu system and how XCSoar responds to " "button presses and events from external devices."), ProfileKeys::InputFile, _T("*.xci\0")); SetExpertRow(InputFile); #ifndef HAVE_NATIVE_GETTEXT WndProperty *wp; wp = AddEnum(_("Language"), _("The language options selects translations for English texts to other " "languages. Select English for a native interface or Automatic to localise " "XCSoar according to the system settings.")); if (wp != nullptr) { DataFieldEnum &df = *(DataFieldEnum *)wp->GetDataField(); df.addEnumText(_("Automatic")); df.addEnumText(_T("English")); #ifdef HAVE_BUILTIN_LANGUAGES for (const BuiltinLanguage *l = language_table; l->resource != nullptr; ++l) { StaticString<100> display_string; display_string.Format(_T("%s (%s)"), l->name, l->resource); df.addEnumText(l->resource, display_string); } #endif LanguageFileVisitor lfv(df); VisitDataFiles(_T("*.mo"), lfv); df.Sort(2); auto value_buffer = Profile::GetPath(ProfileKeys::LanguageFile); Path value = value_buffer; if (value.IsNull()) value = Path(_T("")); if (value == Path(_T("none"))) df.Set(1); else if (!value.IsEmpty() && value != Path(_T("auto"))) { const Path base = value.GetBase(); if (base != nullptr) df.Set(base.c_str()); } wp->RefreshDisplay(); } #endif /* !HAVE_NATIVE_GETTEXT */ AddTime(_("Menu timeout"), _("This determines how long menus will appear on screen if the user does not make any button " "presses or interacts with the computer."), 1, 60, 1, settings.menu_timeout / 2); SetExpertRow(MenuTimeout); static constexpr StaticEnumChoice text_input_list[] = { { (unsigned)DialogSettings::TextInputStyle::Default, N_("Default") }, { (unsigned)DialogSettings::TextInputStyle::Keyboard, N_("Keyboard") }, { (unsigned)DialogSettings::TextInputStyle::HighScore, N_("HighScore Style") }, { 0 } }; AddEnum(_("Text input style"), _("Determines how the user is prompted for text input (filename, teamcode etc.)"), text_input_list, (unsigned)settings.dialog.text_input_style); SetExpertRow(TextInput); /* on-screen keyboard doesn't work without a pointing device (mouse or touch screen) */ SetRowVisible(TextInput, HasPointer()); #ifdef HAVE_VIBRATOR static constexpr StaticEnumChoice haptic_feedback_list[] = { { (unsigned)UISettings::HapticFeedback::DEFAULT, N_("OS settings") }, { (unsigned)UISettings::HapticFeedback::OFF, N_("Off") }, { (unsigned)UISettings::HapticFeedback::ON, N_("On") }, { 0 } }; wp = AddEnum(_("Haptic feedback"), _("Determines if haptic feedback like vibration is used."), haptic_feedback_list, (unsigned)settings.haptic_feedback); SetExpertRow(HapticFeedback); #endif /* HAVE_VIBRATOR */ }
static void SetValues(bool first=false) { WndProperty* wp; wp = (WndProperty*)wf->FindByName(TEXT("prpTaskFinishLine")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); if (first) { // LKTOKEN _@M210_ = "Cylinder" dfe->addEnumText(gettext(TEXT("_@M210_"))); // LKTOKEN _@M393_ = "Line" dfe->addEnumText(gettext(TEXT("_@M393_"))); // LKTOKEN _@M274_ = "FAI Sector" dfe->addEnumText(gettext(TEXT("_@M274_"))); } dfe->Set(FinishLine); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpTaskFinishRadius")); if (wp) { wp->GetDataField()->SetAsFloat(lround(FinishRadius*DISTANCEMODIFY*DISTANCE_ROUNDING)/DISTANCE_ROUNDING); wp->GetDataField()->SetUnits(Units::GetDistanceName()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpTaskStartLine")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); if (first) { // LKTOKEN _@M210_ = "Cylinder" dfe->addEnumText(gettext(TEXT("_@M210_"))); // LKTOKEN _@M393_ = "Line" dfe->addEnumText(gettext(TEXT("_@M393_"))); // LKTOKEN _@M274_ = "FAI Sector" dfe->addEnumText(gettext(TEXT("_@M274_"))); } dfe->SetDetachGUI(true); // disable call to OnAATEnabled dfe->Set(StartLine); dfe->SetDetachGUI(false); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpTaskStartRadius")); if (wp) { wp->GetDataField()->SetAsFloat(lround(StartRadius*DISTANCEMODIFY*DISTANCE_ROUNDING)/DISTANCE_ROUNDING); wp->GetDataField()->SetUnits(Units::GetDistanceName()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpTaskFAISector")); if (wp) { // 110223 CAN ANYONE PLEASE CHECK WHAT THE HACK IS A BOOL FOR BILL GATES? BECAUSE IF FALSE IS -1 THEN // WE HAVE MANY PROBLEMS! I THINK IT IS TIME TO GO BACK TO bool AND GET RID OF MS BOOLS!! wp->SetVisible(AATEnabled==0); DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); if (first) { // LKTOKEN _@M210_ = "Cylinder" dfe->addEnumText(gettext(TEXT("_@M210_"))); // LKTOKEN _@M274_ = "FAI Sector" dfe->addEnumText(gettext(TEXT("_@M274_"))); dfe->addEnumText(gettext(TEXT("DAe 0.5/10"))); } dfe->SetDetachGUI(true); // disable call to OnAATEnabled dfe->Set(SectorType); dfe->SetDetachGUI(false); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpTaskSectorRadius")); if (wp) { wp->SetVisible(AATEnabled==0); wp->GetDataField()->SetAsFloat(lround(SectorRadius*DISTANCEMODIFY*DISTANCE_ROUNDING)/DISTANCE_ROUNDING); wp->GetDataField()->SetUnits(Units::GetDistanceName()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpAutoAdvance")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); if (first) { // LKTOKEN _@M418_ = "Manual" dfe->addEnumText(gettext(TEXT("_@M418_"))); // LKTOKEN _@M897_ "Auto" dfe->addEnumText(gettext(TEXT("_@M897_"))); // LKTOKEN _@M97_ = "Arm" dfe->addEnumText(gettext(TEXT("_@M97_"))); // LKTOKEN _@M96_ = "Arm start" dfe->addEnumText(gettext(TEXT("_@M96_"))); } dfe->Set(AutoAdvance); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpMinTime")); if (wp) { wp->SetVisible(AATEnabled>0 && !ISPARAGLIDER); wp->GetDataField()->SetAsFloat(AATTaskLength); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpEnableMultipleStartPoints")); if (wp) { wp->SetVisible(!ISPARAGLIDER); wp->GetDataField()->Set(EnableMultipleStartPoints); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpAATEnabled")); if (wp) { if (ISPARAGLIDER) { wp->SetVisible(false); AATEnabled=TRUE; wp->RefreshDisplay(); } else { bool aw = (AATEnabled != 0); wp->GetDataField()->Set(aw); wp->RefreshDisplay(); } } WndButton* wb; wb = (WndButton *)wf->FindByName(TEXT("EditStartPoints")); if (wb) { wb->SetVisible(EnableMultipleStartPoints!=0 && !ISPARAGLIDER); } }
void WindSettingsPanel::Prepare(ContainerWindow &parent, const PixelRect &rc) { RowFormWidget::Prepare(parent, rc); const WindSettings &settings = CommonInterface::GetComputerSettings().wind; const MapSettings &map_settings = CommonInterface::GetMapSettings(); static constexpr StaticEnumChoice auto_wind_list[] = { { AUTOWIND_NONE, N_("Manual"), N_("When the algorithm is switched off, the pilot is responsible for setting the wind estimate.") }, { AUTOWIND_CIRCLING, N_("Circling"), N_("Requires only a GPS source.") }, { AUTOWIND_ZIGZAG, N_("ZigZag"), N_("Requires GPS and an intelligent vario with airspeed output.") }, { AUTOWIND_CIRCLING | AUTOWIND_ZIGZAG, N_("Both"), N_("Use ZigZag and circling.") }, { 0 } }; AddEnum(_("Auto wind"), _("This allows switching on or off the automatic wind algorithm."), auto_wind_list, settings.GetLegacyAutoWindMode()); AddBoolean(_("Prefer external wind"), _("If enabled, then the wind vector received from external devices overrides " "XCSoar's internal wind calculation."), settings.use_external_wind, this); if (edit_trail_drift) AddBoolean(_("Trail drift"), _("Determines whether the snail trail is drifted with the wind " "when displayed in circling mode. Switched Off, " "the snail trail stays uncompensated for wind drift."), map_settings.trail.wind_drift_enabled); else AddDummy(); if (edit_manual_wind) { SpeedVector manual_wind = CommonInterface::Calculated().GetWindOrZero(); AddReadOnly(_("Source")); WndProperty *wp = AddFloat(_("Speed"), _("Manual adjustment of wind speed."), _T("%.0f %s"), _T("%.0f"), fixed(0), Units::ToUserWindSpeed(Units::ToSysUnit(fixed(200), Unit::KILOMETER_PER_HOUR)), fixed(1), false, Units::ToUserWindSpeed(manual_wind.norm), this); DataFieldFloat &df = *(DataFieldFloat *)wp->GetDataField(); df.SetUnits(Units::GetWindSpeedName()); wp->RefreshDisplay(); wp = AddAngle(_("Direction"), _("Manual adjustment of wind direction."), manual_wind.bearing, 5u, false, this); manual_modified = false; } if (clear_manual_button) AddButton(_("Clear"), *this, CLEAR_MANUAL); UpdateVector(); }
static void setVariables(void) { WndProperty *wp; wp = (WndProperty*)wf->FindByName(TEXT("prpCustomKeyTime")); if (wp) { wp->GetDataField()->SetAsFloat(CustomKeyTime); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCustomKeyModeLeftUpCorner")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); AddCustomKeyList(dfe); dfe->Set(CustomKeyModeLeftUpCorner); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCustomKeyModeRightUpCorner")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); AddCustomKeyList(dfe); dfe->Set(CustomKeyModeRightUpCorner); dfe->Set(CustomKeyModeRightUpCorner); // if (ISPARAGLIDER) wp->SetReadOnly(true); 2.3q also PGs can use it wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCustomKeyModeCenter")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); AddCustomKeyList(dfe); dfe->Set(CustomKeyModeCenter); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCustomKeyModeCenterScreen")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); AddCustomKeyList(dfe); dfe->Set(CustomKeyModeCenterScreen); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCustomKeyModeLeft")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); AddCustomKeyList(dfe); dfe->Set(CustomKeyModeLeft); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCustomKeyModeRight")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); AddCustomKeyList(dfe); dfe->Set(CustomKeyModeRight); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCustomKeyModeAircraftIcon")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); AddCustomKeyList(dfe); dfe->Set(CustomKeyModeAircraftIcon); wp->RefreshDisplay(); } }
static void SetValues() { LoadFormProperty(*wf, _T("Name"), global_wpt->name.c_str()); LoadFormProperty(*wf, _T("Comment"), global_wpt->comment.c_str()); WndProperty* wp; bool sign; unsigned dd,mm,ss; global_wpt->location.longitude.ToDMS(dd, mm, ss, sign); wp = (WndProperty*)wf->FindByName(_T("prpLongitudeSign")); assert(wp != NULL); DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText((_T("W"))); dfe->addEnumText((_T("E"))); dfe->Set(sign); wp->RefreshDisplay(); LoadFormProperty(*wf, _T("prpLongitudeD"), dd); switch (CommonInterface::GetUISettings().coordinate_format) { case CoordinateFormat::DDMMSS: // ("DDMMSS"); case CoordinateFormat::DDMMSS_SS: // ("DDMMSS.ss"); LoadFormProperty(*wf, _T("prpLongitudeM"), mm); LoadFormProperty(*wf, _T("prpLongitudeS"), ss); break; case CoordinateFormat::DDMM_MMM: // ("DDMM.mmm"); LoadFormProperty(*wf, _T("prpLongitudeM"), mm); LoadFormProperty(*wf, _T("prpLongitudemmm"), 1000 * fixed(ss) / 60); break; case CoordinateFormat::DD_DDDD: // ("DD.dddd"); LoadFormProperty(*wf, _T("prpLongitudeDDDD"), 10000 * (fixed)(mm + ss) / 3600); break; case CoordinateFormat::UTM: break; } global_wpt->location.latitude.ToDMS(dd, mm, ss, sign); LoadFormProperty(*wf, _T("prpLatitudeD"), dd); wp = (WndProperty*)wf->FindByName(_T("prpLatitudeSign")); assert(wp != NULL); dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText((_T("S"))); dfe->addEnumText((_T("N"))); dfe->Set(sign); wp->RefreshDisplay(); wp = (WndProperty*)wf->FindByName(_T("prpLatitudeD")); assert(wp != NULL); wp->GetDataField()->SetAsInteger(dd); wp->RefreshDisplay(); switch (CommonInterface::GetUISettings().coordinate_format) { case CoordinateFormat::DDMMSS: // ("DDMMSS"); case CoordinateFormat::DDMMSS_SS: // ("DDMMSS.ss"); LoadFormProperty(*wf, _T("prpLatitudeM"), mm); LoadFormProperty(*wf, _T("prpLatitudeS"), ss); break; case CoordinateFormat::DDMM_MMM: // ("DDMM.mmm"); LoadFormProperty(*wf, _T("prpLatitudeM"), mm); LoadFormProperty(*wf, _T("prpLatitudemmm"), 1000 * fixed(ss) / 60); break; case CoordinateFormat::DD_DDDD: // ("DD.dddd"); LoadFormProperty(*wf, _T("prpLatitudeDDDD"), 10000 * (fixed)(mm + ss) / 3600); break; case CoordinateFormat::UTM: break; } LoadFormProperty(*wf, _T("prpAltitude"), UnitGroup::ALTITUDE, global_wpt->elevation); wp = (WndProperty*)wf->FindByName(_T("prpFlags")); assert(wp != NULL); dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_T("Turnpoint")); dfe->addEnumText(_T("Airport")); dfe->addEnumText(_T("Landpoint")); if (global_wpt->IsAirport()) dfe->Set(1u); else if (global_wpt->IsLandable()) dfe->Set(2u); else dfe->Set(0u); wp->RefreshDisplay(); }
void TaskDefaultsConfigPanel::Init(WndForm *_wf) { assert(_wf != NULL); wf = _wf; WndProperty *wp; const SETTINGS_COMPUTER &settings_computer = XCSoarInterface::SettingsComputer(); OrderedTask* temptask = protected_task_manager->task_blank(); temptask->set_factory(TaskBehaviour::FACTORY_RT); wp = (WndProperty*)wf->FindByName(_T("prpStartType")); if (wp) { const AbstractTaskFactory::LegalPointVector point_types = temptask->get_factory().getValidStartTypes(); DataFieldEnum* dfe = (DataFieldEnum*)wp->GetDataField(); dfe->EnableItemHelp(true); for (unsigned i = 0; i < point_types.size(); i++) { dfe->addEnumText(OrderedTaskPointName(point_types[i]), (unsigned)point_types[i], OrderedTaskPointDescription(point_types[i])); if (point_types[i] == settings_computer.sector_defaults.start_type) dfe->Set((unsigned)point_types[i]); } wp->RefreshDisplay(); } LoadFormProperty(*wf, _T("prpStartRadius"), ugDistance, settings_computer.sector_defaults.start_radius); wp = (WndProperty*)wf->FindByName(_T("prpFinishType")); if (wp) { const AbstractTaskFactory::LegalPointVector point_types = temptask->get_factory().getValidFinishTypes(); DataFieldEnum* dfe = (DataFieldEnum*)wp->GetDataField(); dfe->EnableItemHelp(true); for (unsigned i = 0; i < point_types.size(); i++) { dfe->addEnumText(OrderedTaskPointName(point_types[i]), (unsigned)point_types[i], OrderedTaskPointDescription(point_types[i])); if (point_types[i] == settings_computer.sector_defaults.finish_type) dfe->Set((unsigned)point_types[i]); } wp->RefreshDisplay(); } LoadFormProperty(*wf, _T("prpFinishRadius"), ugDistance, settings_computer.sector_defaults.finish_radius); wp = (WndProperty*)wf->FindByName(_T("prpTurnpointType")); if (wp) { const AbstractTaskFactory::LegalPointVector point_types = temptask->get_factory().getValidIntermediateTypes(); DataFieldEnum* dfe = (DataFieldEnum*)wp->GetDataField(); dfe->EnableItemHelp(true); for (unsigned i = 0; i < point_types.size(); i++) { dfe->addEnumText(OrderedTaskPointName(point_types[i]), (unsigned)point_types[i], OrderedTaskPointDescription(point_types[i])); if (point_types[i] == settings_computer.sector_defaults.turnpoint_type) { dfe->Set((unsigned)point_types[i]); } } wp->RefreshDisplay(); } LoadFormProperty(*wf, _T("prpTurnpointRadius"), ugDistance, settings_computer.sector_defaults.turnpoint_radius); wp = (WndProperty*)wf->FindByName(_T("prpTaskType")); if (wp) { const std::vector<TaskBehaviour::Factory_t> factory_types = temptask->get_factory_types(); DataFieldEnum* dfe = (DataFieldEnum*)wp->GetDataField(); dfe->EnableItemHelp(true); for (unsigned i = 0; i < factory_types.size(); i++) { dfe->addEnumText(OrderedTaskFactoryName(factory_types[i]), (unsigned)factory_types[i], OrderedTaskFactoryDescription( factory_types[i])); if (factory_types[i] == settings_computer.task_type_default) dfe->Set((unsigned)factory_types[i]); } wp->RefreshDisplay(); } LoadFormProperty(*wf, _T("prpAATMinTime"), (unsigned)(settings_computer.ordered_defaults.aat_min_time / 60)); LoadFormProperty(*wf, _T("prpAATTimeMargin"), (unsigned)(settings_computer.optimise_targets_margin / 60)); delete temptask; }
static void SetValues(void) { WndProperty* wp; bool sign; int dd,mm,ss; Units::LongitudeToDMS(global_wpt->Location.Longitude, &dd, &mm, &ss, &sign); wp = (WndProperty*)wf->FindByName(_T("prpLongitudeSign")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText((_T("W"))); dfe->addEnumText((_T("E"))); dfe->Set(sign); wp->RefreshDisplay(); } LoadFormProperty(*wf, _T("prpLongitudeD"), dd); switch (Units::GetCoordinateFormat()) { case 0: // ("DDMMSS"); case 1: // ("DDMMSS.ss"); LoadFormProperty(*wf, _T("prpLongitudeM"), mm); LoadFormProperty(*wf, _T("prpLongitudeS"), ss); break; case 2: // ("DDMM.mmm"); LoadFormProperty(*wf, _T("prpLongitudeM"), mm); LoadFormProperty(*wf, _T("prpLongitudemmm"), 1000 * fixed(ss) / 60); break; case 3: // ("DD.dddd"); LoadFormProperty(*wf, _T("prpLongitudeDDDD"), 10000 * (fixed)(mm + ss) / 3600); break; } Units::LatitudeToDMS(global_wpt->Location.Latitude, &dd, &mm, &ss, &sign); LoadFormProperty(*wf, _T("prpLatitudeD"), dd); wp = (WndProperty*)wf->FindByName(_T("prpLatitudeSign")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText((_T("S"))); dfe->addEnumText((_T("N"))); dfe->Set(sign); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpLatitudeD")); if (wp) { wp->GetDataField()->SetAsInteger(dd); wp->RefreshDisplay(); } switch (Units::GetCoordinateFormat()) { case 0: // ("DDMMSS"); case 1: // ("DDMMSS.ss"); LoadFormProperty(*wf, _T("prpLatitudeM"), mm); LoadFormProperty(*wf, _T("prpLatitudeS"), ss); break; case 2: // ("DDMM.mmm"); LoadFormProperty(*wf, _T("prpLatitudeM"), mm); LoadFormProperty(*wf, _T("prpLatitudemmm"), 1000 * fixed(ss) / 60); break; case 3: // ("DD.dddd"); LoadFormProperty(*wf, _T("prpLatitudeDDDD"), 10000 * (fixed)(mm + ss) / 3600); break; } wp = (WndProperty*)wf->FindByName(_T("prpAltitude")); if (wp) { wp->GetDataField()->SetAsInteger(iround( Units::ToUserUnit(global_wpt->Altitude, Units::AltitudeUnit))); wp->GetDataField()->SetUnits(Units::GetAltitudeName()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpFlags")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_T("Turnpoint")); dfe->addEnumText(_T("Airport")); dfe->addEnumText(_T("Landpoint")); if (global_wpt->Flags.Airport) { dfe->Set(1); } else if (global_wpt->Flags.LandPoint) { dfe->Set(2); } else { dfe->Set(0); } wp->RefreshDisplay(); } }
short dlgStartupShowModal(void){ WndProperty* wp; #if TESTBENCH StartupStore(TEXT(". Startup dialog, RUN_MODE=%d %s"),RUN_MODE,NEWLINE); #endif char filename[MAX_PATH]; strcpy(filename,""); // FLY SIM PROFILE EXIT if (RUN_MODE==RUN_WELCOME) { if (!ScreenLandscape) { LocalPathS(filename, TEXT("dlgFlySim_L.xml")); wf = dlgLoadFromXML(CallBackTable, filename, hWndMainWindow, TEXT("IDR_XML_FLYSIM_L")); } else { LocalPathS(filename, TEXT("dlgFlySim.xml")); wf = dlgLoadFromXML(CallBackTable, filename, hWndMainWindow, TEXT("IDR_XML_FLYSIM")); } if (!wf) { return 0; } } // PROFILE AIRCRAFT CLOSE if (RUN_MODE==RUN_DUALPROF) { if (!ScreenLandscape) { LocalPathS(filename, TEXT("dlgDualProfile_L.xml")); wf = dlgLoadFromXML(CallBackTable, filename, hWndMainWindow, TEXT("IDR_XML_DUALPROFILE_L")); } else { LocalPathS(filename, TEXT("dlgDualProfile.xml")); wf = dlgLoadFromXML(CallBackTable, filename, hWndMainWindow, TEXT("IDR_XML_DUALPROFILE")); } if (!wf) return 0; } // CHOOSE PROFILE if (RUN_MODE==RUN_PROFILE || RUN_MODE==RUN_AIRCRAFT || RUN_MODE==RUN_PILOT) { if (!ScreenLandscape) { LocalPathS(filename, TEXT("dlgStartup_L.xml")); wf = dlgLoadFromXML(CallBackTable, filename, hWndMainWindow, TEXT("IDR_XML_STARTUP_L")); } else { LocalPathS(filename, TEXT("dlgStartup.xml")); wf = dlgLoadFromXML(CallBackTable, filename, hWndMainWindow, TEXT("IDR_XML_STARTUP")); } if (!wf) return 0; } wSplash = (WndOwnerDrawFrame*)wf->FindByName(TEXT("frmSplash")); wSplash->SetWidth(ScreenSizeX); int PROFWIDTH=0, PROFACCEPTWIDTH=0, PROFHEIGHT=0, PROFSEPARATOR=0; if (RUN_MODE==RUN_WELCOME) { ((WndButton *)wf->FindByName(TEXT("cmdFLY"))) ->SetOnClickNotify(OnFLYClicked); ((WndButton *)wf->FindByName(TEXT("cmdSIM"))) ->SetOnClickNotify(OnSIMClicked); ((WndButton *)wf->FindByName(TEXT("cmdDUALPROFILE"))) ->SetOnClickNotify(OnDUALPROFILEClicked); ((WndButton *)wf->FindByName(TEXT("cmdEXIT"))) ->SetOnClickNotify(OnEXITClicked); if (ScreenLandscape) { PROFWIDTH=(ScreenSizeX-IBLSCALE(320))/3; switch(ScreenSize) { case ss800x480: case ss400x240: ((WndButton *)wf->FindByName(TEXT("cmdFLY"))) ->SetWidth(IBLSCALE(110)); ((WndButton *)wf->FindByName(TEXT("cmdSIM"))) ->SetWidth(IBLSCALE(110)); ((WndButton *)wf->FindByName(TEXT("cmdSIM"))) ->SetLeft(IBLSCALE(208)+PROFWIDTH*3); ((WndButton *)wf->FindByName(TEXT("cmdDUALPROFILE"))) ->SetLeft(IBLSCALE(88)+PROFWIDTH); ((WndButton *)wf->FindByName(TEXT("cmdDUALPROFILE"))) ->SetWidth(IBLSCALE(92)+PROFWIDTH/6); ((WndButton *)wf->FindByName(TEXT("cmdEXIT"))) ->SetLeft(IBLSCALE(161)+PROFWIDTH*2); ((WndButton *)wf->FindByName(TEXT("cmdEXIT"))) ->SetWidth(IBLSCALE(65)+PROFWIDTH/5); break; case ss480x272: ((WndButton *)wf->FindByName(TEXT("cmdFLY"))) ->SetWidth(IBLSCALE(117)); ((WndButton *)wf->FindByName(TEXT("cmdFLY"))) ->SetHeight(IBLSCALE(38)); ((WndButton *)wf->FindByName(TEXT("cmdFLY"))) ->SetTop(IBLSCALE(197)); ((WndButton *)wf->FindByName(TEXT("cmdSIM"))) ->SetWidth(IBLSCALE(117)); ((WndButton *)wf->FindByName(TEXT("cmdSIM"))) ->SetLeft(IBLSCALE(201)+PROFWIDTH*3); ((WndButton *)wf->FindByName(TEXT("cmdSIM"))) ->SetHeight(IBLSCALE(38)); ((WndButton *)wf->FindByName(TEXT("cmdSIM"))) ->SetTop(IBLSCALE(197)); ((WndButton *)wf->FindByName(TEXT("cmdDUALPROFILE"))) ->SetLeft(IBLSCALE(88)+PROFWIDTH); ((WndButton *)wf->FindByName(TEXT("cmdDUALPROFILE"))) ->SetWidth(IBLSCALE(99)+PROFWIDTH/6); ((WndButton *)wf->FindByName(TEXT("cmdDUALPROFILE"))) ->SetHeight(IBLSCALE(38)); ((WndButton *)wf->FindByName(TEXT("cmdDUALPROFILE"))) ->SetTop(IBLSCALE(197)); ((WndButton *)wf->FindByName(TEXT("cmdEXIT"))) ->SetLeft(IBLSCALE(161)+PROFWIDTH*2); ((WndButton *)wf->FindByName(TEXT("cmdEXIT"))) ->SetWidth(IBLSCALE(65)+PROFWIDTH/5); ((WndButton *)wf->FindByName(TEXT("cmdEXIT"))) ->SetHeight(IBLSCALE(38)); ((WndButton *)wf->FindByName(TEXT("cmdEXIT"))) ->SetTop(IBLSCALE(197)); break; case ss640x480: case ss320x240: ((WndButton *)wf->FindByName(TEXT("cmdDUALPROFILE"))) ->SetLeft(IBLSCALE(93)+PROFWIDTH); ((WndButton *)wf->FindByName(TEXT("cmdDUALPROFILE"))) ->SetWidth(IBLSCALE(73)+PROFWIDTH/6); ((WndButton *)wf->FindByName(TEXT("cmdEXIT"))) ->SetLeft(IBLSCALE(166)+PROFWIDTH*2); ((WndButton *)wf->FindByName(TEXT("cmdEXIT"))) ->SetWidth(IBLSCALE(60)+PROFWIDTH/5); ((WndButton *)wf->FindByName(TEXT("cmdSIM"))) ->SetLeft(IBLSCALE(228)+PROFWIDTH*3); ((WndButton *)wf->FindByName(TEXT("cmdSIM"))) ->SetWidth(IBLSCALE(88)); break; default: ((WndButton *)wf->FindByName(TEXT("cmdDUALPROFILE"))) ->SetLeft(IBLSCALE(93)+PROFWIDTH); ((WndButton *)wf->FindByName(TEXT("cmdDUALPROFILE"))) ->SetWidth(IBLSCALE(73)+PROFWIDTH/6); ((WndButton *)wf->FindByName(TEXT("cmdEXIT"))) ->SetLeft(IBLSCALE(166)+PROFWIDTH*2); ((WndButton *)wf->FindByName(TEXT("cmdEXIT"))) ->SetWidth(IBLSCALE(60)+PROFWIDTH/5); ((WndButton *)wf->FindByName(TEXT("cmdSIM"))) ->SetLeft(IBLSCALE(228)+PROFWIDTH*3); break; } } else { PROFWIDTH=IBLSCALE(236); PROFACCEPTWIDTH=NIBLSCALE(45); PROFHEIGHT=NIBLSCALE(25); PROFSEPARATOR=NIBLSCALE(2); } } if (RUN_MODE==RUN_DUALPROF) { ((WndButton *)wf->FindByName(TEXT("cmdAIRCRAFT"))) ->SetOnClickNotify(OnAIRCRAFTClicked); ((WndButton *)wf->FindByName(TEXT("cmdPROFILE"))) ->SetOnClickNotify(OnPROFILEClicked); ((WndButton *)wf->FindByName(TEXT("cmdPILOT"))) ->SetOnClickNotify(OnPILOTClicked); ((WndButton *)wf->FindByName(TEXT("cmdCLOSE"))) ->SetOnClickNotify(OnCloseClicked); //((WndButton *)wf->FindByName(TEXT("cmdFLY"))) ->SetOnClickNotify(OnFLYClicked); //((WndButton *)wf->FindByName(TEXT("cmdSIM"))) ->SetOnClickNotify(OnSIMClicked); //((WndButton *)wf->FindByName(TEXT("cmdDUALPROFILE"))) ->SetOnClickNotify(OnDUALPROFILEClicked); //((WndButton *)wf->FindByName(TEXT("cmdEXIT"))) ->SetOnClickNotify(OnEXITClicked); if (ScreenLandscape) { PROFWIDTH=(ScreenSizeX-IBLSCALE(320))/3; switch(ScreenSize) { case ss800x480: case ss400x240: ((WndButton *)wf->FindByName(TEXT("cmdAIRCRAFT"))) ->SetWidth(IBLSCALE(110)); ((WndButton *)wf->FindByName(TEXT("cmdCLOSE"))) ->SetWidth(IBLSCALE(110)); ((WndButton *)wf->FindByName(TEXT("cmdCLOSE"))) ->SetLeft(IBLSCALE(208)+PROFWIDTH*3); ((WndButton *)wf->FindByName(TEXT("cmdPROFILE"))) ->SetLeft(IBLSCALE(88)+PROFWIDTH); ((WndButton *)wf->FindByName(TEXT("cmdPROFILE"))) ->SetWidth(IBLSCALE(92)+PROFWIDTH/6); ((WndButton *)wf->FindByName(TEXT("cmdPILOT"))) ->SetLeft(IBLSCALE(161)+PROFWIDTH*2); ((WndButton *)wf->FindByName(TEXT("cmdPILOT"))) ->SetWidth(IBLSCALE(65)+PROFWIDTH/5); break; case ss480x272: ((WndButton *)wf->FindByName(TEXT("cmdAIRCRAFT"))) ->SetWidth(IBLSCALE(117)); ((WndButton *)wf->FindByName(TEXT("cmdAIRCRAFT"))) ->SetHeight(IBLSCALE(38)); ((WndButton *)wf->FindByName(TEXT("cmdAIRCRAFT"))) ->SetTop(IBLSCALE(197)); ((WndButton *)wf->FindByName(TEXT("cmdCLOSE"))) ->SetWidth(IBLSCALE(117)); ((WndButton *)wf->FindByName(TEXT("cmdCLOSE"))) ->SetLeft(IBLSCALE(201)+PROFWIDTH*3); ((WndButton *)wf->FindByName(TEXT("cmdCLOSE"))) ->SetHeight(IBLSCALE(38)); ((WndButton *)wf->FindByName(TEXT("cmdCLOSE"))) ->SetTop(IBLSCALE(197)); ((WndButton *)wf->FindByName(TEXT("cmdPROFILE"))) ->SetLeft(IBLSCALE(88)+PROFWIDTH); ((WndButton *)wf->FindByName(TEXT("cmdPROFILE"))) ->SetWidth(IBLSCALE(99)+PROFWIDTH/6); ((WndButton *)wf->FindByName(TEXT("cmdPROFILE"))) ->SetHeight(IBLSCALE(38)); ((WndButton *)wf->FindByName(TEXT("cmdPROFILE"))) ->SetTop(IBLSCALE(197)); ((WndButton *)wf->FindByName(TEXT("cmdPILOT"))) ->SetLeft(IBLSCALE(161)+PROFWIDTH*2); ((WndButton *)wf->FindByName(TEXT("cmdPILOT"))) ->SetWidth(IBLSCALE(65)+PROFWIDTH/5); ((WndButton *)wf->FindByName(TEXT("cmdPILOT"))) ->SetHeight(IBLSCALE(38)); ((WndButton *)wf->FindByName(TEXT("cmdPILOT"))) ->SetTop(IBLSCALE(197)); break; case ss640x480: case ss320x240: ((WndButton *)wf->FindByName(TEXT("cmdPROFILE"))) ->SetLeft(IBLSCALE(93)+PROFWIDTH); ((WndButton *)wf->FindByName(TEXT("cmdPROFILE"))) ->SetWidth(IBLSCALE(73)+PROFWIDTH/6); ((WndButton *)wf->FindByName(TEXT("cmdPILOT"))) ->SetLeft(IBLSCALE(166)+PROFWIDTH*2); ((WndButton *)wf->FindByName(TEXT("cmdPILOT"))) ->SetWidth(IBLSCALE(60)+PROFWIDTH/5); ((WndButton *)wf->FindByName(TEXT("cmdCLOSE"))) ->SetLeft(IBLSCALE(228)+PROFWIDTH*3); ((WndButton *)wf->FindByName(TEXT("cmdCLOSE"))) ->SetWidth(IBLSCALE(88)); break; default: ((WndButton *)wf->FindByName(TEXT("cmdPROFILE"))) ->SetLeft(IBLSCALE(93)+PROFWIDTH); ((WndButton *)wf->FindByName(TEXT("cmdPROFILE"))) ->SetWidth(IBLSCALE(73)+PROFWIDTH/6); ((WndButton *)wf->FindByName(TEXT("cmdPILOT"))) ->SetLeft(IBLSCALE(166)+PROFWIDTH*2); ((WndButton *)wf->FindByName(TEXT("cmdPILOT"))) ->SetWidth(IBLSCALE(60)+PROFWIDTH/5); ((WndButton *)wf->FindByName(TEXT("cmdCLOSE"))) ->SetLeft(IBLSCALE(228)+PROFWIDTH*3); break; } } else { PROFWIDTH=IBLSCALE(236); PROFACCEPTWIDTH=NIBLSCALE(45); PROFHEIGHT=NIBLSCALE(25); PROFSEPARATOR=NIBLSCALE(2); } } if (RUN_MODE==RUN_PROFILE || RUN_MODE==RUN_AIRCRAFT || RUN_MODE==RUN_PILOT) { ((WndButton *)wf->FindByName(TEXT("cmdClose"))) ->SetOnClickNotify(OnCloseClicked); if (ScreenLandscape) { PROFWIDTH=IBLSCALE(256); PROFACCEPTWIDTH=NIBLSCALE(60); PROFHEIGHT=NIBLSCALE(30); PROFSEPARATOR=NIBLSCALE(4); ((WndButton *)wf->FindByName(TEXT("cmdClose"))) ->SetWidth(PROFACCEPTWIDTH); ((WndButton *)wf->FindByName(TEXT("cmdClose"))) -> SetLeft((((ScreenSizeX-PROFWIDTH-PROFSEPARATOR-PROFACCEPTWIDTH)/2)+PROFSEPARATOR+PROFWIDTH)-NIBLSCALE(2)); ((WndButton *)wf->FindByName(TEXT("cmdClose"))) ->SetHeight(PROFHEIGHT-NIBLSCALE(4)); } else { PROFWIDTH=IBLSCALE(236); PROFACCEPTWIDTH=NIBLSCALE(45); PROFHEIGHT=NIBLSCALE(25); PROFSEPARATOR=NIBLSCALE(2); ((WndButton *)wf->FindByName(TEXT("cmdClose"))) ->SetWidth(ScreenSizeX-NIBLSCALE(6)); ((WndButton *)wf->FindByName(TEXT("cmdClose"))) -> SetLeft(NIBLSCALE(2)); } } TCHAR temp[MAX_PATH]; wf->SetHeight(ScreenSizeY); wf->SetWidth(ScreenSizeX); wp = ((WndProperty *)wf->FindByName(TEXT("prpProfile"))); if (wp) { DataFieldFileReader* dfe; dfe = (DataFieldFileReader*)wp->GetDataField(); if (RUN_MODE==RUN_PROFILE) { _stprintf(temp,_T("*%S"),LKS_PRF); dfe->ScanDirectoryTop(_T(LKD_CONF),temp); dfe->addFile(gettext(_T("_@M1741_")),_T("PROFILE_RESET")); dfe->Lookup(startProfileFile); } if (RUN_MODE==RUN_AIRCRAFT) { _stprintf(temp,_T("*%S"),LKS_AIRCRAFT); dfe->ScanDirectoryTop(_T(LKD_CONF),temp); dfe->Lookup(startAircraftFile); } if (RUN_MODE==RUN_PILOT) { _stprintf(temp,_T("*%S"),LKS_PILOT); dfe->ScanDirectoryTop(_T(LKD_CONF),temp); dfe->Lookup(startPilotFile); } wp->SetHeight(PROFHEIGHT); wp->SetWidth(PROFWIDTH); if (ScreenLandscape) wp->SetLeft(((ScreenSizeX-PROFWIDTH-PROFSEPARATOR-PROFACCEPTWIDTH)/2)-NIBLSCALE(2)); else wp->SetLeft(0); wp->RefreshDisplay(); } if (!CheckRootDir()) { TCHAR mydir[MAX_PATH]; TCHAR mes[MAX_PATH]; LocalPath(mydir,_T("")); _stprintf(mes,_T("%s"),mydir); MessageBoxX(hWndMainWindow, _T("NO LK8000 DIRECTORY\nCheck Installation!"), _T("FATAL ERROR 000"), MB_OK|MB_ICONQUESTION); MessageBoxX(hWndMainWindow, mes, _T("NO LK8000 DIRECTORY"), MB_OK|MB_ICONQUESTION, true); RUN_MODE=RUN_EXIT; Shutdown(); goto _exit; } if (!CheckDataDir()) { TCHAR mydir[MAX_PATH]; TCHAR mes[MAX_PATH]; LocalPath(mydir,_T(LKD_SYSTEM)); _stprintf(mes,_T("%s"),mydir); MessageBoxX(hWndMainWindow, _T("NO SYSTEM DIRECTORY\nCheck Installation!"), _T("FATAL ERROR 001"), MB_OK|MB_ICONQUESTION); MessageBoxX(hWndMainWindow, mes, _T("NO SYSTEM DIRECTORY"), MB_OK|MB_ICONQUESTION, true); RUN_MODE=RUN_EXIT; Shutdown(); goto _exit; } if (!CheckLanguageDir()) { TCHAR mydir[MAX_PATH]; TCHAR mes[MAX_PATH]; StartupStore(_T("... CHECK LANGUAGE DIRECTORY FAILED!%s"),NEWLINE); LocalPath(mydir,_T(LKD_LANGUAGE)); _stprintf(mes,_T("%s"),mydir); MessageBoxX(hWndMainWindow, _T("LANGUAGE DIRECTORY CHECK FAIL\nCheck Language Install"), _T("FATAL ERROR 002"), MB_OK|MB_ICONQUESTION); MessageBoxX(hWndMainWindow, mes, _T("NO LANGUAGE DIRECTORY"), MB_OK|MB_ICONQUESTION, true); RUN_MODE=RUN_EXIT; Shutdown(); goto _exit; } if (!CheckLanguageEngMsg()) { TCHAR mydir[MAX_PATH]; TCHAR mes[MAX_PATH]; StartupStore(_T("... CHECK LANGUAGE ENG_MSG FAILED!%s"),NEWLINE); LocalPath(mydir,_T(LKD_LANGUAGE)); _stprintf(mes,_T("%s/ENG_MSG.TXT"),mydir); MessageBoxX(hWndMainWindow, _T("ENG_MSG.TXT MISSING in LANGUAGE\nCheck Language Install"), _T("FATAL ERROR 012"), MB_OK|MB_ICONQUESTION); MessageBoxX(hWndMainWindow, mes, _T("MISSING FILE!"), MB_OK|MB_ICONQUESTION, true); RUN_MODE=RUN_EXIT; Shutdown(); goto _exit; } if (!CheckSystemDefaultMenu()) { TCHAR mydir[MAX_PATH]; TCHAR mes[MAX_PATH]; StartupStore(_T("... CHECK SYSTEM DEFAULT_MENU.TXT FAILED!%s"),NEWLINE); LocalPath(mydir,_T(LKD_SYSTEM)); _stprintf(mes,_T("%s/DEFAULT_MENU.TXT"),mydir); MessageBoxX(hWndMainWindow, _T("DEFAULT_MENU.TXT MISSING in SYSTEM\nCheck System Install"), _T("FATAL ERROR 022"), MB_OK|MB_ICONQUESTION); MessageBoxX(hWndMainWindow, mes, _T("MISSING FILE!"), MB_OK|MB_ICONQUESTION, true); RUN_MODE=RUN_EXIT; Shutdown(); goto _exit; } if (!CheckSystemBitmaps()) { TCHAR mydir[MAX_PATH]; TCHAR mes[MAX_PATH]; StartupStore(_T("... CHECK SYSTEM _BITMAPSH FAILED!%s"),NEWLINE); LocalPath(mydir,_T(LKD_BITMAPS)); _stprintf(mes,_T("%s/_BITMAPSH"),mydir); MessageBoxX(hWndMainWindow, _T("_BITMAPSH MISSING in SYSTEM Bitmaps\nCheck System Install"), _T("FATAL ERROR 032"), MB_OK|MB_ICONQUESTION); MessageBoxX(hWndMainWindow, mes, _T("MISSING FILE!"), MB_OK|MB_ICONQUESTION, true); RUN_MODE=RUN_EXIT; Shutdown(); goto _exit; } if (!CheckPolarsDir()) { TCHAR mydir[MAX_PATH]; TCHAR mes[MAX_PATH]; StartupStore(_T("... CHECK POLARS DIRECTORY FAILED!%s"),NEWLINE); LocalPath(mydir,_T(LKD_POLARS)); _stprintf(mes,_T("%s"),mydir); MessageBoxX(hWndMainWindow, _T("NO POLARS DIRECTORY\nCheck Install"), _T("FATAL ERROR 003"), MB_OK|MB_ICONQUESTION); MessageBoxX(hWndMainWindow, mes, _T("NO POLARS DIRECTORY"), MB_OK|MB_ICONQUESTION, true); RUN_MODE=RUN_EXIT; Shutdown(); goto _exit; } // Standby for a system request to close the application during this phase. wf->SetTimerNotify(OnTimerNotify); #if 0 srand(GetTickCount()); #endif wf->ShowModal(); if (RUN_MODE==RUN_SHUTDOWN) goto _exit; wp = (WndProperty*)wf->FindByName(TEXT("prpProfile")); if (wp) { DataFieldFileReader* dfe; dfe = (DataFieldFileReader*)wp->GetDataField(); if (RUN_MODE==RUN_PROFILE) { if (_tcslen(dfe->GetPathFile())>0) { if (_tcscmp(dfe->GetPathFile(),startProfileFile) ) { // if they are not the same _tcscpy(startProfileFile,dfe->GetPathFile()); if (_tcscmp(startProfileFile,_T("PROFILE_RESET"))==0) { #if TESTBENCH StartupStore(_T("... Selected FULL RESET virtual profile\n")); #endif if (MessageBoxX(NULL, gettext(TEXT("_@M1758_")), gettext(TEXT("_@M1757_")), MB_OK|MB_ICONQUESTION)); fullresetasked=true; } else { #if TESTBENCH StartupStore(_T("... Selected new profile, preloading..\n")); #endif LKProfileLoad(startProfileFile); fullresetasked=false; } } } } if (RUN_MODE==RUN_AIRCRAFT) { if (_tcslen(dfe->GetPathFile())>0) { if (_tcscmp(dfe->GetPathFile(),startAircraftFile) ) { // if they are not the same _tcscpy(startAircraftFile,dfe->GetPathFile()); #if TESTBENCH StartupStore(_T("... Selected new aircraft, preloading..\n")); #endif LKProfileLoad(startAircraftFile); } } } if (RUN_MODE==RUN_PILOT) { if (_tcslen(dfe->GetPathFile())>0) { if (_tcscmp(dfe->GetPathFile(),startPilotFile) ) { // if they are not the same _tcscpy(startPilotFile,dfe->GetPathFile()); #if TESTBENCH StartupStore(_T("... Selected new pilot, preloading..\n")); #endif LKProfileLoad(startPilotFile); } } } RUN_MODE=RUN_DUALPROF; } if (RUN_MODE==RUN_EXIT) { if (EnableSoundModes) LKSound(_T("LK_SLIDE.WAV")); if (MessageBoxX(hWndMainWindow, // LKTOKEN _@M198_ = "Confirm Exit?" gettext(TEXT("_@M198_")), TEXT("LK8000"), MB_YESNO|MB_ICONQUESTION) == IDYES) { Shutdown(); } else RUN_MODE=RUN_WELCOME; } _exit: if (wf!=NULL) { delete wf; wf = NULL; } if (RUN_MODE==RUN_FLY || RUN_MODE==RUN_SIM) { if (EnableSoundModes) LKSound(_T("LK_SLIDE.WAV")); return 0; // do not repeat dialog } if (RUN_MODE==RUN_EXIT || RUN_MODE==RUN_SHUTDOWN) return -1; // terminate else return 1; // repeat dialog }
void dlgWeatherShowModal(void){ if (!InfoBoxLayout::landscape) { char filename[MAX_PATH]; LocalPathS(filename, TEXT("dlgWeather_L.xml")); wf = dlgLoadFromXML(CallBackTable, filename, hWndMainWindow, TEXT("IDR_XML_WEATHER_L")); } else { char filename[MAX_PATH]; LocalPathS(filename, TEXT("dlgWeather.xml")); wf = dlgLoadFromXML(CallBackTable, filename, hWndMainWindow, TEXT("IDR_XML_WEATHER")); } WndProperty* wp; if (wf) { wp = (WndProperty*)wf->FindByName(TEXT("prpTime")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(TEXT("Now")); for (int i=1; i<MAX_WEATHER_TIMES; i++) { if (RASP.weather_available[i]) { TCHAR timetext[10]; _stprintf(timetext,TEXT("%04d"), RASP.IndexToTime(i)); dfe->addEnumText(timetext); } } RASPGetTime(dfe); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpDisplayItem")); DataFieldEnum* dfe; if (wp) { dfe = (DataFieldEnum*)wp->GetDataField(); // LKTOKEN _@M708_ = "Terrain" dfe->addEnumText(gettext(TEXT("_@M708_"))); TCHAR Buffer[20]; for (int i=1; i<=15; i++) { RASP.ItemLabel(i, Buffer); if (_tcslen(Buffer)) { dfe->addEnumText(Buffer); } } dfe->Set(RasterTerrain::render_weather); wp->RefreshDisplay(); } wf->ShowModal(); wp = (WndProperty*)wf->FindByName(TEXT("prpTime")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); RASPSetTime(dfe); } wp = (WndProperty*)wf->FindByName(TEXT("prpDisplayItem")); if (wp) { RasterTerrain::render_weather = wp->GetDataField()->GetAsInteger(); } delete wf; } wf = NULL; }
static void SetValues(bool first=false) { WndProperty* wp; wp = (WndProperty*)wf->FindByName(TEXT("prpTaskFinishLine")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); if (first) { // LKTOKEN _@M210_ = "Cylinder" dfe->addEnumText(gettext(TEXT("_@M210_"))); // LKTOKEN _@M393_ = "Line" dfe->addEnumText(gettext(TEXT("_@M393_"))); // LKTOKEN _@M274_ = "FAI Sector" dfe->addEnumText(gettext(TEXT("_@M274_"))); } dfe->Set(FinishLine); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpTaskFinishRadius")); if (wp) { wp->GetDataField()->SetAsFloat(lround(FinishRadius*DISTANCEMODIFY*DISTANCE_ROUNDING)/DISTANCE_ROUNDING); wp->GetDataField()->SetUnits(Units::GetDistanceName()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpTaskStartLine")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); if (first) { // LKTOKEN _@M210_ = "Cylinder" dfe->addEnumText(gettext(TEXT("_@M210_"))); // LKTOKEN _@M393_ = "Line" dfe->addEnumText(gettext(TEXT("_@M393_"))); // LKTOKEN _@M274_ = "FAI Sector" dfe->addEnumText(gettext(TEXT("_@M274_"))); } dfe->SetDetachGUI(true); // disable call to OnAATEnabled dfe->Set(StartLine); dfe->SetDetachGUI(false); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpTaskStartRadius")); if (wp) { wp->GetDataField()->SetAsFloat(lround(StartRadius*DISTANCEMODIFY*DISTANCE_ROUNDING)/DISTANCE_ROUNDING); wp->GetDataField()->SetUnits(Units::GetDistanceName()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpTaskFAISector")); if (wp) { wp->SetVisible(AATEnabled==0); DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); if (first) { // LKTOKEN _@M210_ = "Cylinder" dfe->addEnumText(gettext(TEXT("_@M210_"))); // LKTOKEN _@M274_ = "FAI Sector" dfe->addEnumText(gettext(TEXT("_@M274_"))); dfe->addEnumText(gettext(TEXT("DAe 0.5/10"))); } dfe->SetDetachGUI(true); // disable call to OnAATEnabled dfe->Set(SectorType); dfe->SetDetachGUI(false); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpTaskSectorRadius")); if (wp) { wp->SetVisible(AATEnabled==0); wp->GetDataField()->SetAsFloat(lround(SectorRadius*DISTANCEMODIFY*DISTANCE_ROUNDING)/DISTANCE_ROUNDING); wp->GetDataField()->SetUnits(Units::GetDistanceName()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpAutoAdvance")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); if (first) { // LKTOKEN _@M418_ = "Manual" dfe->addEnumText(gettext(TEXT("_@M418_"))); // LKTOKEN _@M897_ "Auto" dfe->addEnumText(gettext(TEXT("_@M897_"))); // LKTOKEN _@M97_ = "Arm" dfe->addEnumText(gettext(TEXT("_@M97_"))); // LKTOKEN _@M96_ = "Arm start" dfe->addEnumText(gettext(TEXT("_@M96_"))); } dfe->Set(AutoAdvance); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpMinTime")); if (wp) { wp->SetVisible(AATEnabled>0); wp->GetDataField()->SetAsFloat(AATTaskLength); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpEnableMultipleStartPoints")); if (wp) { wp->GetDataField()->Set(EnableMultipleStartPoints); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpAATEnabled")); if (wp) { bool aw = (AATEnabled != 0); wp->GetDataField()->Set(aw); wp->RefreshDisplay(); } WndButton* wb; wb = (WndButton *)wf->FindByName(TEXT("EditStartPoints")); if (wb) { wb->SetVisible(EnableMultipleStartPoints!=0); } }
void dlgBasicSettingsShowModal() { const ComputerSettings &settings = CommonInterface::GetComputerSettings(); glide_polar = settings.glide_polar_task; wf = LoadDialog(CallBackTable, XCSoarInterface::main_window, _T("IDR_XML_BASICSETTINGS")); if (wf == NULL) return; changed = false; wf->SetTimerNotify(OnTimerNotify); OnTimerNotify(*wf); SetButtons(); SetBallast(); LoadFormProperty(*wf, _T("prpBugs"), (fixed_one - glide_polar.GetBugs()) * 100); LoadFormProperty(*wf, _T("prpQNH"), Units::ToUserPressure(settings.pressure.GetHectoPascal())); WndProperty* wp; wp = (WndProperty*)wf->FindByName(_T("prpQNH")); if (wp) { DataFieldFloat &df = *(DataFieldFloat *)wp->GetDataField(); df.SetMin(Units::ToUserPressure(Units::ToSysUnit(fixed(850), unHectoPascal))); df.SetMax(Units::ToUserPressure(Units::ToSysUnit(fixed(1300), unHectoPascal))); df.SetStep(Units::ToUserPressure(Units::ToSysUnit(fixed_one, unHectoPascal))); df.SetUnits(Units::GetPressureName()); df.SetStep(Units::PressureStep()); df.SetFormat( Units::GetFormatUserPressure()); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpTemperature")); if (wp) { DataFieldFloat &df = *(DataFieldFloat *)wp->GetDataField(); df.SetMin(Units::ToUserTemperature(Units::ToSysUnit(fixed(-50), unGradCelcius))); df.SetMax(Units::ToUserTemperature(Units::ToSysUnit(fixed(60), unGradCelcius))); df.SetUnits(Units::GetTemperatureName()); df.Set(Units::ToUserTemperature(settings.forecast_temperature)); wp->RefreshDisplay(); } if (wf->ShowModal() == mrOK) { ComputerSettings &settings = CommonInterface::SetComputerSettings(); if (changed) { settings.glide_polar_task = glide_polar; if (protected_task_manager != NULL) protected_task_manager->SetGlidePolar(glide_polar); } SaveFormProperty(*wf, _T("prpTemperature"), ugTemperature, settings.forecast_temperature); } delete wf; }
static bool VegaConfigurationUpdated(const TCHAR *name, bool first, bool setvalue = false, long ext_setvalue = 0) { TCHAR updatename[100]; TCHAR fullname[100]; TCHAR propname[100]; TCHAR requesttext[100]; unsigned updated = 0; unsigned lvalue = 0; WndProperty* wp; #ifdef _WIN32_WCE if (first) ProgressGlue::Step(); #endif _stprintf(updatename, _T("Vega%sUpdated"), name); _stprintf(fullname, _T("Vega%s"), name); _stprintf(propname, _T("prp%s"), name); if (first) { Profile::Set(updatename, 0); // we are not ready, haven't received value from vario // (do request here) _stprintf(requesttext, _T("PDVSC,R,%s"), name); VarioWriteNMEA(requesttext); if (!is_simulator()) Sleep(250); } if (setvalue) { wp = (WndProperty*)wf->FindByName(propname); if (wp) { wp->GetDataField()->SetAsInteger((int)ext_setvalue); wp->RefreshDisplay(); } _stprintf(requesttext, _T("PDVSC,S,%s,%ld"), name, ext_setvalue); VarioWriteNMEA(requesttext); if (!is_simulator()) Sleep(250); return true; } if (!Profile::Get(fullname, lvalue)) { // vario hasn't set the value in the registry yet, // so no sensible defaults return false; } else { // hack, fix the -1 (plug and play settings) if (_tcscmp(name, _T("HasTemperature")) == 0) { if (lvalue >= 255) lvalue = 2; } if (first) { // at start, set from last known registry value, this // helps if variables haven't been modified. wp = (WndProperty*)wf->FindByName(propname); if (wp) { wp->GetDataField()->SetAsInteger(lvalue); wp->RefreshDisplay(); } } } if (Profile::Get(updatename, updated)) { if (updated == 1) { // value is updated externally, so set the property and can proceed // to editing values Profile::Set(updatename, 2); wp = (WndProperty*)wf->FindByName(propname); if (wp) { wp->GetDataField()->SetAsInteger(lvalue); wp->RefreshDisplay(); } } else if (updated == 2) { wp = (WndProperty*)wf->FindByName(propname); if (wp) { unsigned newval = (wp->GetDataField()->GetAsInteger()); if (newval != lvalue) { // value has changed Profile::Set(updatename, 2); Profile::Set(fullname, lvalue); changed = true; // maybe represent all as text? // note that this code currently won't work for longs // hack, fix the -1 (plug and play settings) if (_tcscmp(name, _T("HasTemperature")) == 0) { if (newval == 2) newval = 255; } _stprintf(requesttext, _T("PDVSC,S,%s,%d"), name, newval); VarioWriteNMEA(requesttext); if (!is_simulator()) Sleep(250); return true; } } } } return false; }
static WndForm* InitStartup(BYTE mode) { WndForm * pWndForm = dlgLoadFromXML(CallBackTable, ScreenLandscape ? IDR_XML_STARTUP_L : IDR_XML_STARTUP_P); if(pWndForm) { WindowControl * pWndClose = pWndForm->FindByName(TEXT("cmdClose")); WndProperty* pWndProfile = static_cast<WndProperty*>(pWndForm->FindByName(TEXT("prpProfile"))); if (ScreenLandscape) { const int PROFWIDTH = IBLSCALE(256); const int PROFACCEPTWIDTH = NIBLSCALE(60); const int PROFHEIGHT = NIBLSCALE(30); const int PROFSEPARATOR = NIBLSCALE(4); if(pWndClose) { pWndClose->SetWidth(PROFACCEPTWIDTH); pWndClose->SetLeft((((ScreenSizeX - PROFWIDTH - PROFSEPARATOR - PROFACCEPTWIDTH) / 2) + PROFSEPARATOR + PROFWIDTH) - NIBLSCALE(2)); pWndClose->SetHeight(PROFHEIGHT - NIBLSCALE(4)); } if(pWndProfile) { pWndProfile->SetLeft(((ScreenSizeX - PROFWIDTH - PROFSEPARATOR - PROFACCEPTWIDTH) / 2) - NIBLSCALE(2)); pWndProfile->SetHeight(PROFHEIGHT); pWndProfile->SetWidth(PROFWIDTH); } } else { const int PROFWIDTH = IBLSCALE(236); const int PROFHEIGHT = NIBLSCALE(25); int h = ScreenSizeY - IBLSCALE(65); // if(pWndClose) { pWndClose->SetWidth(ScreenSizeX - NIBLSCALE(6)); pWndClose->SetLeft(NIBLSCALE(2)); pWndClose->SetTop(h); } if(pWndProfile) { pWndProfile->SetTop(h + IBLSCALE(35)); pWndProfile->SetLeft(0); pWndProfile->SetHeight(PROFHEIGHT); pWndProfile->SetWidth(PROFWIDTH); } } // // File selection shared by PROFILEs choices // if (pWndProfile) { DataFieldFileReader* dfe = static_cast<DataFieldFileReader*>(pWndProfile->GetDataField()); if(dfe) { if (mode == RUN_PROFILE) { dfe->ScanDirectoryTop(_T(LKD_CONF), _T("*" LKS_PRF)); dfe->addFile(MsgToken(1741), _T("PROFILE_RESET")); dfe->Lookup(startProfileFile); } else if (mode == RUN_AIRCRAFT) { dfe->ScanDirectoryTop(_T(LKD_CONF), _T("*" LKS_AIRCRAFT)); dfe->Lookup(startAircraftFile); } else if (mode == RUN_DEVICE) { dfe->ScanDirectoryTop(_T(LKD_CONF), _T("*" LKS_DEVICE)); dfe->Lookup(startDeviceFile); } else if (mode == RUN_PILOT) { dfe->ScanDirectoryTop(_T(LKD_CONF), _T("*" LKS_PILOT)); dfe->Lookup(startPilotFile); } } pWndProfile->RefreshDisplay(); } } return pWndForm; }
static void UpdateValuesSystem() { static int extGPSCONNECT_last = extGPSCONNECT; static bool NAVWarning_last = GPS_INFO.NAVWarning; static int SatellitesUsed_last = GPS_INFO.SatellitesUsed; static int VarioAvailable_last = GPS_INFO.VarioAvailable; static int FLARM_Available_last = GPS_INFO.FLARM_Available; static bool LoggerActive_last = LoggerActive; static bool DeclaredToDevice_last = DeclaredToDevice; static double SupplyBatteryVoltage_last = GPS_INFO.SupplyBatteryVoltage; static int PDABatteryPercent_last = PDABatteryPercent; static int batterybank_last = GPS_INFO.ExtBatt_Bank; static double extbatt1_voltage = GPS_INFO.ExtBatt1_Voltage; static double extbatt2_voltage = GPS_INFO.ExtBatt2_Voltage; if (first || (extGPSCONNECT_last != extGPSCONNECT) || (NAVWarning_last != GPS_INFO.NAVWarning) || (SatellitesUsed_last != GPS_INFO.SatellitesUsed) || (VarioAvailable_last != GPS_INFO.VarioAvailable) || (FLARM_Available_last != GPS_INFO.FLARM_Available) || (LoggerActive_last != LoggerActive) || (DeclaredToDevice_last != DeclaredToDevice) || (SupplyBatteryVoltage_last != GPS_INFO.SupplyBatteryVoltage) || (batterybank_last != GPS_INFO.ExtBatt_Bank) || (extbatt1_voltage != GPS_INFO.ExtBatt1_Voltage) || (extbatt2_voltage != GPS_INFO.ExtBatt2_Voltage) || (PDABatteryPercent_last != PDABatteryPercent)) { first = false; extGPSCONNECT_last = extGPSCONNECT; NAVWarning_last = GPS_INFO.NAVWarning; SatellitesUsed_last = GPS_INFO.SatellitesUsed; VarioAvailable_last = GPS_INFO.VarioAvailable; FLARM_Available_last = GPS_INFO.FLARM_Available; LoggerActive_last = LoggerActive; DeclaredToDevice_last = DeclaredToDevice; SupplyBatteryVoltage_last = GPS_INFO.SupplyBatteryVoltage; PDABatteryPercent_last = PDABatteryPercent; batterybank_last = GPS_INFO.ExtBatt_Bank; extbatt1_voltage = GPS_INFO.ExtBatt1_Voltage; extbatt2_voltage = GPS_INFO.ExtBatt2_Voltage; } else { return; } TCHAR Temp[80]; TCHAR Temp2[80]; WndProperty* wp; wp = (WndProperty*)wf->FindByName(TEXT("prpGPS")); if (wp) { if (extGPSCONNECT) { if (GPS_INFO.NAVWarning) { // LKTOKEN _@M303_ = "Fix invalid" wp->SetText(gettext(TEXT("_@M303_"))); } else { if (GPS_INFO.SatellitesUsed==0) { // LKTOKEN _@M471_ = "No fix" wp->SetText(gettext(TEXT("_@M471_"))); } else { // LKTOKEN _@M31_ = "3D fix" wp->SetText(gettext(TEXT("_@M31_"))); } } wp->RefreshDisplay(); wp = (WndProperty*)wf->FindByName(TEXT("prpNumSat")); if (wp) { if (GPS_INFO.SatellitesUsed >= 0) { // known numer of sats _stprintf(Temp,TEXT("%d"),GPS_INFO.SatellitesUsed); } else { // valid but unknown number of sats _stprintf(Temp,TEXT(">3")); } if (nmeaParser1.activeGPS==true) _tcscat(Temp,_T(" (Dev:A)")); else _tcscat(Temp,_T(" (Dev:B)")); wp->SetText(Temp); wp->RefreshDisplay(); } } else { // LKTOKEN _@M240_ = "Disconnected" wp->SetText(gettext(TEXT("_@M240_"))); wp->RefreshDisplay(); } } wp = (WndProperty*)wf->FindByName(TEXT("prpVario")); if (wp) { if (GPS_INFO.VarioAvailable) { // LKTOKEN _@M199_ = "Connected" wp->SetText(gettext(TEXT("_@M199_"))); } else { // LKTOKEN _@M240_ = "Disconnected" wp->SetText(gettext(TEXT("_@M240_"))); } wp->RefreshDisplay(); } if (wp) { wp = (WndProperty*)wf->FindByName(TEXT("prpFLARM")); if (GPS_INFO.FLARM_Available) { // LKTOKEN _@M199_ = "Connected" wp->SetText(gettext(TEXT("_@M199_"))); } else { // LKTOKEN _@M240_ = "Disconnected" wp->SetText(gettext(TEXT("_@M240_"))); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpLogger")); if (wp) { if (LoggerGActive()) { if (LoggerActive) { // LKTOKEN _@M494_ = "ON (G)" wp->SetText(gettext(TEXT("_@M494_"))); } else { // LKTOKEN _@M489_ = "OFF (G)" wp->SetText(gettext(TEXT("_@M489_"))); } } else { // no G Record if (LoggerActive) { // LKTOKEN _@M495_ = "ON (no G)" wp->SetText(gettext(TEXT("_@M495_"))); } else { // LKTOKEN _@M490_ = "OFF (no G)" wp->SetText(gettext(TEXT("_@M490_"))); } } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpDeclared")); if (wp) { if (DeclaredToDevice) { // LKTOKEN _@M827_ = "Yes" wp->SetText(gettext(TEXT("_@M827_"))); } else { wp->SetText(gettext(TEXT("_@M890_"))); // No } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpVersion")); if (wp) { TCHAR softversion[100]; #ifndef LKCOMPETITION wsprintf(softversion,_T("%s.%s"),_T(LKVERSION), _T(LKRELEASE)); #else wsprintf(softversion,_T("%s.%s Competition"),_T(LKVERSION), _T(LKRELEASE)); #endif wp->SetText(softversion); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpBattBank")); if (wp) { _stprintf(Temp,TEXT("%d"),GPS_INFO.ExtBatt_Bank); wp->SetText(Temp); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpBatt1Volt")); if (wp) { if (GPS_INFO.ExtBatt1_Voltage>=1000) _stprintf(Temp,TEXT("%.0f%%"),GPS_INFO.ExtBatt1_Voltage-1000); else _stprintf(Temp,TEXT("%.2f V"),GPS_INFO.ExtBatt1_Voltage); wp->SetText(Temp); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpBatt2Volt")); if (wp) { if (GPS_INFO.ExtBatt1_Voltage>=1000) _stprintf(Temp,TEXT("%.0f%%"),GPS_INFO.ExtBatt2_Voltage-1000); else _stprintf(Temp,TEXT("%.2f V"),GPS_INFO.ExtBatt2_Voltage); wp->SetText(Temp); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpBattery")); if (wp) { _stprintf(Temp,TEXT("\0")); #if (WINDOWSPC<1) _stprintf(Temp2,TEXT("%d%% "), PDABatteryPercent); _tcscat(Temp, Temp2); #endif if (GPS_INFO.SupplyBatteryVoltage == 0) { _stprintf(Temp2,TEXT("\0")); } else { _stprintf(Temp2,TEXT("%.1f V"),GPS_INFO.SupplyBatteryVoltage); } _tcscat(Temp, Temp2); wp->SetText(Temp); wp->RefreshDisplay(); } }
void WaypointDisplayConfigPanel::Init(WndForm *_wf) { assert(_wf != NULL); wf = _wf; WndProperty *wp; const WaypointRendererSettings &settings = CommonInterface::SettingsMap().waypoint; wp = (WndProperty*)wf->FindByName(_T("prpWaypointLabels")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->EnableItemHelp(true); dfe->addEnumText(_("Full name"), DISPLAYNAME, _("The full name of each waypoint is displayed.")); dfe->addEnumText(_("First word of name"), DISPLAYUNTILSPACE, _("The first word of the waypoint name is displayed.")); dfe->addEnumText(_("First 3 letters"), DISPLAYFIRSTTHREE, _("The first 3 letters of the waypoint name are displayed.")); dfe->addEnumText(_("First 5 letters"), DISPLAYFIRSTFIVE, _("The first 5 letters of the waypoint name are displayed.")); dfe->addEnumText(_("None"), DISPLAYNONE, _("No waypoint name is displayed.")); dfe->Set(settings.display_text_type); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpWaypointArrivalHeightDisplay")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->EnableItemHelp(true); dfe->addEnumText(_("None"), WP_ARRIVAL_HEIGHT_NONE, _("No arrival height is displayed.")); dfe->addEnumText(_("Straight glide"), WP_ARRIVAL_HEIGHT_GLIDE, _("Straight glide arrival height (no terrain is considered).")); dfe->addEnumText(_("Terrain avoidance glide"), WP_ARRIVAL_HEIGHT_TERRAIN, _("Arrival height considering terrain avoidance")); dfe->addEnumText(_("Straight & terrain glide"), WP_ARRIVAL_HEIGHT_GLIDE_AND_TERRAIN, _("Both arrival heights are displayed.")); dfe->Set(settings.arrival_height_display); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpWaypointLabelStyle")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->addEnumText(_("Rounded rectangle"), RoundedBlack); dfe->addEnumText(_("Outlined"), OutlinedInverted); dfe->Set(settings.landable_render_mode); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpWaypointLabelSelection")); if (wp) { //Determines what waypoint labels are displayed for each waypoint (space permitting): DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->EnableItemHelp(true); dfe->addEnumText(_("All"), wlsAllWaypoints, _("All waypoint labels will be displayed.")); dfe->addEnumText(_("Task waypoints & landables"), wlsTaskAndLandableWaypoints, _("All waypoints part of a task and all landables will be displayed.")); dfe->addEnumText(_("Task waypoints"), wlsTaskWaypoints, _("All waypoints part of a task will be displayed.")); dfe->addEnumText(_("None"), wlsNoWaypoints, _("No waypoint labels will be displayed.")); dfe->Set(settings.label_selection); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(_T("prpAppIndLandable")); if (wp) { DataFieldEnum* dfe; dfe = (DataFieldEnum*)wp->GetDataField(); dfe->EnableItemHelp(true); dfe->addEnumText(_("Purple circle"), wpLandableWinPilot, _("Airports and outlanding fields are displayed as purple circles. If the waypoint is reachable a bigger green circle is added behind the purple one. If the waypoint is blocked by a mountain the green circle will be red instead.")); dfe->addEnumText(_("B/W"), wpLandableAltA, _("Airports and outlanding fields are displayed in white/grey. If the waypoint is reachable the color is changed to green. If the waypoint is blocked by a mountain the color is changed to red instead.")); dfe->addEnumText(_("Traffic lights"), wpLandableAltB, _("Airports and outlanding fields are displayed in the colors of a traffic light. Green if reachable, Orange if blocked by mountain and red if not reachable at all.")); dfe->Set(settings.landable_style); wp->RefreshDisplay(); } LoadFormProperty(*wf, _T("prpAppUseSWLandablesRendering"), settings.vector_landable_rendering); LoadFormProperty(*wf, _T("prpAppLandableRenderingScale"), settings.landable_rendering_scale); LoadFormProperty(*wf, _T("prpAppScaleRunwayLength"), settings.scale_runway_length); UpdateVisibilities(); }
/** * Refreshes UI based on location of target and current task stats */ static void RefreshCalculator() { WndProperty* wp = NULL; bool nodisplay = false; bool bAAT; fixed aatTime; { ProtectedTaskManager::Lease lease(*protected_task_manager); bAAT = lease->HasTarget(target_point); if (!bAAT) { nodisplay = true; IsLocked = false; } else { lease->GetTargetRangeRadial(target_point, Range, Radial); IsLocked = lease->TargetIsLocked(target_point); } aatTime = lease->GetOrderedTaskBehaviour().aat_min_time; } if (chkbOptimized) { chkbOptimized->set_visible(bAAT); chkbOptimized->SetState(!IsLocked); } LockCalculatorUI(); wp = (WndProperty*)wf->FindByName(_T("prpRange")); if (wp) { DataFieldFloat *df = (DataFieldFloat *)wp->GetDataField(); df->Set(Range * fixed(100)); wp->RefreshDisplay(); wp->set_visible(!nodisplay); } wp = (WndProperty*)wf->FindByName(_T("prpRadial")); if (wp) { fixed rTemp = Radial; if (rTemp < fixed(-90)) rTemp += fixed(180); else if (rTemp > fixed(90)) rTemp -= fixed(180); DataFieldFloat *df = (DataFieldFloat *)wp->GetDataField(); df->Set(rTemp); wp->RefreshDisplay(); wp->set_visible(!nodisplay); } // update outputs fixed aattimeEst = XCSoarInterface::Calculated().common_stats.task_time_remaining + XCSoarInterface::Calculated().common_stats.task_time_elapsed; ShowOptionalFormControl(*wf, _T("prpAATEst"), !nodisplay); ShowFormControl(*wf, _T("prpAATDelta"), !nodisplay); if (!nodisplay) { LoadOptionalFormProperty(*wf, _T("prpAATEst"), aattimeEst / fixed(60)); LoadFormProperty(*wf, _T("prpAATDelta"), (aattimeEst - aatTime) / 60); } const ElementStat &total = CommonInterface::Calculated().task_stats.total; if (total.remaining_effective.IsDefined()) LoadFormProperty(*wf, _T("prpSpeedRemaining"), UnitGroup::TASK_SPEED, total.remaining_effective.get_speed()); if (total.travelled.IsDefined()) LoadOptionalFormProperty(*wf, _T("prpSpeedAchieved"), UnitGroup::TASK_SPEED, total.travelled.get_speed()); }
void dlgTaskOverviewShowModal(int Idx){ UpLimit = 0; LowLimit = 0; ItemIndex = Idx; //-1; showAdvanced = false; wf = NULL; if (!ScreenLandscape) { TCHAR filename[MAX_PATH]; LocalPathS(filename, TEXT("dlgTaskOverview_L.xml")); wf = dlgLoadFromXML(CallBackTable, filename, TEXT("IDR_XML_TASKOVERVIEW_L")); } else { TCHAR filename[MAX_PATH]; LocalPathS(filename, TEXT("dlgTaskOverview.xml")); wf = dlgLoadFromXML(CallBackTable, filename, TEXT("IDR_XML_TASKOVERVIEW")); } if (!wf) return; WndButton *wb = (WndButton*)wf->FindByName(TEXT("cmdTimegates")); if (wb) wb->SetVisible(false); if (ISPARAGLIDER) { if (PGOptimizeRoute) AATEnabled=true; // force it on EnableMultipleStartPoints=false; if (wb) wb->SetVisible(true); wb = (WndButton*)wf->FindByName(TEXT("cmdDelete")); if (wb) wb->SetVisible(false); } UpdateCaption(); wfAdvanced = ((WndFrame *)wf->FindByName(TEXT("frmAdvanced"))); wTaskList = (WndListFrame*)wf->FindByName(TEXT("frmTaskList")); wTaskList->SetBorderKind(BORDERLEFT); wTaskList->SetEnterCallback(OnTaskListEnter); wTaskList->SetWidth(wf->GetWidth() - wTaskList->GetLeft()-2); wTaskListEntry = (WndOwnerDrawFrame*)wf->FindByName(TEXT("frmTaskListEntry")); // ScrollbarWidth is initialised from DrawScrollBar in WindowControls, so it might not be ready here if ( wTaskList->ScrollbarWidth == -1) { #if defined (PNA) #define SHRINKSBFACTOR 1.0 // shrink width factor. Range .1 to 1 where 1 is very "fat" #else #define SHRINKSBFACTOR 0.75 // shrink width factor. Range .1 to 1 where 1 is very "fat" #endif wTaskList->ScrollbarWidth = (int) (SCROLLBARWIDTH_INITIAL * ScreenDScale * SHRINKSBFACTOR); } wTaskListEntry->SetWidth(wTaskList->GetWidth() - wTaskList->ScrollbarWidth - 5); wTaskListEntry = (WndOwnerDrawFrame*)wf-> FindByName(TEXT("frmTaskListEntry")); wTaskListEntry->SetCanFocus(true); WndProperty* wp; wp = (WndProperty*)wf->FindByName(TEXT("prpFile")); if (wp) { wp->SetVisible(false); DataFieldFileReader* dfe; dfe = (DataFieldFileReader*)wp->GetDataField(); TCHAR suff[10]; _stprintf(suff,_T("*%s"),_T(LKS_TSK)); dfe->ScanDirectoryTop(_T(LKD_TASKS),suff); #ifdef OLDTASK_COMPAT _stprintf(suff,_T("*%s"),_T(LKS_OLD_TSK)); dfe->ScanDirectoryTop(_T(LKD_TASKS),suff); #endif _stprintf(suff,_T("*%s"),_T(LKS_WP_CUP)); dfe->ScanDirectoryTop(_T(LKD_TASKS),suff); _stprintf(suff,_T("*%s"),_T(LKS_WP_GPX)); dfe->ScanDirectoryTop(_T(LKD_TASKS),suff); wp->RefreshDisplay(); } UpdateFilePointer(); // initialise and turn on the display OverviewRefreshTask(); UpdateAdvanced(); wTaskList->SetItemIndexPos(Idx); wTaskList->Redraw(); wTaskListEntry->SetFocus(); wf->ShowModal(); // now retrieve back the properties... RefreshTask(); delete wf; wf = NULL; }
void dlgTaskOverviewShowModal(void){ UpLimit = 0; LowLimit = 0; ItemIndex = -1; showAdvanced = false; wf = NULL; if (!InfoBoxLayout::landscape) { char filename[MAX_PATH]; LocalPathS(filename, TEXT("dlgTaskOverview_L.xml")); wf = dlgLoadFromXML(CallBackTable, filename, hWndMainWindow, TEXT("IDR_XML_TASKOVERVIEW_L")); } else { char filename[MAX_PATH]; LocalPathS(filename, TEXT("dlgTaskOverview.xml")); wf = dlgLoadFromXML(CallBackTable, filename, hWndMainWindow, TEXT("IDR_XML_TASKOVERVIEW")); } if (!wf) return; ASSERT(wf!=NULL); if (ISPARAGLIDER) { AATEnabled=TRUE; EnableMultipleStartPoints=false; } UpdateCaption(); wfAdvanced = ((WndFrame *)wf->FindByName(TEXT("frmAdvanced"))); ASSERT(wfAdvanced!=NULL); wTaskList = (WndListFrame*)wf->FindByName(TEXT("frmTaskList")); ASSERT(wTaskList!=NULL); wTaskList->SetBorderKind(BORDERLEFT); wTaskList->SetEnterCallback(OnTaskListEnter); wTaskListEntry = (WndOwnerDrawFrame*)wf-> FindByName(TEXT("frmTaskListEntry")); ASSERT(wTaskListEntry!=NULL); wTaskListEntry->SetCanFocus(true); // wTaskListEntry->SetWidth(wTaskList->GetWidth() - wTaskList->GetScrollbarWidth() - 5); // patch 091126 WndProperty* wp; wp = (WndProperty*)wf->FindByName(TEXT("prpFile")); if (wp) { DataFieldFileReader* dfe; dfe = (DataFieldFileReader*)wp->GetDataField(); TCHAR suff[10]; _stprintf(suff,_T("*%S"),LKS_TSK); dfe->ScanDirectoryTop(_T(LKD_TASKS),suff); // TESTFIX 091101 wp->RefreshDisplay(); } UpdateFilePointer(); // CALCULATED_INFO.AATTimeToGo // // initialise and turn on the display OverviewRefreshTask(); UpdateAdvanced(); wf->ShowModal(); // now retrieve back the properties... RefreshTask(); delete wf; wf = NULL; }
void dlgStartupShowModal(void){ WndProperty* wp; StartupStore(TEXT("Startup dialog\n")); if (!InfoBoxLayout::landscape) { wf = dlgLoadFromXML(CallBackTable, TEXT("dlgStartup_L.xml"), XCSoarInterface::main_window, TEXT("IDR_XML_STARTUP_L")); } else { wf = dlgLoadFromXML(CallBackTable, TEXT("dlgStartup.xml"), XCSoarInterface::main_window, TEXT("IDR_XML_STARTUP")); } if (!wf) return; wSplash = (WndOwnerDrawFrame*)wf->FindByName(TEXT("frmSplash")); ((WndButton *)wf->FindByName(TEXT("cmdClose"))) ->SetOnClickNotify(OnCloseClicked); TCHAR temp[MAX_PATH]; _stprintf(temp,TEXT("XCSoar: Version %s"), XCSoar_Version); wf->SetCaption(temp); wp = ((WndProperty *)wf->FindByName(TEXT("prpDisclaimer"))); if (wp) wp->SetText(TEXT("Pilot assumes complete\r\nresponsibility to operate\r\nthe aircraft safely.\r\nMaintain effective lookout.\r\n")); wp = ((WndProperty *)wf->FindByName(TEXT("prpProfile"))); if (wp) { DataFieldFileReader* dfe; dfe = (DataFieldFileReader*)wp->GetDataField(); if (is_altair()) dfe->ScanDirectoryTop(TEXT("config/*.prf")); else dfe->ScanDirectoryTop(TEXT("*.prf")); dfe->Lookup(startProfileFile); wp->RefreshDisplay(); if (dfe->GetNumFiles()<=2) { delete wf; wf = NULL; return; } } wf->ShowModal(); wp = (WndProperty*)wf->FindByName(TEXT("prpProfile")); if (wp) { DataFieldFileReader* dfe; dfe = (DataFieldFileReader*)wp->GetDataField(); if (_tcslen(dfe->GetPathFile())>0) { _tcscpy(startProfileFile,dfe->GetPathFile()); } } delete wf; wf = NULL; }
static void SetValues(void) { WndProperty* wp; WndButton *wb; TCHAR buffer[80]; TCHAR buffer2[160]; // must contain buffer int bearing; int hdist; int vdist; bool inside = false; { CCriticalSection::CGuard guard(CAirspaceManager::Instance().MutexRef()); CAirspace* airspace = CAirspaceManager::Instance().GetAirspacesForDetails(); if(airspace) { // Get an object instance copy with actual values airspace_copy = CAirspaceManager::Instance().GetAirspaceCopy(airspace); inside = CAirspaceManager::Instance().AirspaceCalculateDistance( airspace, &hdist, &bearing, &vdist); } else { // error : CAirspaceManager are closed ? return; } } if (wf!=NULL) { TCHAR capbuffer[250]; _stprintf(capbuffer,_T("%s ("),airspace_copy.Name()); if (airspace_copy.Enabled()) { _tcscat(capbuffer,gettext(TEXT("_@M1643_"))); // ENABLED } else { _tcscat(capbuffer,gettext(TEXT("_@M1600_"))); // DISABLED } _tcscat(capbuffer,_T(")")); // DISABLED wf->SetCaption(capbuffer); } wp = (WndProperty*)wf->FindByName(TEXT("prpType")); if (wp) { if (airspace_copy.Flyzone()) { _stprintf(buffer,TEXT("%s %s"), CAirspaceManager::Instance().GetAirspaceTypeText(airspace_copy.Type()), gettext(TEXT("FLY"))); /* if( _tcsnicmp( airspace_copy.Name(), airspace_copy.TypeName() ,_tcslen(airspace_copy.TypeName())) == 0) _stprintf(buffer,TEXT("%s"),airspace_copy.Name()); else _stprintf(buffer,TEXT("%s %s"),airspace_copy.TypeName() // fixed strings max. 20 ,airspace_copy.Name()); // NAME_SIZE 30 => max. 30 char */ } else { _stprintf(buffer,TEXT("%s %s"), gettext(TEXT("NOFLY")), CAirspaceManager::Instance().GetAirspaceTypeText(airspace_copy.Type())); } wp->SetText( buffer ); // wp->SetBackColor( airspace_copy.TypeColor()); // wp->SetForeColor( ContrastTextColor(airspace_copy.TypeColor())); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpTop")); if (wp) { CAirspaceManager::Instance().GetAirspaceAltText(buffer, sizeof(buffer)/sizeof(buffer[0]), airspace_copy.Top()); wp->SetText(buffer); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpBase")); if (wp) { CAirspaceManager::Instance().GetAirspaceAltText(buffer, sizeof(buffer)/sizeof(buffer[0]), airspace_copy.Base()); wp->SetText(buffer); wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpRange")); if (wp) { Units::FormatUserDistance(abs(hdist), buffer, 20); if (inside) { // LKTOKEN _@M359_ = "Inside" wp->SetCaption(gettext(TEXT("_@M359_"))); } if (hdist < 0) { // LKTOKEN _@M1257_ "to leave" _stprintf(buffer2, TEXT("%s %d%s %s"), buffer, iround(bearing), gettext(_T("_@M2179_")), gettext(TEXT("_@M1257_"))); } else { // LKTOKEN _@M1258_ "to enter" _stprintf(buffer2, TEXT("%s %d%s %s"), buffer, iround(bearing), gettext(_T("_@M2179_")), gettext(TEXT("_@M1258_"))); } wp->SetText(buffer2); wp->RefreshDisplay(); } // ONLY for DIAGNOSTICS- ENABLE ALSO XML #if 0 wp = (WndProperty*)wf->FindByName(TEXT("prpWarnLevel")); if (wp) { switch (airspace_copy.WarningLevel()) { default: // LKTOKEN _@M765_ "Unknown" wp->SetText(gettext(TEXT("_@M765_"))); break; case awNone: // LKTOKEN _@M479_ "None" wp->SetText(gettext(TEXT("_@M479_"))); break; case awYellow: // LKTOKEN _@M1255_ "YELLOW WARNING" wp->SetText(gettext(TEXT("_@M1255_"))); break; case awRed: // LKTOKEN _@M1256_ "RED WARNING" wp->SetText(gettext(TEXT("_@M1256_"))); break; }//sw wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpAckLevel")); if (wp) { if (airspace_copy.Enabled()) { switch (airspace_copy.WarningAckLevel()) { default: // LKTOKEN _@M765_ "Unknown" wp->SetText(gettext(TEXT("_@M765_"))); break; case awNone: // LKTOKEN _@M479_ "None" wp->SetText(gettext(TEXT("_@M479_"))); break; case awYellow: // LKTOKEN _@M1267_ "Yellow acknowledged" wp->SetText(gettext(TEXT("_@M1267_"))); break; case awRed: // LKTOKEN _@M1268_ "Red acknowledged" wp->SetText(gettext(TEXT("_@M1268_"))); break; }//sw } else { // LKTOKEN _@M1269_ "Disabled" wp->SetText(gettext(TEXT("_@M1269_"))); } wp->RefreshDisplay(); } #endif wb = (WndButton*)wf->FindByName(TEXT("cmdFly")); if (wb) { if (airspace_copy.Flyzone()) { // LKTOKEN _@M1271_ "NOFLY" wb->SetCaption(gettext(TEXT("_@M1271_"))); } else { // LKTOKEN _@M1270_ "FLY" wb->SetCaption(gettext(TEXT("_@M1270_"))); } wb->Redraw(); } wb = (WndButton*)wf->FindByName(TEXT("cmdSelect")); if (wb) { if (airspace_copy.Selected()) { wb->SetCaption(gettext(TEXT("_@M1656_"))); // SELECTED! } else { wb->SetCaption(gettext(TEXT("_@M1654_"))); // SELECT } wb->Redraw(); } wb = (WndButton*)wf->FindByName(TEXT("cmdAcknowledge")); if (wb) { if (airspace_copy.Enabled()) { // LKTOKEN _@M1283_ "Disable" wb->SetCaption(gettext(TEXT("_@M1283_"))); } else { // LKTOKEN _@M1282_ "Enable" wb->SetCaption(gettext(TEXT("_@M1282_"))); } wb->Redraw(); } }
static void setVariables(void) { WndProperty *wp; wp = (WndProperty*)wf->FindByName(TEXT("prpCat10")); if (wp) { if (HaveZoomTopology(10)) { wp->GetDataField()->SetAsFloat( ReadZoomTopology(10)); } else { wp->GetDataField()->SetAsFloat( 0 ); wp->SetReadOnly(true); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCat20")); if (wp) { if (HaveZoomTopology(20)) { wp->GetDataField()->SetAsFloat( ReadZoomTopology(20)); } else { wp->GetDataField()->SetAsFloat( 0 ); wp->SetReadOnly(true); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCat30")); if (wp) { if (HaveZoomTopology(30)) { wp->GetDataField()->SetAsFloat( ReadZoomTopology(30)); } else { wp->GetDataField()->SetAsFloat( 0 ); wp->SetReadOnly(true); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCat40")); if (wp) { if (HaveZoomTopology(40)) { wp->GetDataField()->SetAsFloat( ReadZoomTopology(40)); } else { wp->GetDataField()->SetAsFloat( 0 ); wp->SetReadOnly(true); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCat50")); if (wp) { if (HaveZoomTopology(50)) { wp->GetDataField()->SetAsFloat( ReadZoomTopology(50)); } else { wp->GetDataField()->SetAsFloat( 0 ); wp->SetReadOnly(true); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCat60")); if (wp) { if (HaveZoomTopology(60)) { wp->GetDataField()->SetAsFloat( ReadZoomTopology(60)); } else { wp->GetDataField()->SetAsFloat( 0 ); wp->SetReadOnly(true); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCat70")); if (wp) { if (HaveZoomTopology(70)) { wp->GetDataField()->SetAsFloat( ReadZoomTopology(70)); } else { wp->GetDataField()->SetAsFloat( 0 ); wp->SetReadOnly(true); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCat80")); if (wp) { if (HaveZoomTopology(80)) { wp->GetDataField()->SetAsFloat( ReadZoomTopology(80)); } else { wp->GetDataField()->SetAsFloat( 0 ); wp->SetReadOnly(true); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCat90")); if (wp) { if (HaveZoomTopology(90)) { wp->GetDataField()->SetAsFloat( ReadZoomTopology(90)); } else { wp->GetDataField()->SetAsFloat( 0 ); wp->SetReadOnly(true); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCat100")); if (wp) { if (HaveZoomTopology(100)) { wp->GetDataField()->SetAsFloat( ReadZoomTopology(100)); } else { wp->GetDataField()->SetAsFloat( 0 ); wp->SetReadOnly(true); } wp->RefreshDisplay(); } wp = (WndProperty*)wf->FindByName(TEXT("prpCat110")); if (wp) { if (HaveZoomTopology(110)) { wp->GetDataField()->SetAsFloat( ReadZoomTopology(110)); } else { wp->GetDataField()->SetAsFloat( 0 ); wp->SetReadOnly(true); } wp->RefreshDisplay(); } }