Use the method CAknStylusPopUpMenu::ShowMenu() to show the stylus pop-up menu.
Usually, the pop-up menu must not be directly displayed in the HandlePointerEventL of a CCoeControl.
Use the CAknLongTapDetector to handle the Llong
Tap event and show the pop-up on the HandleLongTapEventL, which is the implementation to the interface MAknLongTapDetectorCallBack.
The following code snippets illustrates how to show pop-up menu:
CAknLongTapDetector * iLongTapDetector;
// "this" implement the interface MAknLongTapDetectorCallBack
iLongTapDetector = CAknLongTapDetector::NewL( this );
// pass the process to the long tap detector
void XXXX::HandlePointerEventL(
const TPointerEvent& aPointerEvent)
{
iLongTapDetector->PointerEventL( aPointerEvent );
// Call base class HandlePointerEventL()
CCoeControl::HandlePointerEventL(aPointerEvent);
}
// handle long tap detector event to show the stylus popup
void XXXX::HandleLongTapEventL( const TPoint& aPenEventLocation, const TPoint& aPenEventScreenLocation )
{
iPopupMenu->SetPosition(
aPenEventScreenLocation ,
CAknStylusPopUpMenu::EPositionTypeRightBottom );
iPopupMenu->ShowMenu();
}