32 lines
1.1 KiB
Java
32 lines
1.1 KiB
Java
|
package io.gitlab.jfronny.inceptum.gtk.util;
|
||
|
|
||
|
import ch.bailu.gtk.gtk.Widget;
|
||
|
import ch.bailu.gtk.type.Pointer;
|
||
|
|
||
|
import java.util.Arrays;
|
||
|
import java.util.stream.Collectors;
|
||
|
|
||
|
public class Dbg {
|
||
|
public static String inspect(Widget ptr) {
|
||
|
if (ptr.isNull()) return "<null>";
|
||
|
StringBuilder sb = new StringBuilder();
|
||
|
inspect(ptr, sb, "");
|
||
|
return sb.toString();
|
||
|
}
|
||
|
|
||
|
private static void inspect(Widget ptr, StringBuilder bld, String indent) {
|
||
|
bld.append(indent).append("<").append(ptr.getName().toString()).append("#").append(ptr.getCPointer()).append("> ")
|
||
|
.append(Arrays.stream(Pointer.toJnaPointer(ptr.getCssClasses().getCPointer()).getPointerArray(0))
|
||
|
.map(p -> p.getString(0))
|
||
|
.collect(Collectors.joining(", ")));
|
||
|
ptr = ptr.getFirstChild();
|
||
|
if (ptr.isNotNull()) {
|
||
|
while (ptr.isNotNull()) {
|
||
|
bld.append("\n");
|
||
|
inspect(ptr, bld, indent + " ");
|
||
|
ptr = ptr.getNextSibling();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|