Константы

Константы совместного использования окна

Указывает, ли и как окна совместно используются приложениями.

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

При получении окна только получены эффекты тени.

kCGWindowImageBestResolution
kCGWindowImageNominalResolution

Тип кодировки 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 введите, который должен декодироваться к a CGRect введите использование 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 ввести.