タイトルは何だか偉そうですが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