ui/gtk/list.c

changeset 697
d254b3ec7736
parent 696
68f513430e5a
child 698
3496032f0dd0
equal deleted inserted replaced
696:68f513430e5a 697:d254b3ec7736
2025 return; 2025 return;
2026 } 2026 }
2027 2027
2028 size_t index = 0; 2028 size_t index = 0;
2029 void *elm = list->first(list); 2029 void *elm = list->first(list);
2030
2031 if(!elm && sublist->header) {
2032 // empty row for header
2033 GtkWidget *row = gtk_list_box_row_new();
2034 cxListAdd(sublist->widgets, row);
2035 g_object_set_data(G_OBJECT(row), "ui_listbox", listbox);
2036 g_object_set_data(G_OBJECT(row), "ui_listbox_sublist", sublist);
2037 intptr_t rowindex = listbox_insert_index + index;
2038 g_object_set_data(G_OBJECT(row), "ui_listbox_row_index", (gpointer)rowindex);
2039 gtk_list_box_insert(listbox->listbox, row, listbox_insert_index + index);
2040 sublist->numitems = 1;
2041 return;
2042 }
2043
2030 while(elm) { 2044 while(elm) {
2031 UiSubListItem item = { NULL, NULL, NULL, NULL, NULL, NULL }; 2045 UiSubListItem item = { NULL, NULL, NULL, NULL, NULL, NULL };
2032 if(listbox->getvalue) { 2046 if(listbox->getvalue) {
2033 listbox->getvalue(list, sublist->userdata, elm, index, &item, listbox->getvaluedata); 2047 listbox->getvalue(list, sublist->userdata, elm, index, &item, listbox->getvaluedata);
2034 } else { 2048 } else {
2069 } 2083 }
2070 2084
2071 void ui_listbox_list_update(UiList *list, int i) { 2085 void ui_listbox_list_update(UiList *list, int i) {
2072 UiListBoxSubList *sublist = list->obj; 2086 UiListBoxSubList *sublist = list->obj;
2073 ui_listbox_update_sublist(sublist->listbox, sublist, sublist->startpos); 2087 ui_listbox_update_sublist(sublist->listbox, sublist, sublist->startpos);
2088 size_t pos = 0;
2089 CxIterator it = cxListIterator(sublist->listbox->sublists);
2090 cx_foreach(UiListBoxSubList *, ls, it) {
2091 ls->startpos = pos;
2092 pos += sublist->numitems;
2093 }
2094
2074 } 2095 }
2075 2096
2076 void ui_listbox_row_activate(GtkListBox *self, GtkListBoxRow *row, gpointer user_data) { 2097 void ui_listbox_row_activate(GtkListBox *self, GtkListBoxRow *row, gpointer user_data) {
2077 UiEventDataExt *data = g_object_get_data(G_OBJECT(row), "ui-listbox-row-eventdata"); 2098 UiEventDataExt *data = g_object_get_data(G_OBJECT(row), "ui-listbox-row-eventdata");
2078 if(!data) { 2099 if(!data) {

mercurial