application/main.c

changeset 786
150a1180f7ec
parent 783
25b2da0aac15
child 789
d70799b3333e
equal deleted inserted replaced
785:b943e3d618f0 786:150a1180f7ec
433 ui_show(obj); 433 ui_show(obj);
434 } 434 }
435 435
436 void action_sourcelist_activate(UiEvent *event, void *userdata) { 436 void action_sourcelist_activate(UiEvent *event, void *userdata) {
437 UiSubListEventData *eventdata = event->eventdata; 437 UiSubListEventData *eventdata = event->eventdata;
438 printf("sourcelist %s index %d\n", eventdata->row_data, event->intval); 438 printf("sourcelist %s index %d\n", eventdata->row_data, eventdata->row_index);
439 ui_list_update_row(eventdata->list, eventdata->row_index);
439 } 440 }
440 441
441 void action_table_activate(UiEvent *event, void *userdata) { 442 void action_table_activate(UiEvent *event, void *userdata) {
442 char *s = userdata; 443 char *s = userdata;
443 printf("table event: %s\n", s); 444 printf("table event: %s\n", s);
456 case 1: return row; 457 case 1: return row;
457 case 2: return (void*)(intptr_t)1234; 458 case 2: return (void*)(intptr_t)1234;
458 case 3: return ui_foldericon(16); 459 case 3: return ui_foldericon(16);
459 case 4: return ui_fileicon(16); 460 case 4: return ui_fileicon(16);
460 case 5: return "file"; 461 case 5: return "file";
462 case 6: return (void*)(intptr_t)123;
463 case 7: return "edit me";
464 case 8: return "edit me too";
461 } 465 }
462 return NULL; 466 return NULL;
463 } 467 }
464 468
465 UiBool table_getstyle(UiList *list, void *elm, int row, int col, void *userdata, UiTextStyle *style) { 469 UiBool table_getstyle(UiList *list, void *elm, int row, int col, void *userdata, UiTextStyle *style) {
470 if(col > 6) {
471 return FALSE;
472 }
466 if(row < 2 && col != -1) { 473 if(row < 2 && col != -1) {
467 style->text_style = UI_TEXT_STYLE_BOLD; 474 style->text_style = UI_TEXT_STYLE_BOLD;
468 if(col == 2) { 475 if(col == 2) {
469 style->text_style = UI_TEXT_STYLE_ITALIC; 476 style->text_style = UI_TEXT_STYLE_ITALIC;
470 } 477 }
561 char *label = ui_get(doc->link_label); 568 char *label = ui_get(doc->link_label);
562 char *uri = ui_get(doc->link_uri); 569 char *uri = ui_get(doc->link_uri);
563 ui_linkbutton_value_set(doc->link, label, uri); 570 ui_linkbutton_value_set(doc->link, label, uri);
564 } 571 }
565 572
573 static UiBool list_save(UiList *list, int row, int col, UiCellValue *value, void *userdata) {
574 printf("list new value at [%d, %d]: %s\n", row, col, value->string);
575 return FALSE;
576 }
577
566 void application_startup(UiEvent *event, void *data) { 578 void application_startup(UiEvent *event, void *data) {
567 // global list 579 // global list
568 UiContext *global = ui_global_context(); 580 UiContext *global = ui_global_context();
569 menu_list = ui_list_new(global, "menulist"); 581 menu_list = ui_list_new(global, "menulist");
570 ui_list_append(menu_list, "menu list item 1"); 582 ui_list_append(menu_list, "menu list item 1");
571 ui_list_append(menu_list, "menu list item 2"); 583 ui_list_append(menu_list, "menu list item 2");
572 ui_list_append(menu_list, "menu list item 3"); 584 ui_list_append(menu_list, "menu list item 3");
573 585
574 586
575 587
576 UiObject *obj = ui_sidebar_window("Test", NULL); 588 UiObject *obj = ui_splitview_window("Test", TRUE);
577 589
578 MyDocument *doc = create_doc(); 590 MyDocument *doc = create_doc();
579 ui_attach_document(obj->ctx, doc); 591 ui_attach_document(obj->ctx, doc);
580 592
581 ui_sidebar(obj, .margin = 0, .spacing = 0) { 593 ui_sidebar(obj, .margin = 0, .spacing = 0) {
582 ui_sourcelist(obj, .fill = TRUE, 594 ui_sourcelist(obj, .fill = TRUE,
583 .getvalue = sourcelist_getvalue, 595 .getvalue = sourcelist_getvalue,
584 .sublists = UI_SUBLISTS(UI_SUBLIST(.varname = "srclist1", .header = "Header 1", .userdata = "Sublist1"), UI_SUBLIST(.varname = "srclist2", .header = "Header 2", .userdata = "Sublist2")), 596 .sublists = UI_SUBLISTS(UI_SUBLIST(.varname = "srclist1", .header = "Header 1", .userdata = "Sublist1"), UI_SUBLIST(.varname = "srclist2", .header = "Header 2", .userdata = "Sublist2")),
585 .onactivate = action_sourcelist_activate); 597 .onactivate = action_sourcelist_activate);
598 }
599
600 ui_right_panel(obj, .margin = 10, .spacing = 10) {
601 ui_button(obj, .label = "Test");
586 } 602 }
587 603
588 ui_tabview(obj, .spacing=10, .margin=10, .tabview = UI_TABVIEW_NAVIGATION_SIDE, .varname="tabview", .fill = TRUE) { 604 ui_tabview(obj, .spacing=10, .margin=10, .tabview = UI_TABVIEW_NAVIGATION_SIDE, .varname="tabview", .fill = TRUE) {
589 ui_tab(obj, "Tab 0") { 605 ui_tab(obj, "Tab 0") {
590 ui_vbox(obj, .fill = FALSE, .margin = 15, .spacing = 15) { 606 ui_vbox(obj, .fill = FALSE, .margin = 15, .spacing = 15) {
605 621
606 ui_label(obj, .label = "Label Col 1", .align = UI_ALIGN_LEFT); 622 ui_label(obj, .label = "Label Col 1", .align = UI_ALIGN_LEFT);
607 ui_label(obj, .label = "Label Col 2", .style = UI_LABEL_STYLE_TITLE, .align = UI_ALIGN_RIGHT); 623 ui_label(obj, .label = "Label Col 2", .style = UI_LABEL_STYLE_TITLE, .align = UI_ALIGN_RIGHT);
608 ui_newline(obj); 624 ui_newline(obj);
609 625
610 ui_spinner(obj, .step = 5); 626 ui_spinbox(obj, .step = 5);
627 ui_newline(obj);
628
629 ui_switch(obj, .varname = "switch");
611 ui_newline(obj); 630 ui_newline(obj);
612 631
613 ui_progressbar(obj, .colspan = 2, .varname = "progress"); 632 ui_progressbar(obj, .colspan = 2, .varname = "progress");
614 ui_set(doc->progress, 0.75); 633 ui_set(doc->progress, 0.75);
615 ui_newline(obj); 634 ui_newline(obj);
643 } 662 }
644 ui_newline(obj); 663 ui_newline(obj);
645 } 664 }
646 } 665 }
647 ui_tab(obj, "Tab 1") { 666 ui_tab(obj, "Tab 1") {
648 UiModel *model = ui_model(obj->ctx, UI_ICON_TEXT, "col1", UI_INTEGER, "col2", UI_ICON, "col3", UI_ICON_TEXT, "col4", UI_INTEGER, "col5", -1); 667 UiModel *model = ui_model(obj->ctx, UI_ICON_TEXT, "col1", UI_INTEGER, "col2", UI_ICON, "col3", UI_ICON_TEXT, "col4", UI_INTEGER, "col5", UI_STRING_EDITABLE, "edit6", UI_STRING_EDITABLE, "edit7", -1);
649 model->columnsize[0] = -1; 668 model->columnsize[0] = -1;
650 ui_table(obj, .model = model, .list = doc->list2, .colspan = 2, .fill = TRUE, .contextmenu = menubuilder, .multiselection = TRUE, .fill = TRUE, 669 ui_table(obj, .model = model, .list = doc->list2, .colspan = 2, .fill = TRUE, .contextmenu = menubuilder, .multiselection = TRUE, .fill = TRUE,
651 .getvalue = table_getvalue, .getstyle = table_getstyle, 670 .getvalue = table_getvalue, .getstyle = table_getstyle, .onsave = list_save,
652 .onactivate = action_table_activate, .onactivatedata = "activate", 671 .onactivate = action_table_activate, .onactivatedata = "activate",
653 .onselection = action_table_activate, .onselectiondata = "selection"); 672 .onselection = action_table_activate, .onselectiondata = "selection");
654 ui_hbox(obj, .fill = FALSE) { 673 ui_hbox(obj, .fill = FALSE) {
655 ui_textfield(obj, .value = doc->list_input); 674 ui_textfield(obj, .value = doc->list_input);
656 ui_button(obj, .label = "Update List Item 1", .onclick = action_update_list); 675 ui_button(obj, .label = "Update List Item 1", .onclick = action_update_list);
708 ui_tab(obj, "Tab 7") { 727 ui_tab(obj, "Tab 7") {
709 ui_itemlist(obj, .create_ui = create_item, .varname = "items", .subcontainer = UI_CONTAINER_HBOX, .sub_spacing = 10, .margin = 10, .spacing = 4, .userdata = doc, .fill = TRUE); 728 ui_itemlist(obj, .create_ui = create_item, .varname = "items", .subcontainer = UI_CONTAINER_HBOX, .sub_spacing = 10, .margin = 10, .spacing = 4, .userdata = doc, .fill = TRUE);
710 } 729 }
711 730
712 ui_tab(obj, "Tab 8") { 731 ui_tab(obj, "Tab 8") {
713 ui_hsplitpane(obj, .initial_position = 100, .fill = TRUE) { 732 ui_hsplitpane(obj, .initial_position = 100, .position_property = "hsplitpane.position", .fill = TRUE) {
714 ui_button(obj, .label = "Button 1"); 733 ui_button(obj, .label = "Button 1");
715 ui_button(obj, .label = "Button 2"); 734 ui_button(obj, .label = "Button 2");
716 } 735 }
717 } 736 }
718 ui_tab(obj, "Tab 9") { 737 ui_tab(obj, "Tab 9") {
1033 1052
1034 ui_newline(obj); 1053 ui_newline(obj);
1035 1054
1036 ui_button(obj, .label = "Button Y"); 1055 ui_button(obj, .label = "Button Y");
1037 ui_checkbox(obj, .label = "Checkbox"); 1056 ui_checkbox(obj, .label = "Checkbox");
1038 ui_spinner(obj, .digits = 2); 1057 ui_spinbox(obj, .digits = 2);
1039 ui_newline(obj); 1058 ui_newline(obj);
1040 1059
1041 ui_hbox(obj, .colspan = 3) { 1060 ui_hbox(obj, .colspan = 3) {
1042 ui_radiobutton(obj, .label = "Radio 1", .varname = "radio"); 1061 ui_radiobutton(obj, .label = "Radio 1", .varname = "radio");
1043 ui_radiobutton(obj, .label = "Radio 2", .varname = "radio"); 1062 ui_radiobutton(obj, .label = "Radio 2", .varname = "radio");

mercurial