ui/gtk/list.c

branch
newapi
changeset 362
59e94e97ba68
parent 360
681b930abe84
child 363
cd221f1e9ff6
equal deleted inserted replaced
361:16c8b9ea3aa3 362:59e94e97ba68
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),

mercurial