Главная » Все файлы » Просмотр файлов из архивов » Документы » Руководство программиста в Photon

Руководство программиста в Photon, страница 10

2013-09-22СтудИзба

Описание файла

Документ из архива "Руководство программиста в Photon", который расположен в категории "". Всё это находится в предмете "программное обеспечение управляющих комплексов (поук)" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "поук" в общих файлах.

Онлайн просмотр документа "Руководство программиста в Photon"

Текст 10 страницы из документа "Руководство программиста в Photon"

PtSetResourse (ApGetWingetPtr (ApGetInstance (winget), ABN_color_rect),

Pt_APG_FILL_COLOR, buffer, 0);

Поэтому Вам необходимо изменить color_change.c таким образом:

PgColor_t colors[5] = {Pg_BLACK, Pg_YELLOW, Pg_MAGENTA,

Pg_CYAN, Pg_DGREEN};

int base_clr = -1;

extern int win_ctr;

extern PtWidget_t *win[5];

int

color_change( PtWidget_t *widget, ApInfo_t *apinfo,

PtCallbackInfo_t *cbinfo )

{

int i, prev;

PtWidget_t *this_window;

/* предотвращает предупреждения (варнинги) об отсутствии ссылок */

widget = widget, apinfo = apinfo, cbinfo = cbinfo;

/* Получает указатель на текущее окно */

this_window = ApGetInstance( widget );

if ( ApName( widget ) == ABN_btn_red ) {

PtSetResource(

ApGetWidgetPtr( this_window, ABN_color_rect ),

Pt_ARG_FILL_COLOR, Pg_RED, 0 );

} else if ( ApName( widget ) == ABN_btn_green ) {

PtSetResource(

ApGetWidgetPtr( this_window, ABN_color_rect ),

Pt_ARG_FILL_COLOR, Pg_GREEN, 0 );

} else if ( ApName( widget ) == ABN_btn_blue ) {

PtSetResource(

ApGetWidgetPtr( this_window, ABN_color_rect ),

Pt_ARG_FILL_COLOR, Pg_BLUE, 0 );

} else if ( ApName( widget ) == ABN_btn_prev ) {

/* Заметьте: Здесь мы используем указатели на экземпляры модулей окон, сохранённые в newwin_setup, чтобы обновить предыдущее окно до текущего в случае, когда оно не закрыто.

Определяется, какое окно является предыдущим по отношению к этому окну */

prev = -1;

for ( i = 0; i < win_ctr; i++ ) {

if ( win[i] == this_window ) {

prev = i - 1;

break;

}

}

/* Если окно по прежнему существует, обновляет его цвет фона. */

if ( prev != -1 && win[prev] ) {

base_clr++;

if (base_clr >= 5) {

base_clr = 0;

}

PtSetResource( win[prev], Pt_ARG_FILL_COLOR,

colors[base_clr], 0 );

}

}

return( Pt_CONTINUE );

}

Модификация функции закрытия окна

И в завершение Вам необходимо модифицировать функцию newwin_close(), так чтобы она устанавливала массив win указателей на экземпляры в NULL для окна, когда оно закрывается. Таким способом Вы можете проверять на NULL в массиве win, чтобы определить, существует ли ещё окно.

Модифицируйте код newwin_close.c, как показано выше:

extern int win_ctr;

extern PtWidget_t *win[5];

int

newwin_close( PtWidget_t *widget, ApInfo_t *apinfo,

PtCallbackInfo_t *cbinfo )

{

PhWindowEvent_t *we = cbinfo->cbdata;

int i;

/* предотвращает предупреждения (варнинги) об отсутствии ссылок */

apinfo = apinfo;

/* обработка только события WM close */

if ( we->event_f != Ph_WM_CLOSE ) {

return( Pt_CONTINUE );

}

/* Прелестно, это закрыто. Тогда что это такое? */

for ( i = 0; i < win_ctr; i++ ) {

if ( win[i] == widget ) {

win[i] = NULL;

break;

}

}

return( Pt_CONTINUE );

}

Компиляция и запуск

  • Соберите приложение и запустите его.

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

  • Щёлкните на кнопке цвета, чтобы изменить цвет прямоугольника. Затем щёлкните на кнопке "Change Previous Window Color" на любом окне, чтобы изменить цвет фона предыдущего окна.

Хотите узнать больше?

чтобы узнать больше о:

см. раздел

в главе:

Использование окон

Модули окон

Работа с модулями

Имена экземпляров

Имена экземпляров

Переменные и декларации

Создание виджетов в PhAB

Работа с кодом

Ответные реакции

Ответные реакции

Коды функций ответных реакций

Редактирование ресурсов и ответных реакций в PhAB

Работа с кодом

Генерация кода

Генерация кода приложения

Генерация, компиляция и запуск кода на выполнение

События окна

Флаги управления окном

Управление окном

Глава 2. Окружение PhAB

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

Глава включает разделы:

  • Меню

  • Панели инструментов

  • Панели управления

  • Палитра виджетов

  • Панель ресурсов

  • Панель ответных реакций

  • Панель дерева модуля

  • Панель связей модуля

  • Панель поиска

  • Настройка Вашего окружения PhAB

