toastDisplay
Parameters
- id:Id
- Id
Source
Implementation
pub fn toastDisplay(id: Id) !void {
const message = dvui.dataGetSlice(null, id, "_message", []u8) orelse {
log.err("toastDisplay lost data for toast {x}\n", .{id});
dvui.toastRemove(id);
return;
};
var animator = dvui.animate(@src(), .{ .kind = .alpha, .duration = 500_000 }, .{ .id_extra = id.asUsize(), .gravity_x = 0.5 });
defer animator.deinit();
var label_wd: WidgetData = undefined;
dvui.labelNoFmt(@src(), message, .{}, .{ .background = true, .corners = .all(1000), .padding = .{ .x = 16, .y = 8, .w = 16, .h = 8 }, .data_out = &label_wd });
if (label_wd.accesskit_node()) |ak_node| {
AccessKit.nodeSetLive(ak_node, AccessKit.Live.polite);
}
if (dvui.timerDone(id)) {
animator.startEnd();
}
if (animator.end()) {
dvui.toastRemove(id);
// this informs our parent that we don't need any space next frame
animator.data().min_size = .{};
}
}