Универсальный пускатель предназначен для автоматического формирования главного экрана системы управления из glade файлов. Glade файлы передаются в виде параметров,а в коде происходит их разбор.
- Пример:
uniset-start.sh -f ./uniwidgets-gui-starter --confile ~/Projects/yauza/conf/configure.xml \
--svg-dir ~/Projects/yauza/src/GUI/19/svg/ \
--guifile gui.glade \
--glade-dir ~/Projects/yauza/src/GUI/19/ \
--pages lubr_oil,cool_gdg,fuel,pneumo,boiler,waters,overall,shaft,\
ses,ses2,ged,fire_air_cond,nb_ksu,drainage \
--weblog-addr http:
Поскольку guifile в проектах остается одинаковым,а меняются только содержимое и количество вкладок pages,то считается что guifile имеет определенную структуру. Если же необходимо сделать реализовать отличный по структуре guifile, то необходимо и внести изменения в код пускателя. Страницы(или закладки) указываются через запятую и соответствуют glade-файлам в директории glade-dir. Если в начале названия страницы есть префикс "nb_"(например, nb_ksu из примера), то страница загружается как вложенный Gtk::Notebook, но glade файл для такой страницы должен называться ksu(т.е. префикс отсекается).
Главное окно состоит из нескольких модулей, каждый из которых выполняет своя задачу. В основном это элементы пользовательского интерфейса,а описание приведено ниже.
- Класс реализующий отображение цифровых часов(описание класса Clock).
- Класс для окна установки системного времени(описание класса ClockConfig).
- Класс реализующий выполнение скриптовой команды и в зависимости от кода возврата выдает сообщение о результате(описание класса FailureDialog).
- Класс для окна cохранения журнала на флэш карту. В окне выбирается промежуток времени, за который нужно сохранить соответствующие записи из журнала(описание класса JournalDate).
- Основная связующая часть УПГ. Здесь все элементы собираются в один главный экран и производятся все инициализации и дополнительные привязки для виджетов.
- Файл с различными дополнительными общими функциями и переменными.
- Класс реализующий окно перепрошивки МТР и сам процесс прошивки(описание класса MTRSetup).
- Класс реализующий заполненине вкладок ULockNotebook. А также назначение обработчиков сигналов для отдельных групп вижетов(описание класса ScreenPacker).