Константы
Константы совместного использования окна
Указывает, ли и как окна совместно используются приложениями.
enum {
kCGWindowSharingNone = 0,
kCGWindowSharingReadOnly = 1,
kCGWindowSharingReadWrite = 2
};
Константы
kCGWindowSharingNoneОкно не совместно используется.
kCGWindowSharingReadOnlyОкно совместно используется, и его содержание может быть считано всеми процессами, но изменено только процессом, создавшим его.
kCGWindowSharingReadWriteОкно совместно используется, и его содержание может быть считано и изменено любым процессом.
Типы запоминающего устройства
Указывает, как команды рисования буферизуются устройством окна.
enum {
kCGBackingStoreRetained = 0,
kCGBackingStoreNonretained = 1,
kCGBackingStoreBuffered = 2
};
Константы
kCGBackingStoreRetainedОкно использует буфер, но рисует непосредственно на экран где возможный и на буфер для затененных частей.
Вы не должны обычно использовать этот режим. Это комбинирует ограничения
kCGBackingStoreNonretainedс использованием памятиkCGBackingStoreBuffered. Исходная реализация NeXTSTEP была интересным компромиссом, работавшим хорошо с отображенными кадровыми буферами быстродействующей памяти на шине CPU — что-то, что не было во всеобщем употреблении приблизительно с 1994. Они имеют тенденцию иметь проблемы производительности.В OS X v10.5 и позже, запросы на сохраненные окна приведут к оконной системе, создающей буферизированное окно, как тот лучшие соответствия фактическое использование
kCGBackingStoreNonretainedОкно рисует непосредственно на экран, не используя буфера.
Вы не должны обычно использовать этот режим. Это существует прежде всего для использования в исходном Классическом Синем Поле. Это не поддерживает Кварцевое получение, альфа-смешивание или непрозрачность. Кроме того, это не поддерживает аппаратное ускорение и вмешивается в ускорение дисплея в масштабе всей системы. При использовании этого режима приложение должно управлять областью видимости, отсекающей себя, и управлять перекрашиванием на изменениях видимости.
kCGBackingStoreBufferedОкно вовлекает дисплейный буфер и затем сбрасывает тот буфер на экран.
Необходимо обычно использовать этот режим. Это поддерживает аппаратное ускорение, Кварцевое получение, и использует в своих интересах GPU, если это возможно. Это также поддерживает получение альфа-канала, средства управления непрозрачностью, с помощью наборщика.
Константы опции списка окна
Указывает который окна в текущий сеанс пользователя включать в сгенерированный список.
enum
{
kCGWindowListOptionAll = 0,
kCGWindowListOptionOnScreenOnly = (1 << 0),
kCGWindowListOptionOnScreenAboveWindow = (1 << 1),
kCGWindowListOptionOnScreenBelowWindow = (1 << 2),
kCGWindowListOptionIncludingWindow = (1 << 3),
kCGWindowListExcludeDesktopElements = (1 << 4)
}
Константы
kCGWindowListOptionAllПеречислите все окна, и включая экранные и включая внеэкранные окна. При получении списка с этой опцией relativeToWindow параметр должен быть установлен на
kCGNullWindowID.kCGWindowListOptionOnScreenOnlyПеречислите все окна, которые являются в настоящее время экранными. Windows возвращается в порядке по всей длине. При получении списка с этой опцией relativeToWindow параметр должен быть установлен на
kCGNullWindowID.kCGWindowListOptionOnScreenAboveWindowПеречислите все окна, которые являются в настоящее время экранными и перед окном, указанным в relativeToWindow параметре. Windows возвращается в порядке по всей длине.
kCGWindowListOptionOnScreenBelowWindowПеречислите все окна, которые являются в настоящее время экранными и в позади окна, указанного в relativeToWindow параметре. Windows возвращается в порядке по всей длине.
kCGWindowListOptionIncludingWindowВключайте указанное окно (от relativeToWindow параметра) в возвращенном списке. Необходимо объединить эту опцию с
kCGWindowListOptionOnScreenAboveWindowилиkCGWindowListOptionOnScreenBelowWindowопция получить значимые результаты.kCGWindowListExcludeDesktopElementsИсключите любые окна из списка, которые являются элементами рабочего стола, включая фоновое изображение и значки на рабочем столе. Можно объединить эту опцию с другими опциями.
Обсуждение
kCGWindowListOptionIncludingWindow и kCGWindowListExcludeDesktopElements константы могут быть объединены с другими константами путем добавления (или осуществление операции ИЛИ) их вместе и передачи получающегося значения надлежащей функции.
Эти константы позволяют Вам получить окна в текущий сеанс пользователя только. Вы не можете использовать их для получения окон от других сеансов активного пользователя, работающих на системе.
Типы изображения окна
Указывает опции для получения изображения окна.
enum {
kCGWindowImageDefault = 0,
kCGWindowImageBoundsIgnoreFraming = (1 << 0),
kCGWindowImageShouldBeOpaque = (1 << 1),
kCGWindowImageOnlyShadows = (1 << 2),
kCGWindowImageBestResolution = (1 << 3),
kCGWindowImageNominalResolution = (1 << 4)
};
Константы
kCGWindowImageDefaultКогда требуемый прямоугольник получения
CGRectNull, использование этой опции получает все окно плюс область, требуемая вывести на экран любые эффекты структурирования, такие как тень окна. Это - поведение по умолчанию.kCGWindowImageBoundsIgnoreFramingКогда требуемый прямоугольник получения
CGRectNull, использование этой опции получает область окна только и не получает область, занятую никакими эффектами структурирования окна.kCGWindowImageShouldBeOpaqueПри получении окна частично прозрачные области поддерживаются чистым белым цветом так, чтобы получающееся изображение было полностью непрозрачно. Можно объединить эту опцию с другими опциями.
kCGWindowImageOnlyShadowsПри получении окна только получены эффекты тени.
kCGWindowImageBestResolutionkCGWindowImageNominalResolution
Тип кодировки CGWindowID
Определяет тип кодировки для окна IDs.
#define kCGWindowIDCFNumberType kCFNumberSInt32Type
Константы
kCGWindowIDCFNumberTypeТип кодировки для окна IDs внутри a
CFNumberRefнепрозрачный тип.
Нулевое окно
Определяет гарантируемое недопустимое окно ID.
#define kCGNullWindowID ((CGWindowID)0)
Константы
kCGNullWindowIDГарантируемое недопустимое окно ID.
Окно, совместно использующее тип кодировки
Определяет тип кодировки для значений совместного использования окна.
#define kCGWindowSharingCFNumberType kCFNumberSInt32Type
Константы
kCGWindowSharingCFNumberTypeТип кодировки для окна, совместно использующего значения внутри a
CFNumberRefнепрозрачный тип.
Окно, поддерживающее тип кодировки
Определяет тип кодировки для типов поддержки окна.
#define kCGWindowBackingCFNumberType kCFNumberSInt32Type
Константы
kCGWindowBackingCFNumberTypeТип кодировки для окна, поддерживающего значения внутри a
CFNumberRefнепрозрачный тип.
Требуемые ключи списка окна
Ключи, которые, как гарантируют, будут доступны в информационном словаре окна.
const CFStringRef kCGWindowNumber; const CFStringRef kCGWindowStoreType; const CFStringRef kCGWindowLayer; const CFStringRef kCGWindowBounds; const CFStringRef kCGWindowSharingState; const CFStringRef kCGWindowAlpha; const CFStringRef kCGWindowOwnerPID; const CFStringRef kCGWindowMemoryUsage;
Константы
kCGWindowNumberЗначение для этого ключа является a
CFNumberRefвведите (закодированный какkCGWindowIDCFNumberType) это содержит окно ID. Окно ID уникально в течение текущего сеанса пользователя.kCGWindowStoreTypeЗначение для этого ключа является a
CFNumberRefвведите (закодированный какkCFNumberIntType) это содержит одну из констант, определенных в Типах Запоминающего устройства.kCGWindowLayerЗначение для этого ключа является a
CFNumberRefвведите (закодированный какkCFNumberIntType) это содержит число уровня окна.kCGWindowBoundsЗначение для этого ключа является a
CFDictionaryRefвведите, который должен декодироваться к aCGRectвведите использованиеCGRectMakeWithDictionaryRepresentationфункция. Координаты прямоугольника указаны в экранном пространстве, где источник находится в верхнем левом углу основного дисплея.kCGWindowSharingStateЗначение для этого ключа является a
CFNumberRefвведите (закодированный какkCFNumberIntType) это содержит одну из констант, определенных в Константах Совместного использования Окна.kCGWindowAlphaЗначение для этого ключа является a
CFNumberRefвведите (закодированный какkCFNumberFloatType) это содержит альфу окна, исчезают уровень. Это число находится в диапазоне 0.0 к 1,0, где 0.0 полностью прозрачно, и 1.0 полностью непрозрачно.kCGWindowOwnerPIDЗначение для этого ключа является a
CFNumberRefвведите (закодированный какkCFNumberIntType) это содержит процесс ID приложения, которому принадлежит окно.kCGWindowMemoryUsageЗначение для этого ключа является a
CFNumberRefвведите (закодированный какkCFNumberLongLongType) это содержит оценку объема памяти (измеренный в байтах) используемый окном и его структурами иллюстрирующих материалов.
Дополнительные ключи списка окна
Ключи, которые могут дополнительно быть доступными в информационном словаре окна.
const CFStringRef kCGWindowWorkspace; const CFStringRef kCGWindowOwnerName; const CFStringRef kCGWindowName; const CFStringRef kCGWindowIsOnscreen; const CFStringRef kCGWindowBackingLocationVideoMemory;
Константы
kCGWindowWorkspaceКлюч, идентифицирующий рабочую область, которой принадлежит окно. Значение для этого ключа является a
CFNumberRefвведите, чье значение кодируется с помощьюkCFNumberIntTypeввести.kCGWindowOwnerNameКлюч, идентифицирующий имя приложения, которому принадлежит окно. Значение для этого ключа является a
CFStringRefввести.kCGWindowNameКлюч, идентифицирующий имя окна, как сконфигурировано в Кварце. Значение для этого ключа является a
CFStringRefввести. (Обратите внимание на то, что немного приложений определяют имя окна Quartz.)kCGWindowIsOnscreenКлюч, идентифицирующий, является ли окно в настоящее время экранным. Значение для этого ключа является a
CFBooleanRefввести.kCGWindowBackingLocationVideoMemoryКлюч, идентифицирующий, расположено ли запоминающее устройство окна в видеопамяти. Значение для этого ключа является a
CFBooleanRefввести.