diff -r dd0ae1c62a72 -r 2e384acc89a6 application/main.c --- a/application/main.c Thu Nov 16 12:04:10 2017 +0100 +++ b/application/main.c Sun Nov 19 09:00:16 2017 +0100 @@ -82,6 +82,16 @@ fflush(stdout); } +void list_data_get(UiEvent *event, UiSelection *selection, UiList *l, int i) { + ui_selection_settext(selection, "Hello World!", -1); +} + +void list_drop(UiEvent *event, UiSelection *selection, UiList *l, int i) { + char *text = ui_selection_gettext(selection); + printf("dnd drop: {%s}\n", text); + free(text); +} + Document* create_doc(char *str) { Document *doc = ui_document_new(sizeof(Document)); UiContext *ctx = ui_document_context(doc); @@ -163,8 +173,11 @@ UiModel *model = ui_model(obj->ctx, UI_ICON_TEXT, "name", UI_STRING, "desc", -1); model->getvalue = (ui_getvaluefunc)model_get; + model->drop = list_drop; + model->data_get = list_data_get; UiListCallbacks cb = {NULL, NULL, NULL}; - ui_table_nv(obj, "list", model, cb); + UIWIDGET table = ui_table_nv(obj, "list", model, cb); + ui_table_dragsource(table, 0, "text/plain", NULL); //ui_spinner_setrange(ui_spinnerf_nv(obj, 1, 0, "d"), 0, 1000); ui_spinnerr_nv(obj, "r");