203 list->update = ui_listview_update; |
203 list->update = ui_listview_update; |
204 list->getselection = ui_listview_getselection; |
204 list->getselection = ui_listview_getselection; |
205 list->obj = listview; |
205 list->obj = listview; |
206 |
206 |
207 // add callback |
207 // add callback |
|
208 UiTreeEventData *event = malloc(sizeof(UiTreeEventData)); |
|
209 event->obj = obj; |
|
210 event->activate = args.onactivate; |
|
211 event->activatedata = args.onactivatedata; |
|
212 event->selection = args.onselection; |
|
213 event->selectiondata = args.onselectiondata; |
|
214 g_signal_connect( |
|
215 view, |
|
216 "destroy", |
|
217 G_CALLBACK(ui_destroy_userdata), |
|
218 event); |
|
219 |
208 if(args.onactivate) { |
220 if(args.onactivate) { |
209 UiTreeEventData *event = ui_malloc(obj->ctx, sizeof(UiTreeEventData)); |
|
210 event->obj = obj; |
|
211 event->activatedata = args.onactivatedata; |
|
212 event->activate = args.onactivate; |
|
213 event->selection = NULL; |
|
214 |
|
215 g_signal_connect( |
221 g_signal_connect( |
216 view, |
222 view, |
217 "row-activated", |
223 "row-activated", |
218 G_CALLBACK(ui_listview_activate_event), |
224 G_CALLBACK(ui_listview_activate_event), |
219 event); |
225 event); |
220 } |
226 } |
|
227 if(args.onselection) { |
|
228 GtkTreeSelection *selection = gtk_tree_view_get_selection( |
|
229 GTK_TREE_VIEW(view)); |
|
230 g_signal_connect( |
|
231 selection, |
|
232 "changed", |
|
233 G_CALLBACK(ui_listview_selection_event), |
|
234 event); |
|
235 } |
|
236 |
221 |
237 |
222 // add widget to the current container |
238 // add widget to the current container |
223 GtkWidget *scroll_area = SCROLLEDWINDOW_NEW(); |
239 GtkWidget *scroll_area = SCROLLEDWINDOW_NEW(); |
224 gtk_scrolled_window_set_policy( |
240 gtk_scrolled_window_set_policy( |
225 GTK_SCROLLED_WINDOW(scroll_area), |
241 GTK_SCROLLED_WINDOW(scroll_area), |