Long-tap events allow you to specify functions performed when the user taps and holds the button for a specified period of time. An example of a long-tap function is fast forwarding in a media player application by tapping and holding down a button.
To receive long-tap events, use the class CAknLongTapDetector in the Touch UI utilities API.
To enable the handling of long tap events in your CAknButton , set the flag KAknButtonReportOnLongPress for the button. When the long tap event starts,CAknButton::ELongPressEvent() is reported to the button observer (MCoeControlObserver). When the long tap event ends, CAknButton::ELongPressEndedEvent() is reported.
To define the period for which the button needs to be held down for a long-tap event, use the method SetLongPressInterval() in the class CAknButton.
void CMyAppContainer::ConstructL() { … iButton = CAknButton::NewL( NULL, NULL, NULL, NULL, KNullDesC, KNullDesC , KAknButtonReportOnLongPress, 0 ); iButton->SetContainerWindowL( *this ); iButton->SetObserver( this ); … } void CMyAppContainer::HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType ) { switch ( aEventType ) { // Button is pressed for a long time case CAknButton::ELongPressEvent: if ( aControl == iButton ) { … } break; // Button long press ended case CAknButton::ELongPressEndedEvent: if ( aControl == iButton ) { … } break; default: break; } }