| 135 (XtCallbackProc)ui_listview_activate, |
135 (XtCallbackProc)ui_listview_activate, |
| 136 listview); |
136 listview); |
| 137 XtAddCallback( |
137 XtAddCallback( |
| 138 widget, |
138 widget, |
| 139 XmNextendedSelectionCallback, |
139 XmNextendedSelectionCallback, |
| 140 (XtCallbackProc)ui_listview_selection, |
140 (XtCallbackProc)ui_listview_selection_changed, |
| 141 listview); |
141 listview); |
| 142 XtAddCallback( |
142 XtAddCallback( |
| 143 widget, |
143 widget, |
| 144 XmNsingleSelectionCallback, |
144 XmNsingleSelectionCallback, |
| 145 (XtCallbackProc)ui_listview_selection, |
145 (XtCallbackProc)ui_listview_selection_changed, |
| 146 listview); |
146 listview); |
| 147 |
147 |
| 148 return widget; |
148 return widget; |
| |
149 } |
| |
150 |
| |
151 void ui_listview_select(UIWIDGET listview, int index) { |
| |
152 XmListDeselectAllItems(listview); |
| |
153 XmListSelectPos(listview, index+1, False); |
| |
154 } |
| |
155 |
| |
156 int ui_listview_selection(UIWIDGET listview) { |
| |
157 int *selpositions = NULL; |
| |
158 int numpos = 0; |
| |
159 XtVaGetValues(listview, XmNselectedPositions, &selpositions, XmNselectedPositionCount, &numpos, NULL); |
| |
160 return numpos > 0 ? selpositions[0] : -1; |
| 149 } |
161 } |
| 150 |
162 |
| 151 void ui_listview_destroy(Widget w, UiListView *listview, XtPointer d) { |
163 void ui_listview_destroy(Widget w, UiListView *listview, XtPointer d) { |
| 152 ui_listselection_free(listview->current_selection); |
164 ui_listselection_free(listview->current_selection); |
| 153 if(listview->model) { |
165 if(listview->model) { |
| 189 if(listview->onactivate) { |
201 if(listview->onactivate) { |
| 190 list_callback(listview->obj, listview->current_selection, listview->onactivate, listview->onactivatedata); |
202 list_callback(listview->obj, listview->current_selection, listview->onactivate, listview->onactivatedata); |
| 191 } |
203 } |
| 192 } |
204 } |
| 193 |
205 |
| 194 void ui_listview_selection(Widget w, UiListView *listview, XmListCallbackStruct *cb) { |
206 void ui_listview_selection_changed(Widget w, UiListView *listview, XmListCallbackStruct *cb) { |
| 195 listview_save_selection(listview, cb); |
207 listview_save_selection(listview, cb); |
| 196 if(listview->onselection) { |
208 if(listview->onselection) { |
| 197 list_callback(listview->obj, listview->current_selection, listview->onselection, listview->onselectiondata); |
209 list_callback(listview->obj, listview->current_selection, listview->onselection, listview->onselectiondata); |
| 198 } |
210 } |
| 199 } |
211 } |
| 271 return column == 0 ? elm : NULL; |
283 return column == 0 ? elm : NULL; |
| 272 } |
284 } |
| 273 |
285 |
| 274 /* ------------------------------- Drop Down ------------------------------- */ |
286 /* ------------------------------- Drop Down ------------------------------- */ |
| 275 |
287 |
| 276 static void ui_dropdown_selection( |
288 static void ui_dropdown_selection_changed( |
| 277 Widget w, |
289 Widget w, |
| 278 UiListView *listview, |
290 UiListView *listview, |
| 279 XmComboBoxCallbackStruct *cb) |
291 XmComboBoxCallbackStruct *cb) |
| 280 { |
292 { |
| 281 int index = cb->item_position; |
293 int index = cb->item_position; |