Главная » Просмотр файлов » Руководство программиста в Photon

Руководство программиста в Photon (953920), страница 15

Файл №953920 Руководство программиста в Photon (Руководство программиста в Photon) 15 страницаРуководство программиста в Photon (953920) страница 152013-09-22СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 15)

Иконка модуля диалога

Большинство модулей диалогов включают следующие кнопки:

  • "Done" – позволяет пользователю указать, что он завершил ввод информации

  • "Cancel" или "Close" – позволяют пользователю закрыть диалог без ответа.

С точки зрения PhAB модули диалогов почти идентичны модулям окна, с одним важным отличием – модуль диалога может иметь только один активный экземпляр. Так что если Вы вызываете диалог, который уже открыт, API PhAB просто выводит существующий экземпляр диалога на передний план. Это свойство связано с природой диалога – Вам редко когда может понадобиться вводить одну и ту же информацию дважды. Если несмотря на все соображения, Вам потребуется диалог, который мог бы поддерживать множественность экземпляров, используйте модуль окна.

Ограничение диалога одним экземпляром упрощает обработку ответной реакции, поскольку Вы можете использовать декларации виджета, генерируемые PhAB, для получения доступа к виджетам внутри диалога. Для получения более полной информации см. раздел "Имена экземпляров" в главе "Создание виджетов в PhAB".

Изменение размеров модуля диалога

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

Предопределённые диалоги

Библиотеки Photon включают удобные функции, определяющие различные полезные диалоги:

ApError()

Отображает диалог сообщения об ошибке

PtAlert()

Отображает сообщение и требует подтверждения

PtFileSelection()

Создаёт диалог выбора файла

PtFontSelection()

Создаёт диалог выбора шрифта

PtMessageBox()

Вызывает всплывающее табло с сообщением

PtNotice()

Отображает сообщение и ждёт уведомления

PtPassword()

Запрашивает пароль

PtPrintPropSelect()

Изменяет опции печати для выбранного принтера через модальный диалог

PtPrintSelect()

Отображает модальный диалог настройки для выбора опций печати

PtPrintSelection()

Отображает модальный диалог для выбора опции настройки

PtPrompt()

Отображает сообщение и получает текстовый ввод от пользователя

Модули меню

класс виджета

расширение файла

создание виджета

PtMenu

.wgtm

Специальный редактор

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

Иконка модуля меню

Открытие редактора меню

Чтобы открыть редактор меню:

  1. Выберите модуль меню

  2. Щёлкните на "Menu Items" на панели управления ресурсами, и PhAB отобразит редактор меню:

Рис. 4-3. Редактор меню PhAB

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

  • Command – вызывает ответную реакцию PhAB

  • Submenu – отображает порождённое меню

  • Separator – вставляет линии или разрядку между другими пунктами меню

  • Toggle или Excl Togg (эксклюзивный переключатель) – изменяет или отображает состояние приложения

  • Function – задаёт функцию приложения, которая может динамически добавлять пункты меню в меню.

Эти кнопки расположены в нижней части диалога:

Когда Вы хотите:

Используйте

кнопку:

Принять все изменения и закрыть редактор

Done

Принять все изменения и продолжить редактировать меню

Apply

Отменить все изменения, сделанные с момента открытия редактора

Cancel

Задание имён экземпляров

Чтобы создать любой командный или переключаемый пункт меню (т.е. любой пункт, который может вызывать ответную реакцию), Вы должны ввести уникальное имя экземпляра – этого требует PhAB. Имя экземпляра позволяет Вам получить доступ к пунктам меню из программного кода Вашего приложения.

Когда PhAB генерирует код Вашего приложения, он генерирует глобальную переменную ABN_... для каждого пункта меню, который требует этого. Вы используете эту переменную в функциях API, связанных с пунктами меню – ApModifyItemState() и ApModifyItemText().

Например, пусть, скажем, пункт меню не должен быть доступен, когда пользователь щёлкает на виджете, вызывающем меню. Используя имя экземпляра, Вы можете сделать тусклым этот пункт перед тем, как отображать меню. Для получения более полной информации см. "Инициализация меню" в главе "Работа с программным кодом".

