]> uap-core.de Git - note.git/commitdiff
use Vec<usize> for list selections main
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Wed, 20 May 2026 19:04:54 +0000 (21:04 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Wed, 20 May 2026 19:04:54 +0000 (21:04 +0200)
ui-rs/src/ui/toolkit.rs

index f63a89c605b59d7bb7178886fff80ddb485ecd0f..fdbdc5e56953756b111b362c1bd329cbacd03521 100644 (file)
@@ -622,7 +622,7 @@ impl<T> UiList<T> {
         }
     }
 
-    pub fn selection(&self) -> Vec<i32> {
+    pub fn selection(&self) -> Vec<usize> {
         unsafe {
             let selection = ListSelection {
                 ptr: ui_list_get_selection_allocated(self.ptr),
@@ -647,9 +647,10 @@ impl<T> UiList<T> {
         None
     }
 
-    pub fn set_selection(&mut self, sel: &Vec<i32>) {
+    pub fn set_selection(&mut self, sel: &Vec<usize>) {
+        let sel_i32: Vec<i32> = 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<i32> {
+    pub fn selection(&self) -> Vec<usize> {
         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);
                 }
             }
         }