add custom data field to the UiMenuBuilder, which might be useful for language bindings default tip

Tue, 18 Aug 2026 20:48:31 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Tue, 18 Aug 2026 20:48:31 +0200
changeset 1232
cd25e7f5aeb8
parent 1231
9b04214d1caa

add custom data field to the UiMenuBuilder, which might be useful for language bindings

ui/common/menu.c file | annotate | diff | comparison | revisions
ui/common/menu.h file | annotate | diff | comparison | revisions
ui/ui/menu.h file | annotate | diff | comparison | revisions
--- a/ui/common/menu.c	Mon Aug 17 21:00:33 2026 +0200
+++ b/ui/common/menu.c	Tue Aug 18 20:48:31 2026 +0200
@@ -309,6 +309,8 @@
     builder->menus_begin = NULL;
     builder->menus_end = NULL;
     builder->current = cxLinkedListCreate(cxDefaultAllocator, CX_STORE_POINTERS);
+    builder->custom_data = NULL;
+    builder->custom_destr = NULL;
     builder->ref = 1;
     current_builder = builder;
     *out_builder = builder;
@@ -316,6 +318,10 @@
     ui_menu_create(NULL);
 }
 
+void ui_menubuilder_set_custom_data(UiMenuBuilder *builder, void *data, ui_destructor_func destr) {
+    builder->custom_destr = destr;
+    builder->custom_data = data;
+}
 
 
 static void free_menuitem(UiMenuItemI *item) {
--- a/ui/common/menu.h	Mon Aug 17 21:00:33 2026 +0200
+++ b/ui/common/menu.h	Tue Aug 18 20:48:31 2026 +0200
@@ -122,6 +122,8 @@
     UiMenu *menus_begin;
     UiMenu *menus_end;
     CxList *current;
+    ui_destructor_func custom_destr;
+    void *custom_data;
     int ref;
 };
 
--- a/ui/ui/menu.h	Mon Aug 17 21:00:33 2026 +0200
+++ b/ui/ui/menu.h	Tue Aug 18 20:48:31 2026 +0200
@@ -113,6 +113,8 @@
 UIEXPORT void ui_menu_close(void);
 UIEXPORT int ui_menu_is_open(void);
 
+UIEXPORT void ui_menubuilder_set_custom_data(UiMenuBuilder *builder, void *data, ui_destructor_func destr);
+
 #ifdef	__cplusplus
 }
 #endif

mercurial