]> uap-core.de Git - rssreader.git/commitdiff
implement toolkit container visibilityStates parameter
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 21 Feb 2026 19:15:08 +0000 (20:15 +0100)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 21 Feb 2026 19:15:08 +0000 (20:15 +0100)
ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java
ui-java/src/main/java/de/unixwork/ui/ContainerBuilder.java
ui-java/src/main/java/de/unixwork/ui/FrameBuilder.java
ui-java/src/main/java/de/unixwork/ui/SplitPaneBuilder.java
ui-java/src/main/java/de/unixwork/ui/TabViewBuilder.java
ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Ui.kt

index bb7f2912c9b26cbed9315e14488b23c937831a6a..1e6aff6242b9eb5915eebf69eaf44771ef4cf282 100644 (file)
@@ -110,6 +110,7 @@ class ArgFuncs {
     MethodHandle container_args_set_spacing;
     MethodHandle container_args_set_columnspacing;
     MethodHandle container_args_set_rowspacing;
+    MethodHandle container_args_set_visibility_states;
     MethodHandle container_args_free;
 
     MethodHandle frame_args_new;
@@ -135,6 +136,7 @@ class ArgFuncs {
     MethodHandle frame_args_set_rowspacing;
     MethodHandle frame_args_set_expanded;
     MethodHandle frame_args_set_label;
+    MethodHandle frame_args_set_visibility_states;
     MethodHandle frame_args_free;
 
     MethodHandle splitpane_args_new;
@@ -161,6 +163,7 @@ class ArgFuncs {
     MethodHandle splitpane_args_set_value;
     MethodHandle splitpane_args_set_varname;
     MethodHandle splitpane_args_set_max_panes;
+    MethodHandle splitpane_args_set_visibility_states;
     MethodHandle splitpane_args_free;
 
     MethodHandle tabview_args_new;
@@ -189,6 +192,7 @@ class ArgFuncs {
     MethodHandle tabview_args_set_varname;
     MethodHandle tabview_args_set_value;
     MethodHandle tabview_args_set_subcontainer;
+    MethodHandle tabview_args_set_visibility_states;
     MethodHandle tabview_args_free;
 
     MethodHandle sidebar_args_new;
@@ -223,6 +227,7 @@ class ArgFuncs {
     MethodHandle label_args_set_style;
     MethodHandle label_args_set_value;
     MethodHandle label_args_set_varname;
+    MethodHandle label_args_set_visibility_states;
     MethodHandle label_args_free;
 
     MethodHandle progressbar_args_new;
@@ -245,6 +250,7 @@ class ArgFuncs {
     MethodHandle progressbar_args_set_max;
     MethodHandle progressbar_args_set_value;
     MethodHandle progressbar_args_set_varname;
+    MethodHandle progressbar_args_set_visibility_states;
     MethodHandle progressbar_args_free;
 
     MethodHandle progress_spinner_args_new;
@@ -265,6 +271,7 @@ class ArgFuncs {
     MethodHandle progress_spinner_args_set_style_class;
     MethodHandle progress_spinner_args_set_value;
     MethodHandle progress_spinner_args_set_varname;
+    MethodHandle progress_spinner_args_set_visibility_states;
     MethodHandle progress_spinner_args_free;
 
     MethodHandle button_args_new;
@@ -290,6 +297,7 @@ class ArgFuncs {
     MethodHandle button_args_set_onclick;
     MethodHandle button_args_set_onclickdata;
     MethodHandle button_args_set_states;
+    MethodHandle button_args_set_visibility_states;
     MethodHandle button_args_free;
 
     MethodHandle toggle_args_new;
@@ -318,6 +326,7 @@ class ArgFuncs {
     MethodHandle toggle_args_set_onchange;
     MethodHandle toggle_args_set_onchangedata;
     MethodHandle toggle_args_set_states;
+    MethodHandle toggle_args_set_visibility_states;
     MethodHandle toggle_args_free;
 
     MethodHandle linkbutton_args_new;
@@ -345,6 +354,7 @@ class ArgFuncs {
     MethodHandle linkbutton_args_set_nofollow;
     MethodHandle linkbutton_args_set_type;
     MethodHandle linkbutton_args_set_states;
+    MethodHandle linkbutton_args_set_visibility_states;
     MethodHandle linkbutton_args_free;
 
     MethodHandle list_args_new;
@@ -387,6 +397,7 @@ class ArgFuncs {
     MethodHandle list_args_set_multiselection;
     MethodHandle list_args_set_contextmenu;
     MethodHandle list_args_set_states;
+    MethodHandle list_args_set_visibility_states;
     MethodHandle list_args_free;
 
     MethodHandle sourcelist_args_new;
@@ -416,6 +427,7 @@ class ArgFuncs {
     MethodHandle sourcelist_args_set_onbuttonclickdata;
     MethodHandle sourcelist_args_set_contextmenu;
     MethodHandle sourcelist_args_set_header_is_item;
+    MethodHandle sourcelist_args_set_visibility_states;
     MethodHandle sourcelist_args_free;
 
     MethodHandle textarea_args_new;
@@ -439,6 +451,7 @@ class ArgFuncs {
     MethodHandle textarea_args_set_onchange;
     MethodHandle textarea_args_set_onchangedata;
     MethodHandle textarea_args_set_states;
+    MethodHandle textarea_args_set_visibility_states;
     MethodHandle textarea_args_free;
 
     MethodHandle textfield_args_new;
@@ -464,6 +477,7 @@ class ArgFuncs {
     MethodHandle textfield_args_set_onactivate;
     MethodHandle textfield_args_set_onactivatedata;
     MethodHandle textfield_args_set_states;
+    MethodHandle textfield_args_set_visibility_states;
     MethodHandle textfield_args_free;
 
     MethodHandle spinbox_args_new;
@@ -493,6 +507,7 @@ class ArgFuncs {
     MethodHandle spinbox_args_set_doublevalue;
     MethodHandle spinbox_args_set_rangevalue;
     MethodHandle spinbox_args_set_states;
+    MethodHandle spinbox_args_set_visibility_states;
     MethodHandle spinbox_args_free;
 
     MethodHandle webview_args_new;
@@ -514,6 +529,7 @@ class ArgFuncs {
     MethodHandle webview_args_set_varname;
     MethodHandle webview_args_set_value;
     MethodHandle webview_args_set_states;
+    MethodHandle webview_args_set_visibility_states;
     MethodHandle webview_args_free;
 
     private ArgFuncs(Linker linker, SymbolLookup lib) {
@@ -630,6 +646,7 @@ class ArgFuncs {
         MemorySegment ui_container_args_set_spacing_addr = lib.find("ui_container_args_set_spacing").orElseThrow();
         MemorySegment ui_container_args_set_columnspacing_addr = lib.find("ui_container_args_set_columnspacing").orElseThrow();
         MemorySegment ui_container_args_set_rowspacing_addr = lib.find("ui_container_args_set_rowspacing").orElseThrow();
+        MemorySegment ui_container_args_set_visibility_states_addr = lib.find("ui_container_args_set_visibility_states").orElseThrow();
         MemorySegment ui_container_args_free_addr = lib.find("ui_container_args_free").orElseThrow();
 
         MemorySegment ui_frame_args_new_addr = lib.find("ui_frame_args_new").orElseThrow();
@@ -655,6 +672,7 @@ class ArgFuncs {
         MemorySegment ui_frame_args_set_rowspacing_addr = lib.find("ui_frame_args_set_rowspacing").orElseThrow();
         MemorySegment ui_frame_args_set_expanded_addr = lib.find("ui_frame_args_set_expanded").orElseThrow();
         MemorySegment ui_frame_args_set_label_addr = lib.find("ui_frame_args_set_label").orElseThrow();
+        MemorySegment ui_frame_args_set_visibility_states_addr = lib.find("ui_frame_args_set_visibility_states").orElseThrow();
         MemorySegment ui_frame_args_free_addr = lib.find("ui_frame_args_free").orElseThrow();
 
         MemorySegment ui_splitpane_args_new_addr = lib.find("ui_splitpane_args_new").orElseThrow();
@@ -682,6 +700,7 @@ class ArgFuncs {
         MemorySegment ui_splitpane_args_set_value_addr = lib.find("ui_splitpane_args_set_value").orElseThrow();
         MemorySegment ui_splitpane_args_set_varname_addr = lib.find("ui_splitpane_args_set_varname").orElseThrow();
         MemorySegment ui_splitpane_args_set_max_panes_addr = lib.find("ui_splitpane_args_set_max_panes").orElseThrow();
+        MemorySegment ui_splitpane_args_set_visibility_states_addr = lib.find("ui_splitpane_args_set_visibility_states").orElseThrow();
         MemorySegment ui_splitpane_args_free_addr = lib.find("ui_splitpane_args_free").orElseThrow();
 
         MemorySegment ui_tabview_args_new_addr = lib.find("ui_tabview_args_new").orElseThrow();
@@ -710,6 +729,7 @@ class ArgFuncs {
         MemorySegment ui_tabview_args_set_varname_addr = lib.find("ui_tabview_args_set_varname").orElseThrow();
         MemorySegment ui_tabview_args_set_value_addr = lib.find("ui_tabview_args_set_value").orElseThrow();
         MemorySegment ui_tabview_args_set_subcontainer_addr = lib.find("ui_tabview_args_set_subcontainer").orElseThrow();
+        MemorySegment ui_tabview_args_set_visibility_states_addr = lib.find("ui_tabview_args_set_visibility_states").orElseThrow();
         MemorySegment ui_tabview_args_free_addr = lib.find("ui_tabview_args_free").orElseThrow();
 
         MemorySegment ui_sidebar_args_new_addr = lib.find("ui_sidebar_args_new").orElseThrow();
@@ -744,6 +764,7 @@ class ArgFuncs {
         MemorySegment ui_label_args_set_style_addr = lib.find("ui_label_args_set_style").orElseThrow();
         MemorySegment ui_label_args_set_value_addr = lib.find("ui_label_args_set_value").orElseThrow();
         MemorySegment ui_label_args_set_varname_addr = lib.find("ui_label_args_set_varname").orElseThrow();
+        MemorySegment ui_label_args_set_visibility_states_addr = lib.find("ui_label_args_set_visibility_states").orElseThrow();
         MemorySegment ui_label_args_free_addr = lib.find("ui_label_args_free").orElseThrow();
 
         MemorySegment ui_progressbar_args_new_addr = lib.find("ui_progressbar_args_new").orElseThrow();
@@ -766,6 +787,7 @@ class ArgFuncs {
         MemorySegment ui_progressbar_args_set_max_addr = lib.find("ui_progressbar_args_set_max").orElseThrow();
         MemorySegment ui_progressbar_args_set_value_addr = lib.find("ui_progressbar_args_set_value").orElseThrow();
         MemorySegment ui_progressbar_args_set_varname_addr = lib.find("ui_progressbar_args_set_varname").orElseThrow();
+        MemorySegment ui_progressbar_args_set_visibility_states_addr = lib.find("ui_progressbar_args_set_visibility_states").orElseThrow();
         MemorySegment ui_progressbar_args_free_addr = lib.find("ui_progressbar_args_free").orElseThrow();
 
         MemorySegment ui_progress_spinner_args_new_addr = lib.find("ui_progress_spinner_args_new").orElseThrow();
@@ -786,6 +808,7 @@ class ArgFuncs {
         MemorySegment ui_progress_spinner_args_set_style_class_addr = lib.find("ui_progress_spinner_args_set_style_class").orElseThrow();
         MemorySegment ui_progress_spinner_args_set_value_addr = lib.find("ui_progress_spinner_args_set_value").orElseThrow();
         MemorySegment ui_progress_spinner_args_set_varname_addr = lib.find("ui_progress_spinner_args_set_varname").orElseThrow();
+        MemorySegment ui_progress_spinner_args_set_visibility_states_addr = lib.find("ui_progress_spinner_args_set_visibility_states").orElseThrow();
         MemorySegment ui_progress_spinner_args_free_addr = lib.find("ui_progress_spinner_args_free").orElseThrow();
 
         MemorySegment ui_button_args_new_addr = lib.find("ui_button_args_new").orElseThrow();
@@ -811,6 +834,7 @@ class ArgFuncs {
         MemorySegment ui_button_args_set_onclick_addr = lib.find("ui_button_args_set_onclick").orElseThrow();
         MemorySegment ui_button_args_set_onclickdata_addr = lib.find("ui_button_args_set_onclickdata").orElseThrow();
         MemorySegment ui_button_args_set_states_addr = lib.find("ui_button_args_set_states").orElseThrow();
+        MemorySegment ui_button_args_set_visibility_states_addr = lib.find("ui_button_args_set_visibility_states").orElseThrow();
         MemorySegment ui_button_args_free_addr = lib.find("ui_button_args_free").orElseThrow();
 
         MemorySegment ui_toggle_args_new_addr = lib.find("ui_toggle_args_new").orElseThrow();
@@ -839,6 +863,7 @@ class ArgFuncs {
         MemorySegment ui_toggle_args_set_onchangedata_addr = lib.find("ui_toggle_args_set_onchangedata").orElseThrow();
         MemorySegment ui_toggle_args_set_enablestate = lib.find("ui_toggle_args_set_enablestate").orElseThrow();
         MemorySegment ui_toggle_args_set_states_addr = lib.find("ui_toggle_args_set_states").orElseThrow();
+        MemorySegment ui_toggle_args_set_visibility_states_addr = lib.find("ui_toggle_args_set_visibility_states").orElseThrow();
         MemorySegment ui_toggle_args_free_addr = lib.find("ui_toggle_args_free").orElseThrow();
 
         MemorySegment ui_linkbutton_args_new_addr = lib.find("ui_linkbutton_args_new").orElseThrow();
@@ -866,6 +891,7 @@ class ArgFuncs {
         MemorySegment ui_linkbutton_args_set_nofollow_addr = lib.find("ui_linkbutton_args_set_nofollow").orElseThrow();
         MemorySegment ui_linkbutton_args_set_type_addr = lib.find("ui_linkbutton_args_set_type").orElseThrow();
         MemorySegment ui_linkbutton_args_set_states_addr = lib.find("ui_linkbutton_args_set_states").orElseThrow();
+        MemorySegment ui_linkbutton_args_set_visibility_states_addr = lib.find("ui_linkbutton_args_set_visibility_states").orElseThrow();
         MemorySegment ui_linkbutton_args_free_addr = lib.find("ui_linkbutton_args_free").orElseThrow();
 
         MemorySegment ui_list_args_new_addr = lib.find("ui_list_args_new").orElseThrow();
@@ -908,6 +934,7 @@ class ArgFuncs {
         MemorySegment ui_list_args_set_multiselection_addr = lib.find("ui_list_args_set_multiselection").orElseThrow();
         MemorySegment ui_list_args_set_contextmenu_addr = lib.find("ui_list_args_set_contextmenu").orElseThrow();
         MemorySegment ui_list_args_set_states_addr = lib.find("ui_list_args_set_states").orElseThrow();
+        MemorySegment ui_list_args_set_visibility_states_addr = lib.find("ui_list_args_set_visibility_states").orElseThrow();
         MemorySegment ui_list_args_free_addr = lib.find("ui_list_args_free").orElseThrow();
 
         MemorySegment ui_sourcelist_args_new_addr = lib.find("ui_sourcelist_args_new").orElseThrow();
@@ -937,6 +964,7 @@ class ArgFuncs {
         MemorySegment ui_sourcelist_args_set_onbuttonclickdata_addr = lib.find("ui_sourcelist_args_set_onbuttonclickdata").orElseThrow();
         MemorySegment ui_sourcelist_args_set_contextmenu_addr = lib.find("ui_sourcelist_args_set_contextmenu").orElseThrow();
         MemorySegment ui_sourcelist_args_set_header_is_item_addr = lib.find("ui_sourcelist_args_set_header_is_item").orElseThrow();
+        MemorySegment ui_sourcelist_args_set_visibility_states_addr = lib.find("ui_sourcelist_args_set_visibility_states").orElseThrow();
         MemorySegment ui_sourcelist_args_free_addr = lib.find("ui_sourcelist_args_free").orElseThrow();
 
         MemorySegment ui_textarea_args_new_addr = lib.find("ui_textarea_args_new").orElseThrow();
@@ -960,6 +988,7 @@ class ArgFuncs {
         MemorySegment ui_textarea_args_set_onchange_addr = lib.find("ui_textarea_args_set_onchange").orElseThrow();
         MemorySegment ui_textarea_args_set_onchangedata_addr = lib.find("ui_textarea_args_set_onchangedata").orElseThrow();
         MemorySegment ui_textarea_args_set_states_addr = lib.find("ui_textarea_args_set_states").orElseThrow();
+        MemorySegment ui_textarea_args_set_visibility_states_addr = lib.find("ui_textarea_args_set_visibility_states").orElseThrow();
         MemorySegment ui_textarea_args_free_addr = lib.find("ui_textarea_args_free").orElseThrow();
 
         MemorySegment ui_textfield_args_new_addr = lib.find("ui_textfield_args_new").orElseThrow();
@@ -985,6 +1014,7 @@ class ArgFuncs {
         MemorySegment ui_textfield_args_set_onactivate_addr = lib.find("ui_textfield_args_set_onactivate").orElseThrow();
         MemorySegment ui_textfield_args_set_onactivatedata_addr = lib.find("ui_textfield_args_set_onactivatedata").orElseThrow();
         MemorySegment ui_textfield_args_set_states_addr = lib.find("ui_textfield_args_set_states").orElseThrow();
+        MemorySegment ui_textfield_args_set_visibility_states_addr = lib.find("ui_textfield_args_set_visibility_states").orElseThrow();
         MemorySegment ui_textfield_args_free_addr = lib.find("ui_textfield_args_free").orElseThrow();
 
         MemorySegment ui_spinbox_args_new_addr = lib.find("ui_spinbox_args_new").orElseThrow();
@@ -1014,6 +1044,7 @@ class ArgFuncs {
         MemorySegment ui_spinbox_args_set_doublevalue_addr = lib.find("ui_spinbox_args_set_doublevalue").orElseThrow();
         MemorySegment ui_spinbox_args_set_rangevalue_addr = lib.find("ui_spinbox_args_set_rangevalue").orElseThrow();
         MemorySegment ui_spinbox_args_set_states_addr = lib.find("ui_spinbox_args_set_states").orElseThrow();
+        MemorySegment ui_spinbox_args_set_visibility_states_addr = lib.find("ui_spinbox_args_set_visibility_states").orElseThrow();
         MemorySegment ui_spinbox_args_free_addr = lib.find("ui_spinbox_args_free").orElseThrow();
 
         MemorySegment ui_webview_args_new_addr = lib.find("ui_webview_args_new").orElseThrow();
@@ -1035,6 +1066,7 @@ class ArgFuncs {
         MemorySegment ui_webview_args_set_varname_addr = lib.find("ui_webview_args_set_varname").orElseThrow();
         MemorySegment ui_webview_args_set_value_addr = lib.find("ui_webview_args_set_value").orElseThrow();
         MemorySegment ui_webview_args_set_states_addr = lib.find("ui_webview_args_set_states").orElseThrow();
+        MemorySegment ui_webview_args_set_visibility_states_addr = lib.find("ui_webview_args_set_visibility_states").orElseThrow();
         MemorySegment ui_webview_args_free_addr = lib.find("ui_webview_args_free").orElseThrow();
 
         dialog_args_new = linker.downcallHandle(ui_dialog_args_new_addr, sigm);
@@ -1141,6 +1173,7 @@ class ArgFuncs {
         container_args_set_spacing = linker.downcallHandle(ui_container_args_set_spacing_addr, sigv_mi);
         container_args_set_columnspacing = linker.downcallHandle(ui_container_args_set_columnspacing_addr, sigv_mi);
         container_args_set_rowspacing = linker.downcallHandle(ui_container_args_set_rowspacing_addr, sigv_mi);
+        container_args_set_visibility_states = linker.downcallHandle(ui_container_args_set_visibility_states_addr, sigv_mmi);
         container_args_free = linker.downcallHandle(ui_container_args_free_addr, sigv_m);
 
         frame_args_new =  linker.downcallHandle(ui_frame_args_new_addr, sigm);
@@ -1166,6 +1199,7 @@ class ArgFuncs {
         frame_args_set_rowspacing = linker.downcallHandle(ui_frame_args_set_rowspacing_addr, sigv_mi);
         frame_args_set_expanded = linker.downcallHandle(ui_frame_args_set_expanded_addr, sigv_mb);
         frame_args_set_label = linker.downcallHandle(ui_frame_args_set_label_addr, sigv_mm);
+        frame_args_set_visibility_states = linker.downcallHandle(ui_frame_args_set_visibility_states_addr, sigv_mmi);
         frame_args_free = linker.downcallHandle(ui_frame_args_free_addr, sigv_m);
 
         splitpane_args_new =  linker.downcallHandle(ui_splitpane_args_new_addr, sigm);
@@ -1192,6 +1226,7 @@ class ArgFuncs {
         splitpane_args_set_value = linker.downcallHandle(ui_splitpane_args_set_value_addr, sigv_mm);
         splitpane_args_set_varname = linker.downcallHandle(ui_splitpane_args_set_varname_addr, sigv_mm);
         splitpane_args_set_max_panes = linker.downcallHandle(ui_splitpane_args_set_max_panes_addr, sigv_mi);
+        splitpane_args_set_visibility_states = linker.downcallHandle(ui_splitpane_args_set_visibility_states_addr, sigv_mmi);
         splitpane_args_free = linker.downcallHandle(ui_splitpane_args_free_addr, sigv_m);
 
         tabview_args_new =  linker.downcallHandle(ui_tabview_args_new_addr, sigm);
@@ -1220,6 +1255,7 @@ class ArgFuncs {
         tabview_args_set_varname = linker.downcallHandle(ui_tabview_args_set_varname_addr, sigv_mm);
         tabview_args_set_value = linker.downcallHandle(ui_tabview_args_set_value_addr, sigv_mm);
         tabview_args_set_subcontainer = linker.downcallHandle(ui_tabview_args_set_subcontainer_addr, sigv_mi);
+        tabview_args_set_visibility_states = linker.downcallHandle(ui_tabview_args_set_visibility_states_addr, sigv_mmi);
         tabview_args_free = linker.downcallHandle(ui_tabview_args_free_addr, sigv_m);
 
         sidebar_args_new = linker.downcallHandle(ui_sidebar_args_new_addr, sigm);
@@ -1254,6 +1290,7 @@ class ArgFuncs {
         label_args_set_style = linker.downcallHandle(ui_label_args_set_style_addr, sigv_mi);
         label_args_set_value = linker.downcallHandle(ui_label_args_set_value_addr, sigv_mm);
         label_args_set_varname = linker.downcallHandle(ui_label_args_set_varname_addr, sigv_mm);
+        label_args_set_visibility_states = linker.downcallHandle(ui_label_args_set_visibility_states_addr, sigv_mmi);
         label_args_free = linker.downcallHandle(ui_label_args_free_addr, sigv_m);
         
         progressbar_args_new = linker.downcallHandle(ui_progressbar_args_new_addr, sigm);
@@ -1276,6 +1313,7 @@ class ArgFuncs {
         progressbar_args_set_max = linker.downcallHandle(ui_progressbar_args_set_max_addr, sigv_md);
         progressbar_args_set_value = linker.downcallHandle(ui_progressbar_args_set_value_addr, sigv_mm);
         progressbar_args_set_varname = linker.downcallHandle(ui_progressbar_args_set_varname_addr, sigv_mm);
+        progressbar_args_set_visibility_states = linker.downcallHandle(ui_progressbar_args_set_visibility_states_addr, sigv_mmi);
         progressbar_args_free = linker.downcallHandle(ui_progressbar_args_free_addr, sigv_m);
 
         progress_spinner_args_new = linker.downcallHandle(ui_progress_spinner_args_new_addr, sigm);
@@ -1296,6 +1334,7 @@ class ArgFuncs {
         progress_spinner_args_set_style_class = linker.downcallHandle(ui_progress_spinner_args_set_style_class_addr, sigv_mm);
         progress_spinner_args_set_value = linker.downcallHandle(ui_progress_spinner_args_set_value_addr, sigv_mm);
         progress_spinner_args_set_varname = linker.downcallHandle(ui_progress_spinner_args_set_varname_addr, sigv_mm);
+        progress_spinner_args_set_visibility_states = linker.downcallHandle(ui_progress_spinner_args_set_visibility_states_addr, sigv_mmi);
         progress_spinner_args_free = linker.downcallHandle(ui_progress_spinner_args_free_addr, sigv_m);
 
         button_args_new = linker.downcallHandle(ui_button_args_new_addr, sigm);
@@ -1321,6 +1360,7 @@ class ArgFuncs {
         button_args_set_onclick = linker.downcallHandle(ui_button_args_set_onclick_addr, sigv_mm);
         button_args_set_onclickdata = linker.downcallHandle(ui_button_args_set_onclickdata_addr, sigv_mm);
         button_args_set_states = linker.downcallHandle(ui_button_args_set_states_addr, sigv_mmi);
+        button_args_set_visibility_states = linker.downcallHandle(ui_button_args_set_visibility_states_addr, sigv_mmi);
         button_args_free = linker.downcallHandle(ui_button_args_free_addr, sigv_m);
 
         toggle_args_new = linker.downcallHandle(ui_toggle_args_new_addr, sigm);
@@ -1349,6 +1389,7 @@ class ArgFuncs {
         toggle_args_set_onchangedata = linker.downcallHandle(ui_toggle_args_set_onchangedata_addr, sigv_mm);
         toggle_args_set_enablestate = linker.downcallHandle(ui_toggle_args_set_enablestate, sigv_mi);
         toggle_args_set_states = linker.downcallHandle(ui_toggle_args_set_states_addr, sigv_mmi);
+        toggle_args_set_visibility_states = linker.downcallHandle(ui_toggle_args_set_visibility_states_addr, sigv_mmi);
         toggle_args_free = linker.downcallHandle(ui_toggle_args_free_addr, sigv_m);
 
         linkbutton_args_new = linker.downcallHandle(ui_linkbutton_args_new_addr, sigm);
@@ -1376,6 +1417,7 @@ class ArgFuncs {
         linkbutton_args_set_nofollow = linker.downcallHandle(ui_linkbutton_args_set_nofollow_addr, sigv_mb);
         linkbutton_args_set_type = linker.downcallHandle(ui_linkbutton_args_set_type_addr, sigv_mi);
         linkbutton_args_set_states = linker.downcallHandle(ui_linkbutton_args_set_states_addr, sigv_mmi);
+        linkbutton_args_set_visibility_states = linker.downcallHandle(ui_linkbutton_args_set_visibility_states_addr, sigv_mmi);
         linkbutton_args_free = linker.downcallHandle(ui_linkbutton_args_free_addr, sigv_m);
 
         list_args_new = linker.downcallHandle(ui_list_args_new_addr, sigm);
@@ -1418,6 +1460,7 @@ class ArgFuncs {
         list_args_set_multiselection = linker.downcallHandle(ui_list_args_set_multiselection_addr, sigv_mb);
         list_args_set_contextmenu = linker.downcallHandle(ui_list_args_set_contextmenu_addr, sigv_mm);
         list_args_set_states = linker.downcallHandle(ui_list_args_set_states_addr, sigv_mmi);
+        list_args_set_visibility_states = linker.downcallHandle(ui_list_args_set_visibility_states_addr, sigv_mmi);
         list_args_free = linker.downcallHandle(ui_list_args_free_addr, sigv_m);
 
         sourcelist_args_new = linker.downcallHandle(ui_sourcelist_args_new_addr, sigm);
@@ -1447,6 +1490,7 @@ class ArgFuncs {
         sourcelist_args_set_onbuttonclickdata = linker.downcallHandle(ui_sourcelist_args_set_onbuttonclickdata_addr, sigv_mm);
         sourcelist_args_set_contextmenu = linker.downcallHandle(ui_sourcelist_args_set_contextmenu_addr, sigv_mm);
         sourcelist_args_set_header_is_item = linker.downcallHandle(ui_sourcelist_args_set_header_is_item_addr, sigv_mb);
+        sourcelist_args_set_visibility_states = linker.downcallHandle(ui_sourcelist_args_set_visibility_states_addr, sigv_mmi);
         sourcelist_args_free = linker.downcallHandle(ui_sourcelist_args_free_addr, sigv_m);
 
         textarea_args_new = linker.downcallHandle(ui_textarea_args_new_addr, sigm);
@@ -1470,6 +1514,7 @@ class ArgFuncs {
         textarea_args_set_onchange = linker.downcallHandle(ui_textarea_args_set_onchange_addr, sigv_mm);
         textarea_args_set_onchangedata = linker.downcallHandle(ui_textarea_args_set_onchangedata_addr, sigv_mm);
         textarea_args_set_states = linker.downcallHandle(ui_textarea_args_set_states_addr, sigv_mmi);
+        textarea_args_set_visibility_states = linker.downcallHandle(ui_textarea_args_set_visibility_states_addr, sigv_mmi);
         textarea_args_free = linker.downcallHandle(ui_textarea_args_free_addr, sigv_m);
 
         textfield_args_new = linker.downcallHandle(ui_textfield_args_new_addr, sigm);
@@ -1495,6 +1540,7 @@ class ArgFuncs {
         textfield_args_set_onactivate = linker.downcallHandle(ui_textfield_args_set_onactivate_addr, sigv_mm);
         textfield_args_set_onactivatedata = linker.downcallHandle(ui_textfield_args_set_onactivatedata_addr, sigv_mm);
         textfield_args_set_states = linker.downcallHandle(ui_textfield_args_set_states_addr, sigv_mmi);
+        textfield_args_set_visibility_states = linker.downcallHandle(ui_textfield_args_set_visibility_states_addr, sigv_mmi);
         textfield_args_free = linker.downcallHandle(ui_textfield_args_free_addr, sigv_m);
 
         spinbox_args_new = linker.downcallHandle(ui_spinbox_args_new_addr, sigm);
@@ -1524,6 +1570,7 @@ class ArgFuncs {
         spinbox_args_set_doublevalue = linker.downcallHandle(ui_spinbox_args_set_doublevalue_addr, sigv_mm);
         spinbox_args_set_rangevalue = linker.downcallHandle(ui_spinbox_args_set_rangevalue_addr, sigv_mm);
         spinbox_args_set_states = linker.downcallHandle(ui_spinbox_args_set_states_addr, sigv_mmi);
+        spinbox_args_set_visibility_states = linker.downcallHandle(ui_spinbox_args_set_visibility_states_addr, sigv_mmi);
         spinbox_args_free = linker.downcallHandle(ui_spinbox_args_free_addr, sigv_m);
 
         webview_args_new = linker.downcallHandle(ui_webview_args_new_addr, sigm);
@@ -1545,6 +1592,7 @@ class ArgFuncs {
         webview_args_set_varname = linker.downcallHandle(ui_webview_args_set_varname_addr, sigv_mm);
         webview_args_set_value = linker.downcallHandle(ui_webview_args_set_value_addr, sigv_mm);
         webview_args_set_states = linker.downcallHandle(ui_webview_args_set_states_addr, sigv_mmi);
+        webview_args_set_visibility_states = linker.downcallHandle(ui_webview_args_set_visibility_states_addr, sigv_mmi);
         webview_args_free = linker.downcallHandle(ui_webview_args_free_addr, sigv_m);
     }
 
index 576dac0f21da781e9e3e788dac12e1dfce222fc1..c23288fedf15ccaf4e7bb4b952db0f26dfe769c1 100644 (file)
@@ -2,6 +2,7 @@ package de.unixwork.ui;
 
 import java.lang.foreign.Arena;
 import java.lang.foreign.MemorySegment;
+import java.lang.foreign.ValueLayout;
 import java.lang.invoke.MethodHandle;
 
 public class ContainerBuilder extends AbstractWidgetBuilder{
@@ -222,6 +223,11 @@ public class ContainerBuilder extends AbstractWidgetBuilder{
         if(rowspacing > 0) {
             ui.container_args_set_rowspacing.invoke(args, rowspacing);
         }
+        if(visibilityStates != null) {
+            MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, visibilityStates.length);
+            MemorySegment.copy(visibilityStates, 0, st, ValueLayout.JAVA_INT, 0, visibilityStates.length);
+            ui.container_args_set_visibility_states.invoke(args, st, visibilityStates.length);
+        }
 
         return args;
     }
@@ -236,9 +242,6 @@ public class ContainerBuilder extends AbstractWidgetBuilder{
         ui.callback();
         container.close();
         UiWidget w = container.getWidget();
-        if(visibilityStates != null) {
-            w.setVisibilityStates(visibilityStates);
-        }
         return w;
     }
 }
index beee2bba4a7e5059c6ba0eb4b3263f1247f9ee2b..eb7d1b8bd85c122a324eb355f173a5827e281f31 100644 (file)
@@ -2,6 +2,7 @@ package de.unixwork.ui;
 
 import java.lang.foreign.Arena;
 import java.lang.foreign.MemorySegment;
+import java.lang.foreign.ValueLayout;
 import java.lang.invoke.MethodHandle;
 
 public class FrameBuilder extends AbstractWidgetBuilder{
@@ -26,6 +27,7 @@ public class FrameBuilder extends AbstractWidgetBuilder{
     private int rowspacing;
     private boolean isexpanded;
     private String label;
+    private int[] visibilityStates;
 
     public FrameBuilder(UiObject obj, MethodHandle widgetConstructor) {
         this.obj = obj;
@@ -136,6 +138,11 @@ public class FrameBuilder extends AbstractWidgetBuilder{
         return this;
     }
 
+    public FrameBuilder visibilityStates(int[] states) {
+        this.visibilityStates = states;
+        return this;
+    }
+
     @Override
     public MemorySegment createArgs(Arena arena) throws Throwable {
         ArgFuncs ui = ArgFuncs.getInstance();
@@ -207,6 +214,11 @@ public class FrameBuilder extends AbstractWidgetBuilder{
             MemorySegment cstr = arena.allocateFrom(label);
             ui.frame_args_set_label.invoke(args, cstr);
         }
+        if(visibilityStates != null) {
+            MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, visibilityStates.length);
+            MemorySegment.copy(visibilityStates, 0, st, ValueLayout.JAVA_INT, 0, visibilityStates.length);
+            ui.frame_args_set_visibility_states.invoke(args, st, visibilityStates.length);
+        }
 
         return args;
     }
index dc89d4bbdba9d5662facb61e175862826271edfe..e7b785715b9fb356cff64d18258608275117cbc6 100644 (file)
@@ -2,6 +2,7 @@ package de.unixwork.ui;
 
 import java.lang.foreign.Arena;
 import java.lang.foreign.MemorySegment;
+import java.lang.foreign.ValueLayout;
 import java.lang.invoke.MethodHandle;
 
 public class SplitPaneBuilder extends AbstractWidgetBuilder{
@@ -28,6 +29,7 @@ public class SplitPaneBuilder extends AbstractWidgetBuilder{
     private UiInteger value;
     private String varname;
     private int maxPanes;
+    private int[] visibilityStates;
 
     public SplitPaneBuilder(UiObject obj, MethodHandle widgetConstructor) {
         this.obj = obj;
@@ -149,6 +151,11 @@ public class SplitPaneBuilder extends AbstractWidgetBuilder{
         return this;
     }
 
+    public SplitPaneBuilder visibilityStates(int[] states) {
+        this.visibilityStates = states;
+        return this;
+    }
+
     @Override
     public MemorySegment createArgs(Arena arena) throws Throwable {
         ArgFuncs ui = ArgFuncs.getInstance();
@@ -227,6 +234,11 @@ public class SplitPaneBuilder extends AbstractWidgetBuilder{
         if(maxPanes > 0) {
             ui.splitpane_args_set_max_panes.invoke(args, maxPanes);
         }
+        if(visibilityStates != null) {
+            MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, visibilityStates.length);
+            MemorySegment.copy(visibilityStates, 0, st, ValueLayout.JAVA_INT, 0, visibilityStates.length);
+            ui.splitpane_args_set_visibility_states.invoke(args, st, visibilityStates.length);
+        }
 
         return args;
     }
index f601fdf2c907da1a5b148c1a75d5aacbfdbff348..2e8b8453f3988386e8c258c9bd55ebf8aa72264c 100644 (file)
@@ -2,6 +2,7 @@ package de.unixwork.ui;
 
 import java.lang.foreign.Arena;
 import java.lang.foreign.MemorySegment;
+import java.lang.foreign.ValueLayout;
 import java.lang.invoke.MethodHandle;
 
 public class TabViewBuilder extends AbstractWidgetBuilder{
@@ -28,6 +29,7 @@ public class TabViewBuilder extends AbstractWidgetBuilder{
     private EventHandler onChange;
     private String varname;
     private UiInteger value;
+    private int[] visibilityStates;
     // TODO: subcontainer type
 
     public TabViewBuilder(UiObject obj, MethodHandle widgetConstructor) {
@@ -150,6 +152,12 @@ public class TabViewBuilder extends AbstractWidgetBuilder{
         return this;
     }
 
+    public TabViewBuilder visibilityStates(int[] states) {
+        this.visibilityStates = states;
+        return this;
+    }
+
+
     @Override
     public MemorySegment createArgs(Arena arena) throws Throwable {
         ArgFuncs ui = ArgFuncs.getInstance();
@@ -229,6 +237,11 @@ public class TabViewBuilder extends AbstractWidgetBuilder{
         if(value != null) {
             ui.tabview_args_set_value.invoke(args, value.valuePtr);
         }
+        if(visibilityStates != null) {
+            MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, visibilityStates.length);
+            MemorySegment.copy(visibilityStates, 0, st, ValueLayout.JAVA_INT, 0, visibilityStates.length);
+            ui.tabview_args_set_visibility_states.invoke(args, st, visibilityStates.length);
+        }
         // TODO: subcontainer type
 
         return args;
index 44cc3107ea9d7f2603750a008cc305f88eda3d59..f06f7b36cbb6ac798b47ca674f49b8caa16e7879 100644 (file)
@@ -282,6 +282,7 @@ private fun UiObject.createFrame(
     rowspacing: Int = -1,
     expanded: Boolean = false,
     label: String? = null,
+    visibilityStates: IntArray? = null,
     ui: ContainerUI? = null
 ): UiWidget {
     if(fill) {
@@ -341,6 +342,9 @@ private fun UiObject.createFrame(
     if(label != null) {
         container.label(label)
     }
+    if(visibilityStates != null) {
+        container.visibilityStates(visibilityStates)
+    }
 
     return container.create(ui)
 }
@@ -366,6 +370,7 @@ fun UiObject.frame(
     columnspacing: Int = -1,
     rowspacing: Int = -1,
     label: String? = null,
+    visibilityStates: IntArray? = null,
     ui: ContainerUI? = null
 ): UiWidget {
     return createFrame(
@@ -390,6 +395,7 @@ fun UiObject.frame(
         columnspacing = columnspacing,
         rowspacing = rowspacing,
         label = label,
+        visibilityStates = visibilityStates,
         ui = ui
     )
 }
@@ -416,6 +422,7 @@ fun UiObject.expander(
     rowspacing: Int = -1,
     expanded: Boolean = false,
     label: String? = null,
+    visibilityStates: IntArray? = null,
     ui: ContainerUI? = null
 ): UiWidget {
     return createFrame(
@@ -441,6 +448,7 @@ fun UiObject.expander(
         rowspacing = rowspacing,
         expanded = expanded,
         label = label,
+        visibilityStates = visibilityStates,
         ui = ui
     )
 }
@@ -469,6 +477,7 @@ fun UiObject.tabview(
     varname: String? = null,
     value: UiInteger? = null,
     onChange: EventHandler? = null,
+    visibilityStates: IntArray? = null,
     ui: ContainerUI? = null
 ): UiWidget {
     val container = Container.tabview(this)
@@ -539,6 +548,9 @@ fun UiObject.tabview(
     if(onChange != null) {
         container.onChange(onChange)
     }
+    if(visibilityStates != null) {
+        container.visibilityStates(visibilityStates)
+    }
     return container.create(ui)
 }
 
@@ -565,6 +577,7 @@ private fun UiObject.createSplitpane(
     value: UiInteger? = null,
     varname: String? = null,
     maxPanes: Int = 0,
+    visibilityStates: IntArray? = null,
     ui: ContainerUI? = null
 ): UiWidget {
     val container = if(horizontal) {
@@ -636,6 +649,9 @@ private fun UiObject.createSplitpane(
     if(styleClass != null) {
         container.styleClass(styleClass)
     }
+    if(visibilityStates != null) {
+        container.visibilityStates(visibilityStates)
+    }
 
     return container.create(ui)
 }
@@ -662,6 +678,7 @@ fun UiObject.hsplitpane(
     value: UiInteger? = null,
     varname: String? = null,
     maxPanes: Int = 0,
+    visibilityStates: IntArray? = null,
     ui: ContainerUI? = null
 ): UiWidget {
     return createSplitpane(
@@ -687,6 +704,7 @@ fun UiObject.hsplitpane(
         value = value,
         varname = varname,
         maxPanes = maxPanes,
+        visibilityStates = visibilityStates,
         ui = ui
     )
 }
@@ -713,6 +731,7 @@ fun UiObject.vsplitpane(
     value: UiInteger? = null,
     varname: String? = null,
     maxPanes: Int = 0,
+    visibilityStates: IntArray? = null,
     ui: ContainerUI? = null
 ): UiWidget {
     return createSplitpane(
@@ -738,6 +757,7 @@ fun UiObject.vsplitpane(
         value = value,
         varname = varname,
         maxPanes = maxPanes,
+        visibilityStates = visibilityStates,
         ui = ui
     )
 }