Inceptum/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/util/Dbg.java

32 lines
1.1 KiB
Java
Raw Normal View History

2022-10-19 20:28:49 +02:00
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();
}
}
}
}