package net.hearthstats.osx.jna;
import com.sun.jna.*;
import org.rococoa.ID;
import org.rococoa.cocoa.foundation.NSString;
import java.util.Arrays;
import java.util.List;
/**
* @author gtch
*/
public interface CoreGraphicsLibrary extends Library {
public static final CoreGraphicsLibrary INSTANCE = (CoreGraphicsLibrary) Native.loadLibrary("CoreGraphics", CoreGraphicsLibrary.class);
ID CGWindowListCreateImage(CGRect screenBounds, int windowOption, int windowId, int imageOption);
CFArrayRef CGWindowListCopyWindowInfo(int option, int relativeToWindow);
CFArrayRef CGWindowListCreateDescriptionFromArray(CFArrayRef windowArray);
boolean CGRectMakeWithDictionaryRepresentation(Pointer dict, CGRectRef rect);
void CGImageRelease(CGImage image);
boolean CGImageIsMask(CGImage image);
long CGImageGetWidth(CGImage image);
long CGImageGetHeight(CGImage image);
long CGImageGetBitsPerComponent(CGImage image);
long CGImageGetBitsPerPixel(CGImage image);
long CGImageGetBytesPerRow(CGImage image);
final static NSString kCGWindowNumber = NSString.getGlobalString("kCGWindowNumber");
final static NSString kCGWindowOwnerPID = NSString.getGlobalString("kCGWindowOwnerPID");
final static NSString kCGWindowBounds = NSString.getGlobalString("kCGWindowBounds");
final static NSString kCGWindowSharingState = NSString.getGlobalString("kCGWindowSharingState");
final static NSString kCGWindowAlpha = NSString.getGlobalString("kCGWindowAlpha");
final static NSString kCGWindowLayer = NSString.getGlobalString("kCGWindowLayer");
final static NSString kCGWindowIsOnscreen = NSString.getGlobalString("kCGWindowIsOnscreen");
final static NSString kCGWindowName = NSString.getGlobalString("kCGWindowName");
public static final int kCGWindowListOptionAll = 0;
public static final int kCGWindowListOptionOnScreenOnly = (1 << 0);
public static final int kCGWindowListOptionOnScreenAboveWindow = (1 << 1);
public static final int kCGWindowListOptionOnScreenBelowWindow = (1 << 2);
public static final int kCGWindowListOptionIncludingWindow = (1 << 3);
public static final int kCGWindowListExcludeDesktopElements = (1 << 4);
public static final int kCGWindowImageDefault = 0;
public static final int kCGWindowImageBoundsIgnoreFraming = (1 << 0);
public static final int kCGWindowImageShouldBeOpaque = (1 << 1);
public static final int kCGWindowImageOnlyShadows = (1 << 2);
public static final int kCGWindowImageBestResolution = (1 << 3);
public static final int kCGWindowImageNominalResolution = (1 << 4);
public static class __CFArray extends PointerType {
public __CFArray(Pointer pointer) {
super(pointer);
}
public __CFArray() {
super();
}
}
class CGPoint extends Structure {
public double x;
public double y;
@Override
protected List getFieldOrder() {
return Arrays.asList("x", "y");
}
}
class CGSize extends Structure {
public double width;
public double height;
@Override
protected List getFieldOrder() {
return Arrays.asList("width", "height");
}
}
class CGRect extends Structure implements Structure.ByValue {
public static class CGRectByValue extends CGRect {
}
public CGPoint origin;
public CGSize size;
@Override
protected List getFieldOrder() {
return Arrays.asList("origin", "size");
}
}
class CGRectRef extends Structure implements Structure.ByReference {
public static class CGRectByReference extends CGRect {
}
public CGPoint origin;
public CGSize size;
@Override
protected List getFieldOrder() {
return Arrays.asList("origin", "size");
}
}
}