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 ""; 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(); } } } }