Add the full Rust + GTK4 + libadwaita project skeleton: - Cargo.toml with all dependencies (gtk4 0.11, libadwaita 0.9, webkit6 0.6, reqwest, serde, tokio, libsecret) - build.rs that compiles Blueprint .blp files and bundles a GResource - data/ui/window.blp — AdwApplicationWindow with AdwNavigationSplitView, sidebar with refresh button/spinner and primary menu, content page with article menu - data/resources.gresource.xml bundling UI, HTML, and CSS - data/net.jeena.FeedTheMonkey.gschema.xml with all GSettings keys - html/content.html and html/content.css (minimal placeholders) - src/main.rs, src/app.rs — AdwApplication with APP_ID net.jeena.FeedTheMonkey - src/window.rs — AdwApplicationWindow GObject subclass loading the Blueprint template and persisting window size in GSettings - COPYING (GPL-3.0) restored from master The app compiles and the binary is ready to open a blank window.
129 lines
No EOL
5.6 KiB
XML
129 lines
No EOL
5.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
DO NOT EDIT!
|
|
This file was @generated by blueprint-compiler. Instead, edit the
|
|
corresponding .blp file and regenerate this file with blueprint-compiler.
|
|
-->
|
|
<interface>
|
|
<requires lib="gtk" version="4.0"/>
|
|
<template class="FeedTheMonkeyWindow" parent="AdwApplicationWindow">
|
|
<property name="default-width">900</property>
|
|
<property name="default-height">600</property>
|
|
<child>
|
|
<object class="AdwToastOverlay" id="toast_overlay">
|
|
<child>
|
|
<object class="AdwNavigationSplitView" id="split_view">
|
|
<property name="sidebar">
|
|
<object class="AdwNavigationPage">
|
|
<property name="title" translatable="yes">FeedTheMonkey</property>
|
|
<child>
|
|
<object class="AdwToolbarView">
|
|
<child type="top">
|
|
<object class="AdwHeaderBar">
|
|
<child type="start">
|
|
<object class="GtkStack" id="refresh_stack">
|
|
<child>
|
|
<object class="GtkStackPage">
|
|
<property name="name">button</property>
|
|
<property name="child">
|
|
<object class="GtkButton" id="refresh_button">
|
|
<property name="icon-name">view-refresh-symbolic</property>
|
|
<property name="tooltip-text" translatable="yes">Refresh</property>
|
|
<property name="action-name">win.reload</property>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkStackPage">
|
|
<property name="name">spinner</property>
|
|
<property name="child">
|
|
<object class="AdwSpinner"></object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child type="end">
|
|
<object class="GtkMenuButton" id="menu_button">
|
|
<property name="icon-name">open-menu-symbolic</property>
|
|
<property name="primary">true</property>
|
|
<property name="menu-model">primary_menu</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="AdwStatusPage" id="placeholder_page">
|
|
<property name="icon-name">rss-symbolic</property>
|
|
<property name="title" translatable="yes">FeedTheMonkey</property>
|
|
<property name="description" translatable="yes">Log in to load your articles</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</property>
|
|
<property name="content">
|
|
<object class="AdwNavigationPage" id="content_page">
|
|
<property name="title" translatable="yes">FeedTheMonkey</property>
|
|
<child>
|
|
<object class="AdwToolbarView">
|
|
<property name="top-bar-style">1</property>
|
|
<child type="top">
|
|
<object class="AdwHeaderBar">
|
|
<child type="end">
|
|
<object class="GtkMenuButton" id="article_menu_button">
|
|
<property name="icon-name">view-more-symbolic</property>
|
|
<property name="menu-model">article_menu</property>
|
|
<property name="visible">false</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="AdwStatusPage">
|
|
<property name="icon-name">document-open-symbolic</property>
|
|
<property name="title" translatable="yes">No Article Selected</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</template>
|
|
<menu id="primary_menu">
|
|
<section>
|
|
<item>
|
|
<attribute name="label" translatable="yes">Log Out</attribute>
|
|
<attribute name="action">win.logout</attribute>
|
|
</item>
|
|
</section>
|
|
<section>
|
|
<item>
|
|
<attribute name="label" translatable="yes">Keyboard Shortcuts</attribute>
|
|
<attribute name="action">win.show-help-overlay</attribute>
|
|
</item>
|
|
<item>
|
|
<attribute name="label" translatable="yes">About FeedTheMonkey</attribute>
|
|
<attribute name="action">app.about</attribute>
|
|
</item>
|
|
</section>
|
|
</menu>
|
|
<menu id="article_menu">
|
|
<section>
|
|
<item>
|
|
<attribute name="label" translatable="yes">Mark Unread</attribute>
|
|
<attribute name="action">win.mark-unread</attribute>
|
|
</item>
|
|
<item>
|
|
<attribute name="label" translatable="yes">Open in Browser</attribute>
|
|
<attribute name="action">win.open-in-browser</attribute>
|
|
</item>
|
|
</section>
|
|
</menu>
|
|
</interface> |