Files
thinlauncher/launcher/window.ui
2026-08-25 14:27:22 +01:00

141 lines
5.3 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<object class="GtkWindow" id="main_window">
<property name="decorated">false</property>
<property name="fullscreened">true</property>
<child>
<object class="GtkBox">
<property name="orientation">1</property>
<property name="spacing">16</property>
<property name="margin-top">32</property>
<property name="margin-bottom">24</property>
<property name="margin-start">32</property>
<property name="margin-end">32</property>
<!-- Top Bar: Title & Clock -->
<child>
<object class="GtkBox">
<property name="orientation">0</property>
<property name="valign">3</property>
<child>
<object class="GtkLabel" id="app_title_label">
<property name="label">Launcher Dashboard</property>
<style>
<class name="title-1"/>
</style>
<property name="hexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkLabel" id="clock_label">
<property name="label">00:00</property>
<style>
<class name="clock-display"/>
</style>
<property name="xalign">1</property>
</object>
</child>
</object>
</child>
<!-- Middle: Cards Grid/Scroller -->
<child>
<object class="GtkScrolledWindow">
<property name="vexpand">true</property>
<property name="hexpand">true</property>
<child>
<object class="GtkFlowBox" id="cards_flow">
<property name="halign">3</property>
<property name="valign">1</property>
<property name="max-children-per-line">3</property>
<property name="min-children-per-line">1</property>
<property name="row-spacing">16</property>
<property name="column-spacing">16</property>
<property name="selection-mode">0</property>
</object>
</child>
</object>
</child>
<!-- Bottom: Status Bar -->
<child>
<object class="GtkBox" id="status_bar">
<property name="orientation">0</property>
<property name="spacing">24</property>
<property name="valign">3</property>
<style>
<class name="status-bar"/>
</style>
<!-- Net Status -->
<child>
<object class="GtkLabel" id="net_status">
<property name="label">Net: Unknown</property>
<style>
<class name="error-label"/>
</style>
</object>
</child>
<!-- Ziti Status -->
<child>
<object class="GtkLabel" id="ziti_status">
<property name="label">Ziti: Unknown</property>
<style>
<class name="error-label"/>
</style>
</object>
</child>
<!-- Spacer -->
<child>
<object class="GtkBox">
<property name="hexpand">true</property>
</object>
</child>
<!-- Power Menu Button with Popover -->
<child>
<object class="GtkMenuButton" id="power_menu_button">
<property name="icon-name">system-shutdown-symbolic</property>
<property name="tooltip-text">Power Options</property>
<style>
<class name="flat"/>
</style>
<property name="popover">
<object class="GtkPopover">
<child>
<object class="GtkBox">
<property name="orientation">1</property>
<property name="spacing">6</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<child>
<object class="GtkButton" id="btn_reboot">
<property name="label">Restart</property>
<style>
<class name="flat"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="btn_shutdown">
<property name="label">Shutdown</property>
<style>
<class name="error-label"/>
</style>
</object>
</child>
</object>
</child>
</object>
</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>