ui/server/button.c

changeset 991
ab3125bd8b5f
parent 985
93f07ccfd997
--- a/ui/server/button.c	Fri Dec 12 11:38:47 2025 +0100
+++ b/ui/server/button.c	Fri Dec 12 12:00:34 2025 +0100
@@ -32,6 +32,7 @@
 
 #include "args.h"
 #include "container.h"
+#include "widget.h"
 
 cxmutstr ui_button_args_to_string(UiContext *ctx, UiButtonArgs *args) {
     CxBuffer buf;
@@ -58,6 +59,7 @@
 UIWIDGET ui_button_create(UiObject *obj, UiButtonArgs *args) {
     UiCallbackWidget *widget = cxZalloc(obj->ctx->allocator, sizeof(UiCallbackWidget));
     widget->widget.obj = obj->widget->obj;
+    widget->widget.type = CX_STR("button");
     widget->widget.args = ui_button_args_to_string(obj->ctx, args);
     widget->widget.serialize = (ui_serialize_func)ui_button_serialize;
     widget->callback = args->onclick;
@@ -74,11 +76,9 @@
     CxBuffer buf;
     cxBufferInit(&buf, NULL, 1024, NULL, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS);
     
-    cxBufferPutString(&buf, "{\"type\":\"button\", \"obj\":\"");
-    cxBufferPutString(&buf, w->widget.obj->id.ptr);
-    cxBufferPutString(&buf, "\", \"id\":\"");
-    cxBufferPutString(&buf, w->widget.id.ptr);
-    cxBufferPutString(&buf, "\", \"args\":");
+    cxBufferPutString(&buf, "{");
+    ui_serialize_type_obj_id(&w->widget, &buf);
+    cxBufferPutString(&buf, ",\"args\":");
     cxBufferPutString(&buf, w->widget.args.ptr);
     cxBufferPutString(&buf, "}\n");
     

mercurial