ui/ui/text.h

branch
newapi
changeset 225
097f45f9c1fa
parent 201
7f67ebbb0c1c
child 267
79dd183dd4cb
--- a/ui/ui/text.h	Fri Oct 20 16:34:33 2023 +0200
+++ b/ui/ui/text.h	Sun Nov 26 15:44:28 2023 +0100
@@ -49,6 +49,41 @@
     void* onchangedata;
 } UiTextFieldArgs;
 
+typedef struct UiPathElmRet {
+    char* name;
+    size_t name_len;
+    char* path;
+    size_t path_len;
+} UiPathElm;
+
+typedef UiPathElm*(*ui_pathelm_func)(const char *full_path, size_t len, size_t *ret_nelm, void* data);
+
+
+
+typedef struct UiPathTextFieldArgs {
+    UiTri fill;
+    UiBool hexpand;
+    UiBool vexpand;
+    int colspan;
+    int rowspan;
+
+    UiString *value;
+    const char* varname;
+
+    ui_pathelm_func getpathelm;
+    void* getpathelmdata;
+
+    ui_callback onactivate;
+    void* onactivatedata;
+    
+    ui_callback ondragstart;
+    void* ondragstartdata;
+    ui_callback ondragcomplete;
+    void* ondragcompletedata;
+    ui_callback ondrop;
+    void* ondropsdata;
+} UiPathTextFieldArgs;
+
 UIWIDGET ui_textarea(UiObject *obj, UiText *value);
 UIWIDGET ui_textarea_nv(UiObject *obj, char *varname);
 
@@ -60,10 +95,13 @@
 #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__ })
+#define ui_path_textfield(obj, ...) ui_path_textfield_create(obj, (UiPathTextFieldArgs) { __VA_ARGS__ } )
 
 UIEXPORT UIWIDGET ui_textfield_create(UiObject *obj, UiTextFieldArgs args);
 UIEXPORT UIWIDGET ui_frameless_textfield_create(UiObject* obj, UiTextFieldArgs args);
 UIEXPORT UIWIDGET ui_passwordfield_create(UiObject* obj, UiTextFieldArgs args);
+
+UIEXPORT UIWIDGET ui_path_textfield_create(UiObject* obj, UiPathTextFieldArgs args);
         
 #ifdef	__cplusplus
 }

mercurial