« 日本語化 | POBox ハードキーでの候補選択 | TSE »

Wed June 1,2005

POBox ハードキーでの候補選択

シミュレータでイベントを眺めてみたり、実機にHackを仕込んでみたりして検証しましたが、ハードキーによる候補選択はスマートには実現できないようです。仕方がないのでちょっとあざとい手を使って無理矢理実現。とりあえず、J-OS + POBox 1.7.2aの環境で

  • 5Way Naviによる候補選択と確定
  • 基本ボタン2、ランチャボタン、メニューボタン、基本ボタン3を使って1~4番目の候補を選択
が出来るようになりました。

ただ他のHack系アプリと同時に使うと問題が発生する場合があるようです。
私はBDALを使っているのですが、BDALで基本ボタン2にLDAを割り当てた場合に、BDALが先に基本ボタン2の処理を行ってしまう現象が発生しています。
SysNotifyRegisterで登録するときのプライオリティをうまく調整すれば解決するかと思ったのですが、ちょっといじってみた限りではうまくいかず。

というようにまだ全然検証されていませんが、それでも今すぐ使ってみたい!という方には人柱版として配布しますのでメールでご連絡ください。

以下、実装方法を簡単に紹介しておきます。

基本的にPOBox候補選択ウィンドウ表示中のキーイベントを他のイベントにすりかえることで各種機能を実現しています。 POBoxが候補選択ウィンドウを表示中かどうかは

TsmFepGetMode( NULL )
で確認できるようです。
戻り値が130なら候補ウィンドウ表示中で選択候補なし、131なら候補ウィンドウ表示中で候補のいずれかが選択されている状態と判定できます。

次に5Way Naviでの候補選択はkeyDownEventをフックして候補ウィンドウ表示中のみイベントをすり替えてやることで実現できるようです。さらにイベントをすりかえることでOS側がボタン選択処理を行わないように出来るようです。
ちゃんとSDKを読んでないのでなんとも言えませんが、CLIEのjogDialMaskのようにOSでのボタン選択処理を明示的に止める方法が用意されているかもしれません。

以上の情報はSai10 Sightさんで公開されているPOBox DAのソースを参考にさせて頂きました。Si10 Sightさん有用な情報を公開して頂きありがとうございますm(_ _)m

次にハードキーによる候補選択です。
最初は同じようにkeyDownEventのすり替えだけで実現できるかと思っていたのですが、実際に実験してみるとうまくいかず、仕方がないので無理矢理実現しました(^^;
具体的には、基本ボタン2が押されたときは、右>エンター、ランチャボタンが押されたときは、右>右>エンターというようにkeyDownEventを発生させてやることで実現しました。この方法だとすでに候補が選択された状態の場合に正しく処理されない(例えば、一つ目の候補を選択した状態から基本ボタン2を押すと2つ目の候補が選択されてしまう)のでTsmFepGetModeの戻り値を見て130の時のみこの処理を行うように実装してあります。

このような実装になっているため他のHackがハードキーのイベントを先に処理してしまうと正しく動作しない可能性があります。まぁ運用でどうにかなる範囲なのでしばらく様子を見てみます.

Posted at 12:38

Trackback Pings

このエントリーのトラックバックURL:
http://pam-ya.com/cgi/mt/mt-tb.cgi/917

このリストは、次のエントリーを参照しています: POBox ハードキーでの候補選択:

» [Treo650]POBox patch from tosichanの日記
とても嬉しいニュースです。 Treo650でPOBoxを使おうとすると、いろいろと制限がありました。 なので最近はATOKを使っている私ですが、福音が訪れました... [続きを読む]

TrackBack at: June 2, 2005 6:32 AM

» POBoxでハードキーでの候補選択 from Sai10 Sight
ぱむ屋さんがPOBoxでハードキーでの候補選択を可能にするHackを公開。お見事 [続きを読む]

TrackBack at: June 2, 2005 7:06 AM

» POBox for Palm OS5 1.7.2a を使い始めました♪ from taichi :: palm blog
POBox for Palm OS5 1.7.2a を今日から使い始めました♪ [続きを読む]

TrackBack at: June 2, 2005 10:49 AM

» [Treo650]POBox ハードキーでの候補選択 from NARi半額処分
T|Cを使っていた頃にお世話になったPOBoxですが、Treo650を使うようになってからはATOKに乗り換えていました。 なぜかというとPOBoxの推測変換で... [続きを読む]

TrackBack at: June 3, 2005 12:51 AM

Comment

人柱版ですが、今のところ快適に使えています(^^)/。

Posted by tosichan at 06:35 06.02

Sai10 Sightのshukakuです。Hack化、お見事!
あのソースコードをご覧いただいて、嬉しいやら恥ずかしいやら。(^_^;
負けずにDA路線で早いとこ改訂せねば...。

Posted by shukaku at 06:46 06.02

>tosichanさん
他の方からのレポートを見ても大体動いてるみたいです
あとはどこまで設定を変更できるようにするかですね

>shukakuさん
POBoxの状態の取り方など、ソースかなり参考になりました(^^
ありがとうございます
ハードキーでの候補選択はDAでも実装出来ると思うので是非ご検討ください

Posted by EIJ at 21:48 06.02

さっそく使わせていただきました。ウチの環境は、Sprint版Treo650+JaPon v.1.0h+POBox 1.7.2aですが問題なく使えてますね。T|Cとの違いは4番目のアプリキーの役割くらいじゃないかと思います。
素晴らしいです(・∀・)♪

Posted by NARi at 00:55 06.03