From: Olaf Wintermann Date: Thu, 23 Apr 2026 18:30:26 +0000 (+0200) Subject: add additional methods for setting/getting UiList selections X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2Fmain;p=note.git add additional methods for setting/getting UiList selections --- diff --git a/ui-rs/src/ui/button.rs b/ui-rs/src/ui/button.rs index 846aa40..3741258 100644 --- a/ui-rs/src/ui/button.rs +++ b/ui-rs/src/ui/button.rs @@ -121,42 +121,42 @@ impl<'a, T> ButtonBuilder<'a, T> { pub fn fill(&mut self, fill: bool) -> &mut Self { unsafe { - ui_button_args_set_fill(self.args, if fill { 1 } else { 0 }); + ui_button_args_set_fill(self.args, fill as c_int); } self } pub fn hexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_button_args_set_hexpand(self.args, if value { 1 } else { 0 }); + ui_button_args_set_hexpand(self.args, value as c_int); } self } pub fn vexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_button_args_set_vexpand(self.args, if value { 1 } else { 0 }); + ui_button_args_set_vexpand(self.args, value as c_int); } self } pub fn hfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_button_args_set_hfill(self.args, if value { 1 } else { 0 }); + ui_button_args_set_hfill(self.args, value as c_int); } self } pub fn vfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_button_args_set_vfill(self.args, if value { 1 } else { 0 }); + ui_button_args_set_vfill(self.args, value as c_int); } self } pub fn override_defaults(&mut self, value: bool) -> &mut Self { unsafe { - ui_button_args_set_override_defaults(self.args, if value { 1 } else { 0 }); + ui_button_args_set_override_defaults(self.args, value as c_int); } self } @@ -306,35 +306,35 @@ impl<'a, T> ToggleBuilder<'a, T> { pub fn hexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_toggle_args_set_hexpand(self.args, if value { 1 } else { 0 }); + ui_toggle_args_set_hexpand(self.args, value as c_int); } self } pub fn vexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_toggle_args_set_vexpand(self.args, if value { 1 } else { 0 }); + ui_toggle_args_set_vexpand(self.args, value as c_int); } self } pub fn hfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_toggle_args_set_hfill(self.args, if value { 1 } else { 0 }); + ui_toggle_args_set_hfill(self.args, value as c_int); } self } pub fn vfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_toggle_args_set_vfill(self.args, if value { 1 } else { 0 }); + ui_toggle_args_set_vfill(self.args, value as c_int); } self } pub fn override_defaults(&mut self, value: bool) -> &mut Self { unsafe { - ui_toggle_args_set_override_defaults(self.args, if value { 1 } else { 0 }); + ui_toggle_args_set_override_defaults(self.args, value as c_int); } self } diff --git a/ui-rs/src/ui/list.rs b/ui-rs/src/ui/list.rs index a1fca13..cc1648e 100644 --- a/ui-rs/src/ui/list.rs +++ b/ui-rs/src/ui/list.rs @@ -142,42 +142,42 @@ impl<'a, T, E> ListViewBuilder<'a, T, E> { pub fn fill(&mut self, fill: bool) -> &mut Self { unsafe { - ui_list_args_set_fill(self.args, if fill { 1 } else { 0 }); + ui_list_args_set_fill(self.args, fill as c_int); } self } pub fn hexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_list_args_set_hexpand(self.args, if value { 1 } else { 0 }); + ui_list_args_set_hexpand(self.args, value as c_int); } self } pub fn vexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_list_args_set_vexpand(self.args, if value { 1 } else { 0 }); + ui_list_args_set_vexpand(self.args, value as c_int); } self } pub fn hfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_list_args_set_hfill(self.args, if value { 1 } else { 0 }); + ui_list_args_set_hfill(self.args, value as c_int); } self } pub fn vfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_list_args_set_vfill(self.args, if value { 1 } else { 0 }); + ui_list_args_set_vfill(self.args, value as c_int); } self } pub fn override_defaults(&mut self, value: bool) -> &mut Self { unsafe { - ui_list_args_set_override_defaults(self.args, if value { 1 } else { 0 }); + ui_list_args_set_override_defaults(self.args, value as c_int); } self } @@ -327,35 +327,35 @@ impl<'a, T, E> TableViewBuilder<'a, T, E> { pub fn hexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_list_args_set_hexpand(self.args, if value { 1 } else { 0 }); + ui_list_args_set_hexpand(self.args, value as c_int); } self } pub fn vexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_list_args_set_vexpand(self.args, if value { 1 } else { 0 }); + ui_list_args_set_vexpand(self.args, value as c_int); } self } pub fn hfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_list_args_set_hfill(self.args, if value { 1 } else { 0 }); + ui_list_args_set_hfill(self.args, value as c_int); } self } pub fn vfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_list_args_set_vfill(self.args, if value { 1 } else { 0 }); + ui_list_args_set_vfill(self.args, value as c_int); } self } pub fn override_defaults(&mut self, value: bool) -> &mut Self { unsafe { - ui_list_args_set_override_defaults(self.args, if value { 1 } else { 0 }); + ui_list_args_set_override_defaults(self.args, value as c_int); } self } @@ -497,35 +497,35 @@ impl<'a, T, E> SourceListBuilder<'a, T, E> { pub fn hexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_sourcelist_args_set_hexpand(self.args, if value { 1 } else { 0 }); + ui_sourcelist_args_set_hexpand(self.args, value as c_int); } self } pub fn vexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_sourcelist_args_set_vexpand(self.args, if value { 1 } else { 0 }); + ui_sourcelist_args_set_vexpand(self.args, value as c_int); } self } pub fn hfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_sourcelist_args_set_hfill(self.args, if value { 1 } else { 0 }); + ui_sourcelist_args_set_hfill(self.args, value as c_int); } self } pub fn vfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_sourcelist_args_set_vfill(self.args, if value { 1 } else { 0 }); + ui_sourcelist_args_set_vfill(self.args, value as c_int); } self } pub fn override_defaults(&mut self, value: bool) -> &mut Self { unsafe { - ui_sourcelist_args_set_override_defaults(self.args, if value { 1 } else { 0 }); + ui_sourcelist_args_set_override_defaults(self.args, value as c_int); } self } @@ -621,7 +621,7 @@ impl<'a, T, E> SourceListBuilder<'a, T, E> { pub fn header_is_item(&mut self, value: bool) -> &mut Self { unsafe { - ui_sourcelist_args_set_header_is_item(self.args, if value { 1 } else { 0 }); + ui_sourcelist_args_set_header_is_item(self.args, value as c_int); } self } diff --git a/ui-rs/src/ui/text.rs b/ui-rs/src/ui/text.rs index 2b30ef2..c712214 100644 --- a/ui-rs/src/ui/text.rs +++ b/ui-rs/src/ui/text.rs @@ -42,42 +42,42 @@ impl<'a, T> TextAreaBuilder<'a, T> { pub fn fill(&mut self, fill: bool) -> &mut Self { unsafe { - ui_textarea_args_set_fill(self.args, if fill { 1 } else { 0 }); + ui_textarea_args_set_fill(self.args, fill as c_int); } self } pub fn hexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_textarea_args_set_hexpand(self.args, if value { 1 } else { 0 }); + ui_textarea_args_set_hexpand(self.args, value as c_int); } self } pub fn vexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_textarea_args_set_vexpand(self.args, if value { 1 } else { 0 }); + ui_textarea_args_set_vexpand(self.args, value as c_int); } self } pub fn hfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_textarea_args_set_hfill(self.args, if value { 1 } else { 0 }); + ui_textarea_args_set_hfill(self.args, value as c_int); } self } pub fn vfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_textarea_args_set_vfill(self.args, if value { 1 } else { 0 }); + ui_textarea_args_set_vfill(self.args, value as c_int); } self } pub fn override_defaults(&mut self, value: bool) -> &mut Self { unsafe { - ui_textarea_args_set_override_defaults(self.args, if value { 1 } else { 0 }); + ui_textarea_args_set_override_defaults(self.args, value as c_int); } self } @@ -267,35 +267,35 @@ impl<'a, T> TextFieldBuilder<'a, T> { pub fn hexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_textfield_args_set_hexpand(self.args, if value { 1 } else { 0 }); + ui_textfield_args_set_hexpand(self.args, value as c_int); } self } pub fn vexpand(&mut self, value: bool) -> &mut Self { unsafe { - ui_textfield_args_set_vexpand(self.args, if value { 1 } else { 0 }); + ui_textfield_args_set_vexpand(self.args, value as c_int); } self } pub fn hfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_textfield_args_set_hfill(self.args, if value { 1 } else { 0 }); + ui_textfield_args_set_hfill(self.args, value as c_int); } self } pub fn vfill(&mut self, value: bool) -> &mut Self { unsafe { - ui_textfield_args_set_vfill(self.args, if value { 1 } else { 0 }); + ui_textfield_args_set_vfill(self.args, value as c_int); } self } pub fn override_defaults(&mut self, value: bool) -> &mut Self { unsafe { - ui_textfield_args_set_override_defaults(self.args, if value { 1 } else { 0 }); + ui_textfield_args_set_override_defaults(self.args, value as c_int); } self } diff --git a/ui-rs/src/ui/toolkit.rs b/ui-rs/src/ui/toolkit.rs index 0b0ce16..db1a072 100644 --- a/ui-rs/src/ui/toolkit.rs +++ b/ui-rs/src/ui/toolkit.rs @@ -375,6 +375,18 @@ impl UiList { ui_list_set_selected_indices(self.ptr, sel.as_ptr(), sel.len() as c_int); } } + + pub fn set_selected_index(&mut self, index: i32) { + unsafe { + ui_list_setselection(self.ptr, index); + } + } + + pub fn select_with_event(&mut self, index: i32, trigger_event: bool) { + unsafe { + ui_list_setselection2(self.ptr, index, trigger_event as i32); + } + } } impl Drop for UiList { @@ -597,4 +609,8 @@ extern "C" { pub fn ui_list_clear(list: *mut ffi::UiList); fn ui_list_free(ctx: *mut ffi::UiContext, list: *mut ffi::UiList); + + fn ui_list_getselection(list: *const ffi::UiList) -> c_int; + fn ui_list_setselection(list: *mut ffi::UiList, selection: c_int); + fn ui_list_setselection2(list: *mut ffi::UiList, selection: c_int, event: c_int); }