--- a/ui/common/args.c Sun Jul 20 14:04:19 2025 +0200 +++ b/ui/common/args.c Sun Jul 20 17:42:11 2025 +0200 @@ -33,6 +33,156 @@ #include "../ui/container.h" + +/* ---------------------------- UiDialogArgs ---------------------------- */ + +UiDialogArgs* ui_dialog_args_new(void) { + UiDialogArgs *args = malloc(sizeof(UiDialogArgs)); + memset(args, 0, sizeof(UiDialogArgs)); + return args; +} + +void ui_dialog_args_set_title(UiDialogArgs *args, const char *title) { + args->title = strdup(title); +} + +void ui_dialog_args_set_content(UiDialogArgs *args, const char *str) { + args->content = strdup(str); +} + +void ui_dialog_args_set_button1_label(UiDialogArgs *args, const char *label) { + args->button1_label = strdup(label); +} + +void ui_dialog_args_set_button2_label(UiDialogArgs *args, const char *label) { + args->button2_label = strdup(label); +} + +void ui_dialog_args_set_closebutton_label(UiDialogArgs *args, const char *label) { + args->closebutton_label = strdup(label); +} + +void ui_dialog_args_set_input_value(UiDialogArgs *args, const char *value) { + args->input_value = strdup(value); +} + +void ui_dialog_args_set_input(UiDialogArgs *args, UiBool input) { + args->input = input; +} + +void ui_dialog_args_set_password(UiDialogArgs *args, UiBool password) { + args->password = password; +} + +void ui_dialog_args_set_result(UiDialogArgs *args, ui_callback cb) { + args->result = cb; +} + +void ui_dialog_args_set_resultdata(UiDialogArgs *args, void *userdata) { + args->resultdata = userdata; +} + +void ui_dialog_args_free(UiDialogArgs *args) { + free((void*)args->title); + free((void*)args->button1_label); + free((void*)args->button2_label); + free((void*)args->content); + free((void*)args->closebutton_label); + free((void*)args->input_value); + free(args); +} + + +/* -------------------------- UiDialogWindowArgs -------------------------- */ + +UiDialogWindowArgs* ui_dialogwindow_args_new(void) { + UiDialogWindowArgs *args = malloc(sizeof(UiDialogWindowArgs)); + memset(args, 0, sizeof(UiDialogWindowArgs)); + return args; +} + +void ui_dialogwindow_args_set_modal(UiDialogWindowArgs *args, UiTri value) { + args->modal = value; +} + +void ui_dialogwindow_args_set_titlebar_buttons(UiDialogWindowArgs *args, UiTri value) { + args->titlebar_buttons = value; +} + +void ui_dialogwindow_args_set_show_closebutton(UiDialogWindowArgs *args, UiTri value) { + args->show_closebutton = value; +} + +void ui_dialogwindow_args_set_title(UiDialogWindowArgs *args, const char *title) { + args->title = strdup(title); +} + +void ui_dialogwindow_args_set_lbutton1(UiDialogWindowArgs *args, const char *label) { + args->lbutton1 = strdup(label); +} + +void ui_dialogwindow_args_set_lbutton2(UiDialogWindowArgs *args, const char *label) { + args->lbutton2 = strdup(label); +} + +void ui_dialogwindow_args_set_rbutton3(UiDialogWindowArgs *args, const char *label) { + args->rbutton3 = strdup(label); +} + +void ui_dialogwindow_args_set_rbutton4(UiDialogWindowArgs *args, const char *label) { + args->rbutton4 = strdup(label); +} + +void ui_dialogwindow_args_set_lbutton1_states(UiDialogWindowArgs *args, const int *states) { + // TODO +} + +void ui_dialogwindow_args_set_lbutton2_states(UiDialogWindowArgs *args, const int *states) { + // TODO +} + +void ui_dialogwindow_args_set_rbutton3_states(UiDialogWindowArgs *args, const int *states) { + // TODO +} + +void ui_dialogwindow_args_set_rbutton4_states(UiDialogWindowArgs *args, const int *states) { + // TODO +} + +void ui_dialogwindow_args_set_default_button(UiDialogWindowArgs *args, int button) { + args->default_button = button; +} + +void ui_dialogwindow_args_set_width(UiDialogWindowArgs *args, int width) { + args->width = width; +} + +void ui_dialogwindow_args_set_height(UiDialogWindowArgs *args, int height) { + args->height = height; +} + +void ui_dialogwindow_args_set_onclick(UiDialogWindowArgs *args, ui_callback cb) { + args->onclick = cb; +} + +void ui_dialogwindow_args_set_onclickdata(UiDialogWindowArgs *args, void *userdata) { + args->onclickdata = userdata; +} + +void ui_dialogwindow_args_free(UiDialogWindowArgs *args) { + free((void*)args->title); + free((void*)args->lbutton1); + free((void*)args->lbutton2); + free((void*)args->rbutton3); + free((void*)args->rbutton4); + free((void*)args->lbutton1_groups); + free((void*)args->lbutton2_groups); + free((void*)args->rbutton3_groups); + free((void*)args->rbutton4_groups); + free(args); +} + + /* ---------------------------- UiMenuItemArgs ---------------------------- */ UiMenuItemArgs* ui_menuitem_args_new(void) {