Palm Notes | Recent Changes | Title Index | User Preferences | Random Page | Help
Difference from prior minor
revision.
major diff author diff hide diffРуссификатор CyrHack поддерживает внешние клавиатуры. Причем поддержка реализована достаточно универсально. Все (все 3 ;-) ) клавиатуры, с которыми я сталкивался вполне пристойно руссифицируются. Для поддержки важны три вещи:
1. Способ
проверки
активности
клавиатуры.
Обычно
используется выставление фичи. Все определяемые клавиатуры содержатся внутри кода CyrHack и не могут быть добавлены пользователем.
2. Внутренние
таблицы
драйвера
клавиатуры.
Иногда их
приходится
изменять для
правильной
перекодировки
нестандвртных
нестандартных
символов
3. Таблица
перекодировки клавиш. Она хранится во внешнем языковом модуле и представляет из себя байтовый массив из 128 символов ( char transTbl[128]). При активной внешней клавиатуре и включенном русском регистре все символы из первой половины перекодируются по таблице:
<code>
char ch; // входящий
символ
if (chMode == RusMode)
{
if (ch < 128)
{
ch = transTbl[ch];
}
}
</code>
Если
клавиатура
не
поддерживается в CyrHack, то скорее всего это легко лечится.
Во-первых
нужно
указать ему,
что
клавиатура
подключена.
Проще всего
это можно
сделать
имитацией
подключения
PPK, выставив feature,
указывающую
на его
активность.
Здесь лежит
программа:
http://yahm.palmoid.com/setnrftr.prc , а вот
ее исходник.
<code>
#include <PalmOS.h>
UInt32 PilotMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags)
{
FtrSet('KO01', 0, 0x100001);
return 0;
}
</code>
Известные
мне
клавиатуры:
* Palm Portable keyboard, она же PPK, Targus,
ThinkOutside, Stowaway.
Поддержка
встроена в
драйвер
* Sony Clie NR70 обладает
собственной
клавиатурой.
Мою
руссификацию нестандартных клавиатур для NR-70 можно взять здесь: http://yahm.palmoid.com/cyrhacknr.zip . Руссифицированна указанными выше способами.
* клавиатура
Belkin G700. Прекрасно
работает с
русским с
помощью
[http://yahm.palmoid.com/setnrftr.prc SetNRFtr ].