]> uap-core.de Git - rssreader.git/commitdiff
add methods for setting/unsetting context states
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 25 Sep 2025 15:02:30 +0000 (17:02 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 25 Sep 2025 15:02:30 +0000 (17:02 +0200)
ui-java/src/main/java/de/unixwork/ui/Context.java
ui-java/src/main/java/de/unixwork/ui/ToolkitFuncs.java

index b671cd9192cace4218e7cff3a6da57658fe1ee01..edf47e4302b994bf632af5d91ef56a717c74ea2d 100644 (file)
@@ -161,6 +161,24 @@ public abstract class Context {
         }
     }
 
+    public void setState(int state) {
+        ToolkitFuncs ui = ToolkitFuncs.getInstance();
+        try {
+            ui.set_group.invoke(ptr, state);
+        } catch (Throwable e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public void unsetState(int state) {
+        ToolkitFuncs ui = ToolkitFuncs.getInstance();
+        try {
+            ui.unset_group.invoke(ptr, state);
+        } catch (Throwable e) {
+            throw new RuntimeException(e);
+        }
+    }
+
     public Arena getArena() {
         return arena;
     }
index 4cbc59ff58737cedfa880c0afeb2cee397df89fb..84dd14fbfef349275e8e8b72fffd40e51c02c5e9 100644 (file)
@@ -88,6 +88,9 @@ public class ToolkitFuncs {
     public MethodHandle set_widget_groups2;
     public MethodHandle set_widget_visibility_states;
 
+    public MethodHandle set_group;
+    public MethodHandle unset_group;
+
     public MethodHandle call_mainthread;
 
     public MethodHandle ui_malloc;
@@ -201,6 +204,9 @@ public class ToolkitFuncs {
         MemorySegment ui_widget_set_groups2_addr = lib.find("ui_widget_set_groups2").orElseThrow();
         MemorySegment ui_widget_set_visibility_states_addr = lib.find("ui_widget_set_visibility_states").orElseThrow();
 
+        MemorySegment set_group_addr = lib.find("ui_set_group").orElseThrow();
+        MemorySegment unset_group_addr = lib.find("ui_unset_group").orElseThrow();
+
         MemorySegment call_mainthread_addr = lib.find("ui_call_mainthread").orElseThrow();
 
         MemorySegment ui_malloc_addr = lib.find("ui_malloc").orElseThrow();
@@ -293,6 +299,9 @@ public class ToolkitFuncs {
         set_widget_groups2 = linker.downcallHandle(ui_widget_set_groups2_addr, sigv_mmmmi);
         set_widget_visibility_states = linker.downcallHandle(ui_widget_set_visibility_states_addr, sigv_mmmi);
 
+        set_group = linker.downcallHandle(set_group_addr, sigv_mi);
+        unset_group = linker.downcallHandle(unset_group_addr, sigv_mi);
+
         call_mainthread = linker.downcallHandle(call_mainthread_addr, sigv_mm);
 
         getappdir = linker.downcallHandle(getappdir_addr, sigm);