| 204 static void ui_dropdown_selection( |
204 static void ui_dropdown_selection( |
| 205 Widget w, |
205 Widget w, |
| 206 UiListView *listview, |
206 UiListView *listview, |
| 207 XmComboBoxCallbackStruct *cb) |
207 XmComboBoxCallbackStruct *cb) |
| 208 { |
208 { |
| 209 UiListSelection sel = { 0, NULL }; |
209 int index = cb->item_position; |
| 210 if(cb->item_position > 0) { |
210 void *elm = NULL; |
| 211 sel.count = 1; |
211 if(listview->var) { |
| 212 sel.rows = malloc(sizeof(int)); |
212 UiList *list = listview->var->value; |
| 213 sel.rows[0] = cb->item_position-1; |
213 elm = ui_list_get(list, index); |
| 214 } |
214 } |
| |
215 |
| 215 UiEvent event; |
216 UiEvent event; |
| 216 event.obj = listview->obj; |
217 event.obj = listview->obj; |
| 217 event.window = event.obj->window; |
218 event.window = event.obj->window; |
| 218 event.document = event.obj->ctx->document; |
219 event.document = event.obj->ctx->document; |
| 219 event.eventdata = &sel; |
220 event.eventdata = elm; |
| 220 event.intval = 0; |
221 event.intval = index; |
| 221 if(listview->onactivate) { |
222 if(listview->onactivate) { |
| 222 listview->onactivate(&event, listview->onactivatedata); |
223 listview->onactivate(&event, listview->onactivatedata); |
| 223 } |
224 } |
| 224 if(listview->onselection) { |
225 if(listview->onselection) { |
| 225 listview->onselection(&event, listview->onselectiondata); |
226 listview->onselection(&event, listview->onselectiondata); |