import { HorizontalBox, VerticalBox } from "std-widgets.slint"; import { NavigationRail } from "@material"; import { Icons } from "../material-1.0/ui/icons/icons.slint"; import { MaterialWindow } from "../material-1.0/material.slint"; import { ViewHome } from "home.slint"; export { MaterialWindowAdapter } from "@material"; export component MainWindow inherits MaterialWindow { in-out property current_view: 0; callback navigate(int); preferred-width: 1000px; preferred-height: 700px; title: "PartsRS"; HorizontalBox { NavigationRail { width: 80px; index_changed(index) => { root.current_view = index; root.navigate(index) } items: [ { icon: Icons.home, text: "Home" }, { icon: Icons.list_box, text: "Parts" }, { icon: Icons.shape, text: "Categories" }, { icon: Icons.package_variant, text: "Locations" }, { icon: Icons.cog, text: "Settings" } ]; } VerticalBox { if root.current_view == 0: ViewHome {} if root.current_view == 1: Text { text: "parts"; } if root.current_view == 2: Text { text: "categories"; } if root.current_view == 3: Text { text: "locations"; } if root.current_view == 4: Text { text: "settings"; } } } } export global NavigationLogic { callback navigate(int); }