diff -r ce342364fad5 -r c284c15509a8 ui/motif/tree.c --- a/ui/motif/tree.c Wed Jul 13 16:40:59 2016 +0200 +++ b/ui/motif/tree.c Sat Sep 17 19:32:44 2016 +0200 @@ -118,6 +118,15 @@ data = model->next(model); } + UiTableView *tableview = ucx_mempool_malloc(obj->ctx->mempool, sizeof(UiTableView)); + tableview->widget = container; + tableview->list = model; + tableview->modelinfo = modelinfo; + model->observers = ui_add_observer( + model->observers, + (ui_callback)ui_table_update, + tableview); + // set new XmContainer width XtVaSetValues(container, XmNwidth, width, NULL); @@ -130,6 +139,37 @@ return scrollw; } +void ui_table_update(UiEvent *event, UiTableView *view) { + // clear container + Widget *children; + int nc; + + XtVaGetValues( + view->widget, + XmNchildren, + &children, + XmNnumChildren, + &nc, + NULL); + + for(int i=0;ilist; + + void *data = model->first(model); + int width = 0; + while(data) { + int w = ui_add_icon_gadget(view->widget, view->modelinfo, data); + if(w > width) { + width = w; + } + data = model->next(model); + } + +} + #define UI_COL_CHAR_WIDTH 12 int ui_add_icon_gadget(Widget container, UiModelInfo *modelinfo, void *data) {