ContainerFuncs ui = ContainerFuncs.getInstance();
return new ContainerBuilder(obj, ui.grid_create);
}
+
+ public static void newline(UiObject obj) {
+ ContainerFuncs ui = ContainerFuncs.getInstance();
+ try {
+ ui.newline.invoke(obj.ptr);
+ } catch (Throwable e) {
+ throw new RuntimeException(e);
+ }
+ }
}
public MethodHandle container_begin_close;
public MethodHandle container_finish;
+ public MethodHandle newline;
+
private ContainerFuncs(Linker linker, SymbolLookup lib) {
FunctionDescriptor sigm_mm = FunctionDescriptor.of(ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS);
FunctionDescriptor sigm_m = FunctionDescriptor.of(ValueLayout.ADDRESS, ValueLayout.ADDRESS);
MemorySegment ui_container_begin_close = lib.find("ui_container_begin_close").orElseThrow();
MemorySegment ui_container_finish = lib.find("ui_container_finish").orElseThrow();
+ MemorySegment ui_newline_addr = lib.find("ui_newline").orElseThrow();
+
vbox_create = linker.downcallHandle(ui_vbox_create_addr, sigm_mm);
hbox_create = linker.downcallHandle(ui_hbox_create_addr, sigm_mm);
grid_create = linker.downcallHandle(ui_grid_create_addr, sigm_mm);
container_begin_close = linker.downcallHandle(ui_container_begin_close, sigv_m);
container_finish = linker.downcallHandle(ui_container_finish, sigi_m);
+
+ newline = linker.downcallHandle(ui_newline_addr, sigv_m);
}
static ContainerFuncs getInstance() {
class Main : Application {
override fun startup() {
val window = window("Test Window") {
- hbox {
- button("T1")
- button("T2")
- vbox {
- button("V1")
- button("V2")
+ grid {
+ vbox(vexpand = true, vfill = true) {
+ button("B1")
+ button("B2")
+ button("B3")
+ }
+ grid(columnspacing = 10, rowspacing = 10, hexpand = true, hfill = true, vexpand = true) {
+ row {
+ button("C1")
+ button("C2")
+ button(label = "C3", hfill = true, hexpand = true)
+ }
+ row {
+ button("D1")
+ button("D2")
+ }
+ row {
+ button("E1")
+ }
}
- button("T3")
}
}