void NOAAListWidget::UpdateList() { stations.clear(); for (auto i = noaa_store->begin(), end = noaa_store->end(); i != end; ++i) { NOAAListItem item; item.code = i->GetCodeT(); item.iterator = i; stations.push_back(item); } std::sort(stations.begin(), stations.end()); ListControl &list = GetList(); list.SetLength(stations.size()); list.Invalidate(); const bool empty = stations.empty(), full = stations.full(); add_button->SetEnabled(!full); update_button->SetEnabled(!empty); remove_button->SetEnabled(!empty); details_button->SetEnabled(!empty); }
void DeviceListWidget::UpdateButtons() { const unsigned current = GetList().GetCursorIndex(); if (is_simulator() || current >= NUMDEV) { reconnect_button->SetEnabled(false); flight_button->SetEnabled(false); manage_button->SetEnabled(false); monitor_button->SetEnabled(false); } else { const DeviceDescriptor &device = *device_list[current]; reconnect_button->SetEnabled(device.IsConfigured()); flight_button->SetEnabled(device.IsLogger()); manage_button->SetEnabled(device.IsManageable()); monitor_button->SetEnabled(device.GetConfig().UsesPort()); } edit_button->SetEnabled(current < NUMDEV); }
/* virtual methods from class Notify */ void OnNotification() override { const bool was_empty = items.empty(); { const ScopeLock protect(mutex); if (new_items.empty()) return; do { items.emplace_back(std::move(new_items.front())); new_items.pop_front(); } while (!new_items.empty()); } GetList().SetLength(items.size()); if (was_empty) /* the list has just become non-empty, so allow pressing the "select" button */ select_button->SetEnabled(true); }
void TaskPointWidget::RefreshView() { map.Invalidate(); OrderedTaskPoint &tp = ordered_task->GetPoint(active_index); properties_dock.SetWidget(new PanelWidget()); ObservationZonePoint &oz = tp.GetObservationZone(); const bool is_fai_general = ordered_task->GetFactoryType() == TaskFactoryType::FAI_GENERAL; properties_widget = CreateObservationZoneEditWidget(oz, is_fai_general); if (properties_widget != nullptr) { properties_widget->SetListener(this); properties_dock.SetWidget(properties_widget); } type_label.SetCaption(OrderedTaskPointName(ordered_task->GetFactory().GetType(tp))); previous_button->SetEnabled(active_index > 0); next_button->SetEnabled(active_index < (ordered_task->TaskSize() - 1)); optional_starts.SetVisible(active_index == 0); if (!ordered_task->HasOptionalStarts()) optional_starts.SetCaption(_("Enable Alternate Starts")); else { StaticString<50> tmp; tmp.Format(_T("%s (%d)"), _("Edit Alternates"), ordered_task->GetOptionalStartPointCount()); optional_starts.SetCaption(tmp); } if (tp.GetType() == TaskPointType::AST) { const ASTPoint &ast = (const ASTPoint &)tp; score_exit.Show(); score_exit.SetState(ast.GetScoreExit()); } else score_exit.Hide(); StaticString<100> name_prefix_buffer, type_buffer; switch (tp.GetType()) { case TaskPointType::START: type_buffer = _("Start point"); name_prefix_buffer = _T("Start: "); break; case TaskPointType::AST: type_buffer = _("Task point"); name_prefix_buffer.Format(_T("%d: "), active_index); break; case TaskPointType::AAT: type_buffer = _("Assigned area point"); name_prefix_buffer.Format(_T("%d: "), active_index); break; case TaskPointType::FINISH: type_buffer = _("Finish point"); name_prefix_buffer = _T("Finish: "); break; default: gcc_unreachable(); } dialog.SetCaption(type_buffer); { StaticString<100> buffer; buffer.Format(_T("%s %s"), name_prefix_buffer.c_str(), tp.GetWaypoint().name.c_str()); waypoint_name.SetCaption(buffer); } }
void UpdateButtons() { const unsigned current = GetCursorIndex(); details_button->SetEnabled(HasDetails(*list[current])); goto_button->SetEnabled(CanGotoItem(current)); }
void dlgQuickMenuShowModal(SingleWindow &parent) { const Menu *menu = InputEvents::GetMenu(_T("RemoteStick")); if (menu == NULL) return; const DialogLook &dialog_look = UIGlobals::GetDialogLook(); WindowStyle dialogStyle; dialogStyle.Hide(); dialogStyle.ControlParent(); wf = new WndForm(parent, dialog_look, parent.GetClientRect(), _T("Quick Menu"), dialogStyle); ContainerWindow &client_area = wf->GetClientAreaWindow(); PixelRect r = client_area.GetClientRect(); WindowStyle grid_view_style; grid_view_style.ControlParent(); grid_view = new GridView(client_area, r.left, r.top, r.right - r.left, r.bottom - r.top, dialog_look, grid_view_style); WindowStyle buttonStyle; buttonStyle.TabStop(); for (unsigned i = 0; i < menu->MAX_ITEMS; ++i) { if (buttons.full()) continue; const MenuItem &menuItem = (*menu)[i]; if (!menuItem.IsDefined()) continue; TCHAR buffer[100]; ButtonLabel::Expanded expanded = ButtonLabel::Expand(menuItem.label, buffer, ARRAY_SIZE(buffer)); if (!expanded.visible) continue; PixelRect button_rc; button_rc.left = 0; button_rc.top = 0; button_rc.right = 80; button_rc.bottom = 30; WndButton *button = new WndCustomButton(*grid_view, dialog_look, expanded.text, button_rc, buttonStyle, OnButtonClicked); button->SetEnabled(expanded.enabled); buttons.append(button); events.append(menuItem.event); } grid_view->SetItems(buttons); SetFormDefaultFocus(); SetFormCaption(); wf->SetKeyDownNotify(FormKeyDown); wf->ShowModal(); for (auto it = buttons.begin(), end = buttons.end(); it != end; ++it) delete *it; buttons.clear(); events.clear(); delete wf; delete grid_view; }
void RefreshPasteButton() { paste_button.SetEnabled(clipboard_size > 0); }
void UpdateButtons() { select_button->SetEnabled(!items.empty()); }
void CreateButtons() { select_button = dialog.AddButton(_("Select"), mrOK); select_button->SetEnabled(false); }
void UpdateButtons() { const unsigned current = GetCursorIndex(); relocate_button->SetEnabled(!RealStartExists || current >= 1); remove_button->SetEnabled((!RealStartExists || current >= 1) && current < GetList().GetLength() - 1); }
void WaypointDetailsWidget::UpdateZoomControls() { magnify_button.SetEnabled(zoom < 5); shrink_button.SetEnabled(zoom > 0); }
void NetworkWidget::UpdateButtons() { toggle_wifi_button->SetCaption(GetWifiToggleCaption()); wifi_button->SetEnabled(IsKoboWifiOn()); }