Compare commits
3 Commits
ad1ab9225c
...
55ee5d6548
Author | SHA1 | Date |
---|---|---|
Bit Borealis | 55ee5d6548 | |
Bit Borealis | 15ce139d13 | |
Bit Borealis | 32397fc8fd |
12
flake.lock
12
flake.lock
|
@ -5,11 +5,11 @@
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689068808,
|
"lastModified": 1692799911,
|
||||||
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
"narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
"rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -20,11 +20,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1692614049,
|
"lastModified": 1692964503,
|
||||||
"narHash": "sha256-RF+eM5oQGZ58rvdBV4NoF/J3S1z11g52WPWcLsYJVVY=",
|
"narHash": "sha256-BUsxLHBiLKEb/d1mhj7rLmtca0/01ubBikkCrRupWB4=",
|
||||||
"owner": "theotheroracle",
|
"owner": "theotheroracle",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "908fc0c68613ee426a81427693a9b26aaba9b224",
|
"rev": "39653f036c7a837304b4c6e0f4ca5b9908561d90",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<!-- Created with Cambalache 0.12.1 -->
|
||||||
|
<interface/>
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<!-- Created with Cambalache 0.12.1 -->
|
||||||
|
<interface>
|
||||||
|
<requires lib="libadwaita" version="1.3"/>
|
||||||
|
<object class="AdwPreferencesWindow"/>
|
||||||
|
</interface>
|
58
src/main.rs
58
src/main.rs
|
@ -1,50 +1,38 @@
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
|
|
||||||
use adw::{ToolbarView, ActionRow, Application, ApplicationWindow, HeaderBar};
|
use adw::{ToolbarView, Application, ApplicationWindow, HeaderBar, WindowTitle};
|
||||||
use gtk::{Box, ListBox, Orientation, SelectionMode};
|
use gtk::{Box, ListBox, Orientation};
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let application = Application::builder()
|
let xenon_app = Application::builder()
|
||||||
.application_id("com.example.FirstAdwaitaApp")
|
.application_id("os.saturn.xenon")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
application.connect_activate(|app| {
|
xenon_app.connect_activate(|app| {
|
||||||
// ActionRows are only available in Adwaita
|
let xenon_url = WindowTitle::builder()
|
||||||
let row = ActionRow::builder()
|
.title("xenon")
|
||||||
.activatable(true)
|
.subtitle("https://example.com")
|
||||||
.title("Click me")
|
.focusable(true)
|
||||||
|
.focus_on_click(true)
|
||||||
.build();
|
.build();
|
||||||
row.connect_activated(|_| {
|
|
||||||
eprintln!("Clicked!");
|
let xenon_headerbar = HeaderBar::builder()
|
||||||
});
|
.decoration_layout("icons:close")
|
||||||
|
.title_widget(&xenon_url)
|
||||||
let list = ListBox::builder()
|
|
||||||
.margin_top(32)
|
|
||||||
.margin_end(32)
|
|
||||||
.margin_bottom(32)
|
|
||||||
.margin_start(32)
|
|
||||||
.selection_mode(SelectionMode::None)
|
|
||||||
// makes the list look nicer
|
|
||||||
.css_classes(vec![String::from("boxed-list")])
|
|
||||||
.build();
|
.build();
|
||||||
list.append(&row);
|
|
||||||
|
let xenon_view = ToolbarView ::builder()
|
||||||
// Combine the content in a box
|
.build();
|
||||||
let content = ToolbarView ::new();
|
xenon_view.add_top_bar(&xenon_headerbar);
|
||||||
// Adwaitas' ApplicationWindow does not include a HeaderBar
|
|
||||||
content.add_top_bar(&HeaderBar::new());
|
|
||||||
content.set_content(Some(&list));
|
|
||||||
|
|
||||||
let window = ApplicationWindow::builder()
|
let window = ApplicationWindow::builder()
|
||||||
.application(app)
|
.application(app)
|
||||||
.title("xenon")
|
.title("xenon")
|
||||||
.default_width(350)
|
.default_width(350)
|
||||||
// add content to window
|
// add content to window
|
||||||
.content(&content)
|
.content(&xenon_view)
|
||||||
.build();
|
.build();
|
||||||
window.show();
|
window.present();
|
||||||
});
|
});
|
||||||
|
xenon_app.run();
|
||||||
application.run();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
45
xenon.cmb
45
xenon.cmb
|
@ -2,19 +2,12 @@
|
||||||
<!DOCTYPE cambalache-project SYSTEM "cambalache-project.dtd">
|
<!DOCTYPE cambalache-project SYSTEM "cambalache-project.dtd">
|
||||||
<cambalache-project version="0.12.0" target_tk="gtk-4.0">
|
<cambalache-project version="0.12.0" target_tk="gtk-4.0">
|
||||||
<ui>
|
<ui>
|
||||||
(1,None,"xenon.ui","xenon.ui",None,None,None,None,None,None,None)
|
(1,None,"xenon.ui","xenon.ui",None,None,None,None,None,None,None),
|
||||||
|
(3,None,None,"settings.ui",None,None,None,None,None,None,None)
|
||||||
</ui>
|
</ui>
|
||||||
<object>
|
<object>
|
||||||
(1,1,"AdwApplicationWindow",None,None,None,None,None,None,None),
|
(1,1,"AdwApplicationWindow",None,None,None,None,None,None,None),
|
||||||
(1,4,"GtkBox",None,1,None,None,None,None,None),
|
(1,4,"GtkBox",None,1,None,None,None,None,None),
|
||||||
(1,5,"AdwHeaderBar",None,4,None,None,None,None,None),
|
|
||||||
(1,7,"GtkButton",None,5,None,"start",None,None,None),
|
|
||||||
(1,8,"GtkButton",None,5,None,"start",None,None,None),
|
|
||||||
(1,9,"GtkButton",None,5,None,"start",None,None,None),
|
|
||||||
(1,10,"GtkButton",None,5,None,"start",None,None,None),
|
|
||||||
(1,11,"AdwWindowTitle",None,5,None,"title",None,None,None),
|
|
||||||
(1,12,"GtkButton",None,5,None,"start",None,None,None),
|
|
||||||
(1,13,"GtkButton",None,5,None,"end",None,None,None),
|
|
||||||
(1,14,"GtkBox",None,4,None,None,None,1,None),
|
(1,14,"GtkBox",None,4,None,None,None,1,None),
|
||||||
(1,26,"GtkScrolledWindow",None,14,None,None,None,None,None),
|
(1,26,"GtkScrolledWindow",None,14,None,None,None,None,None),
|
||||||
(1,27,"GtkBox",None,26,None,None,None,None,None),
|
(1,27,"GtkBox",None,26,None,None,None,None,None),
|
||||||
|
@ -25,22 +18,21 @@
|
||||||
(1,32,"AdwAvatar",None,27,None,None,None,4,None),
|
(1,32,"AdwAvatar",None,27,None,None,None,4,None),
|
||||||
(1,33,"AdwAvatar",None,27,None,None,None,5,None),
|
(1,33,"AdwAvatar",None,27,None,None,None,5,None),
|
||||||
(1,34,"AdwAvatar",None,27,None,None,None,6,None),
|
(1,34,"AdwAvatar",None,27,None,None,None,6,None),
|
||||||
(1,35,"AdwAvatar",None,27,None,None,None,7,None)
|
(1,35,"AdwAvatar",None,27,None,None,None,7,None),
|
||||||
|
(1,36,"AdwHeaderBar",None,4,None,None,None,None,None),
|
||||||
|
(1,37,"AdwWindowTitle",None,36,None,None,None,None,None),
|
||||||
|
(1,38,"GtkButton",None,36,None,"start",None,None,None),
|
||||||
|
(1,39,"GtkButton",None,36,None,"start",None,1,None),
|
||||||
|
(1,40,"GtkButton",None,36,None,"start",None,2,None),
|
||||||
|
(1,41,"GtkButton",None,36,None,"start",None,3,None),
|
||||||
|
(1,42,"GtkButton",None,36,None,"start",None,4,None),
|
||||||
|
(1,43,"GtkButton",None,36,None,"end",None,5,None),
|
||||||
|
(3,1,"AdwPreferencesWindow",None,None,None,None,None,None,None)
|
||||||
</object>
|
</object>
|
||||||
<object_property>
|
<object_property>
|
||||||
(1,1,"AdwApplicationWindow","content",None,None,None,None,None,4,None,None,None,None),
|
(1,1,"AdwApplicationWindow","content",None,None,None,None,None,4,None,None,None,None),
|
||||||
(1,1,"GtkWindow","title","xenon",None,None,None,None,None,None,None,None,None),
|
(1,1,"GtkWindow","title","xenon",None,None,None,None,None,None,None,None,None),
|
||||||
(1,4,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
|
(1,4,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
|
||||||
(1,5,"AdwHeaderBar","decoration-layout","icon:close",None,None,None,None,None,None,None,None,None),
|
|
||||||
(1,5,"AdwHeaderBar","title-widget",None,None,None,None,None,11,None,None,None,None),
|
|
||||||
(1,7,"GtkButton","icon-name","camera-photo-symbolic",None,None,None,None,None,None,None,None,None),
|
|
||||||
(1,8,"GtkButton","icon-name","image-x-generic-symbolic",None,None,None,None,None,None,None,None,None),
|
|
||||||
(1,9,"GtkButton","icon-name","folder-download-symbolic",None,None,None,None,None,None,None,None,None),
|
|
||||||
(1,10,"GtkButton","icon-name","media-playback-start-symbolic",None,None,None,None,None,None,None,None,None),
|
|
||||||
(1,11,"AdwWindowTitle","subtitle","https://example.com",None,None,None,None,None,None,None,None,None),
|
|
||||||
(1,11,"AdwWindowTitle","title","example",None,None,None,None,None,None,None,None,None),
|
|
||||||
(1,12,"GtkButton","icon-name","go-home-symbolic",None,None,None,None,None,None,None,None,None),
|
|
||||||
(1,13,"GtkButton","icon-name","open-menu-symbolic",None,None,None,None,None,None,None,None,None),
|
|
||||||
(1,14,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
|
(1,14,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
|
||||||
(1,26,"GtkScrolledWindow","hscrollbar-policy","never",None,None,None,None,None,None,None,None,None),
|
(1,26,"GtkScrolledWindow","hscrollbar-policy","never",None,None,None,None,None,None,None,None,None),
|
||||||
(1,26,"GtkScrolledWindow","propagate-natural-height","True",None,None,None,None,None,None,None,None,None),
|
(1,26,"GtkScrolledWindow","propagate-natural-height","True",None,None,None,None,None,None,None,None,None),
|
||||||
|
@ -60,6 +52,17 @@
|
||||||
(1,34,"AdwAvatar","icon-name","web-browser-symbolic",None,None,None,None,None,None,None,None,None),
|
(1,34,"AdwAvatar","icon-name","web-browser-symbolic",None,None,None,None,None,None,None,None,None),
|
||||||
(1,34,"AdwAvatar","size","60",None,None,None,None,None,None,None,None,None),
|
(1,34,"AdwAvatar","size","60",None,None,None,None,None,None,None,None,None),
|
||||||
(1,35,"AdwAvatar","icon-name","web-browser-symbolic",None,None,None,None,None,None,None,None,None),
|
(1,35,"AdwAvatar","icon-name","web-browser-symbolic",None,None,None,None,None,None,None,None,None),
|
||||||
(1,35,"AdwAvatar","size","60",None,None,None,None,None,None,None,None,None)
|
(1,35,"AdwAvatar","size","60",None,None,None,None,None,None,None,None,None),
|
||||||
|
(1,36,"AdwHeaderBar","decoration-layout","icon:close",None,None,None,None,None,None,None,None,None),
|
||||||
|
(1,36,"AdwHeaderBar","title-widget",None,None,None,None,None,37,None,None,None,None),
|
||||||
|
(1,37,"AdwWindowTitle","subtitle","https://example.com",None,None,None,None,None,None,None,None,None),
|
||||||
|
(1,37,"AdwWindowTitle","title","example",None,None,None,None,None,None,None,None,None),
|
||||||
|
(1,37,"GtkWidget","focusable","True",None,None,None,None,None,None,None,None,None),
|
||||||
|
(1,38,"GtkButton","icon-name","camera-photo-symbolic",None,None,None,None,None,None,None,None,None),
|
||||||
|
(1,39,"GtkButton","icon-name","image-x-generic-symbolic",None,None,None,None,None,None,None,None,None),
|
||||||
|
(1,40,"GtkButton","icon-name","folder-download-symbolic",None,None,None,None,None,None,None,None,None),
|
||||||
|
(1,41,"GtkButton","icon-name","media-playback-start-symbolic",None,None,None,None,None,None,None,None,None),
|
||||||
|
(1,42,"GtkButton","icon-name","go-home-symbolic",None,None,None,None,None,None,None,None,None),
|
||||||
|
(1,43,"GtkButton","icon-name","open-menu-symbolic",None,None,None,None,None,None,None,None,None)
|
||||||
</object_property>
|
</object_property>
|
||||||
</cambalache-project>
|
</cambalache-project>
|
||||||
|
|
1
xenon.ui
1
xenon.ui
|
@ -13,6 +13,7 @@
|
||||||
<property name="decoration-layout">icon:close</property>
|
<property name="decoration-layout">icon:close</property>
|
||||||
<property name="title-widget">
|
<property name="title-widget">
|
||||||
<object class="AdwWindowTitle">
|
<object class="AdwWindowTitle">
|
||||||
|
<property name="focusable">True</property>
|
||||||
<property name="subtitle">https://example.com</property>
|
<property name="subtitle">https://example.com</property>
|
||||||
<property name="title">example</property>
|
<property name="title">example</property>
|
||||||
</object>
|
</object>
|
||||||
|
|
Loading…
Reference in New Issue