mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-01-15 17:20:08 +00:00
implement on_select wrapper
This commit is contained in:
parent
36bfc30664
commit
41aebd4fcc
@ -28,6 +28,9 @@ impl Form {
|
|||||||
gobject.append(list.gobject());
|
gobject.append(list.gobject());
|
||||||
gobject.append(name.gobject());
|
gobject.append(name.gobject());
|
||||||
|
|
||||||
|
// Connect events
|
||||||
|
list.on_select(move |key| name.gobject().set_visible(key.is_none()));
|
||||||
|
|
||||||
// Return activated `Self`
|
// Return activated `Self`
|
||||||
Self { gobject }
|
Self { gobject }
|
||||||
}
|
}
|
||||||
|
@ -42,22 +42,20 @@ impl List {
|
|||||||
self.model.append(&item);
|
self.model.append(&item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* @TODO not in use
|
||||||
/// Get selected `key` or panic on selection not found
|
/// Get selected `key` or panic on selection not found
|
||||||
/// * return `None` if current selection key match `PROPERTY_KEY_NONE_VALUE`
|
/// * return `None` if current selection key match `PROPERTY_KEY_NONE_VALUE`
|
||||||
pub fn selected(&self) -> Option<i64> {
|
pub fn selected(&self) -> Option<i64> {
|
||||||
match self.gobject.selected_item() {
|
selected(&self.gobject)
|
||||||
Some(gobject) => {
|
}*/
|
||||||
// Convert back from C-based GObject type
|
|
||||||
let key = gobject.property::<i64>(PROPERTY_KEY_NAME);
|
|
||||||
|
|
||||||
if key == PROPERTY_KEY_NONE_VALUE {
|
// Events
|
||||||
None
|
|
||||||
} else {
|
/// Run callback function on `connect_selected_notify`
|
||||||
Some(key)
|
/// * return formatted key as result
|
||||||
}
|
pub fn on_select(&self, callback: impl Fn(Option<i64>) + 'static) {
|
||||||
}
|
self.gobject
|
||||||
None => panic!(),
|
.connect_selected_notify(move |this| callback(selected(this)));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getters
|
// Getters
|
||||||
@ -66,3 +64,23 @@ impl List {
|
|||||||
&self.gobject
|
&self.gobject
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Tools
|
||||||
|
|
||||||
|
/// Get selected `key` or panic on selection not found
|
||||||
|
/// * return `None` if current selection key match `PROPERTY_KEY_NONE_VALUE`
|
||||||
|
fn selected(list: &DropDown) -> Option<i64> {
|
||||||
|
match list.selected_item() {
|
||||||
|
Some(this) => {
|
||||||
|
// Convert back from C-based GObject type
|
||||||
|
let key = this.property::<i64>(PROPERTY_KEY_NAME);
|
||||||
|
|
||||||
|
if key == PROPERTY_KEY_NONE_VALUE {
|
||||||
|
None
|
||||||
|
} else {
|
||||||
|
Some(key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None => panic!(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user