1
0
Fork 0
slint-memory-game/src/components/main_window.slint

39 lines
1.1 KiB
Plaintext

import { TileData, MemoryTile } from "./memory_tile.slint";
export component MainWindow inherits Window {
width: 326px;
height: 326px;
in property <[TileData]> memory_tiles: [{
image: @image-url("../../icons/at.png")
}, {
image: @image-url("../../icons/balance-scale.png")
}, {
image: @image-url("../../icons/bicycle.png")
}, {
image: @image-url("../../icons/bus.png")
}, {
image: @image-url("../../icons/cloud.png")
}, {
image: @image-url("../../icons/cogs.png")
}, {
image: @image-url("../../icons/motorcycle.png")
}, {
image: @image-url("../../icons/video.png")
}];
for tile[i] in memory_tiles : MemoryTile {
x: mod(i, 4) * 74px;
y: floor(i / 4) * 74px;
width: 64px;
height: 64px;
icon: tile.image;
open_curtain: tile.image_visible || tile.solved;
// propagate the solved status from the model to the tile
solved: tile.solved;
clicked => {
tile.image_visible = !tile.image_visible;
}
}
}