ui/ui/button.h

branch
newapi
changeset 186
5db4979bf482
parent 142
46448d38885c
child 187
24ce2c326d85
--- 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

mercurial