import { TimeWidget } from "time-widget.slint"; import { DateWidget } from "date-widget.slint"; import { BatteryWidget } from "battery-widget.slint"; export component TopBar inherits Window { // Common properties in property bar_width; in property bar_height; in property def_font_size; in property def_font_fam; // Time widget in-out property time_text; callback show_clock(); // Date widget in-out property date_text; callback show_calendar(); // Battery widget in property battery_status; in property battery_capacity; in property battery_capacity_level; in property battery_icon; callback show_battery(); title: "chocobar"; width: bar_width *1px; height: bar_height *1px; always-on-top: true; no-frame: true; x: 0px; y: 0px; default-font-family: def_font_fam; default-font-size: def_font_size *1px; Rectangle { x: 0px; y: 0px; width: 100%; height: 100%; background: #999898a6; border-radius: 0px; HorizontalLayout { x: 0px; y: 0px; width: 100%; height: 100%; alignment: space-between; // Left side Rectangle { background: #79a9af7b; width: parent.width/3; } // Middle Rectangle { background: #779e5c7a; } // Right side Rectangle { background: #c2779a7a; width: parent.width/3; HorizontalLayout { alignment: end; // Right-align BatteryWidget { bar_height: root.bar_height; battery_status: root.battery_status; battery_capacity: root.battery_capacity; battery_capacity_level: root.battery_capacity_level; battery_icon: root.battery_icon; show_battery => root.show_battery(); } DateWidget { // Get from root date_text: root.date_text; // Forward the widget's callback to the root's to access from Rust show_calendar => root.show_calendar(); } TimeWidget { // Get from root time_text: root.time_text; // Forward the widget's callback to the root's to access from Rust show_clock => root.show_clock(); } } } } } }