static int pointArrowsToArea_inset = 20; static double pointArrowsToArea_defaultSeconds = 5; static L pointArrowsToArea(Rect r) { ret pointArrowsToArea(r.getRectangle()); } static L pointArrowsToArea(Rectangle r) { ret pointArrowsToArea(r, pointArrowsToArea_defaultSeconds); } static L pointArrowsToArea(Rectangle r, double seconds) { int midX = r.x+r.width/2, midY = r.y+r.height/2; int inset = pointArrowsToArea_inset; S iLeft = null /* TODO: lost/broken - "#1005637"*/, iDown = "#1005636", iRight = "#1005634", iUp = "#1005635"; int rInset = -16; new L windows; BufferedImage img; if (iLeft != null) { img = loadImage2(iLeft); addIfNotNull(windows, freeFloatingAnimation(iLeft, r.x+r.width+inset+rInset, midY-img.getHeight()/2)); } img = loadImage2(iDown); addIfNotNull(windows, freeFloatingAnimation(iDown, midX, r.y-inset-img.getHeight())); img = loadImage2(iRight); addIfNotNull(windows, freeFloatingAnimation(iRight, r.x-inset-img.getWidth(), midY-img.getHeight()/2)); img = loadImage2(iUp); addIfNotNull(windows, freeFloatingAnimation(iUp, midX, r.y+r.height+inset)); ret disposeWindowsAfter(secondsToMS(seconds), windows); }