slint/examples/7gui/timer.60
2021-08-17 22:38:16 +02:00

51 lines
1.5 KiB
Text

/* LICENSE BEGIN
This file is part of the SixtyFPS Project -- https://sixtyfps.io
Copyright (c) 2021 Olivier Goffart <olivier.goffart@sixtyfps.io>
Copyright (c) 2021 Simon Hausmann <simon.hausmann@sixtyfps.io>
SPDX-License-Identifier: GPL-3.0-only
This file is also available under commercial licensing terms.
Please contact info@sixtyfps.io for more information.
LICENSE END */
import { LineEdit, Button, Slider, HorizontalBox, VerticalBox } from "sixtyfps_widgets.60";
Timer := Window {
property <duration> total-time: slider.value * 1s;
property <float> progress: 0.5;
animate progress { duration: total-time; }
VerticalBox {
HorizontalBox {
Text { text: "Elapsed Time:"; }
Rectangle {
max-height: 30px;
background: gray;
Rectangle {
height: 100%;
width: parent.width * progress;
background: lightblue;
}
}
}
Text{
text: (total-time / 1s) + "s";
}
HorizontalBox {
Text { text: "Duration:"; }
slider := Slider {
maximum: 30s / 1s;
value: 10s / 1s;
}
}
Button {
text: "Reset";
clicked => {
if (progress > 0.5) {
progress = 0;
} else {
progress = 1;
}
}
}
}
}