--- a/ui/ui/toolbar.h Fri Oct 06 19:38:10 2023 +0200 +++ b/ui/ui/toolbar.h Tue Oct 10 10:58:14 2023 +0200 @@ -36,7 +36,35 @@ extern "C" { #endif -void ui_toolitem(char *name, char *label, ui_callback f, void *udata); +typedef struct UiToolbarItemArgs { + const char* label; + const char* stockid; + const char* icon; + + ui_callback onclick; + void* onclickdata; +} UiToolbarItemArgs; + +typedef struct UiToolbarToggleItemArgs { + const char* label; + const char* stockid; + const char* icon; + + const char* varname; + ui_callback onchange; + void* onchangedata; +} UiToolbarToggleItemArgs; + + +#define ui_toolbar_item(name, ...) ui_toolbar_item_create(name, (UiToolbarItemArgs){ __VA_ARGS__ } ) +#define ui_toolbar_toggleitem(name, ...) ui_toolbar_item_create(name, (UiToolbarItemArgs){ __VA_ARGS__ } ) + +UIEXPORT void ui_toolbar_item_create(const char* name, UiToolbarItemArgs args); +UIEXPORT void ui_toolbar_toggleitem_create(const char* name, UiToolbarToggleItemArgs args); + + + +void ui_toolitem_deprecated(char *name, char *label, ui_callback f, void *udata); void ui_toolitem_st(char *name, char *stockid, ui_callback f, void *udata); void ui_toolitem_sti(char *name, char *stockid, ui_callback f, void *udata); void ui_toolitem_stgr(char *name, char *stockid, ui_callback f, void *udata, ...); @@ -52,7 +80,7 @@ void ui_toolbar_combobox_str(char *name, UiList *list, ui_callback f, void *udata); void ui_toolbar_combobox_nv(char *name, char *listname, ui_getvaluefunc getvalue, ui_callback f, void *udata); -void ui_toolbar_add_default(char *name); +UIEXPORT void ui_toolbar_add_default(const char *name); #ifdef __cplusplus }