Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / photon_old.doc
Скачиваний:
41
Добавлен:
02.04.2015
Размер:
7.88 Mб
Скачать
    1. Обработчики событий – необработанные и отфильтрованные ответные реакции

Обработчики событий позволяют Вам реагировать непосредственно на события Photon'а. Вы можете присоединить обработчики событий к любому виджету; они похожи на другие ответные реакции виджета, но с дополнением в виде маски событий. Используя эту маску, Вы можете выбрать, какие события будут получать Ваши ответные реакции.

Вы найдёте это крайне полезным для получения событий Pt_EV_DRAG для конкретного окна. Для получения более подробной информации по перетаскиванию см. раздел "Перетаскивание" в главе "События".

Pt_Widget определяет следующие ресурсы обработки событий:

Pt_CB_FILTER

Вызывается перед тем, как событие достигло виджета

Pt_CB_RAW

Вызывается после того, как виджет обработал событие (даже если виджет поглотил событие)

 Описание необработанных и отфильтрованных обработчиков событий и их использования см. в разделе "Обработчики событий – необработанные и отфильтрованные ответные реакции" в главе "События".

Для получения более подробной информации о добавлении обработчиков событий в программный код приложения см. "Обработчики событий" в главе "Управление виджетами в программном коде приложения".

Чтобы присоединить необработанную или отфильтрованную ответную реакцию:

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

  2. Щёлкните на ресурсе Pt_CB_RAW (необработанные события) или Pt_CB_FILTER (отфильтрованные), чтобы открыть редактор ответных реакций.

  3. Всплывёт редактор с областью "Event Mask" в зоне связанной информации:

              1. Рис. 6-12. Область маски событий в редакторе ответных реакций

Область маски событий позволяет Вам задавать, к каким событиям Photon'а должен быть чувствителен виджет. Если случается любое из этих низкоуровневых событий, виджет вызывает ответную реакцию.

Щёлкните на иконке рядом с этой областью, чтобы открыть селектор событий:

              1. Рис. 6-13. Селектор событий

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

Для получения более полной информации см. типы событий, описанные в структуре PhEvent_t в "Справочнике библиотеки Photon'а".

  1. Глава 7. Управление геометрией

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

Она включает:

  • Контейнер виджетов

  • Согласование геометрии

  • Абсолютное позиционирование

  • Выравнивание виджетов с использованием групп

  • Удерживающее управление с использованием анкеров

  • Удерживание позиции или ограничение изменения размеров без анкеров

    1. Контейнер виджетов

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

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

Для понимания того, как различные контейнеры выполняют управление геометрией, важно понимать геометрию виджета. См. "Геометрия виджета" во введении к настоящему руководству.

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