add ui_srclist_generate_sublist_num_data function

Sat, 18 Oct 2025 12:23:52 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sat, 18 Oct 2025 12:23:52 +0200
changeset 862
670b2c03413f
parent 861
34b07b18b3e1
child 863
589bca248476

add ui_srclist_generate_sublist_num_data function

ui/common/wrapper.c file | annotate | diff | comparison | revisions
ui/common/wrapper.h file | annotate | diff | comparison | revisions
ui/gtk/list.c file | annotate | diff | comparison | revisions
--- a/ui/common/wrapper.c	Sat Oct 18 10:17:59 2025 +0200
+++ b/ui/common/wrapper.c	Sat Oct 18 12:23:52 2025 +0200
@@ -134,6 +134,17 @@
     return ui_list_count(list);
 }
 
+/*
+ * numerates all sublists and sets the sublist index as userdata
+ */
+void ui_srclist_generate_sublist_num_data(UiList *list) {
+    CxList *cxlist = list->data;
+    CxIterator i = cxListIterator(cxlist);
+    cx_foreach(UiSubList *, sublist, i) {
+        sublist->userdata = (void*)i.index;
+    }
+}
+
 
 /* ---------------------------- UiSubListEventData ---------------------------- */
 
--- a/ui/common/wrapper.h	Sat Oct 18 10:17:59 2025 +0200
+++ b/ui/common/wrapper.h	Sat Oct 18 12:23:52 2025 +0200
@@ -58,6 +58,7 @@
 UIEXPORT void ui_srclist_remove(UiList *list, int index);
 UIEXPORT void ui_srclist_clear(UiList *list);
 UIEXPORT int ui_srclist_size(UiList *list);
+UIEXPORT void ui_srclist_generate_sublist_num_data(UiList *list);
 
 UIEXPORT UiList* ui_sublist_event_get_list(UiSubListEventData *event);
 UIEXPORT int ui_sublist_event_get_sublist_index(UiSubListEventData *event);
--- a/ui/gtk/list.c	Sat Oct 18 10:17:59 2025 +0200
+++ b/ui/gtk/list.c	Sat Oct 18 12:23:52 2025 +0200
@@ -2579,6 +2579,10 @@
             item.label = strdup(elm);
         }
         
+        if(item.label == NULL && index == -1 && sublist->header) {
+            item.label = strdup(sublist->header);
+        }
+        
         // create listbox item
         GtkWidget *row = gtk_list_box_row_new();
 #if GTK_CHECK_VERSION(4, 0, 0)

mercurial