| 63 void switch_document(UiEvent *event, void *userdata) { |
63 void switch_document(UiEvent *event, void *userdata) { |
| 64 MainWindow *wdata = event->window; |
64 MainWindow *wdata = event->window; |
| 65 if(event->document) { |
65 if(event->document) { |
| 66 ui_detach_document(event->obj->ctx, event->document); |
66 ui_detach_document(event->obj->ctx, event->document); |
| 67 } |
67 } |
| |
68 printf("selection: %d\n", event->intval); |
| 68 Document *doc = ui_list_get(wdata->doclist, event->intval); |
69 Document *doc = ui_list_get(wdata->doclist, event->intval); |
| 69 if(doc) { |
70 if(doc) { |
| |
71 char *s1 = ui_get(doc->id); |
| |
72 char *s2 = ui_get(doc->name); |
| |
73 printf("doc %s - %s\n", s1, s2); |
| 70 ui_attach_document(event->obj->ctx, doc); |
74 ui_attach_document(event->obj->ctx, doc); |
| |
75 |
| 71 } |
76 } |
| |
77 //UiListSelection sel = ui_list_getselection(wdata->doclist); |
| |
78 //printf("sel: %d\n", sel.rows[0]); |
| |
79 //ui_listselection_free(sel); |
| 72 } |
80 } |
| 73 |
81 |
| 74 void* doclist_get_value(void *elm, int col) { |
82 void* doclist_get_value(void *elm, int col) { |
| 75 Document *doc = elm; |
83 Document *doc = elm; |
| 76 return ui_get(doc->id); |
84 return ui_get(doc->id); |
| 90 |
98 |
| 91 ui_rlabel(obj, .label = "Name:"); |
99 ui_rlabel(obj, .label = "Name:"); |
| 92 ui_llabel(obj, .varname = "name"); |
100 ui_llabel(obj, .varname = "name"); |
| 93 ui_newline(obj); |
101 ui_newline(obj); |
| 94 |
102 |
| 95 ui_combobox(obj, .varname = "doclist", .colspan = 2, .onactivate = switch_document, .getvalue = doclist_get_value); |
103 ui_combobox(obj, .varname = "doclist", .colspan = 2, .onactivate = switch_document, .getvalue = doclist_get_value, .colspan = 2, .hfill = TRUE); |
| 96 ui_newline(obj); |
104 ui_newline(obj); |
| 97 |
105 |
| 98 ui_frame(obj, .label = "Document", .colspan = 2, .fill = TRUE) { |
106 ui_frame(obj, .label = "Document", .colspan = 2, .fill = TRUE) { |
| 99 ui_grid(obj, .margin = 10, .columnspacing = 10, .rowspacing = 10) { |
107 ui_grid(obj, .margin = 10, .columnspacing = 10, .rowspacing = 10) { |
| 100 ui_rlabel(obj, .label = "Name:", .vfill = TRUE); |
108 ui_rlabel(obj, .label = "Name:", .vfill = TRUE); |
| 106 for(int i=0;i<10;i++) { |
114 for(int i=0;i<10;i++) { |
| 107 Document *doc = document_create(i); |
115 Document *doc = document_create(i); |
| 108 ui_list_append(wdata->doclist, doc); |
116 ui_list_append(wdata->doclist, doc); |
| 109 } |
117 } |
| 110 ui_list_update(wdata->doclist); |
118 ui_list_update(wdata->doclist); |
| |
119 ui_list_setselection(wdata->doclist, 0); |
| 111 Document *doc = ui_list_get(wdata->doclist, 0); |
120 Document *doc = ui_list_get(wdata->doclist, 0); |
| 112 ui_attach_document(obj->ctx, doc); |
121 ui_attach_document(obj->ctx, doc); |
| 113 |
122 |
| 114 |
123 |
| 115 ui_show(obj); |
124 ui_show(obj); |