Создание "горячих клавиш" и "кнопок быстрого доступа" (hotkeys and shortcuts)

Чтобы помочь пользователю выбрать пункт меню более быстро, Вы можете:

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

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

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

Создание кнопки быстрого доступа просто. Когда Вы вводите "Item Text", просто поместите символ "&" перед символом, который будет действовать как кнопка быстрого доступа. Например, пусть мы создаём пункт "Save As". Вы можете ввести "Save &As", результатом чего будет подчёркнутая буква "А". Когда меню открывается, пользователь может нажать либо "А" либо вызвать ответную реакцию, связанную с "Save As".

Создание горячей клавиши вынуждает затратить ненамного больше труда, но так же легко делается. Во-первых, Вы должны убедиться, что горячая клавиша появилась рядом с пунктом меню, когда меню отображается. Чтобы это сделать, используйте область "Accel Text". Например, пусть скажем, горячей клавишей для пункта меню "Save" будет <Ctrl>+<S>. В этом случае Вы должны ввести "S" в области "Accel Text" и включить переключатель "Ctrl".

Далее, Вам необходимо создать ответную реакцию горячей клавиши для сочетания <Ctrl>+<S>. Поскольку меню может быть не создано на момент, когда пользователь нажал <Ctrl>+<S>, Вы не можете прикрепить ответную реакцию горячей клавиши к меню или к пункту меню. Вместо этого Вы должны прикрепить ответную реакцию к главному модулю приложения, которым обычно является модуль базового окна. При задании функции ответной реакции горячей клавиши, используйте ту же самую функцию, которую Вы определили для ответной реакции пункта меню.

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

Для получения более полной информации по созданию ответных реакций горячих клавиш см. раздел "Ответные реакции горячих клавиш" в главе "Редактирование ресурсов и ответных реакций в PhAB".

Изменение размеров модуля меню

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

Создание командных пунктов меню

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

Область

Описание

Item Text

Текст, который будет отображаться

Accel Text

Горячая клавиша для вызова команды

Inst Name

Имя, используемое внутри программного кода приложения

Callback

Функция, которая будет вызвана, когда пункт выбран

Image

Иконка для использования в пункте меню

Чтобы создать командный пункт меню:

  1. Щёлкните на <NEW>

  2. Щёлкните на кнопке "Command" в верхнем правом углу

  3. В области "Item Text" введите текст пункта. Чтобы создать кнопку быстрого доступа, разместите символ "&" перед символом, который будет действовать как кнопка быстрого доступа. Например, скажем, Вы ввели &File. В этом случае пользователь может выбрать пункт, нажав <F>.

  4. В области "Inst Name" введите имя экземпляра, которое Вы будете использовать.

  5. Если Вы планируете иметь ответную реакцию горячей клавиши для этого пункта, введите строку горячей клавиши и модификатор клавиши (например, <Ctrl>+<S>) в области "Accel Text". Горячая клавиша отображается в меню как напоминание для пользователя.

  6. Добавьте ответную реакцию PhAB, щёлкнув на иконке ответной реакции:

Чтобы получить более полную информацию, см. раздел "Редактирование ответных реакций" в главе "Редактирование ресурсов и ответных реакций в Phab".

  1. Добавьте, если считаете целесообразным, картинку в виде образа.

  2. Щёлкните на "Apply", чтобы добавить пункт в меню.

Создание пунктов подменю

Пункты подменю позволяют Вам создавать другие уровни меню.

Область

Описание

Item Text

Текст, который будет отображаться

Inst Name

Имя, используемое внутри программного кода приложения

Чтобы создать пункт подменю:

  1. Щёлкните на <NEW>

  2. Щёлкните на кнопке "Submenu" в верхнем правом углу.

  3. В области "Item Text" наберите имя подменю. Чтобы создать клавиатурную кнопку быстрого доступа, разместите символ "&" перед символом, который будет действовать как кнопка быстрого доступа (точно так же, как для командных пунктов меню выше).

  4. Щёлкните на "Apply".

  5. Список "Menu Items" отобразит подменю:

  1. Вы можете теперь добавить пункты в подменю, выбрав <NEW> в подменю.

