mirai/ui/Backend.slint

107 lines
2.1 KiB
Text

import { Date, Time } from "std-widgets.slint";
import { CalendarDay } from "components/Calendar.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,
path: string
}
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<int> default-source-index;
in-out property<[string]> sources;
in-out property<bool> no-source-selected;
in-out property<[string]> tags;
in-out property<[Day]> days;
in-out property<[CalendarDay]> calendar;
in-out property<[TaskData]> unscheduled-tasks;
callback task-clicked(int, int);
callback source-clicked(int);
callback tag-clicked(int);
callback settings-clicked();
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 create-task(NewTaskData);
callback save-task(SaveTaskData);
callback create-event(NewEventParams);
callback save-event(SaveEventParams);
pure callback format-date(Date) -> string;
pure callback format-date-relative(Date) -> string;
pure callback capitalize-string(string) -> string;
}