ui/motif/list.c

changeset 912
06c37c12d149
parent 911
c8e1d40eeab6
child 964
c563220d9aea
equal deleted inserted replaced
911:c8e1d40eeab6 912:06c37c12d149
215 XtFree((char *)items); 215 XtFree((char *)items);
216 } 216 }
217 217
218 UiListSelection ui_listview_getselection(UiList *list) { 218 UiListSelection ui_listview_getselection(UiList *list) {
219 UiListView *listview = list->obj; 219 UiListView *listview = list->obj;
220 UiListSelection sel = { listview->current_selection.count, NULL }; 220 UiListSelection sel = { 0, NULL };
221 if(sel.count > 0) { 221 int *selpositions = NULL;
222 sel.rows = calloc(sel.count, sizeof(int)); 222 int numpos = 0;
223 memcpy(sel.rows, listview->current_selection.rows, sel.count*sizeof(int)); 223 XtVaGetValues(listview->widget, XmNselectedPositions, &selpositions, XmNselectedPositionCount, &numpos, NULL);
224 if(numpos > 0) {
225 sel.rows = calloc(numpos, sizeof(int));
226 sel.count = numpos;
227 memcpy(sel.rows, selpositions, numpos*sizeof(int));
228 // motif selected positions start at index 1 -> translate positions
229 for(int i=0;i<numpos;i++) {
230 sel.rows[i]--;
231 }
224 } 232 }
225 return sel; 233 return sel;
226 } 234 }
227 235
228 void ui_listview_setselection(UiList *list, UiListSelection selection) { 236 void ui_listview_setselection(UiList *list, UiListSelection selection) {

mercurial