bool dlgTaskPointType(OrderedTask &task, const unsigned index) { point_types.clear(); task.GetFactory().GetValidTypes(index) .CopyTo(std::back_inserter(point_types)); if (point_types.empty()) { assert(1); return false; } if (point_types.size() == 1) return SetPointType(task, index, point_types[0]); const auto &point = task.GetPoint(index); const auto current_type = task.GetFactory().GetType(point); unsigned initial_index = 0; const auto b = point_types.begin(), e = point_types.end(); auto i = std::find(b, e, current_type); if (i != e) initial_index = std::distance(b, i); MutateTaskPointRenderer item_renderer(current_type); int result = ListPicker(_("Task Point Type"), point_types.size(), initial_index, item_renderer.CalculateLayout(UIGlobals::GetDialogLook()), item_renderer, false, nullptr, TPTypeItemHelp); return result >= 0 && SetPointType(task, index, point_types[result]); }
bool dlgTaskPointType(OrderedTask** task, const unsigned index) { ordered_task = *task; active_index = index; point = &ordered_task->GetPoint(active_index); point_types.clear(); ordered_task->GetFactory().GetValidTypes(index) .CopyTo(std::back_inserter(point_types)); if (point_types.empty()) { assert(1); return false; } if (point_types.size() == 1) return SetPointType(point_types[0]); unsigned initial_index = 0; const auto b = point_types.begin(), e = point_types.end(); auto i = std::find(b, e, get_point_type()); if (i != e) initial_index = std::distance(b, i); FunctionListItemRenderer item_renderer(OnPointPaintListItem); int result = ListPicker(_("Task Point Type"), point_types.size(), initial_index, Layout::Scale(18), item_renderer, false, nullptr, TPTypeItemHelp); return result >= 0 && SetPointType(point_types[result]); }
bool ShowColorListDialog(RGB8Color &color) { unsigned default_index = 0; for (unsigned i = 1; i < ARRAY_SIZE(AirspaceLook::preset_colors); ++i) if (AirspaceLook::preset_colors[i] == color) default_index = i; /* auto item_renderer = MakeListItemRenderer([](Canvas &canvas, const PixelRect rc, unsigned i){ OnPaintListItem(canvas, rc, i); }); */ FunctionListItemRenderer item_renderer(OnPaintListItem); int index = ListPicker(_("Select Color"), ARRAY_SIZE(AirspaceLook::preset_colors), default_index, Layout::FastScale(18), item_renderer); if (index < 0) return false; assert((unsigned)index < ARRAY_SIZE(AirspaceLook::preset_colors)); color = AirspaceLook::preset_colors[index]; return true; }
void ManagedFileListWidget::Add() { #ifdef HAVE_DOWNLOAD_MANAGER assert(Net::DownloadManager::IsAvailable()); std::vector<AvailableFile> list; for (auto i = repository.begin(), end = repository.end(); i != end; ++i) { const AvailableFile &remote_file = *i; if (IsDownloading(remote_file.GetName())) /* already downloading this file */ continue; ACPToWideConverter name(remote_file.GetName()); if (!name.IsValid()) continue; if (FindItem(name) < 0) list.push_back(remote_file); } if (list.empty()) return; add_list = &list; FunctionListItemRenderer item_renderer(OnPaintAddItem); int i = ListPicker(_("Select a file"), list.size(), 0, Layout::FastScale(18), item_renderer); add_list = NULL; if (i < 0) return; assert((unsigned)i < list.size()); const AvailableFile &remote_file = list[i]; ACPToWideConverter base(remote_file.GetName()); if (!base.IsValid()) return; Net::DownloadManager::Enqueue(remote_file.GetURI(), base); #endif }
void ManagedFileListWidget::Add() { #ifdef HAVE_DOWNLOAD_MANAGER assert(Net::DownloadManager::IsAvailable()); std::vector<AvailableFile> list; for (const auto &remote_file : repository) { if (IsDownloading(remote_file.GetName())) /* already downloading this file */ continue; const UTF8ToWideConverter name(remote_file.GetName()); if (!name.IsValid()) continue; if (FindItem(name) < 0) list.push_back(remote_file); } if (list.empty()) return; AddFileListItemRenderer item_renderer(list); int i = ListPicker(_("Select a file"), list.size(), 0, item_renderer.CalculateLayout(UIGlobals::GetDialogLook()), item_renderer); if (i < 0) return; assert((unsigned)i < list.size()); const AvailableFile &remote_file = list[i]; const UTF8ToWideConverter base(remote_file.GetName()); if (!base.IsValid()) return; Net::DownloadManager::Enqueue(remote_file.GetURI(), base); #endif }