/* import { Button, VerticalBox, LineEdit, GridBox, TabWidget, Button, } from "std-widgets.slint"; */ import { Button, VerticalBox, LineEdit, GridBox, StandardListView, ListView, ComboBox, } from "std-widgets.slint"; // See https://github.com/slint-ui/slint/issues/4956 for issues with fonts. import "../fonts/IBM_Plex_Mono/IBMPlexMono-Regular.ttf"; import { UserSitesView } from "user-sites-view.slint"; import { Style } from "globals.slint"; import { UsersView } from "users-view.slint"; import { LoginView } from "login-view.slint"; export enum AppState { login, user-sites, users, } export component AppWindow inherits Window { in property dummy: "ÄÖÜÁÉÍÓÚÝŔŚĹŹĆŃĚĽŽŠČŘĎŤŇŮÅäöüáéíóúýŕśĺźćńěľžščřďťňůåß„“”‘’—–@&$%+=¡¿¢£$¥€²³¼½¬¤¦§©®™°´ˇ¨"; default-font-family: "IBM Plex Mono"; default-font-size: 16pt; height: 368px; width: 960px; in property app-state: AppState.login; // Login View callback login_pw_accepted <=> login_view.pw_accepted; // Sites View in property <[StandardListViewItem]> sites <=> user_sites_view.model; callback site_pw_edited <=> user_sites_view.pw_edited; callback site_pw_accepted <=> user_sites_view.pw_accepted; // Sites View in property <[StandardListViewItem]> usernames <=> users_view.model; callback user_username_edited <=> users_view.pw_edited; callback user_username_accepted <=> users_view.pw_accepted; VerticalBox { width: 960px; height: 368px; padding: 0px; padding-top: 120px; padding-bottom: 8px; Rectangle { height: 240px; background: #00141d; // For debugging bounds. // border-color: #ffcf00; // border-width: 1px; login_view := LoginView { visible: app-state == AppState.login; } user_sites_view := UserSitesView { visible: app-state == AppState.user-sites; } users_view := UsersView { visible: app-state == AppState.users; } } } }