| [Home] | [English] [Russian] | ||||
|
|||||
|---|---|---|---|---|---|
| [Введение] | [Описание интерфейса] | [Структура шрифта] | [Уголок разработчика] | [Интернет ссылки] | |
|
  Программа Handy Pilot Font Editor (FE) это инструмент для разработки экранных шрифтов
для корманного компьютера работающего под управлением Palm OS(tm).   Программа FE позволяет вам разработывать как новые шрифты так и модифицировать системные. Вы сможете использовать системные шрифты в качестве основы для своих.   Все созданные шрифты могут быть перенесены на и с персонального компьютера путем HotSync(tm) синхронизации.   Созданные шрифты вы можете использовать в собственных разрабатываемых приложениях.   FE работает на всех устройствах с PALM OS: 3COM, IBM WorkPad (tm) и Visor (tm) карманных компьютерах. |
![]() |
![]() |
Последняя версия FE редактора 1.9R. включает в себя следующие функции:
|
|
  При самом первом запуске программы, после ее инсталяции,
вы увидите окно предлагающее вам либо загрузить существующий
шрифт либо создать новый. (См. Рисунок N: 1).   Если вы решили создать новый шрифт нажмите на кнопку `Create New'. Перед вами появится окно редактирования значений заголовка шрифта (Cm. Рисунок N: 2).   Если вы желаете загрузить существующий шрифт из памяти Palm устройства нажмите на кнопку `Load Font!'. После ее нажатия появится окно загрузки шрифта (См. Рисунок N: 3). |
|

|
  В окне `GET FONT' вы можете загрузить любой существующий в памяти Palm
компьютера шрифт.   Нажмите на имя шрифта для того чтоб увидеть начертание символов в окне предварительного просмотра.   Для загрузки выбранного шрифта в память редактора, следует нажать кнопку `Load'. После загрузки шрифта программа переключится в окно для редактирования. Чтоб вернуться в основное окно редактора без загрузки шрифта нажмите кнопку `Exit'. |
![]() |
Основной экран порограммы включает в себя:
|
![]() |


