| 679 if(model) { |
679 if(model) { |
| 680 columns = model->columns; |
680 columns = model->columns; |
| 681 ui_model_add_observer(model, ui_listview_update_model, tableview); |
681 ui_model_add_observer(model, ui_listview_update_model, tableview); |
| 682 } |
682 } |
| 683 |
683 |
| 684 tableview->columns = calloc(columns, sizeof(UiColData)); |
684 tableview->columns = calloc(columns, sizeof(int)); |
| 685 tableview->numcolumns = columns; |
685 tableview->numcolumns = columns; |
| 686 |
686 |
| 687 tableview->bound_rows = cxHashMapCreate(NULL, CX_STORE_POINTERS, 128); |
687 tableview->bound_rows = cxHashMapCreate(NULL, CX_STORE_POINTERS, 128); |
| 688 tableview->bound_rows->collection.simple_destructor = (cx_destructor_func)free; |
688 tableview->bound_rows->collection.simple_destructor = (cx_destructor_func)free; |
| 689 |
689 |
| 912 } |
912 } |
| 913 |
913 |
| 914 CxHashKey row_key = cx_hash_key(&i, sizeof(int)); |
914 CxHashKey row_key = cx_hash_key(&i, sizeof(int)); |
| 915 UiRowItems *row = cxMapGet(view->bound_rows, row_key); |
915 UiRowItems *row = cxMapGet(view->bound_rows, row_key); |
| 916 if(row) { |
916 if(row) { |
| |
917 UiColData coldata; |
| |
918 coldata.listview = view; |
| 917 for(int c=0;c<view->numcolumns;c++) { |
919 for(int c=0;c<view->numcolumns;c++) { |
| 918 if(row->items[c] != NULL) { |
920 if(row->items[c] != NULL) { |
| 919 column_factory_bind(NULL, row->items[c], &view->columns[c]); |
921 coldata.column = c; |
| |
922 column_factory_bind(NULL, row->items[c], &coldata); |
| 920 } |
923 } |
| 921 } |
924 } |
| 922 } |
925 } |
| 923 } |
926 } |
| 924 } |
927 } |