slint/demos/energy-monitor/ui/widgets/pagination.slint
Simon Hausmann a98d4709be Move printer demo and energy-monitor into new top-level demos/ folder
These are showing off use-cases for Slint, but they're not examples showing individual Slint features.

Also removed the old printerdemo while at it.
2024-10-25 12:09:32 +02:00

46 lines
No EOL
977 B
Text

// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: MIT
import { Theme } from "../theme.slint";
component Bubble inherits Rectangle {
in property <bool> selected;
states [
selected when selected : {
background: Theme.palette.white;
}
]
min_width: 5px;
min_height: 5px;
border-radius: max(self.width, self.height) / 2;
background: Theme.palette.slint-blue;
i-touch-area := TouchArea {}
}
export component Pagination {
in property <int> count;
in property <int> selected_index;
callback clicked <=> i-touch-area.clicked;
min-height: 26px;
vertical-stretch: 0;
VerticalLayout {
alignment: center;
HorizontalLayout {
alignment: center;
spacing: Theme.spaces.small;
for index in count : Bubble {
selected: index == selected-index;
}
}
}
i-touch-area := TouchArea {}
}