// Main Entry Point - Following Feature-Sliced Design // This is the root file that main.rs imports // Following the pattern from moonlogs: index -> app -> pages/widgets/entities/shared import { App } from "app/index.slint"; import { Theme } from "shared/design-system/index.slint"; export component MainWindow inherits Window { // Window properties preferred-width: 1280px; preferred-height: 1024px; min-width: 1080px; min-height: 800px; no-frame: true; background: Theme.background; // Properties in-out property current-page: "Dashboard"; in-out property user-initials: "JD"; // Callbacks that will be handled by main.rs callback navigation-changed(string); callback theme-toggle-clicked(); callback logout-clicked(); callback buy-clicked(); callback sell-clicked(); callback start-drag-window(); callback minimize-window(); callback maximize-window(); callback close-window(); // Public function that can be called from Rust to toggle theme public function toggle_theme() { Theme.is-dark-mode = !Theme.is-dark-mode; debug("Theme toggled from Rust. New state: " + (Theme.is-dark-mode ? "dark" : "light")); } // App component handles all the UI following FSD layers App { width: 100%; height: 100%; current-page: root.current-page; user-initials: root.user-initials; // Forward all callbacks to main.rs navigation-changed(page) => { root.current-page = page; root.navigation-changed(page); } theme-toggle-clicked => { root.theme-toggle-clicked(); } logout-clicked => { root.logout-clicked(); } buy-clicked => { root.buy-clicked(); } sell-clicked => { root.sell-clicked(); } start-drag-window => { root.start-drag-window(); } minimize-window => { root.minimize-window(); } maximize-window => { root.maximize-window(); } close-window => { root.close-window(); } } }