diff -r e5e5c1779294 -r 2f4c73ff962f application/main.c --- a/application/main.c Sat Jun 06 18:47:45 2026 +0200 +++ b/application/main.c Sun Jun 07 13:11:09 2026 +0200 @@ -309,6 +309,14 @@ ui_show(obj); } +void action_table_activate(UiEvent *event, void *data) { + printf("action: table activate\n"); +} + +void action_table_selection(UiEvent *event, void *data) { + printf("action: table selection\n"); +} + static void mydoc_action_save(UiEvent *event, void *data) { printf("mydoc action save\n"); @@ -318,6 +326,9 @@ MyDocument* create_doc(void) { MyDocument *doc = ui_document_new(sizeof(MyDocument)); UiContext *docctx = ui_document_context(doc); + ui_add_action(docctx, "table_activate", action_table_activate, NULL); + ui_add_action(docctx, "table_selection", action_table_selection, NULL); + ui_add_action(docctx, "save", mydoc_action_save, NULL); doc->submenulist = ui_list_new(docctx, "sub_menulist"); ui_list_append(doc->submenulist, "Sub Menu List Item 1"); @@ -470,7 +481,7 @@ } } -void action_table_activate(UiEvent *event, void *userdata) { +void table_activate(UiEvent *event, void *userdata) { char *s = userdata; printf("table event: %s\n", s); UiListSelection *sel = event->eventdata; @@ -762,8 +773,8 @@ doc->model = model; ui_table(obj, .model = model, .list = doc->list2, .colspan = 2, .fill = TRUE, .contextmenu = menubuilder, .multiselection = TRUE, .fill = TRUE, .getvalue = table_getvalue, .getstyle = table_getstyle, .onsave = list_save, - .onactivate = action_table_activate, .onactivatedata = "activate", - .onselection = action_table_activate, .onselectiondata = "selection"); + .onactivate = table_activate, .onactivatedata = "activate", .onactivate_action = "table_activate", + .onselection = table_activate, .onselectiondata = "selection", .onselection_action = "table_selection"); ui_hbox(obj, .fill = FALSE, .columnspacing = 4) { ui_textfield(obj, .value = doc->list_input); ui_button(obj, .label = "Update List Item 1", .onclick = action_update_list);