| 1833 |
1833 |
| 1834 UiListBox *uilistbox = malloc(sizeof(UiListBox)); |
1834 UiListBox *uilistbox = malloc(sizeof(UiListBox)); |
| 1835 uilistbox->obj = obj; |
1835 uilistbox->obj = obj; |
| 1836 uilistbox->listbox = GTK_LIST_BOX(listbox); |
1836 uilistbox->listbox = GTK_LIST_BOX(listbox); |
| 1837 uilistbox->getvalue = args->getvalue; |
1837 uilistbox->getvalue = args->getvalue; |
| |
1838 uilistbox->getvaluedata = args->getvaluedata; |
| 1838 uilistbox->onactivate = args->onactivate; |
1839 uilistbox->onactivate = args->onactivate; |
| 1839 uilistbox->onactivatedata = args->onactivatedata; |
1840 uilistbox->onactivatedata = args->onactivatedata; |
| 1840 uilistbox->onbuttonclick = args->onbuttonclick; |
1841 uilistbox->onbuttonclick = args->onbuttonclick; |
| 1841 uilistbox->onbuttonclickdata = args->onbuttonclickdata; |
1842 uilistbox->onbuttonclickdata = args->onbuttonclickdata; |
| 1842 uilistbox->sublists = cxArrayListCreateSimple(sizeof(UiListBoxSubList), 4); |
1843 uilistbox->sublists = cxArrayListCreateSimple(sizeof(UiListBoxSubList), 4); |
| 2005 |
2006 |
| 2006 size_t index = 0; |
2007 size_t index = 0; |
| 2007 void *elm = list->first(list); |
2008 void *elm = list->first(list); |
| 2008 while(elm) { |
2009 while(elm) { |
| 2009 UiSubListItem item = { NULL, NULL, NULL, NULL, NULL, NULL }; |
2010 UiSubListItem item = { NULL, NULL, NULL, NULL, NULL, NULL }; |
| 2010 listbox->getvalue(sublist->userdata, elm, index, &item); |
2011 listbox->getvalue(sublist->userdata, elm, index, &item, listbox->getvaluedata); |
| 2011 |
2012 |
| 2012 // create listbox item |
2013 // create listbox item |
| 2013 GtkWidget *row = create_listbox_row(listbox, sublist, &item, (int)index); |
2014 GtkWidget *row = create_listbox_row(listbox, sublist, &item, (int)index); |
| 2014 if(index == 0) { |
2015 if(index == 0) { |
| 2015 // first row in the sublist, set ui_listbox data to the row |
2016 // first row in the sublist, set ui_listbox data to the row |