PilRC v2.7a / PilRCUI
|
Aaron Ardiri (aaron@ardiri.com) 6 Janurary 2001 訳: Kunihiko Hayashi (hayashi@dec.sakura.ne.jp) 14 Janurary 2001 |
最新バージョンは PilRC Home Page へ.
PilRC | Palm Computing Platform 用のリソースコンパイラ. |
PilRCUI |
フォーム閲覧プログラム.
PalmPilot上で描画されるのと同じような形で,
フォームの大体の位置を見ることができる.
PilRCUI で表示されるウィンドウ内部をクリックすると,
現在のスクリプトが反映される.
アップデートされていない: -- any GUI programmers want to help? |
pilrc [-L LANGUAGE] [-I INCLUDE PATH] [-D MACRO(=VAL)] [-R RESFILE] [-q] [-V] [-Fh] [-Fj] [-F5] [-Fg] [-Fkm] [-Fkt] [-allowEditID] file.rcp [output path] pilrcui [-L LANGUAGE] file.rcp
-L LANGUAGE | 対象の言語(LANGUAGE)用にリソースファイルを生成する. |
-I INCLUDE PATH |
インクルードファイルまたはビットマップファイルを INCLUDE_PATH で示される場所
から検索する. 注: 複数のパスを指定するには,-I オプションを複数使用すること. |
-D MACRO[=VAL] |
オプション値でプリプロセッサシンボルを定義する. -D オプションで定義したマクロは,リソースファイルの #ifdef 文 で条件コンパイルのために参照される. 注: 値が指定されていなければ,シンボルの値は 1 となる. |
-R RESFILE | PilRC によって出された全てのリソース を規定する .res ファイルを出力する. |
-H INCFILE |
未定義のリソースアイテムの ID を自動生成した .h ファイルを出力する. 注: -H オプションが指定されていなければ,未定義の ID はエラーとなる. |
-q | コンソール出力を抑止する.(for you minimalists) |
-V | M$ (VS 形式) 警告/エラー出力を生成する(省略時は GNU 形式). |
-Fh | AUTO の幅を計算するときに,Hebrew フォントの幅を使う. |
-Fj | AUTO の幅を計算するときに,日本語フォントの幅を使う. |
-F5 | AUTO の幅を計算するときに,中文(Big5)フォントの幅を使う. |
-Fg | AUTO が指定されて幅を計算するときに,中文(GB)フォントの幅を使う. |
-Fkm | AUTO が指定されて幅を計算するときに,韓国(Hanme)フォントの幅を使う. |
-Fkt | AUTO が指定されて幅を計算するときに,韓国(Hantip)フォントの幅を使う. |
-allowEditID | "edit menu" の ID 値(10000〜10007) の使用を許可する. |
file.rcp | リソースが記述された入力ファイル. 各リソースは 出力パスディレクトリ上に 分離した形で出力される. リソース出力ファイル名は, 4文字のリソースタイプに16進リソースID を合わせたものである. |
output path | .bin ファイルを出力するディレクトリ. |
pilrc myprogram.rcp pilrc -I c:\resources -L FRENCH myprogram.rcp pilrc -I c:\resources -L BIG5 -F5 -R myprogram.res myprogram.rcp c:\output
全て大文字で示されるアイテムは,ファイル内のリテラル(実際に入力する文字列)を示す.
"<" と ">" で囲まれたアイテムは,指定しなければならないフィールドである.
"[" と "]" で囲まれたアイテムは,省略可能なフィールドである.各フィールドの型は, フィールド名の後に続く修飾子によって示される(以下の型の項を参照).
.i 識別子
例: kFoo.c 文字
(C 形式のエスケープシーケンスを含んでもよい)
例: "O".s 文字列
(C 形式のエスケープシーケンスを含んでもよい)
例: "Click Me".ss 複数行文字列
PilRC は複数行にまたがる文字列を結合する
例:"Now is the time for all good " \
"men to come and aid of their country".n 数値
定数または単純数式を定義する. 有効な演算子は "+" "-" "*" "/"で, 演算は左から右に行われる.
注: 演算は整数で行う.
例:23
12+3+1
12*(2+3)
'PALM'
.p 位置座標
数値,数式もしくは次に続くキーワードで指定する.
AUTO 幅または高さを自動指定.
アイテムの幅/高さはアイテム内のテキストに合わせて計算される.CENTER アイテムの縦方向または横方向の中央を指定. CENTER@<coord.n> アイテムを指定座標の中央に合わせる. RIGHT@<coord.n> アイテムを右端に合わせる. BOTTOM@<coord.n> アイテムを下端に合わせる. PREVLEFT 前のアイテムの左端を指定. PREVRIGHT 前のアイテムの右端を指定. PREVTOP 前のアイテムの上端を指定. PREVBOTTOM 前のアイテムの下端を指定. PREVWIDTH 前のアイテムの幅を指定. PREVHEIGHT 前のアイテムの高さを指定. 例:PREVRIGHT+2
CENTER@80/2注: AUTOとCENTERは数式では有効ではない.
単独行のコメントは "//"で始まる.
ブロックコメントは "/*" と "*/" で囲んだ部分である.注: オブジェクト定義内にある "//" コメントはエラーとして 扱われる.
.rcp ファイルは #include を含むことができる. これによりリソースID を含むヘッダファイルを持つことが出来る. ソースコードからも同じシンボルを参照できる.
PilRC は 3 つのインクルードファイルフォーマットを認識する.
.h #define <Symbol.i><Value.n> .inc <Symbol.i> equ <Value.n> .java, .jav package <PackageName> public class <ClassName> {
public static final short <Symbol.i> = <Value.n>;
}各シンボルは任意の数値の代用として使われる.
注: #ifdef は PilRC では無効.
.rcp ファイルは次に定義するコマンドを含んでいる.
FORM フォーム MENU メニューバー ALERT 警告ダイアログボックス VERSION バージョン文字列 STRING 文字列 STRINGTABLE 文字列リスト CATEGORIES 省略時のカテゴリ名 APPLICATIONICONNAME アプリケーションアイコン名 APPLICATION アプリケーションクリエイターID LAUNCHERCATEGORY 省略時のランチャーカテゴリ名 ICON
ICONFAMILYアイコンビットマップ SMALLICON
SMALLICONFAMILY小アイコンビットマップ BITMAP
BITMAPGREY
BITMAPGREY16
BITMAPCOLOR16
BITMAPCOLOR
BITMAPCOLOR16K
BITMAPCOLOR24K
BITMAPCOLOR32K
BITMAPFAMILY
BITMAPFAMILYSPECIALビットマップ TRAP HackMaster トラップ FONT ユーザー定義フォント HEX バイナリ (16進/文字列ベース) DATA バイナリ (データファイルベース) INTEGER 4バイト整数値 TRANSLATION 文字列の言語変換
FORM ID <FormResourceId.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>) [FRAME] [NOFRAME] [MODAL] [SAVEBEHIND] [NOSAVEBEHIND] [USABLE] [HELPID <HelpId.n>] [DEFAULTBTNID <BtnId.n>] [MENUID <MenuId.n>] BEGIN <OBJECTS> END<OBJECTS> は以下のアイテムを1つ以上含む:
TITLE <Title.s> BUTTON <Label.s> ID <Id.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>)
[USABLE] [NONUSABLE] [DISABLED] [LEFTANCHOR] [RIGHTANCHOR]
[FRAME] [NOFRAME] [BOLDFRAME] [FONT <FontId.n>]
[GRAPHICAL] [BITMAPID <BitmapId.n>] [SELECTEDBITMAPID <BitmapId.n>]PUSHBUTTON <Label.s> ID <Id.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>)
[USABLE] [NONUSABLE] [DISABLED] [LEFTANCHOR] [RIGHTANCHOR]
[FONT <FontId>] [GROUP <GroupId.n>]
[GRAPHICAL] [BITMAPID <BitmapId.n>] [SELECTEDBITMAPID <BitmapId.n>]CHECKBOX <Label.s> ID <Id.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>)
[USABLE] [NONUSABLE] [DISABLED] [LEFTANCHOR] [RIGHTANCHOR]
[FONT <FontId.n>] [GROUP <GroupId.n>] [CHECKED]POPUPTRIGGER <Label.s> ID <Id.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>)
[USABLE] [NONUSABLE] [DISABLED] [LEFTANCHOR] [RIGHTANCHOR]
[FONT <FontId.n>]
[GRAPHICAL] [BITMAPID <BitmapId.n>] [SELECTEDBITMAPID <BitmapId.n>]SELECTORTRIGGER <Label.s> ID <Id.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>)
[USABLE] [NONUSABLE] [DISABLED] [LEFTANCHOR] [RIGHTANCHOR]
[FONT <FontId.n>]
[GRAPHICAL] [BITMAPID <BitmapId.n>] [SELECTEDBITMAPID <BitmapId.n>]REPEATBUTTON <Label.s> ID <Id.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>)
[USABLE] [NONUSABLE] [DISABLED] [LEFTANCHOR] [RIGHTANCHOR]
[FRAME] [NOFRAME] [BOLDFRAME] [FONT <FontId.n>]
[GRAPHICAL] [BITMAPID <BitmapId.n>] [SELECTEDBITMAPID <BitmapId.n>]LABEL <Label.s> ID <Id.n> AT (<Left.p> <Top.p>)
[USABLE] [NONUSABLE] [FONT <FontId.n>]FIELD ID <Id.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>)
[USABLE] [NONUSABLE] [DISABLED] [LEFTALIGN] [RIGHTALIGN]
[FONT <FontId.n>] [EDITABLE] [NONEDITABLE] [UNDERLINED]
[SINGLELINE] [MULTIPLELINES] [DYNAMICSIZE] [MAXCHARS <MaxChars.n>]
[AUTOSHIFT] [NUMERIC] [HASSCROLLBAR]POPUPLIST ID <Id.n> <ControlId.n> <ListId.n> LIST <Item.s> ... <Item.s>
ID <Id.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>)
[USABLE] [NONUSABLE] [DISABLED] [VISIBLEITEMS <NumVisItems.n>]
[FONT <FontId.n>]FORMBITMAP AT (<Left.p> <Top.p>)
[BITMAP <BitmapId.n>] [USABLE] [NONUSABLE]GADGET ID <Id.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>)
[USABLE] [NONUSABLE]TABLE ID <Id.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>)
[ROWS <NumRows.n>] [COLUMNS <NumCols.n>]
[COLUMNWIDTHS <Col1Width.n> ... <ColNWidth.n>]SCROLLBAR ID <Id.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>)
[USABLE] [NONUSABLE] [VALUE <Value.n>] [MIN <MinValue.n>]
[MAX <MaxValue.n>] [PAGESIZE <PageSize.n>]GRAFFITISTATEINDICATOR AT (<Left.p> <Top.p>) SLIDER ID <Id.n> AT (<Left.p> <Top.p> <Width.p> <Height.p>)
[USABLE] [NONUSABLE] [DISABLED] [VERTICAL] [FEEDBACK]
[THUMBID <BitmapId.n>] [BACKGROUNDID <BitmapId.n>]注意:
- ID <Id.n> は AUTOID で置き換えることができる. PilRC は AUTOID によって各コントロールアイテムに自動的に ID を割り当てる. これは LABEL のようにコードで参照されないコントロールアイテムに対して有用である. 自動ID は 9000 から始まり,順に加算される.
- FORMBITMAPで参照されるビットマップは, BITMAPコマンドとは別に, rcp ファイル内で分離したリソースとして明示する必要がある.
- MAXCHARS は正しく動かすために FIELD 内で必要とする.
- FONT>=128 かつFONT<=255 の任意のユーザ定義フォントは FONTコマンドによりFORM上で有効である.
- 文字列変換は TRANSLATION を用いて FORM 定義より前に宣言しなければならない.
例:
FORM ID 1 AT (2 2 156 156) USABLE MODAL HELPID 1 MENUID 1 BEGIN TITLE "AlarmHack" LABEL "Repeat Datebook alarm sound" AUTOID AT (CENTER 16) PUSHBUTTON "1" ID 2001 AT (20 PrevBottom+2 12) AUTO GROUP 1 PUSHBUTTON "2" ID 2002 AT (PrevRight+1 PrevTop PrevWidth PrevHeight) GROUP 1 PUSHBUTTON "3" ID 2003 AT (PrevRight+1 PrevTop PrevWidth PrevHeight) GROUP 1 LABEL "times. Ring again every" AUTOID AT (CENTER PrevBottom+2) FONT 0 PUSHBUTTON "never" ID 3000 AT (13 PrevBottom+2 32 12) GROUP 2 PUSHBUTTON "10 sec" ID 3001 AT (PrevRight+1 PrevTop PrevWidth PrevHeight) GROUP 2 PUSHBUTTON "30 sec" ID 3002 AT (PrevRight+1 PrevTop PrevWidth PrevHeight) GROUP 2 PUSHBUTTON "1 min" ID 3003 AT (PrevRight+1 PrevTop PrevWidth PrevHeight) GROUP 2 LABEL "Alarm sound:" AUTOID AT (24 PrevBottom+4) POPUPTRIGGER "" ID 5000 AT (PrevRight+4 PrevTop 62 AUTO) LEFTANCHOR LIST "Standard" "Bleep" ID 6000 AT (PrevLeft PrevTop 52 1) VISIBLEITEMS 2 NONUSABLE POPUPLIST ID 5000 6000 BUTTON "Test" ID 1202 AT (CENTER 138 AUTO AUTO) GRAFFITISTATEINDICATOR AT (100 100) END
MENU ID <MenuResourceId.n> BEGIN <PULLDOWNS> END<PULLDOWNS> は次の行を1つ以上含む.
PULLDOWN <PullDownTitle.s> BEGIN <MENUITEMS> END<MENUITEMS> は次の行を1つ以上含む.
MENUITEM <MenuItem.s> ID <MenuItemId.n> [AccelChar.c] MENUITEM SEPARATOR
MENU ID 100 BEGIN PULLDOWN "File" BEGIN MENUITEM "Open..." ID 100 "O" MENUITEM SEPARATOR MENUITEM "Close..." ID 101 "C" END PULLDOWN "Options" BEGIN MENUITEM "Get Info..." ID 200 "I" END END
ALERT ID <AlertResrouceId.n> [HELPID <HelpId.n>] [DEFAULTBUTTON <ButtonIdx.n>] [INFORMATION] [CONFIRMATION] [WARNING] [ERROR] BEGIN TITLE <Title.s> MESSAGE <Message.ss> BUTTONS <Button.s> ... <Button.s> END
ALERT ID 1000 HELPID 100 DEFAULTBUTTON 1 CONFIRMATION BEGIN TITLE "AlarmHack" MESSAGE "Continuing will cause you 7 years of bad luck\n" \ "Are you sure?" BUTTONS "Ok" "Cancel" END
VERSION ID <VersionResourceId.n> <Version.s> VERSION <Version.s>
VERSION ID 1 "1.0 beta" VERSION "1.0 beta"
STRING ID <StringResourceId.n> <String.ss> STRING ID <StringResourceId.n> FILE <StringFile.s>
STRING ID 100 "This is a very long string that shows escape characters \n" \ "as well as continued .ss syntax strings" STRING ID 101 FILE "string.txt"
STRINGTABLE ID <StringTableResourceId.n> <PrefixString.ss> ... <String.ss>
.. LIST 内での使用
[source.rcp]STRINGTABLE stringTableMetric "" "Litres" "Meters" "Celsius" "Newtons" "Kilograms"[source.c]
MemHandle memHandle, memStringList; MemPtr ptrTable; UInt16 count; memHandle = DmGetResource('tSTL', stringTableMetric); ptrTable = (MemPtr)MemHandleLock(memHandle); // 文字列カウントを得る ← "messy" count = (*((UInt8 *)(ptrTable + StrLen((Char *)ptrTable) + 1)) << 8) | *((UInt8 *)(ptrTable + StrLen((Char *)ptrTable) + 2)); // 文字列配列へのハンドルを得る memStringList = SysFormPointerArrayToStrings(ptrTable + StrLen((Char *)ptrTable) + 3, count); // 注: "prefix" はここでは無視 ... MemHandleUnlock(memHandle); DmReleaseResource(memHandle);
.. 単一 STRING を得る方法
[source.rcp]STRINGTABLE stringTableTypes "Units are:" "Metric" "Imperial"[source.c]
Char string[32]; SysStringByIndex(stringTableTypes, 0, string, 32);
STRINGTABLE ID 100 "" "One" "Two" "Three" "Four" STRINGTABLE ID 100 "-" "One" "Two" "Three" "Four"
CATEGORIES ID <CategoryResourceId.n> <Category1.s> ... <Category2.s>
CATEGORIES ID 100 "Unfiled" "Business" "Personal"
APPLICATIONICONNAME ID <AINResourceId.n> <ApplicationName.s>
APPLICATIONICONNAME ID 100 "AlarmHack"
APPLICATION ID <ApplResourceId.n> <APPL.s>
APPLICATION ID 1 "PALM"
LAUNCHERCATEGORY [ID <LaunchCatResourceId.n>] <APPL.s>
LAUNCHERCATEGORY "Games" LAUNCHERCATEGORY ID 1000 "Games"
ICON [ID <IconResourceId.n>] <IconFileName.s> ICONFAMILY [ID <IconResourceId.n>] <BitmapFileName.s> ... <BitmapFileName.s> [NOCOLORTABLE] [COLORTABLE] [TRANSPARENT r g b] [TRANSPARENTINDEX index]
ICON "myicon.bmp" ICONFAMILY "icon1bpp.bmp" "icon2bpp.bmp" ICONFAMILY "icon1bpp.bmp" "icon2bpp.bmp" "icon4bpp.bmp" "icon8bpp.bmp" ICONFAMILY "icon1bpp.bmp" "" "" "icon8bpp.bmp" TRANSPARENTINDEX 255
SMALLICON [ID <IconResourceId.n>] <IconFileName.s> SMALLICONFAMILY [ID <IconResourceId.n>] <BitmapFileName.s> ... <BitmapFileName.s> [NOCOLORTABLE] [COLORTABLE] [TRANSPARENT r g b] [TRANSPARENTINDEX index]
SMALLICON "mysmicon.bmp" SMALLICONFAMILY "smic1bpp.bmp" "smic2bpp.bmp" SMALLICONFAMILY "smic1bpp.bmp" "smic2bpp.bmp" "smic4bpp.bmp" "smic8bpp.bmp" SMALLICONFAMILY "smic1bpp.bmp" "" "" "smic8bpp.bmp" TRANSPARENTINDEX 255
BITMAP [<ResType.s>] ID <BitmapResourceId.n> <BitmapFileName.s> [NOCOMPRESS] [COMPRESS] [FORCECOMPRESS] BITMAPGREY [<ResType.s>] ID <BitmapResourceId.n> <BitmapFileName.s> [NOCOMPRESS] [COMPRESS] [FORCECOMPRESS] BITMAPGREY16 [<ResType.s>] ID <BitmapResourceId.n> <BitmapFileName.s> [NOCOMPRESS] [COMPRESS] [FORCECOMPRESS] BITMAPCOLOR16 [<ResType.s>] ID <BitmapResourceId.n> <BitmapFileName.s> [NOCOMPRESS] [COMPRESS] [FORCECOMPRESS] BITMAPCOLOR [<ResType.s>] ID <BitmapResourceId.n> <BitmapFileName.s> [NOCOLORTABLE] [COLORTABLE] [TRANSPARENT r g b] [TRANSPARENTINDEX index] [NOCOMPRESS] [COMPRESS] [FORCECOMPRESS] BITMAPCOLOR16K [<ResType.s>] ID <BitmapResourceId.n> <BitmapFileName.s> [TRANSPARENT r g b] [NOCOMPRESS] [COMPRESS] [FORCECOMPRESS] BITMAPFAMILY [<ResType.s>] ID <BitmapResourceId.n> <BitmapFileName.s> ... <BitmapFileName.s> [NOCOLORTABLE] [COLORTABLE] [TRANSPARENT r g b] [TRANSPARENTINDEX index] [NOCOMPRESS] [COMPRESS] [FORCECOMPRESS] BITMAPFAMILYSPECIAL [<ResType.s>] ID <BitmapResourceId.n> <BitmapFileName.s> ... <BitmapFileName.s> [NOCOLORTABLE] [COLORTABLE] [TRANSPARENT r g b] [TRANSPARENTINDEX index] [NOCOMPRESS] [COMPRESS] [FORCECOMPRESS]
{ UInt32 depth; RGBColorType palette[] = { { 0, 0xff, 0xff, 0xff }, { 1, 0x80, 0x80, 0x80 }, { 2, 0x80, 0x00, 0x00 }, { 3, 0x80, 0x80, 0x00 }, { 4, 0x00, 0x80, 0x00 }, { 5, 0x00, 0x80, 0x80 }, { 6, 0x00, 0x00, 0x80 }, { 7, 0x80, 0x00, 0x80 }, { 8, 0xff, 0x00, 0xff }, { 9, 0xc0, 0xc0, 0xc0 }, { 10, 0xff, 0x00, 0x00 }, { 11, 0xff, 0xff, 0x00 }, { 12, 0x00, 0xff, 0x00 }, { 13, 0x00, 0xff, 0xff }, { 14, 0x00, 0x00, 0xff }, { 15, 0x00, 0x00, 0x00 } }; // 4bpp グレイスケールに変更 depth = 4; WinScreenMode(winScreenModeSet,NULL,NULL,&depth,NULL); // 16 色パレットを設定 WinPalette(winPaletteSet,0,16,palette); }
BITMAP ID 1 "bitmap.bmp" COMPRESS BITMAPGREY ID 2 "bmp2bpp.bmp" COMPRESS BITMAPGREY16 ID 3 "bmp4bpp.bmp" COMPRESS BITMAPCOLOR16 ID 4 "bmp4bpc.bmp" COMPRESS BITMAPCOLOR ID 4 "bmp8bpp.bmp" COMPRESS COLORTABLE BITMAPFAMILY ID 5 "bmp1bpp.bmp" "bmp2bpp.bmp" COMPRESS BITMAPFAMILY ID 6 "bmp1bpp.bmp" "bmp2bpp.bmp" "bmp4bpp.bmp" "bmp8bpp.bmp" COMPRESS BITMAPFAMILY ID 7 "bmp1bpp.bmp" "" "" "bmp8bpp.bmp" COMPRESS BITMAPFAMILY ID 8 "bmp1bpp.bmp" "" "" "bmp8bpp.bmp" COMPRESS TRANSPARENT 255 255 255 BITMAPFAMILY ID 9 "bmp1bpp.bmp" "" "" "bmp8bpp.bmp" COMPRESS TRANSPARENTINDEX 255
TRAP ID <TrapId.n> <TrapNumber.n>
TRAP ID 1000 367
FONT ID <FontResourceId.n> FONTID <FontId.n> <FontFileName.s>
フォント情報を含むファイルは単純 ASCII ファイルである. これがどう作用するかを理解するためには, フォントがメモリで扱われる方法を理解する必要がある. フォントは4つの部分(ヘッダ,ビットマップイメージ,ビットマップ位置テーブル, オフセット/幅テーブル)から成る. ビットマップイメージと位置テーブルは100% 自動的に生成される.
ASCII ファイルは ヘッダとフォントデータ(glyph オブジェクト)の部分から成る. 完全なフォントファイルが PilRC パッケージに含まれている.
FONT ヘッダは次のフィールドを持つ.
fontType どのような意味を持つのか不明. 多くの ROM フォントを調査した結果,36864 を設定している. maxWidth "最大文字幅"を設定する.
定義しなければ,最も幅の広い文字の幅を自動的に設定する.kernMax "最大 kern 値の負数" を設定する.
どのような意味を持つのか不明.nDescent "descent の負数" を設定する.
どのような意味を持つのか不明で,ROM フォントでも使われていない.fRectWidth "フォントを囲む矩形幅" を設定する. 設定しなければ,自動的に最も幅の広い文字の幅を設定する. fRectHeight "フォントを囲む矩形の高さ" を設定する.
設定しなければ,最初に設定した文字のグリフの値を自動的に設定する.
全ての文字は必ずこの高さになる.ascent グリフの ascending(基準線の上)部分を構成するテキスト行数を設定する. ascent + descent = fRectHeight となる. この値は設定しておくことを強く勧める. descent グリフの descending(基準線の下)部分を構成するテキスト行数を設定する. descent + ascent = fRectHeight となる. この値は設定しておくことを強く勧める. leading この値については分かっていない. 各グリフはビットマップ,オフセット,幅を持っている. 幅は更新できるが,自動設定なので推奨しない.
[source.rcp]FONT ID 1000 FONTID 128 "font.txt"[source.c]
void *font128; font128=MemHandleLock(DmGetResource('NFNT', 1000)); UICurrentFontPtr = font128;
[source.rcp]FONT ID 1000 FONTID 128 "font.txt"[source.c]
FontPtr font128; font128=MemHandleLock(DmGetResource('NFNT', 1000)); FntDefineFont(128, font128);
HEX <ResType.s> ID <ResId.n> <Byte.n> | <String.s>
HEX "junk" ID 1000 0x00 0x00 0x00 0x23 "String" 0x00 "String2" 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
DATA <ResType.s> ID <ResId.n> <FileName.s>
DATA "junk" ID 1000 "binary.bin"
INTEGER ID <ResId.n> <Value.n>
INTEGER ID 1000 1974
PilRC は国際化された tokenization の限られたフォームをサポートする. この機構は,TRANSLATION セクションで 定義された変換規則を用いて,リソース内の文字列を置き換える働きをする. 複数の変換ブロックはリソーススクリプトの中で指定する. アクティブにしたい言語は PilRC の -L フラグで決定する.位置制御は絶対座標を用いるため大きな問題となっている. フォームの内容を定義する際には,AUTO や CENTER,PREVRIGHT などを用いることを推奨する.
pilrc -L FRENCH myscript.rcp res
TRANSLATION <Language.s> BEGIN <STRINGTRANSLATIONS> END
<STRINGTRANSLATIONS> は次の行を1つ以上含む.
<Original.s> = <Translated.ss>
TRANSLATION "FRENCH" BEGIN "Repeat Datebook alarm sound" = "Répétitions Alarme Agenda" "Ring again every" = "Rappel tous les" END
Palm Computing Platform 情報のために,次のウェブサイトも参照のこと.
訳内容については注意深く確認していますが, 原文で訳しにくい部分については,分かりやすく変更した部分もあります. HTML 記述は読みやすくなるようにかなり変更しています. 誤訳が含まれている可能性がありますので,取扱には十分注意して下さい. この訳に書かれた内容を参照したことによる,如何なる問題および障害も関知しませんので 御了承下さい. もし,この訳について何かお気づきの点がありましたら遠慮なく御連絡下さい.
Original PilRC User's Manual:
http://www.ardiri.com/index.cfm?redir=palm&cat=pilrc