ui/common/menu.c

changeset 110
c00e968d018b
parent 108
77254bd6dccb
child 112
c3f2f16fa4b8
equal deleted inserted replaced
109:c3dfcb8f0be7 110:c00e968d018b
98 mitem_set_id(&menu->item); 98 mitem_set_id(&menu->item);
99 menu->item.prev = NULL; 99 menu->item.prev = NULL;
100 menu->item.next = NULL; 100 menu->item.next = NULL;
101 menu->item.type = UI_MENU; 101 menu->item.type = UI_MENU;
102 102
103 menu->label = label; 103 menu->label = nl_strdup(label);
104 menu->items_begin = NULL; 104 menu->items_begin = NULL;
105 menu->items_end = NULL; 105 menu->items_end = NULL;
106 menu->parent = NULL; 106 menu->parent = NULL;
107 107
108 menu->end = 0; 108 menu->end = 0;
269 static void free_menuitem(UiMenuItemI *item) { 269 static void free_menuitem(UiMenuItemI *item) {
270 switch(item->type) { 270 switch(item->type) {
271 default: break; 271 default: break;
272 case UI_MENU: { 272 case UI_MENU: {
273 UiMenu *menu = (UiMenu*)item; 273 UiMenu *menu = (UiMenu*)item;
274 free(menu->label);
274 UiMenuItemI *m = menu->items_begin; 275 UiMenuItemI *m = menu->items_begin;
275 while(m) { 276 while(m) {
276 UiMenuItemI *next = m->next; 277 UiMenuItemI *next = m->next;
277 free_menuitem(m); 278 free_menuitem(m);
278 m = next; 279 m = next;

mercurial