(Difference between revisions)

Handling new touch-related MEikListBoxObserver events

From Nokia Developer Wiki
Jump to: navigation, search
tepaa (Talk | contribs)
(New page: __NOTOC__ __NOEDITSECTION__ {|style="background:#eceff2" width="660px" border="1" cellpadding="5" cellspacing="0" |- |'''ID''' ||   |'''Creation date''' || September 30, 2008 |- |''...)
tepaa (Talk | contribs)
Line 8: Line 8:
|'''Platform''' || S60 5th Edition
|'''Platform''' || S60 5th Edition
|'''Tested on devices'''  Nokia 5800 XpressMusic
|'''Tested on devices'''  || Nokia 5800 XpressMusic
|'''Category''' || Symbian C++
|'''Category''' || Symbian C++

Revision as of 12:40, 9 October 2008

ID   Creation date September 30, 2008
Platform S60 5th Edition Tested on devices Nokia 5800 XpressMusic
Category Symbian C++ Subcategory Touch UI

Keywords (APIs, classes, methods, functions): MEikListBoxObserver::HandleListBoxEventL()


S60 5th Edition supports touch events. All AVKON ui controls handles touch ui events and you do not need to implement nothing new.

If your ui control has the listbox and it's listening listbox events by MEikListBoxObserver you have to handle few new touch ui related events:

* EEventItemClicked            // Item single-tap event
* EEventItemDoubleClicked      // Item two-taps event
* EEventPenDownOnItem          // Pen is down and over an item
* EEventItemDraggingActioned   // Pen is dragged from item to another

Note that CAknSingleStyleListBox handles already its touch ui poiter events in its AVKON base class CAknColumnListBox::HandlePointerEventL(). Do not override this implementation.

MMP file

The following libraries are required:

LIBRARY avkon.lib
LIBRARY eikcoctl.lib
LIBRARY eikctl.lib

Header file

#include <aknlists.h> // CAknSingleStyleListBox
#include <eiklbo.h> // MEikListBoxObserver

Source file

We have CAknSingleStyleListBox inside our control and it's created in ConstructL()

void CMyContainer::ConstructL(const TRect& aRect)
// Initialize component array
// Create listbox
iSearchListBox = new (ELeave) CAknSingleStyleListBox;
TResourceReader reader;
CEikonEnv::Static()->CreateResourceReaderLC(reader, R_XXXX);
CleanupStack::PopAndDestroy(); //reader
// --> Start event listening
// Enable scrollbars
iSearchListBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
CleanupStack::Pop( iSearchListBox );

Here is listbox event listening, see new EEventItemDoubleClicked touch ui related event. EEventEnterKeyPressed event is old selection key event (from S60 3rd Edition).

void CMyContainer::HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType)
if (aEventType == EEventEnterKeyPressed || aEventType == EEventItemDoubleClicked)
// TODO: Listbox got double click, what to do?
// From CEikListBox::CurrentItemIndex() you could get the selected row...


Application handles

See also

80 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.


Thank you!

We appreciate your feedback.