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 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

: AUTOCENTERは数式では有効ではない.

コメント

単独行のコメントは "//"で始まる.
ブロックコメントは "/*" と "*/" で囲んだ部分である.

: オブジェクト定義内にある "//" コメントはエラーとして 扱われる.

インクルードファイル

.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>;
}

各シンボルは任意の数値の代用として使われる.

: #ifdefPilRC では無効.

リソース言語リファレンス

.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 (tFRM)

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>]

注意:

例:

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 (MBAR)

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 (Talt)

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 (tver)

VERSION ID <VersionResourceId.n> <Version.s>
VERSION <Version.s>

注意:

例:

VERSION ID 1 "1.0 beta"
VERSION "1.0 beta"

STRING (tSTR)

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 (tSTL)

STRINGTABLE ID <StringTableResourceId.n> <PrefixString.ss>  ... <String.ss>

注意:

例:

STRINGTABLE ID 100 "" "One" "Two" "Three" "Four" 
STRINGTABLE ID 100 "-" "One" "Two" "Three" "Four"

CATEGORIES (tAIS)

CATEGORIES ID <CategoryResourceId.n> <Category1.s> ... <Category2.s>

注意:

例:

CATEGORIES ID 100 "Unfiled" "Business" "Personal"

APPLICATIONICONNAME (tAIN)

APPLICATIONICONNAME ID <AINResourceId.n> <ApplicationName.s> 

例:

APPLICATIONICONNAME ID 100 "AlarmHack"

APPLICATION (APPL)

APPLICATION ID <ApplResourceId.n> <APPL.s>

注意:

例:

APPLICATION ID 1 "PALM"

LAUNCHERCATEGORY (taic)

LAUNCHERCATEGORY [ID <LaunchCatResourceId.n>] <APPL.s>

例:

LAUNCHERCATEGORY "Games"
LAUNCHERCATEGORY ID 1000 "Games"

ICON (tAIB)

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 (tAIB)

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 (Tbmp)

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]

注意:

例:

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 (TRAP)

TRAP ID <TrapId.n> <TrapNumber.n>

注意:

例:

TRAP ID 1000 367

FONT (NFNT)

FONT ID <FontResourceId.n> FONTID <FontId.n> <FontFileName.s>

FONT ファイルフォーマット

フォント情報を含むファイルは単純 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 この値については分かっていない.

各グリフはビットマップ,オフセット,幅を持っている. 幅は更新できるが,自動設定なので推奨しない.

注意:

HEX

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

DATA <ResType.s> ID <ResId.n> <FileName.s>

例:

DATA "junk" ID 1000 "binary.bin"

INTEGER (tint)

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

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


戻る