Beispiel #1
0
void
dlgTaskCalculatorShowModal(SingleWindow &parent)
{
  wf = LoadDialog(CallBackTable, parent, _T("IDR_XML_TASKCALCULATOR"));
  if (!wf)
    return;

  GlidePolar polar = protected_task_manager.get_glide_polar();

  fixed CRUISE_EFFICIENCY_enter = polar.get_cruise_efficiency();

  emc = XCSoarInterface::Calculated().task_stats.effective_mc;

  cruise_efficiency = CRUISE_EFFICIENCY_enter;

  // find start value for range
#ifdef OLD_TASK
  Range = task.AdjustAATTargets(2.0);
#endif

  RefreshCalculator();

#ifdef OLD_TASK
  if (!task.getSettings().AATEnabled ||
      !task.ValidTaskPoint(task.getActiveIndex() + 1))
    ((WndButton *)wf->FindByName(_T("Optimise")))->hide();

  if (!task.ValidTaskPoint(task.getActiveIndex()))
    ((WndButton *)wf->FindByName(_T("Target")))->hide();
#endif

  if (wf->ShowModal() == mrCancel) {
    // todo: restore task settings.
#ifdef OLD_TASK
    GlidePolar::SetMacCready(MACCREADY_enter);
    GlidePolar::SetCruiseEfficiency(CRUISE_EFFICIENCY_enter);
#endif
  }

  delete wf;
  wf = NULL;
}