Palm Programmer's Laboratory
Palm OS Programmer's Companion Volume I/4-17
4-17 アプリケーションランチャ
アプリケーションランチャは、多くのアプリケーションを起動するための画面です。入力エリア上のアプリケーションアイコンをタップすることでランチャに移動できます。それからアプリケーションのアイコンをタップすることで、任意のアプリケーションを起動します。
アプリケーションランチャに統合するため、アプリケーションは以下のセクションで説明するようにアプリケーションアイコンとバージョン文字列を提供する必要があります。場合によっては、デフォルトのアプリケーションカテゴリを指定する必要もあるかもしれません。
ランチャにおけるアイコン
Palm ハンドヘルドにインストールされたアプリケーション( タイプが 'appl' のリソースデータベース ) は、アプリケーションランチャに自動的に表示されます。ランチャが表示するのは、アプリケーションアイコンとアプリケーション名です。
アプリケーションは2つのアイコンを用意する必要があります。
- 'tAIB' タイプで ID が 1000 の大きなアイコン。Palm OS 2.0 との互換性のため、このアイコンの大きさは 22 x 32 ピクセルである必要があります。その他のバージョンの Palm OS 向けには、このアイコンを 22 x 22 ピクセルで作成することもできます。
- ID が 1001 で、タイプは同じく 'tAIB' の小さなアイコン。このアイコンの大きさは 15 x 9 ピクセルでなければなりません。
- NOTE
- Palm OS 3.5 以降の SDK で提供される Constructor プログラムでは、アプリケーションアイコンファミリを作成することができます。アプリケーションアイコンファミリが利用できる場合、App Icon リソースやマルチビットアイコンリソースを使用する必要はありません。
アプリケーション名は2通りの方法で定義できます。
- アプリケーション名(必須)は HotSync アプリケーション、About box、メモリディスプレイ、およびデータベースヘッダにて使用されます。
- アプリケーションアイコン名(オプション)は、アプリケーションのリソースファイルに含まれる文字列リソースです。これらはランチャ画面、およびボタン割り当てのプリファレンス画面( Palm OS 2.0 で利用可 )で使用されます。この名前は Constructor を使用して指定します。アプリケーションアイコン名は仕様上オプションですが、ランチャのメイン画面にアイコンとともに名前を表示させたいのであれば、アイコン名は用意しておくべきです。【重要】: アプリケーションアイコン名を指定する時は、短い名前にしましょう!
- アプリケーション名と一緒に、アプリケーションアイコンがランチャ画面上に表示されます。
訳注:「2通り」と書いてあるにも関わらず、リストは 3項目列挙されていますが、これは原著のままです。
アプリケーションのバージョン文字列
ランチャはそれぞれのアプリケーションのバージョン文字列を 'tver' リソースの ID 1000 から取得して表示します。この短い文字列(通常 3 〜 7 文字)は情報ダイアログに表示されます。
バージョン文字列は以下のような書式になっている必要があります。
major.minor.[stage.change]
ここで major はメジャーバージョン番号、minor はマイナーバージョン番号、stage は開発ステージ( a はアルファ版、b はベータ版、d は開発者向けリリース )、change はビルド番号をそれぞれ意味します。最終リリースでは stage と change は除去します。
デフォルトのアプリケーションカテゴリ
Palm OS 3.5 より、ランチャはアプリケーションをカテゴリに分類します。アプリケーションのカテゴリは、prc ファイル内の 'taic' リソース( シンボル名は defaultCategoryRscType )の ID 1000 で指定できます。Palm OS 3.5 より、ランチャはアプリケーションを指定されたカテゴリにインストールします。Constructor では、メインウィンドウのデフォルトカテゴリフィールドに値を指定することで 'taic' リソースを指定できます。
ほとんどのアプリケーションでは 'taic' リソースを指定すべきではありません。デフォルトでは、ランチャはアプリケーションを“Unfiled”カテゴリにインストールします。ユーザーはそのアプリケーションをどのカテゴリに入れるかを各自で選択します。
以下の条件を満たす場合のみ、'taic' リソースを指定するようにして下さい。
- アプリケーションがコンシューマー向けで、ランチャの定義済カテゴリの1つに入ることが明らかな場合( 表 4.19 参照 )。英語版環境ではランチャの定義済カテゴリは ASCII キャラクタで構成されています。ローカライズされた ROM では、ランチャは適切な訳語を使用します。
- アプリケーションが vertical market 向けか、あるいは完全なカスタムソリューション提供のために共働するカスタムアプリケーションスイートを開発している場合。この場合、'taic' リソースにカスタムカテゴリ名を指定することになるでしょう。ランチャはそのカテゴリ名がランチャのデータベースにまだ存在しなければ新たに作成します。ランチャの定義済カテゴリの中に適合するものがなければ、任意の言語でカテゴリを指定します。
訳注:vertical market の適切な訳語がわかりませんでした。
表 4.19 ランチャの定義済カテゴリ
カテゴリ | 説明 |
---|---|
Games | 全てのゲーム |
Main | 予定表やアドレス帳など、日常的に使用されるアプリケーション |
System | Applications that control how the system behaves,such as the Preferences,HotSync,and Security. |
Utilities | Applications that help the user with system management. |
Unfiled | デフォルトのカテゴリ |
デフォルトのアプリケーションカテゴリを、Microsoft Windows のスタートメニューカテゴリのように使ってはいけません。Palm ハンドヘルドでは、カテゴリは Unfiled を含めて 16 カテゴリに制限されています。それぞれのアプリケーションが独自のカテゴリを定義したら、すぐにこの制限を越えてしまうことは明らかです。デフォルトカテゴリを指定するのは、ユーザーにとって明白な利点がある場合のみにして下さい。
プログラムからのランチャのオープン
プログラムからランチャをオープンする必要が生じるような状況は稀ですが、システムはそのための API を提供しています。アプリケーションからランチャをアクティブにするには、リスト 4.11 に示すように launchChr を設定した keyDownEvent をキューに追加することです。
- WARNING!
- ランチャアプリケーションを起動するのに SysUIAppSwitch や SysAppLaunch 関数を使用しないで下さい。
リスト 4.11 ランチャのオープン
EventType newEvent; MemSet(&newEvent, sizeof(newEvent), 0); newEvent.eType = keyDownEvent; newEvent.data.keyDown.chr = launchChr; newEvent.data.keyDown.modifiers = commandKeyMask; EvtAddEventToQueue (&newEvent);
このテクニックによって、アプリケーションアイコンをタップした時に実行されるものが実行されることに注目して下さい。プログラムから他のアプリケーションを起動する方法の詳細については、「 2 アプリケーションの開始と終了 」の “プログラムからのアプリケーション起動”を参照して下さい。
訳注:上の段落の最初の文、かなり自信がありません。原文は、 Note that this technique will run whatever is run whenever you tap on the Applications icon. です。 おそらく、ランチャ置き換えアプリにも対応できる、と 言うことを言いたいのではないかと解釈しました。
- NOTE
- バージョン 3.0 よりも前の Palm OS では、ランチャをポップアップとして実装していました。この古いポップアップランチャのための API である SysAppLauncherDialog 関数は、互換性のためにまだ Palm OS 上に存在しています。しかし、更新されておらず、ほとんどの場合は使用するべきではありません。