application/main.c

changeset 917
ca3918f9c96b
parent 902
6872b59217a7
child 919
d9018dcd4e2d
equal deleted inserted replaced
916:6fdcf1cbbec9 917:ca3918f9c96b
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);

mercurial