Palm Programmer's Laboratory
Palm OS Programmer's API Reference/23
この章はその他のユーザ インターフェイス関数についての説明を提供します。以下の内容についてカバーします:
この章で説明されている関数の宣言はヘッダ ファイル AppLaunchCmd.h,PhoneLookup.h それに UIResources.h の中にあります。
その他のユーザ インターフェイス データ構造体 ^TOP^
PhoneNumberLookupCustom() 関数は、現在のカーソル位置に基づいてコンタクト情報を参照するためにこれらのデータ構造体を使用します。
AddressLookupFields 列挙体 ^TOP^
目的
AddressLookupFields 列挙体は AddrLookupParamsType 構造体の要素 field1 と field2 を使って、あなたが検索することができるフィールドと返されるフィールドを指定します。field1 と field2 に addrLookupFieldCount 以外の値の 1 つを渡します。
Prototype
typedef enum { addrLookupName, addrLookupFirstName, addrLookupCompany, addrLookupAddress, addrLookupCity, addrLookupState, addrLookupZipCode, addrLookupCountry, addrLookupTitle, addrLookupCustom1, addrLookupCustom2, addrLookupCustom3, addrLookupCustom4, addrLookupNote, addrLookupWork, addrLookupHome, addrLookupFax, addrLookupOther, addrLookupEmail, addrLookupMain, addrLookupPager, addrLookupMobile, addrLookupSortField, addrLookupListPhone, addrLookupFieldCount, addrLookupNoField = 0xff } AddressLookupFields;
AddrLookupParamsType 構造体 ^TOP^
目的
電話番号参照ダイアログと貼付プロセスを正確に制御するために、この構造体を PhoneNumberLookupCustom() に渡します。
Prototype
typedef struct { Char *title; Char *pasteButtonText; Char lookupString[addrLookupStringLength]; AddressLookupFields field1; AddressLookupFields field2; Boolean field2Optional; Boolean userShouldInteract; Char *formatStringP; MemHandle resultStringH; UInt32 uniqueID; } AddrLookupParamsType; typedef AddrLookupParamsType *AddrLookupParamsPtr;
フィールド
- title
- タイトル バーに表示するタイトル。デフォルトのタイトルを使用するには NULL を渡します。
- pasteButtonText
- 貼付ボタンに表示するテキスト。デフォルトの "paste" (「貼付」)を使用するには NULL を渡します。
- lookupString
- 検索する文字列を保持するバッファ。文字列がただ 1 つのレコードに一致する場合、そのレコードはユーザへの検索ダイアログに表示されること無く使用されます。PhoneNumberLookup と PhoneNumberLookupCustom は両方とも現在の選択またはカーソル位置に基づいてこのフィールドをセットします。
- field1
- 検索するフィールド。このフィールドは検索ダイアログの左側に表示されます。フィールドがソート フィールドの場合、検索はバイナリ サーチを使って実行されます。フィールドがソート フィールドではない場合、検索はリニア サーチ - これは時間がかかる可能性があります - によって実行されます。検索するフィールドを指定するために AddressLookupFields 列挙体の値の 1 つを渡します。
- field2
- 右側に表示されるフィールド。しばしば、個人についての何らかの情報を表示します。このフィールドが電話号フィールドで、1 つのレコードが複数の電話番号タイプのインスタンスを持つ場合、電話番号タイプのインスタンスごとにその個人が表示されます。field1 と field2 のどちらかが電話番号フィールドであるかもしれませんが、両方ともがそうであることはありません。表示するフィールドを指定するために AddressLookupFields 列挙体の値の 1 つを渡します。
- field2Optional
- true の値はレコードはリストするための field2 を持つ必要がないことを意味します。false の値はレコードがリストされるために field2 が要求されることを示します。
- userShouldInteract
- true の値は、ユーザに非-固有検索を解決することを求めます。false 値は、非-固有で完了した検索は resultStringH を NULL にセットして、uniqueID を 0 にセットすることを意味します。
- formatStringP
- 貼り付ける文字列のフォーマットを制御します。フォーマットされる文字列の中のすべての文字はそれらがフィールドを示す(先頭がキャレット(^)のフィールド名)のではない限りリテラルです。例えば、フォーマット文字列 "^first - ^home" は "Roger - 123-4567" という結果になるかもしれません。許可されるフィールド名は以下の通りです:
- name
- first
- company
- address
- city
- state
- zipcode
- country
- title
- custom1
- custom2
- custom3
- custom4
- work
- home
- fax
- other
- main
- pager
- mobile
- listname
- 貼り付ける文字列のフォーマットを制御します。フォーマットされる文字列の中のすべての文字はそれらがフィールドを示す(先頭がキャレット(^)のフィールド名)のではない限りリテラルです。例えば、フォーマット文字列 "^first - ^home" は "Roger - 123-4567" という結果になるかもしれません。許可されるフィールド名は以下の通りです:
- resultStringH
- フォーマット文字列がある場合、結果の文字列はダイナミック ヒープ上に割り当てられ、それのハンドルがここに返されます。
- uniqueID
- 見つかったレコードの固有 ID がここに返されます。レコードが見つからなかった場合は 0 が返されます。
その他のユーザ インターフェイス関数 ^TOP^
PhoneNumberLookup ^TOP^
目的
電話番号を参照するためにアドレス帳アプリケーションを呼び出します。
宣言されている場所
PhoneLookup.h
Prototype
void PhoneNumberLookup ( FieldType *fldP )
パラメータ
- → fldP
- フィールド オブジェクト - その中にある一致するテキストを見つけます。
返り値
返り値はありません。
コメント
この関数はユーザの電話番号リストを表示して、選択された名前と番号(または会社名、名前、番号 - ユーザのアドレス帳設定が示している電話番号のリストのソートの仕方がそのようになっている場合)を指定されたフィールドに挿入します。電話番号のリストを表示するとき、PhoneNumberLookup はリストを提供されたフィールドに最もよく一致するエントリまでスクロールさせます。マッチングはフィールドの内容を名前または会社名(ユーザの設定次第です)と以下のように比較します:
- フィールドが選択された (訳者補足: ハイライトされている) テキストを保持している場合、PhoneNumberLookup はそのテキストに対してマッチングさせようとします。そのテキストはマッチングで選択されたアドレス リスト エントリのテキストで置き換えられます。
- フィールドの中に選択された (訳者補足: ハイライトされた) テキストが無い場合、PhoneNumberLookup はカーソルがある場所の単語に対してマッチングを行います (カーソルが単語の開始点、終了点、内部にある場合、マッチングが行われます)。マッチングされた単語はマッチングで選択されたアドレス リスト エントリのテキストで置き換えられます。
- カーソルが単語の内部にない、隣接していない場合、PhoneNumberLookup はアドレス リストを最初のエントリから表示し、リストの中で選択されたエントリはテキスト フィールドの中のカレント ポジションに挿入されます。
アドレス リストが表示されているときにユーザが Cancel を選択した場合、フィールドの内容はそのまま変更されずに残ります。貼り付け操作はクリップボードを通じて行われるため、フィールドを以前の状態に戻すために Undo を使用することができます。
互換性
2.0 New Feature Set が存在する場合にのみ、実装されます。
参照
PhoneNumberLookupCustom ^TOP^
目的
電話番号を参照するためにアドレス帳アプリケーションを呼び出します。
宣言されている場所
PhoneLookup.h
Prototype
void PhoneNumberLookupCustom ( FieldType *fldP, AddrLookupParamsType *params, Boolean useClipboard )
パラメータ
- → fldP
- マッチングさせるテキストを保持しているフィールド オブジェクト。
- ←→ params
- 検索ダイアログと結果の貼付文字列のフォーマットをフル コントロールすることを可能にする構造体。この構造体の中のフィールドの説明は、AddrLookupParamsType を参照してください。
- → useClipboard
- true の場合、PhoneNumberLookupCustom は結果をクリップボードを通じて貼り付けし、それによって Undo が可能になります。
返り値
返り値はありません。
コメント
この関数はユーザのアドレス リストの中にある各レコードから 2 つのレコードを表示して、選択されたレコードのフィールドに基づいてフォーマットされた文字列を指定されたフィールドに挿入します。アドレス リストを表示するとき、PhoneNumberLookupCustom はリストを提供されたフィールドに最も良くマッチするエントリまでスクロールさせます。マッチングは以下のようにフィールドの内容と params 構造体の field1 要素の中で指定されたフィールドとを比較します:
- フィールドが選択された (訳者補足: ハイライトされている) テキストを保持している場合、PhoneNumberLookupCustom はそのテキストに対してマッチングさせようとします。そのテキストはマッチングで選択されたアドレス リスト エントリのテキストで置き換えられます。
- フィールドの中に選択された (訳者補足: ハイライトされた) テキストが無い場合、PhoneNumberLookupCustom はカーソルがある場所の単語に対してマッチングを行います (カーソルが単語の開始点、終了点、内部にある場合、マッチングが行われます)。マッチングされた単語はマッチングで選択されたアドレス リスト エントリのテキストで置き換えられます。
- カーソルが単語の内部にない、隣接していない場合、PhoneNumberLookupCustom はアドレス リストを最初のエントリから表示し、リストの中で選択されたエントリはテキスト フィールドの中のカレント ポジションに挿入されます。
※訳者: 原文では上の 3 つの文中の関数名はすべて PhoneNumberLookup であったが、PhoneNumberLookupCustom であると思われる。
PhoneNumberLookupCustom は検索に使用されるフィールドの一部 - 選択されているテキスト、または、カーソルが位置している場所の単語 - をユーザが選択したアドレス リストのエントリで置き換える前に params 構造体の中の lokkupString フィールドへコピーします。
アドレス リストが表示されているときにユーザが Cancel を選択した場合、フィールドの内容はそのまま変更されずに残ります。useClipboard の値しだいでは、貼り付け操作はクリップボードを通じて行われるため、フィールドを以前の状態に戻すために Undo を使用することができます。
互換性
4.0 New Feature Set が存在する場合にのみ、実装されます。
ResLoadConstant ^TOP^
目的
'tint' リソースから定数をロードし、その値を返します。
宣言されている場所
UIResources.h
Prototype
UInt32 ResLoadConstant ( UInt16 rscID )
パラメータ
- → rscID
- ロードする 'tint' リソース (記号的には constantRscType という名前) の ID。
返り値
リソースの中にある 4 バイトの定数値を返します。リソースが見つからなかった場合は 0 を返します。返り値は必要に応じてキャストされるかもしれません。
コメント
「ソフト定数」 - 'tint' リソースとして保存されている定数値 - をロードするためにこの関数を使用します。(すべてのオープンされているリソースであなたが指定したリソース ID を探します。) ロケールに依存して定数値が変わる場合、あなたはその定数値をリソースとして保存すべきです。
例として、予定表アプリケーションの設定パネルの中のアラーム サウンド トリガの最大長を考えてみます。このトリガによって表示されるリストはシステムの中に保存されている各サウンドのためのローカライズされている名前を使用します。ローカライズされた名前が使用されるため、予定表アプリケーションがラベルに対して許可する最大長は現在のロケールに依存して変わります。最大長はリソース定数として保存されているため、各オーバレイ データベースは最大長を表す定数として異なる値を指定することができます。
互換性
3.5 New Feature Set が存在する場合にのみ、実装されます。それより前の Palm OS で実行されることを意図したコードの中でこの関数を使用するには、PalmOSGlue ライブラリにリンクを張って ResGlueLoadConstant を呼び出します。更なる情報は、第 80 章 「PalmOSGlue ライブラリ」? を参照してください。
参照
DmGetResource(), DmGet1Resource()
ResLoadForm ^TOP^
目的
フォーム リソースをコピーして初期化します。構造体はポインタの更新を除いて完全 (訳者注: すぐ使用できる状態) です。ポインタはフォームの開始点からのオフセットとして保存されています。
宣言されている場所
UIResources.h
Prototype
void *ResLoadForm ( UInt16 rscID )
パラメータ
- → rscID
- フォームのリソース ID。
返り値
フォームが存在しているメモリ ブロックのハンドル。フォーム構造体は WindowType|Palm OS Programmer's API Reference/59-1 で始まるため、この返り値は WinHandle でもあります。
互換性
5.0 New Feature Set または Palm OS Cobalt Feature Set のどちらかが存在する場合、この関数は実装されません。
ResLoadMenu ^TOP^
目的
メニュー リソースをコピーして初期化します。構造体はポインタの更新を除いて完全 (訳者注: すぐ使用できる状態) です。ポインタはメニューの開始点からのオフセットとして保存されています。
宣言されている場所
UIResources.h
Prototype
void *ResLoadMenu ( UInt16 rscID )
パラメータ
- → rscID
- メニューのリソース ID。
返り値
フォームが存在しているメモリ ブロックのハンドル。フォーム構造体は WindowType|Palm OS Programmer's API Reference/59-1 で始まるため、この返り値は WinHandle でもあります。