classicui_plat/notifiers_api/inc/aknglobalconfirmationquery.h
author hgs
Fri, 01 Oct 2010 17:27:56 +0800
changeset 67 5f6e7f84c9d1
parent 45 667edd0b8678
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Uses notification framework to show a global confirmation query.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef __AKNGLOBALCONFIRMATIONQUERY_H__
hgs
parents:
diff changeset
    19
#define __AKNGLOBALCONFIRMATIONQUERY_H__
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#include <AknNotify.h>
hgs
parents:
diff changeset
    22
#include <AknNotifyStd.h>
hgs
parents:
diff changeset
    23
#include <AknQueryDialog.h>
hgs
parents:
diff changeset
    24
#include <AknsItemID.h>
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
class CAknSDData;
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
/**
hgs
parents:
diff changeset
    29
* CAknGlobalConfirmationQuery
hgs
parents:
diff changeset
    30
*   Uses notification framework to show a global confirmation query.
hgs
parents:
diff changeset
    31
*   Usage:
hgs
parents:
diff changeset
    32
*       Create an active object, start it and pass its TRequestStatus as a
hgs
parents:
diff changeset
    33
*       parameter to ShowConfirmationQueryL. After the user presses a softkey,
hgs
parents:
diff changeset
    34
*       the request status will hold the id of the pressed softkey. E.g. If 
hgs
parents:
diff changeset
    35
*       the user selected Cancel, the request status will hold -1.
hgs
parents:
diff changeset
    36
*
hgs
parents:
diff changeset
    37
*   Example 1. Show the global confirmation query:
hgs
parents:
diff changeset
    38
*        if ( iConfObserver )
hgs
parents:
diff changeset
    39
*            {
hgs
parents:
diff changeset
    40
*            iConfObserver->Cancel();
hgs
parents:
diff changeset
    41
*            delete iConfObserver;
hgs
parents:
diff changeset
    42
*            }
hgs
parents:
diff changeset
    43
*        iConfObserver = new(ELeave) CGlobalConfirmationObserver(iEikonEnv);
hgs
parents:
diff changeset
    44
*        iConfObserver->Start();
hgs
parents:
diff changeset
    45
*        iGlobalConfirmationQuery->ShowMsgQueryL(
hgs
parents:
diff changeset
    46
*            iConfObserver->iStatus, 
hgs
parents:
diff changeset
    47
*            iPrompt, 
hgs
parents:
diff changeset
    48
*            R_AVKON_SOFTKEYS_OK_CANCEL,
hgs
parents:
diff changeset
    49
*            R_QUERY_NOTE_ANIMATION);
hgs
parents:
diff changeset
    50
*
hgs
parents:
diff changeset
    51
*
hgs
parents:
diff changeset
    52
*   Example 2. Get and handle the result in active object.
hgs
parents:
diff changeset
    53
*        void CMyActiveObject::RunL() 
hgs
parents:
diff changeset
    54
*            {
hgs
parents:
diff changeset
    55
*            TBuf<120> msg = _L("Received: ");
hgs
parents:
diff changeset
    56
*            msg.AppendNum( iStatus.Int() );
hgs
parents:
diff changeset
    57
*            iEnv->InfoMsg(msg);
hgs
parents:
diff changeset
    58
*            Cancel();
hgs
parents:
diff changeset
    59
*            }
hgs
parents:
diff changeset
    60
*
hgs
parents:
diff changeset
    61
*   Example 3. Update the query (softkeys)
hgs
parents:
diff changeset
    62
*       iGlobalConfirmationQuery->UpdateConfirmationQuery( R_AVKON_SOFTKEYS_BACK );
hgs
parents:
diff changeset
    63
*
hgs
parents:
diff changeset
    64
*   Example 4. Cancel the query
hgs
parents:
diff changeset
    65
*       iGlobalConfirmationQuery->CancelConfirmationQuery();
hgs
parents:
diff changeset
    66
*
hgs
parents:
diff changeset
    67
* NOTE !!! All descriptors passed as parameters need to be class members, i.e.
hgs
parents:
diff changeset
    68
*           they cannot be local variables of a method. That is because
hgs
parents:
diff changeset
    69
*           they need to exist when server gets the message.
hgs
parents:
diff changeset
    70
*/
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
NONSHARABLE_CLASS(CAknGlobalConfirmationQuery) : public CBase
hgs
parents:
diff changeset
    73
    {
hgs
parents:
diff changeset
    74
    public:
hgs
parents:
diff changeset
    75
        IMPORT_C static CAknGlobalConfirmationQuery* NewL();
hgs
parents:
diff changeset
    76
        IMPORT_C static CAknGlobalConfirmationQuery* NewLC();
hgs
parents:
diff changeset
    77
        IMPORT_C ~CAknGlobalConfirmationQuery();
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
        /**
hgs
parents:
diff changeset
    80
        * Shows global confirmation query synchronously.
hgs
parents:
diff changeset
    81
        *
hgs
parents:
diff changeset
    82
        * @param    aStatus             TRequestStatus which will be completed when user
hgs
parents:
diff changeset
    83
        *                               selects one item from the list query.
hgs
parents:
diff changeset
    84
        * @param    aPrompt             Prompt text.
hgs
parents:
diff changeset
    85
        * @param    aSoftkeys           Softkey resource. 
hgs
parents:
diff changeset
    86
        * @param    aAnimation          Animation resource.
hgs
parents:
diff changeset
    87
        * @param    aTone               Tone id.
hgs
parents:
diff changeset
    88
        * @param    aDismissWithAllKeys If set ETrue the query gets dismissed with all
hgs
parents:
diff changeset
    89
        *                               keypresses.
hgs
parents:
diff changeset
    90
        */
hgs
parents:
diff changeset
    91
        IMPORT_C void ShowConfirmationQueryL( 
hgs
parents:
diff changeset
    92
            TRequestStatus& aStatus,
hgs
parents:
diff changeset
    93
            const TDesC& aPrompt,
hgs
parents:
diff changeset
    94
            TInt aSoftkeys = 0,
hgs
parents:
diff changeset
    95
            TInt aAnimation = 0,
hgs
parents:
diff changeset
    96
            const TDesC& aImageFile = KNullDesC,
hgs
parents:
diff changeset
    97
            TInt aImageId = 0,
hgs
parents:
diff changeset
    98
            TInt aImageMaskId = 0,
hgs
parents:
diff changeset
    99
            CAknQueryDialog::TTone aTone = CAknQueryDialog::ENoTone,
hgs
parents:
diff changeset
   100
            TBool aDismissWithAllKeys = EFalse );
hgs
parents:
diff changeset
   101
        /**
hgs
parents:
diff changeset
   102
        * Update the softkeys of the confirmation query.
hgs
parents:
diff changeset
   103
        *
hgs
parents:
diff changeset
   104
        * @param    aSoftkeys  New resource for softkeys.
hgs
parents:
diff changeset
   105
        */
hgs
parents:
diff changeset
   106
        IMPORT_C void UpdateConfirmationQuery( TInt aSoftkeys );
hgs
parents:
diff changeset
   107
hgs
parents:
diff changeset
   108
        /**
hgs
parents:
diff changeset
   109
        * Cancel the confirmation query.
hgs
parents:
diff changeset
   110
        */
hgs
parents:
diff changeset
   111
        IMPORT_C void CancelConfirmationQuery();
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
        /**
hgs
parents:
diff changeset
   114
        * Set skin id for query image. Must be called before ShowConfirmationQueryL in order to 
hgs
parents:
diff changeset
   115
        * have effect. No need to use this method if image from avkon.mbm is used.
hgs
parents:
diff changeset
   116
        *
hgs
parents:
diff changeset
   117
        * @aparam aId   SkinId for image in query. If image is not found from the active skin, 
hgs
parents:
diff changeset
   118
        *               image definitions used in ShowConfirmationQueryL are used instead.
hgs
parents:
diff changeset
   119
        * @since S60 2.6
hgs
parents:
diff changeset
   120
        */      
hgs
parents:
diff changeset
   121
        IMPORT_C void SetImageSkinId( TAknsItemID& aId );
hgs
parents:
diff changeset
   122
        
hgs
parents:
diff changeset
   123
        /**
hgs
parents:
diff changeset
   124
        * Sets additional information to be sent to secondary display. Takes ownership of object.
hgs
parents:
diff changeset
   125
        * Must be called before sending data to notifier to have effect.
hgs
parents:
diff changeset
   126
        *
hgs
parents:
diff changeset
   127
        * @param aData Data to be sent to cover UI.
hgs
parents:
diff changeset
   128
        * @since S60 3.1        
hgs
parents:
diff changeset
   129
        * @internal to S60        
hgs
parents:
diff changeset
   130
        */
hgs
parents:
diff changeset
   131
        IMPORT_C void SetSecondaryDisplayData(CAknSDData* aData);
hgs
parents:
diff changeset
   132
        
hgs
parents:
diff changeset
   133
    private:
hgs
parents:
diff changeset
   134
        CAknGlobalConfirmationQuery();
hgs
parents:
diff changeset
   135
        void ConstructL(); 
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
    private:
hgs
parents:
diff changeset
   138
        TAknGlobalQueryCmd iCmd;
hgs
parents:
diff changeset
   139
        TInt iSoftkeys;
hgs
parents:
diff changeset
   140
        TInt iAnimation;
hgs
parents:
diff changeset
   141
        CAknQueryDialog::TTone iTone;
hgs
parents:
diff changeset
   142
        RNotifier iNotify;
hgs
parents:
diff changeset
   143
        CBufFlat *iBuffer;
hgs
parents:
diff changeset
   144
        TPtrC8 iBufferPtr;
hgs
parents:
diff changeset
   145
        TInt   iSkinsMajorId;
hgs
parents:
diff changeset
   146
        TInt   iSkinsMinorId;
hgs
parents:
diff changeset
   147
        CAknSDData* iAknSDData;
hgs
parents:
diff changeset
   148
        TBuf8<1> iResultBuf; // Not really used, but needed to prevent buffer handling errors.
hgs
parents:
diff changeset
   149
    };
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
#endif // __AKNGLOBALCONFIRMATIONQUERY_H__