41 void* ui_strmodel_getvalue(void *elm, int column) { |
41 void* ui_strmodel_getvalue(void *elm, int column) { |
42 return column == 0 ? elm : NULL; |
42 return column == 0 ? elm : NULL; |
43 } |
43 } |
44 |
44 |
45 |
45 |
46 UIWIDGET ui_listview_str(UiObject *obj, UiList *list, ui_callback f, void *udata) { |
46 |
47 return ui_listview(obj, list, ui_strmodel_getvalue, f, udata); |
|
48 } |
|
49 |
47 |
50 UIWIDGET ui_listview_var(UiObject *obj, UiVar *var, ui_getvaluefunc getvalue, ui_callback f, void *udata) { |
48 UIWIDGET ui_listview_var(UiObject *obj, UiVar *var, ui_getvaluefunc getvalue, ui_callback f, void *udata) { |
51 // create treeview |
49 // create treeview |
52 GtkWidget *view = gtk_tree_view_new(); |
50 GtkWidget *view = gtk_tree_view_new(); |
53 GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); |
51 GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); |
117 ct->current = view; |
115 ct->current = view; |
118 |
116 |
119 return scroll_area; |
117 return scroll_area; |
120 } |
118 } |
121 |
119 |
122 UIWIDGET ui_listview(UiObject *obj, UiList *list, ui_getvaluefunc getvalue, ui_callback f, void *udata) { |
120 UIWIDGET ui_listview_deprecated(UiObject *obj, UiList *list, ui_getvaluefunc getvalue, ui_callback f, void *udata) { |
123 UiVar *var = malloc(sizeof(UiVar)); |
121 UiVar *var = malloc(sizeof(UiVar)); |
124 var->value = list; |
122 var->value = list; |
125 var->type = UI_VAR_SPECIAL; |
123 var->type = UI_VAR_SPECIAL; |
126 return ui_listview_var(obj, var, getvalue, f, udata); |
124 return ui_listview_var(obj, var, getvalue, f, udata); |
127 } |
125 } |
268 ct->current = view; |
266 ct->current = view; |
269 |
267 |
270 return scroll_area; |
268 return scroll_area; |
271 } |
269 } |
272 |
270 |
273 UIWIDGET ui_table(UiObject *obj, UiList *list, UiModel *model, UiListCallbacks cb) { |
271 UIWIDGET ui_table_deprecated(UiObject *obj, UiList *list, UiModel *model, UiListCallbacks cb) { |
274 UiVar *var = malloc(sizeof(UiVar)); |
272 UiVar *var = malloc(sizeof(UiVar)); |
275 var->value = list; |
273 var->value = list; |
276 var->type = UI_VAR_SPECIAL; |
274 var->type = UI_VAR_SPECIAL; |
277 return ui_table_var(obj, var, model, cb); |
275 return ui_table_var(obj, var, model, cb); |
278 } |
276 } |
327 va_list ap; |
325 va_list ap; |
328 va_start(ap, target0); |
326 va_start(ap, target0); |
329 int nelm; |
327 int nelm; |
330 char **targets = targets2array(target0, ap, &nelm); |
328 char **targets = targets2array(target0, ap, &nelm); |
331 va_end(ap); |
329 va_end(ap); |
332 ui_table_dragsource_a(tablewidget, actions, targets, nelm); |
330 |
|
331 // disabled |
|
332 //ui_table_dragsource_a(tablewidget, actions, targets, nelm); |
|
333 |
333 free(targets); |
334 free(targets); |
334 } |
335 } |
335 |
336 |
|
337 /* |
336 void ui_table_dragsource_a(UIWIDGET tablewidget, int actions, char **targets, int nelm) { |
338 void ui_table_dragsource_a(UIWIDGET tablewidget, int actions, char **targets, int nelm) { |
337 GtkTargetEntry* t = targetstr2gtktargets(targets, nelm); |
339 GtkTargetEntry* t = targetstr2gtktargets(targets, nelm); |
338 gtk_tree_view_enable_model_drag_source( |
340 gtk_tree_view_enable_model_drag_source( |
339 GTK_TREE_VIEW(ui_get_tree_widget(tablewidget)), |
341 GTK_TREE_VIEW(ui_get_tree_widget(tablewidget)), |
340 GDK_BUTTON1_MASK, |
342 GDK_BUTTON1_MASK, |
342 nelm, |
344 nelm, |
343 GDK_ACTION_COPY|GDK_ACTION_MOVE|GDK_ACTION_LINK); |
345 GDK_ACTION_COPY|GDK_ACTION_MOVE|GDK_ACTION_LINK); |
344 free(t); |
346 free(t); |
345 } |
347 } |
346 |
348 |
|
349 |
347 void ui_table_dragdest(UIWIDGET tablewidget, int actions, char *target0, ...) { |
350 void ui_table_dragdest(UIWIDGET tablewidget, int actions, char *target0, ...) { |
348 va_list ap; |
351 va_list ap; |
349 va_start(ap, target0); |
352 va_start(ap, target0); |
350 int nelm; |
353 int nelm; |
351 char **targets = targets2array(target0, ap, &nelm); |
354 char **targets = targets2array(target0, ap, &nelm); |
361 t, |
364 t, |
362 nelm, |
365 nelm, |
363 GDK_ACTION_COPY|GDK_ACTION_MOVE|GDK_ACTION_LINK); |
366 GDK_ACTION_COPY|GDK_ACTION_MOVE|GDK_ACTION_LINK); |
364 free(t); |
367 free(t); |
365 } |
368 } |
366 |
369 */ |
|
370 |
367 void ui_listview_update(UiList *list, int i) { |
371 void ui_listview_update(UiList *list, int i) { |
368 UiListView *view = list->obj; |
372 UiListView *view = list->obj; |
369 UiListModel *model = ui_list_model_new(view->obj, view->var, view->model); |
373 UiListModel *model = ui_list_model_new(view->obj, view->var, view->model); |
370 gtk_tree_view_set_model(GTK_TREE_VIEW(view->widget), GTK_TREE_MODEL(model)); |
374 gtk_tree_view_set_model(GTK_TREE_VIEW(view->widget), GTK_TREE_MODEL(model)); |
371 g_object_unref(G_OBJECT(model)); |
375 g_object_unref(G_OBJECT(model)); |
462 } |
466 } |
463 |
467 |
464 |
468 |
465 /* --------------------------- ComboBox --------------------------- */ |
469 /* --------------------------- ComboBox --------------------------- */ |
466 |
470 |
467 UIWIDGET ui_combobox_str(UiObject *obj, UiList *list, ui_callback f, void *udata) { |
471 UIWIDGET ui_combobox_deprecated(UiObject *obj, UiList *list, ui_getvaluefunc getvalue, ui_callback f, void *udata) { |
468 return ui_combobox(obj, list, ui_strmodel_getvalue, f, udata); |
|
469 } |
|
470 |
|
471 UIWIDGET ui_combobox(UiObject *obj, UiList *list, ui_getvaluefunc getvalue, ui_callback f, void *udata) { |
|
472 UiVar *var = malloc(sizeof(UiVar)); |
472 UiVar *var = malloc(sizeof(UiVar)); |
473 var->value = list; |
473 var->value = list; |
474 var->type = UI_VAR_SPECIAL; |
474 var->type = UI_VAR_SPECIAL; |
475 return ui_combobox_var(obj, var, getvalue, f, udata); |
475 return ui_combobox_var(obj, var, getvalue, f, udata); |
476 } |
476 } |