From: Olaf Wintermann Date: Sat, 21 Feb 2026 19:15:08 +0000 (+0100) Subject: implement toolkit container visibilityStates parameter X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=7c84729a87a5f8bbc28ee29592e3631c54ce9434;p=rssreader.git implement toolkit container visibilityStates parameter --- diff --git a/ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java b/ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java index bb7f291..1e6aff6 100644 --- a/ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java +++ b/ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java @@ -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); } diff --git a/ui-java/src/main/java/de/unixwork/ui/ContainerBuilder.java b/ui-java/src/main/java/de/unixwork/ui/ContainerBuilder.java index 576dac0..c23288f 100644 --- a/ui-java/src/main/java/de/unixwork/ui/ContainerBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/ContainerBuilder.java @@ -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; } } diff --git a/ui-java/src/main/java/de/unixwork/ui/FrameBuilder.java b/ui-java/src/main/java/de/unixwork/ui/FrameBuilder.java index beee2bb..eb7d1b8 100644 --- a/ui-java/src/main/java/de/unixwork/ui/FrameBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/FrameBuilder.java @@ -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; } diff --git a/ui-java/src/main/java/de/unixwork/ui/SplitPaneBuilder.java b/ui-java/src/main/java/de/unixwork/ui/SplitPaneBuilder.java index dc89d4b..e7b7857 100644 --- a/ui-java/src/main/java/de/unixwork/ui/SplitPaneBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/SplitPaneBuilder.java @@ -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; } diff --git a/ui-java/src/main/java/de/unixwork/ui/TabViewBuilder.java b/ui-java/src/main/java/de/unixwork/ui/TabViewBuilder.java index f601fdf..2e8b845 100644 --- a/ui-java/src/main/java/de/unixwork/ui/TabViewBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/TabViewBuilder.java @@ -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; diff --git a/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Ui.kt b/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Ui.kt index 44cc310..f06f7b3 100644 --- a/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Ui.kt +++ b/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Ui.kt @@ -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 ) }