From e671cab9aef662a835ee08e9404a0e9437ffd5c3 Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Wed, 20 May 2026 21:04:54 +0200 Subject: [PATCH] use Vec for list selections --- ui-rs/src/ui/toolkit.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ui-rs/src/ui/toolkit.rs b/ui-rs/src/ui/toolkit.rs index f63a89c..fdbdc5e 100644 --- a/ui-rs/src/ui/toolkit.rs +++ b/ui-rs/src/ui/toolkit.rs @@ -622,7 +622,7 @@ impl UiList { } } - pub fn selection(&self) -> Vec { + pub fn selection(&self) -> Vec { unsafe { let selection = ListSelection { ptr: ui_list_get_selection_allocated(self.ptr), @@ -647,9 +647,10 @@ impl UiList { None } - pub fn set_selection(&mut self, sel: &Vec) { + pub fn set_selection(&mut self, sel: &Vec) { + let sel_i32: Vec = sel.into_iter().map(|x| *x as i32).collect(); unsafe { - ui_list_set_selected_indices(self.ptr, sel.as_ptr(), sel.len() as c_int); + ui_list_set_selected_indices(self.ptr, sel_i32.as_ptr(), sel.len() as c_int); } } @@ -690,14 +691,14 @@ impl ListSelection { ListSelection { ptr: ptr, free: true } } - pub fn selection(&self) -> Vec { + pub fn selection(&self) -> Vec { let mut sel = Vec::new(); unsafe { let count = ui_list_selection_get_count(self.ptr) as usize; if count > 0 { let indices = ui_list_selection_get_rows(self.ptr); for i in 0..count { - sel.push(*indices.add(i) as i32); + sel.push(*indices.add(i) as usize); } } } -- 2.47.3