import { TileData, MemoryTile } from "./memory_tile.slint"; export component MainWindow inherits Window { width: 326px; height: 326px; callback check_if_pair_solved(); in property disable_tiles; in-out 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 => { if (!root.disable_tiles) { tile.image_visible = !tile.image_visible; root.check_if_pair_solved(); } } } }