static void Update(void) { TCHAR sTmp[1000]; FlightStatistics &fs = glide_computer.GetFlightStats(); GlidePolar polar = protected_task_manager.get_glide_polar(); const CommonStats& stats = XCSoarInterface::Calculated().common_stats; switch (page) { case ANALYSIS_PAGE_BAROGRAPH: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Barograph")); wf->SetCaption(sTmp); fs.CaptionBarograph(sTmp); wInfo->SetCaption(sTmp); SetCalcCaption(_("Settings")); break; case ANALYSIS_PAGE_CLIMB: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Climb")); wf->SetCaption(sTmp); fs.CaptionClimb(sTmp); wInfo->SetCaption(sTmp); SetCalcCaption(_("Task calc")); break; case ANALYSIS_PAGE_WIND: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Wind at Altitude")); wf->SetCaption(sTmp); wInfo->SetCaption(_T("")); SetCalcCaption(_("Set wind")); break; case ANALYSIS_PAGE_POLAR: _stprintf(sTmp, _T("%s: %s (%s %d kg)"), _("Analysis"), _("Glide Polar"), _("Mass"), (int)polar.get_all_up_weight()); wf->SetCaption(sTmp); fs.CaptionPolar(sTmp, polar); wInfo->SetCaption(sTmp); SetCalcCaption(_("Settings")); break; case ANALYSIS_PAGE_TEMPTRACE: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Temp trace")); wf->SetCaption(sTmp); fs.CaptionTempTrace(sTmp); wInfo->SetCaption(sTmp); SetCalcCaption(_("Settings")); break; case ANALYSIS_PAGE_TASK_SPEED: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Task speed")); wf->SetCaption(sTmp); wInfo->SetCaption(_T("")); SetCalcCaption(_("Task calc")); break; case ANALYSIS_PAGE_TASK: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Task")); wf->SetCaption(sTmp); fs.CaptionTask(sTmp, XCSoarInterface::Calculated()); wInfo->SetCaption(sTmp); SetCalcCaption(_("Task calc")); break; case ANALYSIS_PAGE_OLC: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("OnLine Contest")); wf->SetCaption(sTmp); TCHAR timetext1[100]; Units::TimeToText(timetext1, (int)stats.olc.time); TCHAR distance[100]; Units::FormatUserDistance(stats.olc.distance, distance, 100); _stprintf(sTmp, (Layout::landscape ? _T("%s:\r\n %s\r\n%s:\r\n %.1f %s\r\n%s: %s\r\n%s: %d %s\r\n") : _T("%s: %s\r\n%s: %.1f %s\r\n%s: %s\r\n%s: %d %s\r\n")), _("Distance"), distance, _("Score"), (double)stats.olc.score, _("pts"), _("Time"), timetext1, _("Speed"), (int)Units::ToUserUnit(stats.olc.speed, Units::TaskSpeedUnit), Units::GetTaskSpeedName()); wInfo->SetCaption(sTmp); SetCalcCaption(_T("")); break; case ANALYSIS_PAGE_AIRSPACE: _stprintf(sTmp, _T("%s: %s"), _("Analysis"), _("Airspace")); wf->SetCaption(sTmp); wInfo->SetCaption(_T("")); SetCalcCaption(_("Warnings")); break; case ANALYSIS_PAGE_COUNT: assert(false); break; } wGrid->set_visible(page < ANALYSIS_PAGE_COUNT); if (wGrid != NULL) wGrid->invalidate(); }