add UiLinkButtonArgs wrapper

Fri, 22 Aug 2025 19:44:12 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Fri, 22 Aug 2025 19:44:12 +0200
changeset 705
a537158b4269
parent 704
6105e9d9b7e1
child 706
2bdf00814cb8

add UiLinkButtonArgs wrapper

ui/common/args.c file | annotate | diff | comparison | revisions
ui/common/args.h file | annotate | diff | comparison | revisions
ui/ui/button.h file | annotate | diff | comparison | revisions
--- a/ui/common/args.c	Fri Aug 22 18:56:37 2025 +0200
+++ b/ui/common/args.c	Fri Aug 22 19:44:12 2025 +0200
@@ -1274,6 +1274,111 @@
     free(args);
 }
 
+/* ------------------------- UiLinkButtonArgs ----------------------------*/
+
+
+UiLinkButtonArgs* ui_linkbutton_args_new(void) {
+    UiLinkButtonArgs *args = malloc(sizeof(UiLinkButtonArgs));
+    memset(args, 0, sizeof(UiLinkButtonArgs));
+    return args;
+}
+
+
+void ui_linkbutton_args_set_fill(UiLinkButtonArgs *args, UiBool fill) {
+    args->fill = fill ? UI_ON : UI_OFF;
+}
+
+
+void ui_linkbutton_args_set_hexpand(UiLinkButtonArgs *args, UiBool value) {
+    args->hexpand = value;
+}
+
+
+void ui_linkbutton_args_set_vexpand(UiLinkButtonArgs *args, UiBool value) {
+    args->vexpand = value;
+}
+
+
+void ui_linkbutton_args_set_hfill(UiLinkButtonArgs *args, UiBool value) {
+    args->hfill = value;
+}
+
+
+void ui_linkbutton_args_set_vfill(UiLinkButtonArgs *args, UiBool value) {
+    args->vfill = value;
+}
+
+
+void ui_linkbutton_args_set_override_defaults(UiLinkButtonArgs *args, UiBool value) {
+    args->override_defaults = value;
+}
+
+
+void ui_linkbutton_args_set_colspan(UiLinkButtonArgs *args, int colspan) {
+    args->colspan = colspan;
+}
+
+
+void ui_linkbutton_args_set_rowspan(UiLinkButtonArgs *args, int rowspan) {
+    args->rowspan = rowspan;
+}
+
+
+void ui_linkbutton_args_set_name(UiLinkButtonArgs *args, const char *name) {
+    args->name = strdup(name);
+}
+
+
+void ui_linkbutton_args_set_style_class(UiLinkButtonArgs *args, const char *classname) {
+    args->style_class = strdup(classname);
+}
+
+void ui_linkbutton_args_set_label(UiLinkButtonArgs *args, const char *label){
+    args->label = strdup(label);
+}
+
+void ui_linkbutton_args_set_uri(UiLinkButtonArgs *args, const char *uri) {
+    args->uri = strdup(uri);
+}
+
+void ui_linkbutton_args_set_onclick(UiLinkButtonArgs *args, ui_callback callback) {
+    args->onclick = callback;
+}
+
+void ui_linkbutton_args_set_onclickdata(UiLinkButtonArgs *args, void *userdata) {
+    args->onclickdata = userdata;
+}
+
+void ui_linkbutton_args_set_nofollow(UiLinkButtonArgs *args, UiBool value) {
+    args->nofollow = value;
+}
+
+void ui_linkbutton_args_set_type(UiLinkButtonArgs *args, UiLinkType type) {
+    args->type = type;
+}
+
+void ui_linkbutton_args_set_varname(UiLinkButtonArgs *args, const char *varname) {
+    args->varname = strdup(varname);
+}
+
+void ui_linkbutton_args_set_value(UiLinkButtonArgs *args, UiString *value) {
+    args->value = value;
+}
+
+void ui_linkbutton_args_set_groups(UiLinkButtonArgs *args, int *groups){
+    // TODO
+}
+
+void ui_linkbutton_args_free(UiLinkButtonArgs *args) {
+    free((void*)args->name);
+    free((void*)args->style_class);
+    free((void*)args->label);
+    free((void*)args->uri);
+    free((void*)args->varname);
+    free((void*)args->groups);
+    free(args);
+}
+
 
 /* ------------------------- UiListArgs ----------------------------*/
 
