Create the basic user interface mockup for a GM control panel #63

Merged
savanni merged 5 commits from gm-control-panel into main 2023-08-19 23:52:23 +00:00
4 changed files with 9 additions and 14 deletions
Showing only changes of commit 5478d388cb - Show all commits

View File

@ -13,7 +13,7 @@ futures = { version = "0.3" }
gio = { version = "0.17" } gio = { version = "0.17" }
glib = { version = "0.17" } glib = { version = "0.17" }
gdk = { version = "0.6", package = "gdk4" } gdk = { version = "0.6", package = "gdk4" }
gtk = { version = "0.6", package = "gtk4" } gtk = { version = "0.6", package = "gtk4", features = [ "v4_6" ] }
serde = { version = "1" } serde = { version = "1" }
serde_json = { version = "*" } serde_json = { version = "*" }
tokio = { version = "1", features = ["full"] } tokio = { version = "1", features = ["full"] }

View File

@ -1,4 +1,6 @@
.playlist-card { .playlist-card {
margin: 8px; margin: 8px;
padding: 8px; padding: 8px;
min-width: 100px;
min-height: 100px;
} }

View File

@ -7,7 +7,7 @@ use std::iter::Iterator;
#[derive(Clone)] #[derive(Clone)]
pub struct ApplicationWindow { pub struct ApplicationWindow {
pub window: adw::ApplicationWindow, pub window: adw::ApplicationWindow,
pub grid: gtk::Grid, pub layout: gtk::FlowBox,
pub playlists: Vec<PlaylistCard>, pub playlists: Vec<PlaylistCard>,
} }
@ -16,6 +16,7 @@ impl ApplicationWindow {
let window = adw::ApplicationWindow::builder() let window = adw::ApplicationWindow::builder()
.application(app) .application(app)
.title("GM-control-panel") .title("GM-control-panel")
.width_request(500)
.build(); .build();
let stylesheet = String::from_utf8( let stylesheet = String::from_utf8(
@ -33,7 +34,7 @@ impl ApplicationWindow {
let context = window.style_context(); let context = window.style_context();
context.add_provider(&provider, STYLE_PROVIDER_PRIORITY_USER); context.add_provider(&provider, STYLE_PROVIDER_PRIORITY_USER);
let grid = gtk::Grid::new(); let layout = gtk::FlowBox::new();
let playlists: Vec<PlaylistCard> = vec![ let playlists: Vec<PlaylistCard> = vec![
"Creepy Cathedral", "Creepy Cathedral",
@ -50,15 +51,13 @@ impl ApplicationWindow {
}) })
.collect(); .collect();
playlists.iter().enumerate().for_each(|(i, card)| { playlists.iter().for_each(|card| layout.append(card));
grid.attach(card, 0, i as i32, 1, 1);
});
window.set_content(Some(&grid)); window.set_content(Some(&layout));
Self { Self {
window, window,
grid, layout,
playlists, playlists,
} }
} }

View File

@ -37,12 +37,6 @@ impl PlaylistCard {
s.set_orientation(gtk::Orientation::Vertical); s.set_orientation(gtk::Orientation::Vertical);
s.add_css_class("playlist-card"); s.add_css_class("playlist-card");
s.add_css_class("card"); s.add_css_class("card");
/*
s.set_margin_start(8);
s.set_margin_end(8);
s.set_margin_top(8);
s.set_margin_bottom(8);
*/
s.append(&s.imp().name); s.append(&s.imp().name);
s.append(&s.imp().playing); s.append(&s.imp().playing);