--- a/ui/ui/text.h Sun Oct 01 17:22:17 2023 +0200 +++ b/ui/ui/text.h Sun Oct 01 18:54:23 2023 +0200 @@ -35,6 +35,20 @@ extern "C" { #endif +typedef struct UiTextFieldArgs { + UiTri fill; + UiBool hexpand; + UiBool vexpand; + int colspan; + int rowspan; + int width; + + UiString* value; + const char* varname; + ui_callback onchange; + void* onchangedata; +} UiTextFieldArgs; + UIWIDGET ui_textarea(UiObject *obj, UiText *value); UIWIDGET ui_textarea_nv(UiObject *obj, char *varname); @@ -43,20 +57,13 @@ void ui_text_undo(UiText *value); void ui_text_redo(UiText *value); -UIWIDGET ui_textfield(UiObject *obj, UiString *value); -UIWIDGET ui_textfield_nv(UiObject *obj, char *varname); - -UIWIDGET ui_textfield_w(UiObject *obj, int width, UiString *value); -UIWIDGET ui_textfield_wnv(UiObject *obj, int width, char *varname); +#define ui_textfield(obj, ...) ui_textfield_create(obj, (UiTextFieldArgs) { __VA_ARGS__ }) +#define ui_frameless_textfield(obj, ...) ui_frameless_field_create(obj, (UiTextFieldArgs) { __VA_ARGS__ }) +#define ui_passwordfield(obj, ...) ui_passwordfield_create(obj, (UiTextFieldArgs) { __VA_ARGS__ }) -UIWIDGET ui_frameless_textfield(UiObject *obj, UiString *value); -UIWIDGET ui_frameless_textfield_nv(UiObject *obj, char *varname); - -UIWIDGET ui_passwordfield(UiObject *obj, UiString *value); -UIWIDGET ui_passwordfield_nv(UiObject *obj, char *varname); -UIWIDGET ui_passwordfield_w(UiObject *obj, int width, UiString *value); -UIWIDGET ui_passwordfield_wnv(UiObject *obj, int width, char *varname); - +UIWIDGET ui_textfield_create(UiObject *obj, UiTextFieldArgs args); +UIWIDGET ui_frameless_textfield_create(UiObject* obj, UiTextFieldArgs args); +UIWIDGET ui_passwordfield_create(UiObject* obj, UiTextFieldArgs args); #ifdef __cplusplus }