static bool DeviceDeclare(DeviceDescriptor &dev, const Declaration &declaration, const Waypoint *home) { if (dev.IsOccupied()) return false; if (ShowMessageBox(_("Declare task?"), dev.GetDisplayName(), MB_YESNO | MB_ICONQUESTION) != IDYES) return false; if (!dev.Borrow()) return false; const TCHAR *caption = dev.GetDisplayName(); if (caption == NULL) caption = _("Declare task"); bool success = DoDeviceDeclare(dev, declaration, home); dev.Return(); if (!success) { ShowMessageBox(_("Error occured,\nTask NOT declared!"), caption, MB_OK | MB_ICONERROR); return false; } ShowMessageBox(_("Task declared!"), caption, MB_OK | MB_ICONINFORMATION); return true; }
static bool DeviceDeclare(DeviceDescriptor &dev, const Declaration &declaration, const Waypoint *home) { if (dev.IsOccupied()) return false; if (ShowMessageBox(_("Declare task?"), dev.GetDisplayName(), MB_YESNO | MB_ICONQUESTION) != IDYES) return false; if (!dev.Borrow()) return false; const TCHAR *caption = dev.GetDisplayName(); if (caption == NULL) caption = _("Declare task"); auto result = DoDeviceDeclare(dev, declaration, home); dev.Return(); switch (result) { case TriStateJobResult::SUCCESS: ShowMessageBox(_("Task declared!"), caption, MB_OK | MB_ICONINFORMATION); return true; case TriStateJobResult::ERROR: ShowMessageBox(_("Error occured,\nTask NOT declared!"), caption, MB_OK | MB_ICONERROR); return false; case TriStateJobResult::CANCELLED: return false; } gcc_unreachable(); }