Files
thinlauncher/launcher/window.ui

212 lines
7.2 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, Date & 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="date_label">
<property name="label">Daydayday, 00/00/0000</property>
<style>
<class name="date-display"/>
</style>
<property name="xalign">1</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: Status / Cards -->
<child>
<object class="GtkOverlay" id="content_area">
<property name="vexpand">true</property>
<property name="hexpand">true</property>
<!-- Cards -->
<child>
<object class="GtkRevealer" id="cards_revealer">
<property name="transition-type">crossfade</property>
<property name="transition-duration">500</property>
<property name="reveal-child">false</property>
<child>
<object class="GtkScrolledWindow" id="cards_scroller">
<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>
</object>
</child>
<!-- Startup message -->
<child type="overlay">
<object class="GtkRevealer" id="startup_revealer">
<property name="transition-type">crossfade</property>
<property name="transition-duration">500</property>
<property name="reveal-child">true</property>
<property name="halign">3</property>
<property name="valign">3</property>
<child>
<object class="GtkBox" id="startup_message">
<style>
<class name="startup-message"/>
</style>
<property name="orientation">1</property>
<property name="spacing">8</property>
<property name="halign">3</property>
<property name="valign">3</property>
<child>
<object class="GtkLabel">
<property name="label">Connecting...</property>
<style>
<class name="startup-message-title"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Waiting for network connectivity before enabling services.</property>
<property name="justify">2</property>
<style>
<class name="startup-message-description"/>
</style>
</object>
</child>
</object>
</child>
</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>