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

В PhAB каждый список ответных реакций виджета отображает вход, называемый "Hotkey" или Pt_CB_HOTKEY, который используется для определения горячих клавиш. Перед тем как определить горячую клавишу, Вам необходимо определить, где это сделать. Где Вы определите ответную реакцию горячей клавиши, зависит от того:

  • где должен появиться модуль (такой как меню)

  • какой виджет Вам нужен в функции ответной реакции

  • куда пойдёт пользователь, чтобы нажать горячую клавишу

          1. Где должен появиться модуль

Когда Вы определяете горячую клавишу, Вы можете задать, где появиться модулю. Например, если горячая клавиша предназначена для отображения модуля меню, связанного с виджетом PtModuleButton в Вашем PtMenuBar окна, определите горячую клавишу в кнопке меню. Используйте "Location dialog", чтобы меню появилось под кнопкой меню. Для получения более полной информации см. раздел "Позиционирование модуля" в главе "Работа с модулями".

          1. Какой виджет Вам нужен в функции ответной реакции

Виджет, имеющий ответную реакцию, является подходящим для функции ответной реакции.

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

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

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

Если Вы разрабатываете многоязычное приложение, Вам понадобятся различные наборы горячих клавиш для каждого языка. См. главу "Поддержка международных языков".

Когда Вы выбираете ответную реакцию Pt_CB_HOTKEY, всплывает редактор ответных связей с областью "Hotkey" в зоне связанной информации:

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

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

  • «не такой уж простой способ» – Вы можете набрать значение горячей клавиши в шестнадцатеричном формате в области "Hotkey". Чтобы найти значение для клавиши, которую Вы хотите использовать, посмотрите хеадер-файл <photon/PkKeyDef.h> и найдите имя клавиши, предварённое префиксом Pk_.

 Используйте для горячих клавиш прописные буквы; заглавные не будут работать. Например, для горячей клавиши <Alt>+<F> смотри шестнадцатеричное значение не для Pk_F, а для Pk_f.

Область имеет также три переключающиеся кнопки – "Ctrl", "Shift" и "Alt", позволяющие Вам задать модификатор для горячей клавиши.

  • «простой способ» – нажмите кнопку справа от кнопки-переключателя "Alt", затем нажмите сочетание клавиш, которое Вы хотите использовать в качестве горячей клавиши. PhAB автоматически определит клавишу и модификатор, которые Вы нажали.

      1. Обработка горячих клавиш

Вот как работает горячая клавиша:

  • когда событие клавиши достигает окна, окно направляет событие своим порождённым виджетам;

  • если порождение это событие поглощает, ничего больше не происходит;

  • в противном случае событие проверяется в списке горячих клавиш окна. Если горячая клавиша найдена, вызывается ответная реакция;

  • если ответная реакция не найдена, просматривается список горячих клавиш родительского окна, и далее наверх по иерархии окон.

Ресурс Pt_ARG_CONTAINER_FLAGS виджетов контейнерного класса включает несколько флагов, оказывающих влияние на обработку горячих клавиш:

Pt_HOTKEY_TERMINATOR

Не допускает проход поиска горячей клавиши наверх к родительскому контейнеру. Флаг Pt_HOTKEY_TERMINATOR работает, только если он установлен в разобранном виджете контейнерного класса.

Pt_HOTKEYS_FIRST

Обработка событий клавиш, достигших контейнера, как горячих клавиш, перед тем как они проходят к потомкам контейнера. Если событие является горячей клавишей, оно поглощается, т.е. не проходит к потомкам.

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