Расслоение и типы окон

Mac OS X

Каждое окно размещается на экране, конкретное приложение, и каждое приложение, как правило владеет различными окнами. Окна имеют множество характеристик. Они могут располагаться на экране или за ним. Экранные окна располагаются на экране в уровнях управляеемых оконным сервером.

Отображаемые окна упорядочены от начала к концу. Как листы бумаги свободно сложенные вместе, окна на переднем плане могут перекрывть или даже полностью закрывать, те, что за ними. Каждое окно имеет уникальное положение в порядке. Когда два окна расположены бок о бок, одно технически находится перед другим.

Если какое-либо окно может перекрыть любое другое окно, то небольшые, но важные окна, такие как меню и палитры инструментов, могут потеряться за более крупными. Для окон, которые требуют действий пользователя, например, панели и всплывающие списки, могут исчезнуть за другим окнами и остался незамеченными. Чтобы предотвратить это, все окна на экранне организованы в уровни.

Когда два окна принадлежат к одному и тому же уровню, одно из них может быть впереди. Когда два окна принадлежат к разным уровням, одно с более высоким уровнем всегда будет над другим.

Отображаемые окна могут также нести статус: основной или ключевой. Скрытые окна или свернутые в док, не несут какого либо статуса. Отображаемые окна которые не являются ни основными, ни ключевыми неактивны.

Расслоенные (многослойные) окна

Каждое приложение и окно документа существует в своем собственном слое, поэтому документы из различных приложений могут чередоваться. Щелчок по окну, чтобы привести его на передний план не нарушает порядок слоев любом другом окне.

Глубина окна в слоях определяется, последним доступным окном. Когда пользователь щелкает неактивные документы или выбирает их из меню, только то окно, что содержит документ, и все открытые окна утилит, должны быть выведены на передний план. Пользователи могут перенести все окна приложения вывести на передний план, щелкнув по его иконке в доке или выбрав Bring All to Front (Показать все окна) в меню окна приложения. Эти действия должны выдвигать все открытые окна приложений, сохраняя за собой экранное расположение, размер и порядок слоев внутри приложения.

Окна утилит всегда находятся в одном слое: верхний слое (top layer). Они видны только тогда, когда их приложение является активным.

Ключевые и основные окна

Окна имеют различные взгляды основанные на том, как пользователь взаимодействует с ними. Передовой документ или окно приложения, которое находится в центре внимания пользователей называют главным окном. Каждое приложение имеет только одно главное окно на конкретный момент времени. Главное окно, также часто имеет ключевое положение. Главное окно принимает основное внимание действиям пользователя в приложении. Зачастую, действия пользователя в модальном ключевом окне (как правило, панели, такие как окна Шрифтов или Информационные окна) имеют прямое влияние на главное окно.

Главные и основные окна являются активными окнами. Активные окна визуально отличаются от неактивных тем, что их элементы управления цветные, а в неактивных, элементы управления окон не имеют цвета. Неактивные окна окна пользователь видит открытыми, но, не на переднем плане. Главные и основные окна всегда на переднем плане и их элементы управления всегда имеют цвет. Если основные и ключевые окна это разные окна, они отличаются друг от друга внешним видом своих титул баров. Обратите внимание на визуальные различия между главными, ключевыми, и неактивными окнами на рисунке 1.

Рисунок 1. Главное (Main), ключевое (Key) и неактивное (Inactive) окно

main key inactive window in Mac OS X

Хороший пример разницы между ключевым и главным окном можно увидеть в самых хороших Mac OS X приложениях. При выборе "Сохранить как ..." в текстовом документе, например, отображается панель с полем имени и типа документа и выпадающее меню пути, для сохранения его. Панель представляет ключевое окно. Она примет ваш ввод с клавиатуры (имя файла), но будет непосредственно влиять на главное окно под ним (путем сохранения его в указанном месте). После сохранения документа, панель сохранить исчезает, главное окно становится ключевым снова, и будет принимать ввод с клавиатуры дальше.

Ключевое окно

Ключевое окно реагирует на действия пользователя, будь то клавиатура, мышь или альтернативные устройства ввода, для применения и является основным получателем сообщения из меню и панелей. Как правило, окно становится ключевым, когда пользователь нажимает на него. Каждое приложение может иметь только одно ключевое окно на определенный момент времени.

Так как управление мышью имеет указатель, то довольно легко, для пользователя, определить, какое окно связано с действиями мышью. Это все окна под указателем мыши. Но у клавиатуры нет указателя, так что нет естественного способа определить, где появятся введенные символы.

