наличие большого числа стандартных элементов (кнопки, переключатели, поля редактирования), которые могут использоваться при конструировании прикладных программ, делая их похожими в обращении и облегчая процесс их написания;

использование clipboard (pasteboard) - некоторого общего места (хранилища), с помощью которого программы могут обмениваться данными: водной программе вы выделяете объект (фрагмент текста, изображение) и помещаете в clipboard, а в другой можете взять объект и вставить его в текущий документ (изображение);

универсальность работы со всеми основными устройствами. Прикладная программа работает одинаково со всеми видеокартами, принтерами и т.п. через драйверы этих устройств. Таким образом, пользователь абстрагируется от специфики работы с конкретным устройством.

В основе любой системы GUI лежит достаточно мощный графический пакет: QuickDraw в Macintosh, GDI в Microsoft Windows, Display PostScript в NextStep. Этот пакет должен поддерживать работу с областями сложной формы и отсечения изображения по таким областям.

Рассмотрим теперь концепции, лежащие в основе многих GUI. Одной из основных, характерной для большинства существующих систем и программ для них, является понятие программы, управляемой данными. Как правило, эта концепция практически реализуется через механизм сообщений. Внешние устройства (клавиатура, мышь, таймер) посылают сообщения модулям программы о наступлении тех или иных событий (например, при нажатии клавиши или передвижении мыши). Поступающие сообщения попадают в очередь сообщений, откуда извлекаются прикладной программой.

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


⇐ Предыдущая| |Следующая ⇒