hello_world/hello-world.rs
1use libadwaita as adw;
2
3use adw::prelude::*;
4use adw::{ActionRow, Application, ApplicationWindow, HeaderBar};
5use gtk::{Box, ListBox, Orientation};
6
7fn main() {
8 let application = Application::builder()
9 .application_id("com.example.FirstAdwaitaApp")
10 .build();
11
12 application.connect_activate(|app| {
13 // ActionRows are only available in Adwaita
14 let row = ActionRow::builder()
15 .activatable(true)
16 .selectable(false)
17 .title("Click me")
18 .build();
19 row.connect_activated(|_| {
20 eprintln!("Clicked!");
21 });
22
23 let list = ListBox::builder()
24 .margin_top(32)
25 .margin_end(32)
26 .margin_bottom(32)
27 .margin_start(32)
28 .build();
29 list.add_css_class("boxed-list");
30 list.append(&row);
31
32 // Combine the content in a box
33 let content = Box::new(Orientation::Vertical, 0);
34 // Adwaitas' ApplicationWindow does not include a HeaderBar
35 content.append(
36 &HeaderBar::builder()
37 .title_widget(&adw::WindowTitle::new("First App", ""))
38 .build(),
39 );
40 content.append(&list);
41
42 let window = ApplicationWindow::builder()
43 .application(app)
44 .default_width(350)
45 // add content to window
46 .content(&content)
47 .build();
48 window.present();
49 });
50
51 application.run();
52}