Palm Programmer's Laboratory
Palm OS Programmer's Companion Volume I/9
9 アプリケーションとダイナミックインプットエリア
ほとんどの Palm ハンドヘルドでは、Palm OS アプリケーションはデバイスのスクリーン密度に応じて 160 x 160 または 320 x 320 ピクセルの固定された領域に描画されます。文字を入力するためのインプットエリアは、そのようなデバイスではシルクスクリーンとして備わっています。いくつかの Palm ハンドヘルドには、図 9.1 に示すようなダイナミックインプットエリアが備わっています。これは文字を入力する必要がない時に閉じることができます(右下の矢印をタップすることでインプットエリアを閉じ、小さなコントロールバーだけが残ります)。
これらのデバイスでは、アプリケーションの領域は固定ではありません。インプットエリアが表示されている状態では伝統的な四角形ですが、インプットエリアを閉じることによって長方形になり、アプリケーションにより広いスペースを提供します。
図 9.1 折り畳み可能なダイナミックインプットエリア
スクリーンの一番下にあるコントロールバー(図 9.2 参照)にはいくつかのボタンがあります。トリガーと呼ばれるボタン(図 9.2 の右端にある矢印)もその1つで、インプットエリアが閉じているときにこのボタンで開くことができます。トリガーはインプットエリアを閉じるためのボタンとしてインプットエリア内にも表示されます。
図 9.2 コントロールバー
コントロールバーはインプットエリアが表示されている時は通常非表示になっています。倍密度スクリーンは例外で、常に表示されますが、ライセンシーはこの挙動を変更できます。
広がったスクリーン領域を利用するには、アプリケーション側でインプットエリアの伸縮に応答してフォームをアプリケーションの利用可能な領域で再描画しなければなりません。この章では、その方法について説明します。
アプリケーションでダイナミックインプットエリアを利用するには、以下の手順に従います。
- この章で説明するAPIを利用できることを確認するためにフィーチャをチェックする。(“ダイナミックインプットエリアフィーチャ”を参照して下さい)
- frmLoadEvent または frmOpenEvent に応答してWinSetConstraintsSize をコールし、それぞれのフォームのサイズ制約を設定します(“サイズの制約”を参照して下さい)。
- frmLoadEvent と frmOpenEvent、および winEnterEvent に応答して、アプリケーションの各フォームがペン入力マネージャを使用するようにセットアップします。これには FrmSetDIAPolicyAttr、PINSetInputTriggerState、および PINSetInputAreaState のコールが含まれます(“入力エリアのポリシー”を参照して下さい)。
- sysNotifyDisplayResizedEvent ノティフィケーションに応答して winDisplayChangedEvent イベントをポストし、そのイベントハンドラにおいて利用可能な領域内でフォームを再描画します(“フォームのリサイズ”を参照して下さい)。
- NOTE
- フォームが描画される前にアプリケーションが FrmSetDIAPolicyAttr をコールしないと、システムはそれがダイナミックインプットエリアをサポートしないレガシーなフォームだと仮定します。この場合、入力エリアはトリガーなしで描画されます。
訳注:原著では配下のセクションを全て列挙していませんが、 各章のトップページに配下のセクション一覧を提示する 方式でページを構成しているため、以下に付記します。
- 9-1 ダイナミックインプットエリアフィーチャ
- 9-2 サイズの制約
- 9-3 入力エリアのポリシー
- 9-4 フォームのリサイズ
- 9-5 コントロールバーの表示と非表示
- 9-6 ペン入力マネージャの互換性