Меню

Вверху рабочей области PhAB Вы можете видеть следующую панель меню:

Рис. 2-1. Панель меню PhAB

Меню "File"

Команды, имеющие дело с Вашими приложениями и его файлами:

"New" Создание нового приложения, см. раздел "Создание приложения" в главе "Работа с приложениями".

"Open" Открытие существующего приложения, см. "Открытие приложения" в главе "Работа с приложениями". Эта команда доступна также через панели инструментов PhAB'a

"Save"

"Save As" Сохранение текущего приложения под тем же или другим именем; см. "Сохранение приложения" в главе "Работа с приложениями". Команда "Save" доступна также через панели инструментов PhAB'a.

"Close" Закрыть текущее приложение, см. "Закрытие приложения" в главе "Работа с приложениями".

"Import Files" Импортировать файлы, созданные в других приложениях, см. "Импортирование модулей PhAB из других приложений" в главе "Работа с приложениями".

"Exit" Завершить Вашу текущую сессию в PhAB. PhAB запросит Вас, если имеются какие-либо несохранённые Вами изменения.

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

Меню "Edit"

Команды по редактируемым виджетам:

"Cut", "Copy",

"Paste"

Удалить и скопировать виджеты в буфер обмена, и "вклеить" их оттуда, см. "Буфер обмена" в главе "Создание виджетов в PhAB.

"Transfer"

Переместить виджет с одного контейнера в другой, см. "Перемещение виджетов между контейнерами" в главе "Создание виджетов в PhAB".

"Delete"

Удаляет виджет без сохранения в буфере обмена, см. "Удаление виджетов" в главе "Создание виджетов в PhAB".

"To Front",

"To Back"

Перемещает выбранные виджеты на первый или на задний план в контейнере, см. "Выстраивание виджетов" в главе "Создание виджетов в PhAB".

"Group Together",

"Split Apart"

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

"Aligment"

Выравнивает выбранные виджеты; см. "Выравнивание виджетов" в главе "Создание виджетов в PhAB".

"Change Class"

Изменяет класс выбранных виджетов, см. "Изменение класса виджета" в главе "Создание виджетов в PhAB".

"Save as template",

"Edit templates"

Шаблон – это созданный пользователем виджет, который он хочет использовать как основу для других виджетов. Эти команды позволяют Вам создать или редактировать шаблон; см. "Шаблоны" в главе "Создание виджетов в PhAB".

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

Меню "View"

Команды, отображающие необязательные окна PhAB:

"Clipboard"

Местоназначение виджетов, когда они вырезаются или копируются; см. "Буфер обмена" в главе "Создание виджетов PhAB".

"Resourses", "Callbacks", "Module Tree", "Module Links", "Search Panel"

Панели управления для редактируемых ресурсов, ответных реакций и прочая, см. "Панели управления".

"Palettes"

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

Меню "Options"

Команды, отображающие диалоги для задаваемых опций:

"Preferences"

Предпочтение PhAB, такие как цвета, команды редактирования и стили имён ресурсов.

"Grid"

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

"Generate report"

Генерирует отчёт о виджетах и модулях приложения.

Для получения более полной информации см. "Подгонка Вашего окружения PhAB.

Меню "Application"

Команды, имеющие дело с приложениями в целом:

"Startup Info/Modules"

Информация, используемая для приложения в целом, включая глобальные хеадеры (заголовочные файлы), функцию инициализации и то, какие модули отображать при запуске. Для получения более полной информации см. "Задание информации запуска приложения" в главе "Работа с приложениями".

"Languages"

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

"Windows", "Dialogs", "Menus", "Pictures", "Icons"

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

"Internal Links"

Внутренняя связь – это механизм PhAB, позволяющий Вам получить доступ к модулю PhAB непосредственно из кода Вашего приложения; см. главу "Получение доступа к модулям PhAB из кода".

"Build+Run"

"Центр управления" компиляции и запуска Вашего приложения на исполнение.

"Generate"

Генерация кода для Вашего приложения.

"Convert to Multiplatform"

Эта команда ("Конвертирование в многоплатформенность") полезна только для старых приложений, которые были сгенерированы под версию 4 ОС QNX для однозначной платформы. Для получения более полной информации см. главу "Генерирование, компилирование и запуск программы на исполнение".

Меню "Window"

Команды, которые манипулируют окнами PhAB:

"Arrange Modules"

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

"Arrange Icons"

Размещает свёрнутые в иконки модули в рабочем пространстве PhAB в алфавитном порядке построчно.

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

Меню "Help"

Получает онлайновую справочную информацию "Welcome to PhAB", "Tutorials", "PhAB Concepts", "Tools+Techniques". Связывает с соответствующей секцией данного руководства программиста.

" PhAB Library API"

Связь со "Справочником библиотеки Photon".

"About PhAB"

Номер версии и копирайтная информация о PhAB.

В PhABдоступны и другие формы получения помощи:

  • контекстная помощь – чтобы получить помощь в части пользовательского интерфейса PhAB, щёлкните на кнопке со знаком вопроса, затем на интересующем Вас пункте. Хэлпвьювер отобразит информацию о выбранном пункте;

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

Панели инструментов

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

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