Чтобы отметить ключевое окно для пользователя, AppKit подчеркивает его заголовок. Вы можете думать о выделении в качестве своего рода указателя на клавиатуре. Он переходит от окна к окну, как только ключевые окна сменяются. Статус ключевого окна также перемещается от приложения к приложению в качестве активного изменения приложений. Только одно окно на экране отмечено в один момент времени, и оно находится в активном приложении. Возможно только одно ключевое окно на рабочем столе. Даже система, которая имеет два экрана, но только одну клавиатуру, имеет не более одного ключевого окна.

Примечание: окна не должны становиться ключевыми чтобы получать, и действовать дальше от горячих сочетаний клавиш клавиатуры. Однако оно, должны быть окнами активного приложения.

Поскольку ключевое окно принадлежит активному приложению, его подчеркнутый заголовок имеет вторичный эффект, выраженный в том, чтобы показать, какое приложение в данный момент активно. Ключевые окна являются наиболее отчетливо помечеными окнами в активном приложении, что делает его "ключевым" и во втором смысле: это основной фокус внимания пользователя на экране.

Главное окно

Главное окно это стандартное окно, в котором пользователь в настоящее время работает. Главное окно программы не всегда ключевое окно. Есть моменты, когда окна, кроме главного окна занимают фокус устройства ввода, в то время как главное окно по-прежнему остается в центре внимания пользователя и действия пользователя осуществляются в панели и меню. Например, когда человек использует инспектор, диалог поиска, или окна шрифтов или цвета, документ - главное окна, а другие окна ключевые. Панель поиска требует от пользователя предоставить информацию, путем ее набора. Так как панель принимает ввод от пользователя, она отмечена как ключевое окно. Но панель просто инструмент, с помощью которого пользователи могут сделать работу в другом окне - главном окна. В документ-приложении, главное окно это окно текущего документа.

Всякий раз, когда стандартное окно становится ключевым окном, оно также становится главном окном. Когда статус ключевого окна переходит от стандартного к панели статус главного окна остается за стандартным окном.

Итак, пользователи могут выбрать главное окно, когда оно не ключевое окно Application Kit подчеркивает его заголовок и делает цветными кнопки окна. Если главное окно является также ключевым окном, оно имеет только подчеркивание ключевого окна. Команды меню могут повлиять либо на ключевое окно или на главное окно, в зависимости от команды. Например, команда Вставить может быть использована для ввода текста в панель поиска. Но команда Сохранить сохраняет документ отображаемый в главном окне, а Bold команда включает текущий выбор в главном окне в bold. По этой причине, действия пользователя в панели или меню, связаны как с ключевым окном так и главным:

  • Первоначально действие ассоциируется с ключевым окном
  • Если ключевое окно панель и она не может обработать действие, действие ассоциируется с главным окном.

Заметим, что этот порядок приоритетов находит свое отражение в том, как окна, выделяются: ключевое окно всегда обозначено, но главное окно отмечено только тогда, когда это не ключевое окно. Главное окно всегда находится в одном приложении в качестве ключевого окна активного приложения.

Изменение статуса окна

Окна, которые на экране автоматически изменяют свой статус в качестве ключевого или главного окна на основе действий пользователя с мышью и от того, как нажатие обрабатывается видами, принимающими события мыши. Вы также можете установить ключевое и главное окно программно, отправив окну соответствующее сообщение makeKeyWindow или makeMainWindow. Установка ключевого и главного окна программно особенно полезно при создании нового окна. Поскольку создание окна ключевым часто сочетается с упорядочением окон перед экраном, класс NSWindow определяет удобный метод, makeKeyAndOrderFront:, который выполняет обе операции.

Не все окна пригодны на роль ключевого или главного окна. Например, окно, которое всего лишь отображает информацию и не содержит объекты, которые должны реагировать на события или действия и сообщения может полностью отказаться от возможности когда-либо становиться ключевым окном. Точно так же окно, которое действует как плавающая палитра элементов, которые только перетаскиваютпри помощи мыши никогда не должно быть ключевым. Такое окно может быть определен как подкласс NSWindow, который переопределяет методы canBecomeKeyWindow и canBecomeMainWindow и возвращают NO, а не YES по умолчанию. Определение окна таким образом мешает ему когда-нибудь стать ключевым или главным окном. Хотя класс NSWindow определяет эти методы, только подклассы NSPanel обычно отказываются принимать статус ключевого или главного окна.

 
 
homeЗаметили ошибкукарта сайта 
   Made on a Mac