--- a/client/uiclient.c Wed Dec 24 08:48:50 2025 +0100 +++ b/client/uiclient.c Thu Dec 25 10:40:35 2025 +0100 @@ -45,7 +45,7 @@ void client_init(UiMessageHandler *handler) { io = handler; - msg_types = cxHashMapCreateSimple(CX_STORE_POINTERS); + msg_types = cxHashMapCreate(NULL, CX_STORE_POINTERS, 32); cxMapPut(msg_types, "window", msg_window); cxMapPut(msg_types, "sidebar_window", msg_window); cxMapPut(msg_types, "splitview_window", msg_window); @@ -59,13 +59,13 @@ cxMapPut(msg_types, "button", msg_button); cxMapPut(msg_types, "toggle", msg_togglebutton); - objects = cxHashMapCreateSimple(CX_STORE_POINTERS); + objects = cxHashMapCreate(NULL, CX_STORE_POINTERS, 16); } static cxmutstr jsonobj_getstring(const CxJsonValue *obj, const char *name) { CxJsonValue *value = cxJsonObjGet(obj, name); if(value->type == CX_JSON_STRING) { - return value->value.string; + return value->string; } else { return (cxmutstr){ NULL, 0 }; } @@ -77,7 +77,7 @@ if(*error) { *error = 0; } - return value->value.literal == CX_JSON_TRUE ? 1 : 0; + return value->literal == CX_JSON_TRUE ? 1 : 0; } else { if(error) { *error = 1; @@ -127,19 +127,19 @@ return 1; } - json_msg_handler handler = cxMapGet(msg_types, type->value.string); + json_msg_handler handler = cxMapGet(msg_types, type->string); if(!handler) { return 1; } - return handler(obj, value, type->value.string); + return handler(obj, value, type->string); } int client_handle_children(UiObject *parent, const CxJsonValue *value) { CxJsonValue *children = cxJsonObjGet(value, "children"); if(children && children->type == CX_JSON_ARRAY) { - for(int i=0;i<children->value.array.array_size;i++) { - CxJsonValue *child = children->value.array.array[i]; + for(int i=0;i<children->array.size;i++) { + CxJsonValue *child = children->array.data[i]; if(client_handle_json(parent, child)) { fprintf(stderr, "Error: invalid child\n"); return 1; @@ -189,7 +189,7 @@ if(!obj_id || obj_id->type != CX_JSON_STRING) { return NULL; } - return client_get_mapped_obj(obj_id->value.string); + return client_get_mapped_obj(obj_id->string); } int msg_window(UiObject *parent, const CxJsonValue *value, cxmutstr type) { @@ -318,15 +318,15 @@ CxJsonValue *val = cxJsonObjGet(value, "value"); UiInteger *i = NULL; if(val && val->type == CX_JSON_STRING) { - i = ui_get_int_var(obj->ctx, val->value.string.ptr); + i = ui_get_int_var(obj->ctx, val->string.ptr); if(!i) { - i = ui_int_new(obj->ctx, val->value.string.ptr); + i = ui_int_new(obj->ctx, val->string.ptr); } } UiToggleArgs *args = json2toggle_args(args_value); UIWIDGET w; - switch(button_type->value.integer) { + switch(button_type->integer) { default: { w = ui_togglebutton_create(obj, args); break;