void AlternatesListWidget::Prepare(ContainerWindow &parent, const PixelRect &rc) { CreateList(parent, dialog_look, rc, row_renderer.CalculateLayout(*dialog_look.list.font_bold, dialog_look.small_font)); GetList().SetLength(alternates.size()); }
/* virtual methods from class List::Handler */ void OnPaintItem(Canvas &canvas, const PixelRect rc, unsigned index) override { assert(index < alternates.size()); const ComputerSettings &settings = CommonInterface::GetComputerSettings(); const Waypoint &waypoint = *alternates[index].waypoint; const GlideResult& solution = alternates[index].solution; WaypointListRenderer::Draw(canvas, rc, waypoint, solution.vector.distance, solution.SelectAltitudeDifference(settings.task.glide), row_renderer, UIGlobals::GetMapLook().waypoint, CommonInterface::GetMapSettings().waypoint); }
void AlternatesListWidget::OnAction(int id) { switch (id) { case GOTO: unsigned index = GetCursorIndex(); assert(index < alternates.size()); auto const &item = alternates[index]; auto const &waypoint = item.waypoint; protected_task_manager->DoGoto(waypoint); cancel_button->Click(); break; } }