タイトルは何だか偉そうですがListBoxを少し試してみただけです。
5800XMを入手して最初に導入してみたのはptsNotesです。互換性に問題がある旨のメッセージが出ますが導入することは出来ます。色々と問題は有りますが、ごく基本的な動作は可能です。メインのリストをタッチしてノートを開くことも出来ました。これは、予めタッチで発生するイベントを組み込んでいたからです。
void CPtsNotesMainList::HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aListBoxEvent) { if ((aListBoxEvent == MEikListBoxObserver::EEventEnterKeyPressed)|| (aListBoxEvent == MEikListBoxObserver::EEventItemClicked)) { // ノートを開く処理 } }
みたいな感じで書いていました。このプログラムはS60 3rdMRというSDKで作成していますがEEventItemClickedというイベントが5800XMの画面タッチで捕らえられていることが確認できました。
S60 5thの流儀ではダブルクリックで文書を開く方が良いようですしptsNotesではリストのアイテムを洗濯すると画面の一部に内容のプレビューを表示する機能も働かせたいです。そこで、下のように変更してみました。
void CPtsNotesMainList::HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aListBoxEvent) { if ((aListBoxEvent == MEikListBoxObserver::EEventEnterKeyPressed)|| (aListBoxEvent == MEikListBoxObserver::EEventItemDoubleClicked)) { // ノートを開く処理 } else if (aListBoxEvent == MEikListBoxObserver::EEventItemClicked) { // プレビューの処理 } }
ということで、何となくタッチイベントも処理できるようにはなりました。しかしながら、他に不可解な問題が散見されているので、実行ファイル自体はS60 5thのSDKを使ってビルドしないとダメかも知れません。少なくともS603rdのAPIに定義されているイベントが、そのまま使用できるのでソースコードは手を加えることなく共用出来そうです。
no comment untill now