MethodHandle sourcelist_args_set_onbuttonclickdata;
MethodHandle sourcelist_args_set_contextmenu;
MethodHandle sourcelist_args_set_header_is_item;
+ MethodHandle sourcelist_args_set_states;
MethodHandle sourcelist_args_set_visibility_states;
MethodHandle sourcelist_args_free;
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_states_addr = lib.find("ui_sourcelist_args_set_states").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();
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_states = linker.downcallHandle(ui_sourcelist_args_set_states_addr, sigv_mmi);
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);
private boolean multiselection;
private Menu contextMenu;
private int[] states;
+ private int[] visibilityStates;
MemorySegment menuBuilder;
return this;
}
+ public ListViewBuilder<T> visibilityStates(int... states) {
+ this.visibilityStates = states;
+ return this;
+ }
+
public MemorySegment createArgs(Arena arena) throws Throwable {
ArgFuncs ui = ArgFuncs.getInstance();
MemorySegment.copy(states, 0, st, ValueLayout.JAVA_INT, 0, states.length);
ui.list_args_set_states.invoke(args, st, states.length);
}
+ if(visibilityStates != null) {
+ MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, visibilityStates.length);
+ MemorySegment.copy(visibilityStates, 0, st, ValueLayout.JAVA_INT, 0, visibilityStates.length);
+ ui.list_args_set_visibility_states.invoke(args, st, visibilityStates.length);
+ }
return args;
}
import java.lang.foreign.Arena;
import java.lang.foreign.MemorySegment;
+import java.lang.foreign.ValueLayout;
import java.lang.invoke.MethodHandle;
import java.util.List;
private Menu contextMenu;
private boolean headerIsItem;
private int[] states;
+ private int[] visibilityStates;
private List<SubList> sublists;
private UiSourceList dynamicSublists;
return this;
}
+ public SourceListBuilder<T> visibilityStates(int... visibilityStates) {
+ this.visibilityStates = visibilityStates;
+ return this;
+ }
+
public SourceListBuilder<T> sublists(List<SubList> sublists) {
this.sublists = sublists;
return this;
if (headerIsItem) {
ui.sourcelist_args_set_header_is_item.invoke(args, headerIsItem);
}
+ if(states != null) {
+ MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, states.length);
+ MemorySegment.copy(states, 0, st, ValueLayout.JAVA_INT, 0, states.length);
+ ui.sourcelist_args_set_states.invoke(args, st, states.length);
+ }
+ if(visibilityStates != null) {
+ MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, visibilityStates.length);
+ MemorySegment.copy(visibilityStates, 0, st, ValueLayout.JAVA_INT, 0, visibilityStates.length);
+ ui.sourcelist_args_set_visibility_states.invoke(args, st, visibilityStates.length);
+ }
return args;
}
private Menu contextMenu;
// TODO: contextmenu
private int[] states;
+ private int[] visibilityStates;
private MemorySegment modelPtr;
return this;
}
+ public TableViewBuilder<T> visibilityStates(int... states) {
+ this.visibilityStates = states;
+ return this;
+ }
+
public MemorySegment createArgs(Arena arena) throws Throwable {
ArgFuncs ui = ArgFuncs.getInstance();
MemorySegment.copy(states, 0, st, ValueLayout.JAVA_INT, 0, states.length);
ui.list_args_set_states.invoke(args, st, states.length);
}
+ if(visibilityStates != null) {
+ MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, visibilityStates.length);
+ MemorySegment.copy(visibilityStates, 0, st, ValueLayout.JAVA_INT, 0, visibilityStates.length);
+ ui.list_args_set_visibility_states.invoke(args, st, visibilityStates.length);
+ }
return args;
}
private String varname;
private EventHandler onChange;
private int[] states;
+ private int[] visibilityStates;
public TextAreaBuilder(UiObject obj, MethodHandle widgetConstructor) {
this.obj = obj;
return this;
}
+ public TextAreaBuilder visibilityStates(int... visibilityStates) {
+ this.visibilityStates = visibilityStates;
+ return this;
+ }
+
public MemorySegment createArgs(Arena arena) throws Throwable {
ArgFuncs ui = ArgFuncs.getInstance();
ui.textarea_args_set_states.invoke(args, st, states.length);
}
+ if(visibilityStates != null) {
+ MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, visibilityStates.length);
+ MemorySegment.copy(visibilityStates, 0, st, ValueLayout.JAVA_INT, 0, visibilityStates.length);
+ ui.textarea_args_set_visibility_states.invoke(args, st, visibilityStates.length);
+ }
+
return args;
}
}
private EventHandler onChange;
private EventHandler onActivate;
private int[] states;
+ private int[] visibilityStates;
public TextFieldBuilder(UiObject obj, MethodHandle widgetConstructor) {
this.obj = obj;
return this;
}
+ public TextFieldBuilder visibilityStates(int... visibilityStates) {
+ this.visibilityStates = visibilityStates;
+ return this;
+ }
+
public MemorySegment createArgs(Arena arena) throws Throwable {
ArgFuncs ui = ArgFuncs.getInstance();
ui.textfield_args_set_states.invoke(args, st, states.length);
}
+ if(visibilityStates != null) {
+ MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, visibilityStates.length);
+ MemorySegment.copy(visibilityStates, 0, st, ValueLayout.JAVA_INT, 0, visibilityStates.length);
+ ui.textfield_args_set_visibility_states.invoke(args, st, visibilityStates.length);
+ }
+
return args;
}
}
package de.unixwork.ui.kotlin
import de.unixwork.ui.*
+import kotlin.IntArray
operator fun UiObject.invoke(block: UiObject.() -> Unit) {
block()
onDragComplete: EventHandler? = null,
onDrop: EventHandler? = null,
onSave: ListSaveHandler? = null,
+ visibilityStates: IntArray? = null,
getstyle: ListStyleProvider<T>? = null,
getvalue: ListValueConverter<T>? = null
): UiWidget {
states?.let {
table.states(*it)
}
+ visibilityStates?.let {
+ table.visibilityStates(*it)
+ }
contextmenu?.let {
table.contextmenu(it)
}
name: String? = null,
styleClass: String? = null,
states: IntArray? = null,
+ visibilityStates: IntArray? = null,
contextmenu: Menu? = null,
onActivate: EventHandler? = null,
onSelection: EventHandler? = null,
states?.let {
list.states(*it)
}
+ visibilityStates?.let {
+ list.visibilityStates(*it)
+ }
contextmenu?.let {
list.contextmenu(it)
}
name: String? = null,
styleClass: String? = null,
states: IntArray? = null,
+ visibilityStates: IntArray? = null,
contextmenu: Menu? = null,
onActivate: EventHandler? = null,
onSelection: EventHandler? = null,
name = name,
styleClass = styleClass,
states = states,
+ visibilityStates = visibilityStates,
contextmenu = contextmenu,
onActivate = onActivate,
onSelection = onSelection,
name: String? = null,
styleClass: String? = null,
states: IntArray? = null,
+ visibilityStates: IntArray? = null,
onActivate: EventHandler? = null,
getvalue: ListValueConverter<T>? = null
): UiWidget {
name = name,
styleClass = styleClass,
states = states,
+ visibilityStates = visibilityStates,
onActivate = onActivate,
getvalue = getvalue
)
styleClass: String? = null,
contextmenu: Menu? = null,
headerIsItem: Boolean = false,
+ states: IntArray? = null,
+ visibilityStates: IntArray? = null,
onActivate: EventHandler? = null,
onButtonClick: EventHandler? = null,
getvalue: SubListValueConverter<T>? = null
if(headerIsItem) {
list.headerIsItem(true)
}
+ if(states != null) {
+ list.states(*states)
+ }
+ if(visibilityStates != null) {
+ list.visibilityStates(*visibilityStates)
+ }
onActivate?.let {
list.onActivate(it)
}
name: String? = null,
styleClass: String? = null,
states: IntArray? = null,
+ visibilityStates: IntArray? = null,
onChange: EventHandler? = null
): UiWidget {
val textarea = Text.textarea(this)
states?.let {
textarea.states(*it)
}
+ visibilityStates?.let {
+ textarea.visibilityStates(*it)
+ }
onChange?.let {
textarea.onChange(onChange)
}
name: String? = null,
styleClass: String? = null,
states: IntArray? = null,
+ visibilityStates: IntArray? = null,
onChange: EventHandler? = null
): UiWidget {
varname?.let {
states?.let {
textfield.states(*it)
}
+ visibilityStates?.let {
+ textfield.visibilityStates(*it)
+ }
onChange?.let {
textfield.onChange(onChange)
}
name: String? = null,
styleClass: String? = null,
states: IntArray? = null,
+ visibilityStates: IntArray? = null,
onChange: EventHandler? = null
): UiWidget {
val textfield = Text.textfield(this)
name = name,
styleClass = styleClass,
states = states,
+ visibilityStates = visibilityStates,
onChange = onChange
)
}
name: String? = null,
styleClass: String? = null,
states: IntArray? = null,
+ visibilityStates: IntArray? = null,
onChange: EventHandler? = null
): UiWidget {
val textfield = Text.passwordfield(this)
name = name,
styleClass = styleClass,
states = states,
+ visibilityStates = visibilityStates,
onChange = onChange
)
}
name: String? = null,
styleClass: String? = null,
states: IntArray? = null,
+ visibilityStates: IntArray? = null,
onChange: EventHandler? = null
): UiWidget {
val textfield = Text.framelessTextfield(this)
name = name,
styleClass = styleClass,
states = states,
+ visibilityStates = visibilityStates,
onChange = onChange
)
}