diff --git a/fitnesstrax/app/Cargo.toml b/fitnesstrax/app/Cargo.toml
index 3966c0c..2e7a012 100644
--- a/fitnesstrax/app/Cargo.toml
+++ b/fitnesstrax/app/Cargo.toml
@@ -16,6 +16,7 @@ emseries = { path = "../../emseries" }
ft-core = { path = "../core" }
gio = { version = "0.18" }
glib = { version = "0.18" }
+gdk = { version = "0.7", package = "gdk4" }
gtk = { version = "0.7", package = "gtk4", features = [ "v4_10" ] }
thiserror = { version = "1.0" }
tokio = { version = "1.34", features = [ "full" ] }
diff --git a/fitnesstrax/app/gresources.xml b/fitnesstrax/app/gresources.xml
index a597670..4eafed7 100644
--- a/fitnesstrax/app/gresources.xml
+++ b/fitnesstrax/app/gresources.xml
@@ -3,4 +3,11 @@
style.css
+
+ walking2-symbolic.svg
+
+
+
+ running-symbolic.svg
+
diff --git a/fitnesstrax/app/resources/resources.gresource.xml b/fitnesstrax/app/resources/resources.gresource.xml
new file mode 100644
index 0000000..67e604b
--- /dev/null
+++ b/fitnesstrax/app/resources/resources.gresource.xml
@@ -0,0 +1,6 @@
+
+
+
+ start-here-symbolic.svg
+
+
\ No newline at end of file
diff --git a/fitnesstrax/app/resources/running-symbolic.svg b/fitnesstrax/app/resources/running-symbolic.svg
new file mode 100644
index 0000000..89eba11
--- /dev/null
+++ b/fitnesstrax/app/resources/running-symbolic.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/fitnesstrax/app/resources/walking2-symbolic.svg b/fitnesstrax/app/resources/walking2-symbolic.svg
new file mode 100644
index 0000000..c43dc8b
--- /dev/null
+++ b/fitnesstrax/app/resources/walking2-symbolic.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/fitnesstrax/app/src/app_window.rs b/fitnesstrax/app/src/app_window.rs
index 24f0484..d372119 100644
--- a/fitnesstrax/app/src/app_window.rs
+++ b/fitnesstrax/app/src/app_window.rs
@@ -54,7 +54,7 @@ impl AppWindow {
let window = adw::ApplicationWindow::builder()
.application(adw_app)
.width_request(800)
- .height_request(600)
+ .height_request(746)
.build();
let stylesheet = String::from_utf8(
diff --git a/fitnesstrax/app/src/components/day.rs b/fitnesstrax/app/src/components/day.rs
index 59b601e..0edcd5d 100644
--- a/fitnesstrax/app/src/components/day.rs
+++ b/fitnesstrax/app/src/components/day.rs
@@ -234,12 +234,12 @@ impl DayEdit {
let s: Self = Object::builder().build();
s.set_orientation(gtk::Orientation::Vertical);
s.set_hexpand(true);
-
*s.imp().on_finished.borrow_mut() = Box::new(on_finished);
*s.imp().view_model.borrow_mut() = Some(view_model.clone());
s.append(&control_buttons(&s, &view_model));
s.append(&weight_and_steps_row(&view_model));
+ s.append(&workout_buttons());
s
}
@@ -302,3 +302,36 @@ fn weight_and_steps_row(view_model: &DayDetailViewModel) -> gtk::Box {
row
}
+
+fn workout_buttons() -> gtk::Box {
+ let sunrise_button = gtk::Button::builder()
+ .icon_name("daytime-sunrise-symbolic")
+ .width_request(64)
+ .height_request(64)
+ .build();
+
+ let walking_button = gtk::Button::builder()
+ .icon_name("walking2-symbolic")
+ .width_request(64)
+ .height_request(64)
+ .build();
+
+ let running_button = gtk::Button::builder()
+ .icon_name("running-symbolic")
+ .width_request(64)
+ .height_request(64)
+ .build();
+
+ let layout = gtk::Box::builder()
+ .orientation(gtk::Orientation::Vertical)
+ .build();
+ let row = gtk::Box::builder()
+ .orientation(gtk::Orientation::Horizontal)
+ .build();
+ row.append(&sunrise_button);
+ row.append(&walking_button);
+ row.append(&running_button);
+ layout.append(&row);
+
+ layout
+}
diff --git a/fitnesstrax/app/src/main.rs b/fitnesstrax/app/src/main.rs
index 316bfa6..bbad804 100644
--- a/fitnesstrax/app/src/main.rs
+++ b/fitnesstrax/app/src/main.rs
@@ -62,6 +62,9 @@ fn main() {
.build();
adw_app.connect_activate(move |adw_app| {
+ let icon_theme = gtk::IconTheme::for_display(&gdk::Display::default().unwrap());
+ icon_theme.add_resource_path(&(RESOURCE_BASE_PATH.to_owned() + "/icons/scalable/actions"));
+
AppWindow::new(app_id, RESOURCE_BASE_PATH, adw_app, ft_app.clone());
});