Создание разделителей пунктов

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

Для создания разделителя меню:

  1. Щёлкните на <NEW>

  2. Щёлкните на кнопке <Separator> в верхнем правом углу.

Рис. 4-4. Стили разделителя меню

Вы увидите список стилей разделителя, которые означают соответственно:

  • Одинарная линия

  • Двойная линия

  • Одинарная пунктирная линия

  • Двойная пунктирная линия

  • "Выгравленная" внутрь

  • "Выгравленная" наружу

  • Пустая линия

  1. Щёлкните на стиль разделителя, который Вам нужен, затем щёлкните на "Apply".

Создание пунктов-переключателей

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

область

описание

Item text

Текст, который будет отображаться

Inst Name

Имя, используемое внутри программного кода приложения

Callback

Функция, которая будет вызвана, когда пункт выбран

Image

Иконка для использования в пункте меню

Чтобы создать пункт-переключатель:

  1. Щёлкните на <NEW>, затем щёлкните на кнопке "Toggle".

  2. Следуйте той же процедуре, что при создании командных пунктов меню.

Создание пунктов-функций

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

Библиотека PhAB вызывает заданную функцию как встроенную в меню. Динамически созданные пункты меню появляются там, где Вы расположили пункт-функцию в меню.

Область

Описание

Function

Функция, которая будет вызываться

Чтобы создать пункт-функцию:

  1. Щёлкните на <NEW>, затем щёлкните на кнопке "Function".

  2. В области "Function" введите имя функции приложения, которая будет динамически добавлять пункты-меню в меню.

Если Вы зададите это имя функции, PhAB сгенерирует заготовку функции; для получения более полной информации, специфической для языка (С или С++) и имени файла, см. раздел "Имена функций и имена файлов" в главе "Работа с программным кодом".

  1. Вы можете сразу же отредактировать функцию, щёлкнув на кнопке справа от имени функции.

  2. Щёлкните на "Apply".

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

Перемещение пунктов меню

Скроллируемый список "Menu Items" позволяет Вам перемещать пункты в меню на другую позицию в меню. Пусть, скажем, Вы хотите переместить пункт по имени "Browse", так чтобы он появлялся непосредственно перед пунктом по имени "Edit". Вы должны:

  1. Перетащить пункт "Browse", пока его контур не окажется непосредственно над пунктом "Edit".

  2. Отпустить кнопку мыши. Пункт "Browse" появится в новой позиции.

Использование модуля меню

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

  1. Создайте PtMenuBar в верхней части окна.

  2. Добавьте PtMenuButton к панели меню, присвоив ему соответствующие имя экземпляра и текстовую строку.

  3. Добавьте ответную реакцию связи с модулем к списку ответных реакций Pt_CB_ARM кнопок меню.

 Вы можете добавить ответную реакцию в список Pt_CB_ACTIVATE, но добавление её в Pt_CB_ARM позволяет пользователю получить доступ к ней двумя способами:

  • нажав левую кнопку мыши на виджете кнопки меню, перетащив к подсвеченному пункту меню и отпустив, чтобы это выбрать. Это известно как метод нажать-перетащить-отпустить.

  • щёлкнув на меню и затем щёлкнув на пункте меню. Если Вы используете ответную реакцию "Activate", пользователь может пользоваться только вторым методом.

  1. Включите ответную реакцию, отображающую модуль меню. Смотри "Ответные реакции модуля" в главе "Редактирование ресурсов и ответных реакций в PhAB".

  2. Если Вам необходимо инициализировать меню всякий раз, когда оно отображается, задайте функцию инициализации для него. Смотри раздел "Инициализация меню" в главе "Работа с программным кодом".

Если Вы хотите, чтобы меню появлялось, когда Вы нажимаете правую кнопку мыши, в то время, когда указатель мыши установлен на виджете, Вам необходимо использовать внутреннюю связь (internal link). Для получения более полной информации см. главу "Получение доступа к модулям из программного кода" – там есть даже пример.

Модули картинок

класс виджета

расширение файла

создание виджета

Не применим

.wgtp

Непосредственно из палитры виджетов

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

Характеристики

Тип файла
Документ
Размер
7,62 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее