add wrapper functions for menuitem args

Sat, 07 Jun 2025 08:25:00 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sat, 07 Jun 2025 08:25:00 +0200
changeset 609
1dbfc944a773
parent 608
046c7c4cb411
child 610
7255f59f339a

add wrapper functions for menuitem args

ui/common/args.c file | annotate | diff | comparison | revisions
ui/common/args.h file | annotate | diff | comparison | revisions
--- a/ui/common/args.c	Fri Jun 06 12:32:40 2025 +0200
+++ b/ui/common/args.c	Sat Jun 07 08:25:00 2025 +0200
@@ -33,6 +33,41 @@
 
 #include "../ui/container.h"
 
+/* ---------------------------- UiMenuItemArgs ---------------------------- */
+
+UiMenuItemArgs* ui_menuitem_args_new(void) {
+    UiMenuItemArgs *args = malloc(sizeof(UiMenuItemArgs));
+    memset(args, 0, sizeof(UiMenuItemArgs));
+    return args;
+}
+
+void ui_menuitem_args_set_label(UiMenuItemArgs *args, const char *label) {
+    args->label = strdup(label);
+}
+
+void ui_menuitem_args_set_stockid(UiMenuItemArgs *args, const char *stockid) {
+    args->stockid = strdup(stockid);
+}
+
+void ui_menuitem_args_set_icon(UiMenuItemArgs *args, const char *icon) {
+    args->icon = strdup(icon);
+}
+
+void ui_menuitem_args_set_onclick(UiMenuItemArgs *args, ui_callback callback) {
+    args->onclick = callback;
+}
+
+void ui_menuitem_args_set_onclickdata(UiMenuItemArgs *args, void *onclickdata) {
+    args->onclickdata = onclickdata;
+}
+
+void ui_menuitem_args_free(UiMenuItemArgs *args) {
+    free((void*)args->label);
+    free((void*)args->stockid);
+    free((void*)args->icon);
+    free(args);
+}
+
 /* ---------------------------- UiContainerArgs ---------------------------- */
 
 UiContainerArgs* ui_container_args_new(void) {
--- a/ui/common/args.h	Fri Jun 06 12:32:40 2025 +0200
+++ b/ui/common/args.h	Sat Jun 07 08:25:00 2025 +0200
@@ -31,12 +31,21 @@
 
 #include "../ui/container.h"
 #include "../ui/button.h"
+#include "../ui/menu.h"
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
     
+UIEXPORT UiMenuItemArgs* ui_menuitem_args_new(void);
+UIEXPORT void ui_menuitem_args_set_label(UiMenuItemArgs *args, const char *label);
+UIEXPORT void ui_menuitem_args_set_stockid(UiMenuItemArgs *args, const char *stockid);
+UIEXPORT void ui_menuitem_args_set_icon(UiMenuItemArgs *args, const char *icon);
+UIEXPORT void ui_menuitem_args_set_onclick(UiMenuItemArgs *args, ui_callback callback);
+UIEXPORT void ui_menuitem_args_set_onclickdata(UiMenuItemArgs *args, void *onclickdata);
+UIEXPORT void ui_menuitem_args_free(UiMenuItemArgs *args);
+    
 UIEXPORT UiContainerArgs* ui_container_args_new(void);
 UIEXPORT void ui_container_args_set_fill(UiContainerArgs *args, UiBool fill);
 UIEXPORT void ui_container_args_set_hexpand(UiContainerArgs *args, UiBool value);

mercurial