]> uap-core.de Git - rssreader.git/commitdiff
add menu/toolbar arg funcs
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sun, 6 Jul 2025 18:04:37 +0000 (20:04 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sun, 6 Jul 2025 18:04:37 +0000 (20:04 +0200)
ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java
ui-java/src/main/java/de/unixwork/ui/MenuFuncs.java [new file with mode: 0644]

index dfccef25b08d3967f645567433b43d016b621c30..aa70c3e1c5d894a1ccaa195304f1c65437d33d4a 100644 (file)
@@ -12,6 +12,48 @@ class ArgFuncs {
     MethodHandle menuitem_args_set_icon;
     MethodHandle menuitem_args_free;
 
+    MethodHandle menutoggleitem_args_new;
+    MethodHandle menutoggleitem_args_set_label;
+    MethodHandle menutoggleitem_args_set_stockid;
+    MethodHandle menutoggleitem_args_set_icon;
+    MethodHandle menutoggleitem_args_set_varname;
+    MethodHandle menutoggleitem_args_set_onchange;
+    MethodHandle menutoggleitem_args_set_onchangedata;
+    MethodHandle menutoggleitem_args_free;
+
+    MethodHandle menuitemlist_args_new;
+    MethodHandle menuitemlist_args_set_varname;
+    MethodHandle menuitemlist_args_set_getvalue;
+    MethodHandle menuitemlist_args_set_onselect;
+    MethodHandle menuitemlist_args_set_onselectdata;
+    MethodHandle menuitemlist_args_set_addseparator;
+    MethodHandle menuitemlist_args_free;
+
+    MethodHandle toolbar_item_args_new;
+    MethodHandle toolbar_item_args_set_label;
+    MethodHandle toolbar_item_args_set_stockid;
+    MethodHandle toolbar_item_args_set_icon;
+    MethodHandle toolbar_item_args_set_onclick;
+    MethodHandle toolbar_item_args_set_onclickdata;
+    MethodHandle toolbar_item_args_set_groups;
+    MethodHandle toolbar_item_args_free;
+
+    MethodHandle toolbar_toggleitem_args_new;
+    MethodHandle toolbar_toggleitem_args_set_label;
+    MethodHandle toolbar_toggleitem_args_set_stockid;
+    MethodHandle toolbar_toggleitem_args_set_icon;
+    MethodHandle toolbar_toggleitem_args_set_varname;
+    MethodHandle toolbar_toggleitem_args_set_onchange;
+    MethodHandle toolbar_toggleitem_args_set_onchangedata;
+    MethodHandle toolbar_toggleitem_args_set_groups;
+    MethodHandle toolbar_toggleitem_args_free;
+
+    MethodHandle toolbar_menu_args_new;
+    MethodHandle toolbar_menu_args_set_label;
+    MethodHandle toolbar_menu_args_set_stockid;
+    MethodHandle toolbar_menu_args_set_icon;
+    MethodHandle toolbar_menu_args_free;
+
     MethodHandle container_args_new;
     MethodHandle container_args_set_fill;
     MethodHandle container_args_set_hexpand;
@@ -125,6 +167,48 @@ class ArgFuncs {
         MemorySegment ui_menuitem_args_set_onclickdata_addr = lib.find("ui_menuitem_args_set_onclickdata").orElseThrow();
         MemorySegment ui_menuitem_args_free_addr = lib.find("ui_menuitem_args_free").orElseThrow();
 
+        MemorySegment ui_menutoggleitem_args_new_addr = lib.find("ui_menutoggleitem_args_new").orElseThrow();
+        MemorySegment ui_menutoggleitem_args_set_label_addr = lib.find("ui_menutoggleitem_args_set_label").orElseThrow();
+        MemorySegment ui_menutoggleitem_args_set_stockid_addr = lib.find("ui_menutoggleitem_args_set_stockid").orElseThrow();
+        MemorySegment ui_menutoggleitem_args_set_icon_addr = lib.find("ui_menutoggleitem_args_set_icon").orElseThrow();
+        MemorySegment ui_menutoggleitem_args_set_varname_addr = lib.find("ui_menutoggleitem_args_set_varname").orElseThrow();
+        MemorySegment ui_menutoggleitem_args_set_onchange_addr = lib.find("ui_menutoggleitem_args_set_onchange").orElseThrow();
+        MemorySegment ui_menutoggleitem_args_set_onchangedata_addr = lib.find("ui_menutoggleitem_args_set_onchangedata").orElseThrow();
+        MemorySegment ui_menutoggleitem_args_free_addr = lib.find("ui_menutoggleitem_args_free").orElseThrow();
+
+        MemorySegment ui_menuitemlist_args_new_addr = lib.find("ui_menuitemlist_args_new").orElseThrow();
+        MemorySegment ui_menuitemlist_args_set_varname_addr = lib.find("ui_menuitemlist_args_set_varname").orElseThrow();
+        MemorySegment ui_menuitemlist_args_set_getvalue_addr = lib.find("ui_menuitemlist_args_set_getvalue").orElseThrow();
+        MemorySegment ui_menuitemlist_args_set_onselect_addr = lib.find("ui_menuitemlist_args_set_onselect").orElseThrow();
+        MemorySegment ui_menuitemlist_args_set_onselectdata_addr = lib.find("ui_menuitemlist_args_set_onselectdata").orElseThrow();
+        MemorySegment ui_menuitemlist_args_set_addseparator_addr = lib.find("ui_menuitemlist_args_set_addseparator").orElseThrow();
+        MemorySegment ui_menuitemlist_args_free_addr = lib.find("ui_menuitemlist_args_free").orElseThrow();
+
+        MemorySegment ui_toolbar_item_args_new_addr = lib.find("ui_toolbar_item_args_new").orElseThrow();
+        MemorySegment ui_toolbar_item_args_set_label_addr = lib.find("ui_toolbar_item_args_set_label").orElseThrow();
+        MemorySegment ui_toolbar_item_args_set_stockid_addr = lib.find("ui_toolbar_item_args_set_stockid").orElseThrow();
+        MemorySegment ui_toolbar_item_args_set_icon_addr = lib.find("ui_toolbar_item_args_set_icon").orElseThrow();
+        MemorySegment ui_toolbar_item_args_set_onclick_addr = lib.find("ui_toolbar_item_args_set_onclick").orElseThrow();
+        MemorySegment ui_toolbar_item_args_set_onclickdata_addr = lib.find("ui_toolbar_item_args_set_onclickdata").orElseThrow();
+        MemorySegment ui_toolbar_item_args_set_groups_addr = lib.find("ui_toolbar_item_args_set_groups").orElseThrow();
+        MemorySegment ui_toolbar_item_args_free_addr = lib.find("ui_toolbar_item_args_free").orElseThrow();
+
+        MemorySegment ui_toolbar_toggleitem_args_new_addr = lib.find("ui_toolbar_toggleitem_args_new").orElseThrow();
+        MemorySegment ui_toolbar_toggleitem_args_set_label_addr = lib.find("ui_toolbar_toggleitem_args_set_label").orElseThrow();
+        MemorySegment ui_toolbar_toggleitem_args_set_stockid_addr = lib.find("ui_toolbar_toggleitem_args_set_stockid").orElseThrow();
+        MemorySegment ui_toolbar_toggleitem_args_set_icon_addr = lib.find("ui_toolbar_toggleitem_args_set_icon").orElseThrow();
+        MemorySegment ui_toolbar_toggleitem_args_set_varname_addr = lib.find("ui_toolbar_toggleitem_args_set_varname").orElseThrow();
+        MemorySegment ui_toolbar_toggleitem_args_set_onchange_addr = lib.find("ui_toolbar_toggleitem_args_set_onchange").orElseThrow();
+        MemorySegment ui_toolbar_toggleitem_args_set_onchangedata_addr = lib.find("ui_toolbar_toggleitem_args_set_onchangedata").orElseThrow();
+        MemorySegment ui_toolbar_toggleitem_args_set_groups_addr = lib.find("ui_toolbar_toggleitem_args_set_groups").orElseThrow();
+        MemorySegment ui_toolbar_toggleitem_args_free_addr = lib.find("ui_toolbar_toggleitem_args_free").orElseThrow();
+
+        MemorySegment ui_toolbar_menu_args_new_addr = lib.find("ui_toolbar_menu_args_new").orElseThrow();
+        MemorySegment ui_toolbar_menu_args_set_label_addr = lib.find("ui_toolbar_menu_args_set_label").orElseThrow();
+        MemorySegment ui_toolbar_menu_args_set_stockid_addr = lib.find("ui_toolbar_menu_args_set_stockid").orElseThrow();
+        MemorySegment ui_toolbar_menu_args_set_icon_addr = lib.find("ui_toolbar_menu_args_set_icon").orElseThrow();
+        MemorySegment ui_toolbar_menu_args_free_addr = lib.find("ui_toolbar_menu_args_free").orElseThrow();
+
         MemorySegment ui_container_args_new_addr = lib.find("ui_container_args_new").orElseThrow();
         MemorySegment ui_container_args_set_fill_addr = lib.find("ui_container_args_set_fill").orElseThrow();
         MemorySegment ui_container_args_set_hexpand_addr = lib.find("ui_container_args_set_hexpand").orElseThrow();
@@ -228,6 +312,48 @@ class ArgFuncs {
         menuitem_args_set_icon = linker.downcallHandle(ui_menuitem_args_set_icon_addr, sigv_mm);
         menuitem_args_free = linker.downcallHandle(ui_menuitem_args_free_addr, sigv_m);
 
+        menutoggleitem_args_new = linker.downcallHandle(ui_menutoggleitem_args_new_addr, sigm);
+        menutoggleitem_args_set_label = linker.downcallHandle(ui_menutoggleitem_args_set_label_addr, sigv_mm);
+        menutoggleitem_args_set_stockid = linker.downcallHandle(ui_menutoggleitem_args_set_stockid_addr, sigv_mm);
+        menutoggleitem_args_set_icon = linker.downcallHandle(ui_menutoggleitem_args_set_icon_addr, sigv_mm);
+        menutoggleitem_args_set_varname = linker.downcallHandle(ui_menutoggleitem_args_set_varname_addr, sigv_mm);
+        menutoggleitem_args_set_onchange = linker.downcallHandle(ui_menutoggleitem_args_set_onchange_addr, sigv_mm);
+        menutoggleitem_args_set_onchangedata = linker.downcallHandle(ui_menutoggleitem_args_set_onchangedata_addr, sigv_mm);
+        menutoggleitem_args_free = linker.downcallHandle(ui_menutoggleitem_args_free_addr, sigv_m);
+
+        menuitemlist_args_new = linker.downcallHandle(ui_menuitemlist_args_new_addr, sigm);
+        menuitemlist_args_set_varname = linker.downcallHandle(ui_menuitemlist_args_set_varname_addr, sigv_mm);
+        menuitemlist_args_set_getvalue = linker.downcallHandle(ui_menuitemlist_args_set_getvalue_addr, sigv_mm);
+        menuitemlist_args_set_onselect = linker.downcallHandle(ui_menuitemlist_args_set_onselect_addr, sigv_mm);
+        menuitemlist_args_set_onselectdata = linker.downcallHandle(ui_menuitemlist_args_set_onselectdata_addr, sigv_mm);
+        menuitemlist_args_set_addseparator = linker.downcallHandle(ui_menuitemlist_args_set_addseparator_addr, sigv_mb);
+        menuitemlist_args_free = linker.downcallHandle(ui_menuitemlist_args_free_addr, sigv_m);
+
+        toolbar_item_args_new = linker.downcallHandle(ui_toolbar_item_args_new_addr, sigm);
+        toolbar_item_args_set_stockid = linker.downcallHandle(ui_toolbar_item_args_set_stockid_addr, sigv_mm);
+        toolbar_item_args_set_icon = linker.downcallHandle(ui_toolbar_item_args_set_icon_addr, sigv_mm);
+        toolbar_item_args_set_label = linker.downcallHandle(ui_toolbar_item_args_set_label_addr, sigv_mm);
+        toolbar_item_args_set_onclick = linker.downcallHandle(ui_toolbar_item_args_set_onclick_addr, sigv_mm);
+        toolbar_item_args_set_onclickdata = linker.downcallHandle(ui_toolbar_item_args_set_onclickdata_addr, sigv_mm);
+        toolbar_item_args_set_groups = linker.downcallHandle(ui_toolbar_item_args_set_groups_addr, sigv_mm);
+        toolbar_item_args_free = linker.downcallHandle(ui_toolbar_item_args_free_addr, sigv_m);
+
+        toolbar_toggleitem_args_new = linker.downcallHandle(ui_toolbar_toggleitem_args_new_addr, sigm);
+        toolbar_toggleitem_args_set_stockid = linker.downcallHandle(ui_toolbar_toggleitem_args_set_stockid_addr, sigv_mm);
+        toolbar_toggleitem_args_set_icon = linker.downcallHandle(ui_toolbar_toggleitem_args_set_icon_addr, sigv_mm);
+        toolbar_toggleitem_args_set_label = linker.downcallHandle(ui_toolbar_toggleitem_args_set_label_addr, sigv_mm);
+        toolbar_toggleitem_args_set_varname = linker.downcallHandle(ui_toolbar_toggleitem_args_set_varname_addr, sigv_mm);
+        toolbar_toggleitem_args_set_onchange = linker.downcallHandle(ui_toolbar_toggleitem_args_set_onchange_addr, sigv_mm);
+        toolbar_toggleitem_args_set_onchangedata = linker.downcallHandle(ui_toolbar_toggleitem_args_set_onchangedata_addr, sigv_mm);
+        toolbar_toggleitem_args_set_groups = linker.downcallHandle(ui_toolbar_toggleitem_args_set_groups_addr, sigv_mm);
+        toolbar_toggleitem_args_free = linker.downcallHandle(ui_toolbar_toggleitem_args_free_addr, sigv_m);
+
+        toolbar_menu_args_new = linker.downcallHandle(ui_toolbar_menu_args_new_addr, sigm);
+        toolbar_menu_args_set_stockid = linker.downcallHandle(ui_toolbar_menu_args_set_stockid_addr, sigv_mm);
+        toolbar_menu_args_set_icon = linker.downcallHandle(ui_toolbar_menu_args_set_icon_addr, sigv_mm);
+        toolbar_menu_args_set_label = linker.downcallHandle(ui_toolbar_menu_args_set_label_addr, sigv_mm);
+        toolbar_menu_args_free = linker.downcallHandle(ui_toolbar_menu_args_free_addr, sigv_m);
+
         container_args_new =  linker.downcallHandle(ui_container_args_new_addr, sigm);
         container_args_set_fill = linker.downcallHandle(ui_container_args_set_fill_addr, sigm);
         container_args_set_hexpand = linker.downcallHandle(ui_container_args_set_hexpand_addr, sigv_mb);
diff --git a/ui-java/src/main/java/de/unixwork/ui/MenuFuncs.java b/ui-java/src/main/java/de/unixwork/ui/MenuFuncs.java
new file mode 100644 (file)
index 0000000..93def93
--- /dev/null
@@ -0,0 +1,27 @@
+package de.unixwork.ui;
+
+import java.lang.foreign.*;
+import java.lang.invoke.MethodHandle;
+
+public class MenuFuncs {
+    static MenuFuncs instance;
+
+    public MethodHandle button_create;
+
+    private MenuFuncs(Linker linker, SymbolLookup lib) {
+        // void* func(void*, void*)
+        FunctionDescriptor sigm_mm = FunctionDescriptor.of(ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS);
+
+        MemorySegment ui_button_create_addr = lib.find("ui_button_create").orElseThrow();
+
+        button_create = linker.downcallHandle(ui_button_create_addr, sigm_mm);
+    }
+
+    static MenuFuncs getInstance() {
+        if (instance == null) {
+            Toolkit toolkit = Toolkit.getInstance();
+            instance = new MenuFuncs(toolkit.getLinker(), toolkit.getSymbolLookup());
+        }
+        return instance;
+    }
+}