view dstep/applicationservices/coregraphics/CGWindow.d @ 12:9f0b49a2f64e

Added the ApplicationServices frameworks: ATS, ColorSync and CoreGraphics
author Jacob Carlborg <doob@me.com>
date Mon, 03 Aug 2009 14:00:21 +0200
parents
children
line wrap: on
line source

/**
 * Copyright: Copyright (c) 2009 Jacob Carlborg.
 * Authors: Jacob Carlborg
 * Version: Initial created: Aug 1, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.applicationservices.coregraphics.CGWindow;

import dstep.corefoundation.CFArray;
import dstep.corefoundation.CFBase;
import dstep.corefoundation.CFDictionary;
import dstep.applicationservices.coregraphics.CGBase;
import dstep.applicationservices.coregraphics.CGImage;
import dstep.applicationservices.coregraphics.CGGeometry;

alias uint CGWindowID;
alias uint CGWindowListOption;
alias uint CGWindowImageOption;
alias uint CGWindowSharingType;
alias uint CGWindowBackingType;

extern (C)
{
	extern
	{
		const CFStringRef kCGWindowNumber;
		const CFStringRef kCGWindowStoreType;
		const CFStringRef kCGWindowLayer;
		const CFStringRef kCGWindowBounds;
		const CFStringRef kCGWindowSharingState;
		const CFStringRef kCGWindowAlpha;
		const CFStringRef kCGWindowOwnerPID;
		const CFStringRef kCGWindowMemoryUsage;
		const CFStringRef kCGWindowWorkspace;
		const CFStringRef kCGWindowOwnerName;
		const CFStringRef kCGWindowName;
		const CFStringRef kCGWindowIsOnscreen;
		const CFStringRef kCGWindowBackingLocationVideoMemory;
	}
}

enum
{
	kCGWindowSharingNone = 0,
	kCGWindowSharingReadOnly = 1,
	kCGWindowSharingReadWrite = 2
}

enum
{
	kCGBackingStoreRetained = 0,
	kCGBackingStoreNonretained = 1,
	kCGBackingStoreBuffered = 2
}

enum
{
	kCGWindowListOptionAll = 0,
	kCGWindowListOptionOnScreenOnly = (1 << 0),
	kCGWindowListOptionOnScreenAboveWindow = (1 << 1),
	kCGWindowListOptionOnScreenBelowWindow = (1 << 2),
	kCGWindowListOptionIncludingWindow = (1 << 3),
	kCGWindowListExcludeDesktopElements = (1 << 4)
}

enum
{
	kCGWindowImageDefault = 0,
	kCGWindowImageBoundsIgnoreFraming = (1 << 0),
	kCGWindowImageShouldBeOpaque = (1 << 1),
	kCGWindowImageOnlyShadows = (1 << 2)
}

extern (C)
{
	CFArrayRef CGWindowListCopyWindowInfo (uint option, uint relativeToWindow);
	CFArrayRef CGWindowListCreate (uint option, uint relativeToWindow);
	CFArrayRef CGWindowListCreateDescriptionFromArray (CFArrayRef windowArray);
	CGImageRef CGWindowListCreateImage (CGRect screenBounds, uint windowOption, uint windowID, uint imageOption);
	CGImageRef CGWindowListCreateImageFromArray (CGRect screenBounds, CFArrayRef windowArray, uint imageOption);
}