Confirmation Query
Article Metadata
CAknQueryDialog API can also be used as a confirmation query, following function illustrates how you could use it for this purpose:
Headers:
- include <aknglobalconfirmationquery.h>
Libraries:
aknnotify.lib eiksrv.lib
TInt ShowQueryDialogL(const TDesC& aMessage)
{
CAknQueryDialog* dlg = CAknQueryDialog::NewL();
return dlg->ExecuteLD(R_QUERY,aMessage);
}
another usage...
TBool ShowQueryDialogL(const TDesC& aMessage)
{
CAknQueryDialog* dlg = CAknQueryDialog::NewL();
TBool answer( dlg->ExecuteLD( R_QUERY,aMessage ) );
return answer;// True=YES, False=NO
}
As all dialogs CAknQueryDialog also requires resource definition, with this example function you could use following resource definition:
RESOURCE DIALOG R_QUERY
{
flags = EGeneralQueryFlags;
buttons = R_AVKON_SOFTKEYS_YES_NO;
items =
{
DLG_LINE
{
type = EAknCtQuery;
id = EGeneralQuery;
control = AVKON_CONFIRMATION_QUERY
{
layout = EConfirmationQueryLayout;
animation = R_QGN_NOTE_INFO_ANIM;
};
}
};
}
If you want to use confirmation queries without resource definitions, you could also utilize CAknGlobalConfirmationQuery API for example like this:
TBool ShowQueryDialogL(const TDesC& aMessage)
{
CAknGlobalConfirmationQuery* QlobalQ = CAknGlobalConfirmationQuery::NewL();
CleanupStack::PushL(QlobalQ);
TRequestStatus theStat = KRequestPending;
QlobalQ->ShowConfirmationQueryL(theStat, aMessage, R_AVKON_SOFTKEYS_YES_NO);
User::WaitForRequest(theStat);
CleanupStack::PopAndDestroy(QlobalQ);
if(theStat.Int() == EAknSoftkeyYes)
{
return ETrue;
}
else
{
return EFalse;
}
}

