PalmOS GU

PalmOS GU. I PalmOS это графическая операционная система обладающая средствами для для создания практически любого GUI. Базовые элементы GUI - это Форма Form , Диалог, Меню, и различные элементы такие как кнопки, флажки, списки, поля с текстом, селекторы, таблицы, картинки. Интерфейс обычно создается в виде словесного описания в .rpc файле который компилируется PilRC.exe. В этом файле вы описываете какие формы будет показывать приложение и какие элементы кнопки, надписи будут отображаться на форме.

Для программистов на Win Api можно сказать проще - для Палм приложения нужно создавать файл ресурсов со всеми диалогами, картинками и строками. Этот файл имеет почти такой-де синтаксис как и для WinApi. при создании PRC файла ресурсы линкуются в него. Форма Обычно Палм приложение содержит несколько Форм и одно Меню, форма может занимать только часть экрана т.е. диалог, двигать формы стилусом нельзя.

Интерфейс в Палм модальный, т.е. активна может быть только одна форма, для переключения м д форм нужно делать FrmGotoForm или FrmPopupForm. не модальность бессмысленна на маленьком экране, вносит осложнения для пользователя и требует больших усилий со стороны ОС, следовательно и большего количества кода. События которые происходят на форме нажатие кнопки, ввод буквы, команда меню выделение строки списка приходят в процедуру - обработчик сообщений формы FormEvtHandler рис c параметром event - структура с информацией о событии. event- eType - тип события ctlSelectEvent Нажали на кнопку event- data.ctlEnter.controlID - номер кнопки MenuEvent Команда из меню event- data.menu.itemID - номер команды меню FrmCloseEvent FrmOpenEvent Форма закрывается PopSelectEvent LstSelectEvent Выбрали строку в Выбрали строку в списке Меню Меню а Палм существует для того чтобы снять нагрузку с Формы и убрать все второстепенные элементы интерфейса в меню. Однако нужно помнить что, для того чтобы добраться до меню пользователь делает 3 клика стилусом, поэтому там обычно находятся редко употребляемые команды.

Command Shortkut - это ускоряет выполнение комманд из меню Меню создается в файле ресурсов как и формы, а при описании формы можно указать какое меню использует форма.

Каждая строка меню представлена текстом и командой номер которая будет послана приложению - для быстрого доступа к командам из меню приложение может использовать Command Toolbar для того чтобы вставить туда пиктограммы наиболее частых команд Ограничения Palm GUI 1. Для элементов интерфейса отсутствует такое понятие как Disabled. 2. Меню не всегда видно на экране. 3. Отсутствуют StatusBar, TAB control, Контекстные меню нужно делать самому , 4. Нет контекстной помощи, подсказок ToolTips. В PalmOS каждый диалог может иметь свой HELP диалог, который открывается поверх старого если кликнуть на ? Интерфейс можно создавать динамически, а также создавать нестандартные элементы, но это довольно сложная задача.

При работе с fields editBox приходится сталкиваться с непривычными моментами, например многострочному полю можно установить текст по FldSetTextHandle filed , Handle после этого о Handle можно забыть т.к. им управляет сам editBox. Получить его обратно можно по FldGetTextHandle но чтобы он стал полностью вашим нужно еще сделать FldSetTextHandle filed , NULL . Иначе Handle нельзя удалять.

Аналогичная комбинация действий в Windows выглядит по другому , SetWindowText копирует текст к себе в буфер, и после этого оригинальный буфер ни как не привязан к editBoxу - его можно удалять, а получение текста обратно не накладывает никаких ограничений.

Подобные тонкости являются частью стратегии управлением памяти, к ним быстро можно привыкнуть после WinAPI . Графика В PalmOS также существует набор функций для работы с простейшей графикой точки, линии, круги, прямоугольники, заливка, инверсия, картинки. Функции из группы Window Manager также позволяют следить за состоянием Графики - устанавливать цвет пера, заливки, текущий шрифт.

Для быстрой графики можно писать прямо в видео буфер. PalmOS 4.0 поддерживает 1 2 4- 8 и 16-битовые цвета и оттенки а PalmOS 3.0 - 4 градации серого. 4.8.