--- a/ui/ui/button.h Sun Sep 24 12:03:57 2023 +0200 +++ b/ui/ui/button.h Sun Oct 01 09:23:47 2023 +0200 @@ -34,14 +34,42 @@ #ifdef __cplusplus extern "C" { #endif - -UIWIDGET ui_button(UiObject *obj, char *label, ui_callback f, void *data); + +typedef struct UiButtonArgs { + UiTri fill; + UiBool hexpand; + UiBool vexpand; + int colspan; + int rowspan; + + char* label; + char* stockid; + ui_callback onclick; + void* onclickdata; +} UiButtonArgs; -UIWIDGET ui_checkbox(UiObject *obj, char *label, UiInteger *value); -UIWIDGET ui_checkbox_nv(UiObject *obj, char *label, char *varname); +typedef struct UiToggleArgs { + char* label; + char* stockid; + UiInteger* value; + char* varname; +} UiToggleArgs; + +#define ui_button(obj, ...) ui_button_create(obj, (UiButtonArgs){ __VA_ARGS__ } ) +#define ui_checkbox(obj, ...) ui_checkbox_create(obj, (UiToggleArgs){ __VA_ARGS__ } ) +#define ui_radiobutton(obj, ...) ui_checkbox_create(obj, (UiToggleArgs){ __VA_ARGS__ } ) -UIWIDGET ui_radiobutton(UiObject *obj, char *label, UiInteger *rgroup); -UIWIDGET ui_radiobutton_nv(UiObject *obj, char *label, char *varname); +UIWIDGET ui_button_create(UiObject* obj, UiButtonArgs args); +UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs args); +UIWIDGET ui_radiobutton_create(UiObject* obj, UiToggleArgs); + +UIWIDGET deprecated_ui_button(UiObject *obj, char *label, ui_callback f, void *data); + +UIWIDGET deprecated_ui_checkbox(UiObject *obj, char *label, UiInteger *value); +UIWIDGET deprecated_ui_checkbox_nv(UiObject *obj, char *label, char *varname); + +UIWIDGET deprecated_ui_radiobutton(UiObject *obj, char *label, UiInteger *rgroup); +UIWIDGET deprecated_ui_radiobutton_nv(UiObject *obj, char *label, char *varname); #ifdef __cplusplus