Tue, 18 Aug 2026 20:48:31 +0200
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