| 42 static int menu_item_counter = 0; |
42 static int menu_item_counter = 0; |
| 43 |
43 |
| 44 static void *tmp_eventdata; |
44 static void *tmp_eventdata; |
| 45 static int tmp_eventdata_type; |
45 static int tmp_eventdata_type; |
| 46 |
46 |
| |
47 |
| |
48 static void* getvalue_wrapper(UiList *list, void *elm, int row, int col, void *userdata, UiBool *freeResult) { |
| |
49 ui_getvaluefunc getvalue = (ui_getvaluefunc)userdata; |
| |
50 return getvalue(elm, col); |
| |
51 } |
| |
52 |
| |
53 static void* str_getvalue(UiList *list, void *elm, int row, int col, void *userdata, UiBool *freeResult) { |
| |
54 return elm; |
| |
55 } |
| |
56 |
| |
57 |
| 47 void uic_set_tmp_eventdata(void *eventdata, int type) { |
58 void uic_set_tmp_eventdata(void *eventdata, int type) { |
| 48 tmp_eventdata = eventdata; |
59 tmp_eventdata = eventdata; |
| 49 tmp_eventdata_type = type; |
60 tmp_eventdata_type = type; |
| 50 } |
61 } |
| 51 |
62 |
| 206 UiMenuItemList*item = malloc(sizeof(UiMenuItemList)); |
217 UiMenuItemList*item = malloc(sizeof(UiMenuItemList)); |
| 207 mitem_set_id(&item->item); |
218 mitem_set_id(&item->item); |
| 208 item->item.prev = NULL; |
219 item->item.prev = NULL; |
| 209 item->item.next = NULL; |
220 item->item.next = NULL; |
| 210 item->item.type = UI_MENU_ITEM_LIST; |
221 item->item.type = UI_MENU_ITEM_LIST; |
| 211 item->getvalue = args->getvalue; |
222 if(args->getvalue2) { |
| |
223 item->getvalue = args->getvalue2; |
| |
224 item->getvaluedata = args->getvaluedata; |
| |
225 } else if(args->getvalue) { |
| |
226 item->getvalue = getvalue_wrapper; |
| |
227 item->getvaluedata = (void*)args->getvalue; |
| |
228 } else { |
| |
229 item->getvalue = str_getvalue; |
| |
230 } |
| 212 item->callback = args->onselect; |
231 item->callback = args->onselect; |
| 213 item->userdata = args->onselectdata; |
232 item->userdata = args->onselectdata; |
| 214 item->varname = nl_strdup(args->varname); |
233 item->varname = nl_strdup(args->varname); |
| 215 item->addseparator = args->addseparator; |
234 item->addseparator = args->addseparator; |
| 216 |
235 |
| 221 UiMenuItemList* item = malloc(sizeof(UiMenuItemList)); |
240 UiMenuItemList* item = malloc(sizeof(UiMenuItemList)); |
| 222 mitem_set_id(&item->item); |
241 mitem_set_id(&item->item); |
| 223 item->item.prev = NULL; |
242 item->item.prev = NULL; |
| 224 item->item.next = NULL; |
243 item->item.next = NULL; |
| 225 item->item.type = UI_MENU_CHECKITEM_LIST; |
244 item->item.type = UI_MENU_CHECKITEM_LIST; |
| |
245 if(args->getvalue2) { |
| |
246 item->getvalue = args->getvalue2; |
| |
247 item->getvaluedata = args->getvaluedata; |
| |
248 } else if(args->getvalue) { |
| |
249 item->getvalue = getvalue_wrapper; |
| |
250 item->getvaluedata = (void*)args->getvalue; |
| |
251 } else { |
| |
252 item->getvalue = str_getvalue; |
| |
253 } |
| 226 item->callback = args->onselect; |
254 item->callback = args->onselect; |
| 227 item->userdata = args->onselectdata; |
255 item->userdata = args->onselectdata; |
| 228 item->varname = nl_strdup(args->varname); |
256 item->varname = nl_strdup(args->varname); |
| 229 |
257 |
| 230 add_item((UiMenuItemI*)item); |
258 add_item((UiMenuItemI*)item); |
| 234 UiMenuItemList* item = malloc(sizeof(UiMenuItemList)); |
262 UiMenuItemList* item = malloc(sizeof(UiMenuItemList)); |
| 235 mitem_set_id(&item->item); |
263 mitem_set_id(&item->item); |
| 236 item->item.prev = NULL; |
264 item->item.prev = NULL; |
| 237 item->item.next = NULL; |
265 item->item.next = NULL; |
| 238 item->item.type = UI_MENU_RADIOITEM_LIST; |
266 item->item.type = UI_MENU_RADIOITEM_LIST; |
| |
267 if(args->getvalue2) { |
| |
268 item->getvalue = args->getvalue2; |
| |
269 item->getvaluedata = args->getvaluedata; |
| |
270 } else if(args->getvalue) { |
| |
271 item->getvalue = getvalue_wrapper; |
| |
272 item->getvaluedata = (void*)args->getvalue; |
| |
273 } else { |
| |
274 item->getvalue = str_getvalue; |
| |
275 } |
| 239 item->callback = args->onselect; |
276 item->callback = args->onselect; |
| 240 item->userdata = args->onselectdata; |
277 item->userdata = args->onselectdata; |
| 241 item->varname = nl_strdup(args->varname); |
278 item->varname = nl_strdup(args->varname); |
| 242 |
279 |
| 243 add_item((UiMenuItemI*)item); |
280 add_item((UiMenuItemI*)item); |