, , ,
|
Эти четыре большие стрелки позволяют сдвинуть все изображение или только
выделенную область в четырех направлениях: Влево, вправо, вверх или вниз. |
,
|
Используйте эти две кнопки для вращения изображения. Эти кнопки
вращают по часовой и против часовой стрелки только квадратную область. |
,
|
Эти две кнопки позволяют зеркально переворачивать изображение (сверху вниз и слева на право). |
|
С помошью этой кнопки вы сможете инвертировать либо все изображение либо только его выделенную часть. |
|
Эта кнопка очищает всю или выделенную область. |
|
Эта кнопка или команда Мark в меню Edit позволяет выделить область изображения.
Когда эта кнопка активна (с'инвертирована) то включен режим выделения.
Чтоб выделить область: надавите стилусом первый раз для установки границы
области, надавив второй раз вы завершите выделение области. |
|
Эта клавиша или команда Paste из меню Edit берет изображение из системного
буфера и вставляет его в изображение символа который вы редактируете.
Чтоб вставить изображение из буфера: сделайте эту клавишу активной.
Затем нажмите стилусом где-нибудь в области редактирования, (появится
изображение из буфера) ведите его в место в которое вы решили это изображение
вставить, отожмите стилус от поверхности экрана для завершения операции. |
|
Эта кнопка, а так же команда Copy в меню Edit заносит выделенную область или все изображение символа в системный буфер. |
|
Эта кнопка или команда Cut в меню Edit заносит выделеную область в системный буфер и стирает выделенное изображение в редакторе. |
|
Если в режиме редактирования нажать на иконку для просмотра редактируемого символа то появится окно для выбора символа "Glyph Selector" (См. Рисунок N: 7). |




Шрифт представляет собой следующую структуру данных:
+-----------------------------------------------------------------+
| Заголовок шрифта (Font Header) - 26 байт. |
+-----------------------------------------------------------------+
| Таблица изображений шрифта (BitImage Table). |
+-----------------------------------------------------------------+
| Таблица указателей (BitMap Location Table). |
+-----------------------------------------------------------------+
| Таблица смещений/ширин символов. (Width/offset table). |
+-----------------------------------------------------------------+
ЗАГОЛОВОК ШРИФТА:
* Заголовок шрифта это таблица размером 13 слов (26 байт) и ее можно
представить в виде струкутры данных языка Си:
--- [begin part of .../m68k-palmos-coff/include/PalmOS3/UI/Font.h: ---
typedef struct {
SWord fontType; // font type
SWord firstChar; // ASCII code of first character
SWord lastChar; // ASCII code of last character
SWord maxWidth; // maximum character width
SWord kernMax; // negative of maximum character kern
SWord nDescent; // negative of descent
SWord fRectWidth; // width of font rectangle
SWord fRectHeight; // height of font rectangle
SWord owTLoc; // offset to offset/width table
SWord ascent; // ascent
SWord descent; // descent
SWord leading; // leading
SWord rowWords; // row width of bit image / 2
} FontType;
--- [end part of .../m68k-palmos-coff/include/PalmOS3/UI/Font.h: ---
| fontType | Значение определяющее тип шрифта. Из описания NFTN шрифтов сдесь может быть указано, что этот шрифт содержит символы различной ширины либо высоты, а так же характеристики многоцветности. В шрифтах от PalmOS это значение равно 0x9000. |
| firstChar | Содержит ASCII код первого символа используемого в шрифте ( 0>= x <=255 ). |
| lastChar | ASCII код последнего символа используемого в шрифте (0>= x <=255). |
| maxWidth | Максимальная ширина символа в шрифте. |
| kernMax | Растояние в пикселах от начала до левого края знакоместа. Если кернинг символа влево то значение отрицательно. В шрифтах PalmOS это значение обычно равно 0. |
| nDescent | Если размеры таблиц шрифта слишком большые то значение этого поле является старшим словом смещения до начала Width/offset table (Таблицы смещений/ширин символов). См. owTLoc. В ином случае в этом поле содержится отрицательное значение descent. |
| fRectWidth | Содержит ширину знакоместа символа. Поле fRectWidth обычно равно maxWidth. |
| fRectHeight | Высота шрифта. В PalmOS высота всех символов шрифта одинакова. |
| owTLoc |
Смещение до начала Width/offset table (Таблицы смещений/ширин
символов). owTloc=rowWords*fRectHeight+(lastChar-firstChar)+8; Если в шрифте слишком большие таблицы, то owTloc содержит младшее слово смещения, а в nDescent старшее. nDescent=owTloc >> 16; owTLoc=owTloc & 0xFFFF; |
| ascent | Расстояние в пикселах от начала знакоместа по направлению вверх. |
| descent |
Дистанция в пикселах от верха знакоместа по направлению вниз. Обычно ascent+descent=fRectHeight. |
| leading | Это дистанция в пикселах от descent линии строки текста до ascent линии другой строки текста. В шрифтах PalmOS это значение обычно равно 0. |
| rowWords |
Значение после деления длинны битовой линии в bitimage на 16. Тобишь, длину линии в пикселах можно определить: rowpixels = rowWords * 16. |
+--------+-------+------+....... -->00000000000000000000000000000000--+ +->00111111011111100111111110000000--+ +->01000010001000010100000010000000--+ 01000010001111100100000010000000 01111110001000010100000010000000 01000010001000010100000010000000 11100111011111100111111110000000 00000000000000000000000000000000 +--------+-------+------+.......
0000 0000 3F7E EF80 4221 4080 423E 4080 7E21 4080 4221 4080 E77E 7F80 0000 0000
| Следующие шрифты от Erik Van Blokland ( www.letterror.com ): | |
|---|---|
| LTRBitmaps.zip | Архив семи красивых шрифтов. Готовых для подключения к системе программой fonthack. |
| Следующие шрифты от Jason R. Cupp: | |
| spinsugar.zip | Архив с шрифтами SpinSugar. Вполне подходят доя замены системных шрифтов! |
| Следующий архив со шрифтами от Rainer Zenz: | |
| a-fonts.zip |
  Большое количество профессиональных шрифтов пркатически для всех нужд.
Более читаемые и элегантные шрифты, разработаны как замена для шрифтов Palm OS.
Основной набор включает 12 шрифтов для всех нужд.
Остаток это все начиная от Ultra-Small до Blackletter.
Все с полным набором дополнительных символов. ![]() |
Этот шрифт от Harry Konstas, www.total.net: |
| hkfont.zip |
Это моноширный шрифт размером 40x25 (Английский, code page 437) разработан,
чтоб использовать с программами QED и onBoardC (для программистов).![]() |
Этот шрифт от Ronald E. Buelow, http://www.ealoha.com/palm |
| coolfnts.zip | Несколько Крутых шрифтов Palm. Замените несколько шрифтов Palm OS на кое-что более читаемое, удобное для установки. Полный архив включая HackMaster, FontHack и несколько полезных программ для работы со шрифтом. ![]() |
Следующий архив от Jiro: |
| Fonts.zip | Это архив прекрасных шрифтов. (Palatino, Verdana, Coronet). |
| Следующие шрифты включены в архив Редактора Шрифтов: | |
| Narrowed.pdb | Вы можете использовать их взамен стандартных шрифтов PalmOS. |
| Times.pdb | Шрифт таймс. Можно заменить на большие системные шрифты. |
| ПРИМЕЧАНИЕ1: | Файлы с расширением (*.pdb) являются PalmOS базами данных с одной записью содержащей данные шрифта. Нет необходимости в распаковщиках. Эти файлы готовы для загрузки в память устройства. |
| ПРИМЕЧАНИЕ2: | Если вы разместили свои шрифты на сайте PalmGear H.Q. добавьте их так же и в подкатегорию Development:Fonts. |
Для того чтоб использовать свои шрифты в разрабатываемой программе вам следует:
--- [ globals.h ] ---
#define CustomFont0 129
...
--- [ main.rcp ] ---
...
LABEL "Test of my Font" AUTOID AT (CENTER 64) USABLE FONT CustomFont0
...
--- [ main.c ] ---
static VoidHand FontHandle0;
...
static int StartApplication( void )
{
/* 'pFNT' и 0x03e8 есть имя ресурса и его шестнадцатеричный
номер ID. */
FontHandle0=DmGetResource( 'pFNT', 0x03e8);
/* Здесь мы определим ID блока памяти для шрифта. ID шрифта
должен быть больше чем 128 потомучто значение меньшее 128
зарезервированно для нужд системы. */
FntDefineFont( CustomFont0, MemHandleLock( FontHandle0 ));
FrmGotoForm( FormID_MainForm );
return 0;
}
static int StopApplication( void )
{
FrmCloseAllForms();
/* Разблокировать блок памяти и освободить ресурс шрифта */
MemHandleUnlock( FontHandle0 );
DmReleaseResource( FontHandle0 );
return 0;
}
------------------
| ПРИМЕЧАНИЕ: | FntDefineFont() функция работает только на версиях PalmOS v3.x и выше, проверяйте версию операционной системы до запуска этой функции. Описание включения шрифтов на PalmOS версии 2.x еще пишется и скоро будет доступно. |
--- [ res.r ] ---
...
READ 'pFNT' (0x3e8) "customfont.nft";
...
-----------------------
![]() |
Для загрузки Zip архива последней демо версии. | ![]() |
Для покупки в режиме он-лайн по кредитной карточке. | ![]() |
Для приобретения полной версии в странах Европы. |