import { Button, DatePickerPopup, Date, Palette } from "std-widgets.slint"; import { VLabeledComponent } from "LabeledComponent.slint"; import { VActionButton } from "ActionButton.slint"; import { VButton } from "Button.slint"; import { Svg } from "Svg.slint"; export component VDatePicker inherits VLabeledComponent { in-out property date; in-out property dateDisplay; pure function formatZeroPadding(number: int) -> string { if (number < 10) { return "0\{number}"; } return number; } pure function getDateDisplay() -> string { if (date.year == 0) { return "Unscheduled"; } return formatZeroPadding(date.day) + "/" + formatZeroPadding(date.month) + "/" + date.year; } function resetDate() { date.year = 0; date.month = 0; date.day = 0; } HorizontalLayout { VButton { text: getDateDisplay(); enabled: root.enabled; clicked => { taskDateInput.show() } } VActionButton { icon-svg: Svg.reset; icon-svg-stroke-width: 1px; enabled: root.enabled; clicked => { resetDate() } } } taskDateInput := DatePickerPopup { accepted(date) => { root.date = date } } }