Fork me on GitHub

Tungsten 5+way+navigator

  • Jun 02, 2006

categoryプラグインは存在しません。

Tungsten T では新しく 5 Way Navigator が搭載されている。SDK はPalm OS Resource PavilionDevelopment Seeding Areaからダウンロードできる。

5 Way Navigator の有無は、以下のように Feature Set を調べる。

UInt32 version;
Err err = FtrGet(navFtrCreator, navFtrVersion, &version);

err が出ず、version が 0より上なら存在する。

5 Way Navigator からの KeyDownEvent は、基本的に2つ以上がセットで発生する。

(表略)

基本は、

  1. 上下ボタンのchrは、従来と同じ。ただし keyCode が変わる。
  2. 左右と中央ボタンのchrは全て vchrNavChange となる。
  3. keyCode には、押されたボタンが navBit* で示され、状態の変わったボタンが navChange* で示される。
  4. 長押しした場合は、modifier に autoRepeatKeyMask がセットされ、イベントが複数発行される。

となる。

明示的な release イベントはないため、keyCode を調べて、以前に押されていたボタンが押されていなければ、release とみなす必要がある。

各ボタンが押されているかどうかを判断するマクロが用意されているため、以下のようなコードで判断が可能。

if (NavKeyPressed(eventP, Select))
if (NavKeyPressed(eventP, Left))
if (NavKeyPressed(eventP, Right))
if (NavKeyPressed(eventP, Up))
if (NavKeyPressed(eventP, Down))

上記マクロは Up, Down に関しては 5 Way Navigator のない機種でも利用可能。

デフォルトでは、中央ボタンを押すと OK ボタン等が押され、中央ボタンの長押しでランチャーに戻る。これは Form の EventHandler で該当イベントを処理することで変更可能。

commentプラグインは存在しません。

目次