mirai/ui/Backend.slint

100 lines
1.8 KiB
Text

import { Date, Time } from "std-widgets.slint";
export struct NewTaskData {
sourceId: int,
eventId: int,
title: string,
scheduled: bool,
date: Date
}
export struct SaveTaskData {
sourceId: int,
id: int,
title: string,
scheduled: bool,
date: Date,
}
export struct NewEventParams {
sourceId: int,
title: string,
date: Date,
startsAt: Time,
endsAt: Time
}
export struct SaveEventParams {
sourceId: int,
id: int,
title: string,
date: Date,
startsAt: Time,
endsAt: Time
}
export struct Source {
name: string,
selected: bool
}
export struct TaskData {
sourceId: int,
id: int,
title: string,
checked: bool,
tags: [string],
}
export struct Event {
sourceId: int,
id: int,
title: string,
startsAt: Time,
endsAt: Time,
tasks: [TaskData],
}
export struct Day {
sourceId: int,
id: int,
date: Date,
events: [Event],
tasks: [TaskData],
isLate: bool,
isToday: bool,
relativeDaysDiff: int
}
struct OpenNewTaskFormParams {
eventSourceId: int,
eventId: int,
}
export global Backend {
in-out property<[Source]> sources-selected;
in-out property<[string]> sources;
in-out property<bool> no-source-selected;
in-out property<[string]> tags;
in-out property<[Day]> visible_tasks;
in-out property<[TaskData]> unscheduled-tasks;
callback task_clicked(int, int);
callback source_clicked(int);
callback tag_clicked(int);
callback open_new_task_form(OpenNewTaskFormParams);
callback open_edit_task_form(int, int);
callback open_new_event_form();
callback open_edit_event_form(int, int);
callback toggle_show_completed_tasks();
callback delete_task_clicked(int, int);
callback delete_event_clicked(int, int);
callback createTask(NewTaskData);
callback saveTask(SaveTaskData);
callback createEvent(NewEventParams);
callback saveEvent(SaveEventParams);
pure callback formatDate(Date) -> string;
}