static void Update() { TCHAR sTmp[1000]; assert(wf != NULL); assert(wInfo != NULL); assert(wGrid != NULL); assert(csw != NULL); assert(glide_computer != NULL); const ComputerSettings &settings_computer = blackboard->GetComputerSettings(); const DerivedInfo &calculated = blackboard->Calculated(); switch (page) { case AnalysisPage::BAROGRAPH: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Barograph")); wf->SetCaption(sTmp); BarographCaption(sTmp, glide_computer->GetFlightStats()); wInfo->SetCaption(sTmp); SetCalcCaption(_("Settings")); break; case AnalysisPage::CLIMB: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Climb")); wf->SetCaption(sTmp); ClimbChartCaption(sTmp, glide_computer->GetFlightStats()); wInfo->SetCaption(sTmp); SetCalcCaption(_("Task Calc")); break; case AnalysisPage::THERMAL_BAND: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Thermal Band")); wf->SetCaption(sTmp); ClimbChartCaption(sTmp, glide_computer->GetFlightStats()); wInfo->SetCaption(sTmp); SetCalcCaption(_T("")); break; case AnalysisPage::WIND: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Wind at Altitude")); wf->SetCaption(sTmp); wInfo->SetCaption(_T("")); SetCalcCaption(_("Set Wind")); break; case AnalysisPage::POLAR: _stprintf(sTmp, _T("%s: %s (%s %d kg)"), _("Analysis"), _("Glide Polar"), _("Mass"), (int)settings_computer.polar.glide_polar_task.GetTotalMass()); wf->SetCaption(sTmp); GlidePolarCaption(sTmp, settings_computer.polar.glide_polar_task); wInfo->SetCaption(sTmp); SetCalcCaption(_("Settings")); break; case AnalysisPage::TEMPTRACE: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Temp Trace")); wf->SetCaption(sTmp); TemperatureChartCaption(sTmp, glide_computer->GetCuSonde()); wInfo->SetCaption(sTmp); SetCalcCaption(_("Settings")); break; case AnalysisPage::TASK_SPEED: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Task Speed")); wf->SetCaption(sTmp); wInfo->SetCaption(_T("")); SetCalcCaption(_("Task Calc")); break; case AnalysisPage::TASK: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Task")); wf->SetCaption(sTmp); FlightStatisticsRenderer::CaptionTask(sTmp, calculated); wInfo->SetCaption(sTmp); SetCalcCaption(_("Task calc")); break; case AnalysisPage::OLC: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), ContestToString(settings_computer.contest.contest)); wf->SetCaption(sTmp); SetCalcCaption(_T("")); FlightStatisticsRenderer::CaptionOLC(sTmp, settings_computer.contest, calculated); wInfo->SetCaption(sTmp); break; case AnalysisPage::AIRSPACE: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Airspace")); wf->SetCaption(sTmp); wInfo->SetCaption(_T("")); SetCalcCaption(_("Warnings")); break; case AnalysisPage::COUNT: gcc_unreachable(); } switch (page) { case AnalysisPage::AIRSPACE: UpdateCrossSection(); csw->Invalidate(); csw->Show(); wGrid->Hide(); break; default: csw->Hide(); wGrid->Show(); wGrid->Invalidate(); break; } }
void AnalysisWidget::Update() { TCHAR sTmp[1000]; const ComputerSettings &settings_computer = blackboard.GetComputerSettings(); const DerivedInfo &calculated = blackboard.Calculated(); switch (page) { case AnalysisPage::BAROGRAPH: StringFormatUnsafe(sTmp, _T("%s: %s"), _("Analysis"), _("Barograph")); dialog.SetCaption(sTmp); BarographCaption(sTmp, glide_computer.GetFlightStats()); info.SetText(sTmp); SetCalcCaption(_("Settings")); break; case AnalysisPage::CLIMB: StringFormatUnsafe(sTmp, _T("%s: %s"), _("Analysis"), _("Climb")); dialog.SetCaption(sTmp); ClimbChartCaption(sTmp, glide_computer.GetFlightStats()); info.SetText(sTmp); SetCalcCaption(_("Task Calc")); break; case AnalysisPage::THERMAL_BAND: StringFormatUnsafe(sTmp, _T("%s: %s"), _("Analysis"), _("Thermal Band")); dialog.SetCaption(sTmp); ClimbChartCaption(sTmp, glide_computer.GetFlightStats()); info.SetText(sTmp); SetCalcCaption(_T("")); break; case AnalysisPage::WIND: StringFormatUnsafe(sTmp, _T("%s: %s"), _("Analysis"), _("Wind at Altitude")); dialog.SetCaption(sTmp); info.SetText(_T("")); SetCalcCaption(_("Set Wind")); break; case AnalysisPage::POLAR: StringFormatUnsafe(sTmp, _T("%s: %s (%s %d kg)"), _("Analysis"), _("Glide Polar"), _("Mass"), (int)settings_computer.polar.glide_polar_task.GetTotalMass()); dialog.SetCaption(sTmp); GlidePolarCaption(sTmp, settings_computer.polar.glide_polar_task); info.SetText(sTmp); SetCalcCaption(_("Settings")); break; case AnalysisPage::TEMPTRACE: StringFormatUnsafe(sTmp, _T("%s: %s"), _("Analysis"), _("Temp Trace")); dialog.SetCaption(sTmp); TemperatureChartCaption(sTmp, glide_computer.GetCuSonde()); info.SetText(sTmp); SetCalcCaption(_("Settings")); break; case AnalysisPage::TASK_SPEED: StringFormatUnsafe(sTmp, _T("%s: %s"), _("Analysis"), _("Task Speed")); dialog.SetCaption(sTmp); info.SetText(_T("")); SetCalcCaption(_("Task Calc")); break; case AnalysisPage::TASK: StringFormatUnsafe(sTmp, _T("%s: %s"), _("Analysis"), _("Task")); dialog.SetCaption(sTmp); FlightStatisticsRenderer::CaptionTask(sTmp, calculated); info.SetText(sTmp); SetCalcCaption(_("Task calc")); break; case AnalysisPage::OLC: StringFormatUnsafe(sTmp, _T("%s: %s"), _("Analysis"), ContestToString(settings_computer.contest.contest)); dialog.SetCaption(sTmp); SetCalcCaption(_T("")); FlightStatisticsRenderer::CaptionOLC(sTmp, settings_computer.contest, calculated); info.SetText(sTmp); break; case AnalysisPage::AIRSPACE: StringFormatUnsafe(sTmp, _T("%s: %s"), _("Analysis"), _("Airspace")); dialog.SetCaption(sTmp); info.SetText(_T("")); SetCalcCaption(_("Warnings")); break; case AnalysisPage::COUNT: gcc_unreachable(); } if (page == AnalysisPage::AIRSPACE) chart.UpdateCrossSection(blackboard.Basic(), calculated, settings_computer.task.glide, settings_computer.polar.glide_polar_task, blackboard.GetMapSettings()); chart.Invalidate(); }