Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
76
Добавлен:
02.04.2015
Размер:
8.79 Mб
Скачать
  1. Глава 12. Поверхности управления

    1. Что такое поверхности управления?

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

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

Например, рассмотрим линейку протяжки (scroll bar). Вы получаете различные действия в зависимости от того, где Вы щёлкнете на ней: кнопки стрелок выполнят шаг вверх или вниз; щелчок на жёлобе выполнит пролистывание страницы вверх или вниз; перетаскивание каретки выполняет прокрутку при её перемещении. Виджет PtScrollbar выполнен как одиночный виджет с несколькими поверхностями управления на нём. Вы можете также использовать плоскости управления для:

  • эмулирования клавиатуры, напр., добавление Shift-lock к клавише Shift;

  • панелей нажимных кнопок;

  • и прочего.

Важно отметить, что поверхности управления – это свойство виджета; для своего существования им требуется виджет. Вместе с тем виджет может обладать любым числом поверхностей управления, делая возможным при использовании всего одного виджета (напр., PtWindow) обеспечивать целый пользовательский интерфейс на ничтожном размере данных при исполнении (8% является разумной верхней границей) как альтернативу обеспечению несколькими виджетами для использования в пользовательском интерфейсе.

    1. Ограничения

Для поверхностей управления существует несколько ограничений:

  • Библиотека виджетов предоставляет сервис для виджетов, который не может, из соображений экономии, обеспечиваться для поверхностей управления. Например, виджеты обладают понятием затенённости, используемым при прорисовке для снижения мерцания. Поверхности управления просто прорисовываются от тыльной к передней без какой-либо заботы о затенении.

  • Поверхности управления не могут содержать других поверхностей управления и не включают понятие фокуса.

  • Поверхности управления являются крайне необработанными элементами и могут обеспечивать только то поведение, которое Вы заложили при их создании. Нетрудно реализовать кнопку как поверхность управления, но построение виджета PtMultitext как такую поверхность потребует уже больших усилий.

    1. Привязка действий к поверхностям управления

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

Типами поверхностей управления являются:

Обычные поверхности

Позволяют Вам определять маску событий и функции ответных реакций для поверхности управления

Активные поверхности

Позволяют Вам автоматически связывать поверхность управления с одним из предопределённых действий виджета

Соседние файлы в папке Литература_1