sclass G22Utils { gettable CombinedStringifier stringifier = new( o -> o cast BufferedImage ? "Image (" + o.getWidth() + "*" + o.getHeight() + " px)" : null ); ImageSurface stdImageSurface() { var is = pixelatedImageSurface().setAutoZoomToDisplay(true).repaintInThread(false); is.specialPurposed = true; new ImageSurface_PositionToolTip(is); ret is; } ImageSurface stdImageSurface(BufferedImage etc img) { var is = stdImageSurface(); is.setImage(img); ret is; } S stringify(O o) { ret stringifier.toString(o); } swappable void modifyLeftArrowParser(GazelleV_LeftArrowScriptParser parser) {} GazelleV_LeftArrowScriptParser leftArrowParser() { new GazelleV_LeftArrowScriptParser parser; modifyLeftArrowParser(parser); ret parser; } }