| 2298 ui_listbox_update(uilistbox, 0, cxListSize(uilistbox->sublists)); |
2298 ui_listbox_update(uilistbox, 0, cxListSize(uilistbox->sublists)); |
| 2299 } |
2299 } |
| 2300 |
2300 |
| 2301 void ui_listbox_dynamic_setselection(UiList *list, UiListSelection sel) { |
2301 void ui_listbox_dynamic_setselection(UiList *list, UiListSelection sel) { |
| 2302 UiListBox *uilistbox = list->obj; |
2302 UiListBox *uilistbox = list->obj; |
| |
2303 gtk_list_box_unselect_all(uilistbox->listbox); |
| 2303 if(sel.count > 0) { |
2304 if(sel.count > 0) { |
| 2304 GtkListBoxRow *row = gtk_list_box_get_row_at_index(uilistbox->listbox, sel.rows[0]); |
2305 int index = sel.rows[0]; |
| 2305 if(row) { |
2306 if(index >= 0) { |
| 2306 gtk_list_box_select_row(uilistbox->listbox, row); |
2307 GtkListBoxRow *row = gtk_list_box_get_row_at_index(uilistbox->listbox, index); |
| 2307 } |
2308 if(row) { |
| 2308 } else { |
2309 gtk_list_box_select_row(uilistbox->listbox, row); |
| 2309 gtk_list_box_unselect_all(uilistbox->listbox); |
2310 } |
| |
2311 } |
| 2310 } |
2312 } |
| 2311 } |
2313 } |
| 2312 |
2314 |
| 2313 UiListSelection ui_listbox_dynamic_getselection(UiList *list) { |
2315 UiListSelection ui_listbox_dynamic_getselection(UiList *list) { |
| 2314 UiListSelection sel = { 0, NULL }; |
2316 UiListSelection sel = { 0, NULL }; |
| 2688 } |
2690 } |
| 2689 |
2691 |
| 2690 void ui_listbox_list_setselection(UiList *list, UiListSelection sel) { |
2692 void ui_listbox_list_setselection(UiList *list, UiListSelection sel) { |
| 2691 UiListBoxSubList *sublist = list->obj; |
2693 UiListBoxSubList *sublist = list->obj; |
| 2692 UiListBox *uilistbox = sublist->listbox; |
2694 UiListBox *uilistbox = sublist->listbox; |
| |
2695 gtk_list_box_unselect_all(uilistbox->listbox); |
| 2693 if(sel.count > 0) { |
2696 if(sel.count > 0) { |
| 2694 int index = sel.rows[0]; |
2697 int index = sel.rows[0]; |
| 2695 if(index < sublist->numitems) { |
2698 if(index >= 0 && index < sublist->numitems) { |
| 2696 int global_index = sublist->startpos + index; |
2699 int global_index = sublist->startpos + index; |
| 2697 GtkListBoxRow *row = gtk_list_box_get_row_at_index(uilistbox->listbox, global_index); |
2700 GtkListBoxRow *row = gtk_list_box_get_row_at_index(uilistbox->listbox, global_index); |
| 2698 if(row) { |
2701 if(row) { |
| 2699 gtk_list_box_select_row(uilistbox->listbox, row); |
2702 gtk_list_box_select_row(uilistbox->listbox, row); |
| 2700 } |
2703 } |
| 2701 } |
2704 } |
| 2702 } else { |
|
| 2703 gtk_list_box_unselect_all(uilistbox->listbox); |
|
| 2704 } |
2705 } |
| 2705 } |
2706 } |
| 2706 |
2707 |
| 2707 UiListSelection ui_listbox_list_getselection(UiList *list) { |
2708 UiListSelection ui_listbox_list_getselection(UiList *list) { |
| 2708 UiListSelection sel = { 0, NULL }; |
2709 UiListSelection sel = { 0, NULL }; |