diff --git a/res/icons/list-add-symbolic.svg b/res/icons/list-add-symbolic.svg
new file mode 100644
index 0000000..59b2fb0
--- /dev/null
+++ b/res/icons/list-add-symbolic.svg
@@ -0,0 +1,3 @@
+
diff --git a/res/icons/list-remove-symbolic.svg b/res/icons/list-remove-symbolic.svg
new file mode 100644
index 0000000..5b9ded7
--- /dev/null
+++ b/res/icons/list-remove-symbolic.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/widget/spin_button.rs b/src/widget/spin_button.rs
index 1a2f3e0..9a2c59d 100644
--- a/src/widget/spin_button.rs
+++ b/src/widget/spin_button.rs
@@ -149,29 +149,33 @@ where
}
}
}
+macro_rules! make_button {
+ ($spin_button:expr, $icon:expr, $operation:expr) => {{
+ #[cfg(target_os = "linux")]
+ let button = icon::from_name($icon);
+
+ #[cfg(not(target_os = "linux"))]
+ let button = icon::from_svg_bytes(
+ include_bytes!(concat!["../../res/icons/", $icon ,".svg"])
+ ).symbolic(true);
+
+ button.apply(button::icon)
+ .on_press(($spin_button.on_press)($operation(
+ $spin_button.value,
+ $spin_button.step,
+ $spin_button.min,
+ $spin_button.max,
+ )))
+ }};
+}
fn horizontal_variant(spin_button: SpinButton<'_, T, Message>) -> Element<'_, Message>
where
Message: Clone + 'static,
T: Copy + Sub