/* Call no# args arg type
CGSEndContext 1 argument ? int -- possibly unneeded by CGContextFlush
CGSFlushContext 1 argument ? int -- use CGContextFlush instead
CGSImage 2 arguments ?, ? int , int
CGContextSetAlpha 1 argument ? int
CGSScaleCTM 2 arguments ?, ? float, float
CGSTranslateCTM 2 arguments ?, ? float, float
CGSSetGStateAttribute 3 arguments ?, ?, ? int,int,int
CGSUniqueCString 1 argument ? int (constant 0x1fa8)
CGSReadObjectFromCString 1 argument ? int (constant 0x2140)
CGSClearContext 1 argument ? int
CGSGetWindowAlpha 3 argument ?,?,? int,int,int
CGSPutBooleanForCStringKey 3 arguments ?,?,? int,int,int
CGSPutIntegerForCStringKey 3 arguments ?,?,? int,int,int
CGSCreateDictionary 1 argument ? int
CGSReleaseWindow 2 arguments ?,? int,int -- deprecated? use CGContextRelease?
CGSSetWindowWarp 5 arguments ?,?,?,?,? int,int,int,int,int
CGSSetBackgroundEventMaskAndShape 3 args ?,?,? int,int,int
CGSInputModifierKeyState 2 arguments ?,? int,int (const arg1=0,arg2=variable)
CGSGetScreenRectForWindow 1(2?) arguments ?,(?) int,(int)
CGSSetFillPattern 2 args ?,? int,int
CGSCurrentInputPointerPosition 1 args ? int
CGSSetWindowClipShape 3 arguments ?,?,? int,int,int
CGSGetScreenRectForWindow 2 arguments ?,? int,int
CGSGetWindowFlushSeed 3 arguments ?,?,? int,int,int
CGSGetCurrentCursorLocation 1 argument ? int */
#ifndef _CGS_HACK_H #define _CGS_HACK_H
#include <Carbon/Carbon.h> /* for ProcessSerialNumber */
typedef void *CGSConnectionID; typedef void *CGSValueObj; typedef void *CGSRegionObj; typedef void *CGSBoundingShapeObj;
typedef enum _CGSWindowOrderingMode { kCGSOrderAbove = 1, kCGSOrderBelow = -1, kCGSOrderOut = 0 } CGSWindowOrderingMode;
#define kCGSNullConnectionID ((CGSConnectionID)0)
extern CGSConnectionID _CGSDefaultConnection(void);
extern void CGSReenableUpdate(CGSConnectionID cid); extern void CGSDisableUpdate(CGSConnectionID cid);
extern OSStatus CGSSetWindowTransforms(const CGSConnectionID cid, CGWindowID *wid, CGAffineTransform *transform, int n); extern OSStatus CGSSetWindowTransform(const CGSConnectionID cid, CGWindowID wid, CGAffineTransform transform);
extern OSStatus CGSGetWindowTransform(const CGSConnectionID, CGWindowID wid, CGAffineTransform *outTransform);
// questionable, partly guessed IIRC. extern OSStatus CGSSetSharedWindowState(const CGSConnectionID cid, CGWindowID wid, CGSValueObj boolean); extern OSStatus CGSSetWindowAlpha(const CGSConnectionID cid, CGWindowID wid, float alpha);
extern OSStatus CGSSetWindowProperty(const CGSConnectionID cid, CGWindowID wid, CGSValueObj key, CGSValueObj value);
extern CGSValueObj CGSCreateCString(char *string); extern CGSValueObj CGSCreateBoolean(Boolean bool); extern void CGSReleaseGenericObj(CGSValueObj obj);
extern OSStatus CGSOrderWindow(CGSConnectionID cid, CGWindowID wid, CGSWindowOrderingMode place, CGWindowID relativeToWindowID /* can be NULL */);
extern void CGSNewRegionWithRect(const CGRect *aRectangle, CGSRegionObj *outRegionObj); extern OSStatus CGSReleaseRegion(CGSRegionObj); extern void CGSGetRegionBounds(const CGSRegionObj aRegion, CGRect *outRect);
extern void CGSSetWindowOpacity(CGSConnectionID cid, CGWindowID wid, void* opacity /* kCGSFalse, is that a CGSValueObj or standard char? */);
extern OSStatus CGSNewConnection(void something / can be NULL, parent connection? */, CGSConnectionID *outID); extern OSStatus CGSReleaseConnection(CGSConnectionID cid); extern void CGSInitialize();
extern OSStatus CGSGetConnectionIDForPSN(const CGSConnectionID cid, ProcessSerialNumber *psn, CGSConnectionID *out);
// random hack constants for CGSSetDebugOptions #define kCGSDebugOptionNormal 0 #define kCGSDebugOptionNoShadows 16384 #define kCGSHDumpWindowInfoToFile (0x8000«16)|1
extern OSStatus CGSSetDebugOptions(unsigned long);
// only works if you kill the dock, then stops dock from relaunching extern OSStatus CGSSetUniversalOwner(const CGSConnectionID cid, int); // apparently a nop extern OSStatus CGSSetOtherUniversalConnection(const CGSConnectionID cid);
extern OSStatus CGSGetScreenRectForWindow(CGSConnectionID cid, CGWindowID wid, CGRect *outRect); extern OSStatus CGSMoveWindow(CGSConnectionID cid, CGWindowID wid, CGPoint *aPoint);
extern OSStatus CGSGetWindowLevel(CGSConnectionID cid, CGWindowID wid, CGWindowLevel *level); extern OSStatus CGSGetWindowBounds(CGSConnectionID cid, CGWindowID wid, CGRect *bounds);
extern CGWindowID CGSDesktopWindow(void);
extern OSStatus CGSSetWindowLevel(CGSConnectionID cid, CGWindowID wid, CGWindowLevel level);
#endif /* _CGS_HACK_H */
I removed the CGSWindowID type, as it’s actually the same as the CGWindowID type that’s publicly defined. -JonathanGrynspan