ui/ui/text.h

branch
newapi
changeset 192
bcacd00ea955
parent 168
1b99acacc5bb
child 201
7f67ebbb0c1c
--- 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
 }

mercurial