Sun, 07 Dec 2025 19:20:48 +0100
implement radiobutton (Client)
| client/uiclient.c | file | annotate | diff | comparison | revisions | |
| ui/common/context.c | file | annotate | diff | comparison | revisions | |
| ui/common/context.h | file | annotate | diff | comparison | revisions | |
| ui/ui/toolkit.h | file | annotate | diff | comparison | revisions |
--- a/client/uiclient.c Sun Dec 07 19:10:00 2025 +0100 +++ b/client/uiclient.c Sun Dec 07 19:20:48 2025 +0100 @@ -277,7 +277,10 @@ CxJsonValue *val = cxJsonObjGet(value, "value"); UiInteger *i = NULL; if(val && val->type == CX_JSON_STRING) { - i = ui_int_new(obj->ctx, val->value.string.ptr); + i = ui_get_int_var(obj->ctx, val->value.string.ptr); + if(!i) { + i = ui_int_new(obj->ctx, val->value.string.ptr); + } } UiToggleArgs *args = json2toggle_args(args_value); @@ -295,6 +298,10 @@ w = ui_switch_create(obj, args); break; } + case 3: { + w = ui_radiobutton_create(obj, args); + break; + } } ui_toggle_args_free(args); client_reg_widget(obj, id, w);
--- a/ui/common/context.c Sun Dec 07 19:10:00 2025 +0100 +++ b/ui/common/context.c Sun Dec 07 19:20:48 2025 +0100 @@ -208,6 +208,14 @@ return ctx_getvar(ctx, key); } +UiVar* uic_get_var_t(UiContext *ctx,const char *name, UiVarType type) { + UiVar *var = uic_get_var(ctx, name); + if(var && var->type == type) { + return var; + } + return NULL; +} + UiVar* uic_create_var(UiContext *ctx, const char *name, UiVarType type) { UiVar *var = uic_get_var(ctx, name); if(var) { @@ -685,3 +693,33 @@ void ui_set_destructor(void *mem, ui_destructor_func destr) { cxMempoolSetDestructor(mem, (cx_destructor_func)destr); } + +UiInteger* ui_get_int_var(UiContext *ctx, const char *name) { + UiVar *var = uic_get_var_t(ctx, name, UI_VAR_INTEGER); + return var ? var->value : NULL; +} + +UiDouble* ui_get_double_var(UiContext *ctx, const char *name) { + UiVar *var = uic_get_var_t(ctx, name, UI_VAR_DOUBLE); + return var ? var->value : NULL; +} + +UiString* ui_get_string_var(UiContext *ctx, const char *name) { + UiVar *var = uic_get_var_t(ctx, name, UI_VAR_STRING); + return var ? var->value : NULL; +} + +UiText* ui_get_text_var(UiContext *ctx, const char *name) { + UiVar *var = uic_get_var_t(ctx, name, UI_VAR_TEXT); + return var ? var->value : NULL; +} + +UiRange* ui_get_range_var(UiContext *ctx, const char *name) { + UiVar *var = uic_get_var_t(ctx, name, UI_VAR_RANGE); + return var ? var->value : NULL; +} + +UiGeneric* ui_get_generic_var(UiContext *ctx, const char *name) { + UiVar *var = uic_get_var_t(ctx, name, UI_VAR_GENERIC); + return var ? var->value : NULL; +}
--- a/ui/common/context.h Sun Dec 07 19:10:00 2025 +0100 +++ b/ui/common/context.h Sun Dec 07 19:20:48 2025 +0100 @@ -130,6 +130,7 @@ void uic_context_detach_all(UiContext *ctx); UiVar* uic_get_var(UiContext *ctx, const char *name); +UiVar* uic_get_var_t(UiContext *ctx, const char *name, UiVarType type); UiVar* uic_create_var(UiContext *ctx, const char *name, UiVarType type); UiVar* uic_create_value_var(UiContext *ctx, void *value); void* uic_create_value(UiContext *ctx, UiVarType type);
--- a/ui/ui/toolkit.h Sun Dec 07 19:10:00 2025 +0100 +++ b/ui/ui/toolkit.h Sun Dec 07 19:20:48 2025 +0100 @@ -635,6 +635,13 @@ UIEXPORT void ui_var_set_string(UiContext *ctx, const char *name, char *value); UIEXPORT char* ui_var_get_string(UiContext *ctx, const char *name); +UIEXPORT UiInteger* ui_get_int_var(UiContext *ctx, const char *name); +UIEXPORT UiDouble* ui_get_double_var(UiContext *ctx, const char *name); +UIEXPORT UiString* ui_get_string_var(UiContext *ctx, const char *name); +UIEXPORT UiText* ui_get_text_var(UiContext *ctx, const char *name); +UIEXPORT UiRange* ui_get_range_var(UiContext *ctx, const char *name); +UIEXPORT UiGeneric* ui_get_generic_var(UiContext *ctx, const char *name); + UIEXPORT UiObserver* ui_observer_new(ui_callback f, void *data); UIEXPORT UiObserver* ui_obsvlist_add(UiObserver *list, UiObserver *observer); UIEXPORT UiObserver* ui_add_observer(UiObserver *list, ui_callback f, void *data);