--- a/ui/ui/window.h Fri Feb 09 16:50:23 2024 +0100 +++ b/ui/ui/window.h Sun Feb 11 13:59:02 2024 +0100 @@ -39,11 +39,25 @@ #define UI_FILEDIALOG_SELECT_MULTI 1 #define UI_FILEDIALOG_SELECT_FOLDER 2 +typedef struct UiDialogArgs { + const char *title; + const char *content; + const char *button1_label; + const char *button2_label; + const char *closebutton_label; + ui_callback result; + void *resultdata; +} UiDialogArgs; + UIEXPORT UiObject* ui_window(const char *title, void *window_data); UIEXPORT UiObject* ui_simple_window(const char *title, void *window_data); UIEXPORT void ui_window_size(UiObject *obj, int width, int height); +#define ui_dialog(parent, ...) ui_dialog_create(parent, (UiDialogArgs){ __VA_ARGS__ } ) + +UIEXPORT void ui_dialog_create(UiObject *parent, UiDialogArgs args); + UIEXPORT void ui_openfiledialog(UiObject *obj, unsigned int mode, ui_callback file_selected_callback, void *cbdata); UIEXPORT void ui_savefiledialog(UiObject *obj, unsigned int mode, ui_callback file_selected_callback, void *cbdata);