| 1194 |
1194 |
| 1195 static void action_button(UiEvent *event, void *data) { |
1195 static void action_button(UiEvent *event, void *data) { |
| 1196 printf("button clicked\n"); |
1196 printf("button clicked\n"); |
| 1197 } |
1197 } |
| 1198 |
1198 |
| |
1199 typedef struct Person { |
| |
1200 char *name; |
| |
1201 char *email; |
| |
1202 } Person; |
| |
1203 |
| |
1204 Person person1 = { "Alice", "alice@localhost" }; |
| |
1205 Person person2 = { "Bob", "bob@localhost" }; |
| |
1206 |
| |
1207 void* person_getvalue(void *elm, int col) { |
| |
1208 Person *p = (Person *) elm; |
| |
1209 if (col == 0) { |
| |
1210 return p->name; |
| |
1211 } else { |
| |
1212 return p->email; |
| |
1213 } |
| |
1214 } |
| |
1215 |
| 1199 void application_startup(UiEvent *event, void *data) { |
1216 void application_startup(UiEvent *event, void *data) { |
| 1200 UiObject *obj = ui_window("Test w32", NULL); |
1217 UiObject *obj = ui_window("Test w32", NULL); |
| 1201 |
1218 |
| |
1219 UiList *list = ui_list_new(obj->ctx, "persons"); |
| |
1220 ui_list_append(list, &person1); |
| |
1221 ui_list_append(list, &person2); |
| |
1222 |
| 1202 ui_grid(obj, .margin = 10, .columnspacing = 10, .rowspacing = 10, .fill = TRUE) { |
1223 ui_grid(obj, .margin = 10, .columnspacing = 10, .rowspacing = 10, .fill = TRUE) { |
| 1203 ui_button(obj, .label = "Test", .hfill = TRUE, .hexpand = TRUE, .colspan = 3, .margin = 10); |
1224 UiModel *model = ui_model(obj->ctx, UI_STRING, "Name", UI_STRING, "Email", -1); |
| 1204 ui_newline(obj); |
1225 ui_table(obj, .fill = TRUE, .varname = "persons", .model = model, .getvalue = person_getvalue); |
| 1205 ui_textfield(obj, .varname = "text1", .hfill = TRUE, .hexpand = TRUE, .colspan = 2); |
1226 ui_model_free(obj->ctx, model); |
| 1206 ui_newline(obj); |
|
| 1207 |
|
| 1208 ui_button(obj, .label = "Test 2-1"); |
|
| 1209 ui_button(obj, .label = "Test 2-2"); |
|
| 1210 ui_button(obj, .label = "Test 2-3"); |
|
| 1211 ui_newline(obj); |
|
| 1212 |
|
| 1213 ui_button(obj, .label = "Test 3XX", .colspan = 3, .fill = TRUE, .onclick = action_button); |
|
| 1214 ui_newline(obj); |
|
| 1215 |
|
| 1216 ui_button(obj, .label = "End"); |
|
| 1217 ui_newline(obj); |
|
| 1218 |
|
| 1219 ui_togglebutton(obj, .label = "Test"); |
|
| 1220 ui_newline(obj); |
|
| 1221 |
|
| 1222 ui_checkbox(obj, .label = "Checkbox"); |
|
| 1223 ui_newline(obj); |
|
| 1224 |
|
| 1225 ui_hbox(obj, .spacing = 10, .colspan = 3, .hexpand = TRUE, .hfill = TRUE) { |
|
| 1226 ui_radiobutton(obj, .label = "Option 1", .varname = "radio1"); |
|
| 1227 ui_radiobutton(obj, .label = "Option 2", .varname = "radio1"); |
|
| 1228 ui_radiobutton(obj, .label = "Option 3", .varname = "radio1"); |
|
| 1229 } |
|
| 1230 |
|
| 1231 } |
1227 } |
| 1232 |
1228 |
| 1233 |
1229 |
| 1234 |
1230 |
| 1235 ui_show(obj); |
1231 ui_show(obj); |