ui/common/menu.c

changeset 1232
cd25e7f5aeb8
parent 1231
9b04214d1caa
equal deleted inserted replaced
1231:9b04214d1caa 1232:cd25e7f5aeb8
307 void ui_contextmenu_builder(UiMenuBuilder **out_builder) { 307 void ui_contextmenu_builder(UiMenuBuilder **out_builder) {
308 UiMenuBuilder *builder = malloc(sizeof(UiMenuBuilder)); 308 UiMenuBuilder *builder = malloc(sizeof(UiMenuBuilder));
309 builder->menus_begin = NULL; 309 builder->menus_begin = NULL;
310 builder->menus_end = NULL; 310 builder->menus_end = NULL;
311 builder->current = cxLinkedListCreate(cxDefaultAllocator, CX_STORE_POINTERS); 311 builder->current = cxLinkedListCreate(cxDefaultAllocator, CX_STORE_POINTERS);
312 builder->custom_data = NULL;
313 builder->custom_destr = NULL;
312 builder->ref = 1; 314 builder->ref = 1;
313 current_builder = builder; 315 current_builder = builder;
314 *out_builder = builder; 316 *out_builder = builder;
315 317
316 ui_menu_create(NULL); 318 ui_menu_create(NULL);
317 } 319 }
318 320
321 void ui_menubuilder_set_custom_data(UiMenuBuilder *builder, void *data, ui_destructor_func destr) {
322 builder->custom_destr = destr;
323 builder->custom_data = data;
324 }
319 325
320 326
321 static void free_menuitem(UiMenuItemI *item) { 327 static void free_menuitem(UiMenuItemI *item) {
322 switch(item->type) { 328 switch(item->type) {
323 default: break; 329 default: break;

mercurial