import { TimeWidget } from "time-widget.slint"; import { DateWidget } from "date-widget.slint"; import { SquareIconWidget } from "square-icon-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_tooltip; in property battery_icon; in property battery_icon_color; /*in property battery_bg_normal; // Enable later. Use defaults now. in property battery_bg_hover; in property battery_bg_clicked;*/ callback show_battery(); // Volume widget in property volume_tooltip; in property volume_icon; /*in property volume_icon_color; in property volume_bg_normal; in property volume_bg_hover; in property volume_bg_clicked;*/ callback show_volume(); 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 // SquareIconWidget - Volume SquareIconWidget { bar_height: root.bar_height; icon_text: root.volume_icon; tooltip_text: root.volume_tooltip; /*icon_color: root.volume_icon_color; bg_normal: root.volume_bg_normal; bg_hover: root.volume_bg_hover; bg_clicked: root.volume_bg_clicked;*/ square_btn_callback => root.show_volume(); } // SquareIconWidget - Battery SquareIconWidget { bar_height: root.bar_height; icon_text: root.battery_icon; tooltip_text: root.battery_tooltip; icon_color: root.battery_icon_color; /*bg_normal: root.battery_bg_normal; bg_hover: root.battery_bg_hover; bg_clicked: root.battery_bg_clicked;*/ square_btn_callback => 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(); } } } } } }