From 4a8ef07ada16b1bc1618b5440d0afaf150043666 Mon Sep 17 00:00:00 2001 From: Onkar <121673391+onkarrai06@users.noreply.github.com> Date: Thu, 31 Aug 2023 15:51:55 +0500 Subject: [PATCH] library: Ported `Switch` to Rust (#561) --- src/Library/demos/Switch/code.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/Library/demos/Switch/code.rs diff --git a/src/Library/demos/Switch/code.rs b/src/Library/demos/Switch/code.rs new file mode 100644 index 000000000..476c3a8d0 --- /dev/null +++ b/src/Library/demos/Switch/code.rs @@ -0,0 +1,21 @@ +use crate::workbench; +use glib::clone; +use gtk::glib; + +pub fn main() { + let switch_on: gtk::Switch = workbench::builder().object("switch_on").unwrap(); + let label_on: gtk::Label = workbench::builder().object("label_on").unwrap(); + + let switch_off: gtk::Switch = workbench::builder().object("switch_off").unwrap(); + let label_off: gtk::Label = workbench::builder().object("label_off").unwrap(); + + switch_on.connect_active_notify(clone!(@weak switch_off => move |switch_on| { + label_on.set_label(if switch_on.is_active() { "On" } else { "Off" }); + switch_off.set_active(!switch_on.is_active()); + })); + + switch_off.connect_active_notify(move |switch_off| { + label_off.set_label(if switch_off.is_active() { "On" } else { "Off" }); + switch_on.set_active(!switch_off.is_active()); + }); +}