--- a/ui/common/args.h	Fri Aug 22 18:56:37 2025 +0200
+++ b/ui/common/args.h	Fri Aug 22 19:44:12 2025 +0200
@@ -302,6 +302,28 @@
 UIEXPORT void ui_toggle_args_set_groups(UiToggleArgs *args, int *groups);
 UIEXPORT void ui_toggle_args_free(UiToggleArgs *args);
 
+UIEXPORT UiLinkButtonArgs* ui_linkbutton_args_new(void);
+UIEXPORT void ui_linkbutton_args_set_fill(UiLinkButtonArgs *args, UiBool fill);
+UIEXPORT void ui_linkbutton_args_set_hexpand(UiLinkButtonArgs *args, UiBool value);
+UIEXPORT void ui_linkbutton_args_set_vexpand(UiLinkButtonArgs *args, UiBool value);
+UIEXPORT void ui_linkbutton_args_set_hfill(UiLinkButtonArgs *args, UiBool value);
+UIEXPORT void ui_linkbutton_args_set_vfill(UiLinkButtonArgs *args, UiBool value);
+UIEXPORT void ui_linkbutton_args_set_override_defaults(UiLinkButtonArgs *args, UiBool value);
+UIEXPORT void ui_linkbutton_args_set_colspan(UiLinkButtonArgs *args, int colspan);
+UIEXPORT void ui_linkbutton_args_set_rowspan(UiLinkButtonArgs *args, int rowspan);
+UIEXPORT void ui_linkbutton_args_set_name(UiLinkButtonArgs *args, const char *name);
+UIEXPORT void ui_linkbutton_args_set_style_class(UiLinkButtonArgs *args, const char *classname);
+UIEXPORT void ui_linkbutton_args_set_varname(UiLinkButtonArgs *args, const char *varname);
+UIEXPORT void ui_linkbutton_args_set_value(UiLinkButtonArgs *args, UiString *value);
+UIEXPORT void ui_linkbutton_args_set_label(UiLinkButtonArgs *args, const char *label);
+UIEXPORT void ui_linkbutton_args_set_uri(UiLinkButtonArgs *args, const char *uri);
+UIEXPORT void ui_linkbutton_args_set_onclick(UiLinkButtonArgs *args, ui_callback callback);
+UIEXPORT void ui_linkbutton_args_set_onclickdata(UiLinkButtonArgs *args, void *userdata);
+UIEXPORT void ui_linkbutton_args_set_nofollow(UiLinkButtonArgs *args, UiBool value);
+UIEXPORT void ui_linkbutton_args_set_type(UiLinkButtonArgs *args, UiLinkType type);
+UIEXPORT void ui_linkbutton_args_set_groups(UiLinkButtonArgs *args, int *groups);
+UIEXPORT void ui_linkbutton_args_free(UiLinkButtonArgs *args);
+
 UIEXPORT UiListArgs* ui_list_args_new(void);
 UIEXPORT void ui_list_args_set_fill(UiListArgs *args, UiBool fill);
 UIEXPORT void ui_list_args_set_hexpand(UiListArgs *args, UiBool value);
--- a/ui/ui/button.h	Fri Aug 22 18:56:37 2025 +0200
+++ b/ui/ui/button.h	Fri Aug 22 19:44:12 2025 +0200
@@ -107,7 +107,6 @@
     ui_callback onclick;
     void *onclickdata;
     UiBool nofollow;
-    UiAlignment align;
     UiLinkType type;
     
     const int* groups;

mercurial