package builtin.graphics;
import builtin.BuiltinSub;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import gui.Constants;
import gui.Heap;
import gui.Mint;
import gui.MintException;
import gui.Pointer;
import gui.SmartList;
/**
* @author Oliver Chu
*/
public class Screenshot extends BuiltinSub {
@Override
public Pointer apply(SmartList<Pointer> args) throws MintException {
try {
Dimension bounds = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenBoundaries = new Rectangle(bounds);
BufferedImage image =
new Robot().createScreenCapture(screenBoundaries);
return Heap.allocImg(image);
} catch (Throwable t) {
String asString = t.toString();
System.err.println(asString);
Mint.printStackTrace(t.getStackTrace());
return Constants.MINT_NULL;
}
}
}