cellular/psetnotesui/inc/psuinotemaster.h
author hgs
Wed, 21 Jul 2010 18:26:52 +0300
changeset 33 8d5d7fcf9b59
permissions -rw-r--r--
201027
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
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:  
hgs
parents:
diff changeset
    15
*   CPsuiNoteMaster class is responsible for showing notes. It has also capa-
hgs
parents:
diff changeset
    16
*   bilities to show bsc list that is common for different features.
hgs
parents:
diff changeset
    17
*   Pending supplementary service request can be cancelled by the user.
hgs
parents:
diff changeset
    18
*
hgs
parents:
diff changeset
    19
*/
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#ifndef CPSUINOTEMASTER_H
hgs
parents:
diff changeset
    23
#define CPSUINOTEMASTER_H
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
// INCLUDES
hgs
parents:
diff changeset
    26
#include <aknnotewrappers.h>
hgs
parents:
diff changeset
    27
#include <bldvariant.hrh>
hgs
parents:
diff changeset
    28
#include "psuiconstants.h" 
hgs
parents:
diff changeset
    29
#include "psuiinternalconstants.h" 
hgs
parents:
diff changeset
    30
#include "psetcalldiverting.h" 
hgs
parents:
diff changeset
    31
 
hgs
parents:
diff changeset
    32
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    33
class MPsetCallWaiting;
hgs
parents:
diff changeset
    34
class MPsetCallBarring;
hgs
parents:
diff changeset
    35
class MPsetCli;
hgs
parents:
diff changeset
    36
class CAknWaitDialog;
hgs
parents:
diff changeset
    37
class CAknGlobalNote;
hgs
parents:
diff changeset
    38
class CAknPopupList;
hgs
parents:
diff changeset
    39
class CAknSinglePopupMenuStyleListBox;
hgs
parents:
diff changeset
    40
class CServiceRequest;
hgs
parents:
diff changeset
    41
class CPsuiReqObserver;
hgs
parents:
diff changeset
    42
class CPsuiQueryDialog;
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
// CLASS DECLARATION
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
/**
hgs
parents:
diff changeset
    47
*  CPsuiNoteMaster class is responsible for showing notes. It has also capa-
hgs
parents:
diff changeset
    48
*  bilities to show bsc list that is common for different features.
hgs
parents:
diff changeset
    49
*  Pending supplementary service request can be cancelled by the user.
hgs
parents:
diff changeset
    50
*  @lib psui.lib
hgs
parents:
diff changeset
    51
*  @since 1.0
hgs
parents:
diff changeset
    52
*/
hgs
parents:
diff changeset
    53
class CPsuiNoteMaster : public CBase
hgs
parents:
diff changeset
    54
    {
hgs
parents:
diff changeset
    55
    public: // Constructors and destructor
hgs
parents:
diff changeset
    56
                
hgs
parents:
diff changeset
    57
        /**
hgs
parents:
diff changeset
    58
        * Symbian OS two-phased constructor.
hgs
parents:
diff changeset
    59
        * 
hgs
parents:
diff changeset
    60
        * @return Returns CPsuiNoteMaster-pointer.
hgs
parents:
diff changeset
    61
        */
hgs
parents:
diff changeset
    62
        static CPsuiNoteMaster* NewL();
hgs
parents:
diff changeset
    63
        
hgs
parents:
diff changeset
    64
        /**
hgs
parents:
diff changeset
    65
        * Destructor 
hgs
parents:
diff changeset
    66
        */
hgs
parents:
diff changeset
    67
        ~CPsuiNoteMaster();
hgs
parents:
diff changeset
    68
    
hgs
parents:
diff changeset
    69
    private:
hgs
parents:
diff changeset
    70
        /**
hgs
parents:
diff changeset
    71
        * Symbian 2nd phase constructor.
hgs
parents:
diff changeset
    72
        */
hgs
parents:
diff changeset
    73
        void ConstructL();
hgs
parents:
diff changeset
    74
    
hgs
parents:
diff changeset
    75
    
hgs
parents:
diff changeset
    76
    public: //new
hgs
parents:
diff changeset
    77
        
hgs
parents:
diff changeset
    78
        /**
hgs
parents:
diff changeset
    79
        * Sets the connection to engine. 
hgs
parents:
diff changeset
    80
        * This is needed to provide user the possibility to cancel
hgs
parents:
diff changeset
    81
        * pending requests. All the pointers are set with same
hgs
parents:
diff changeset
    82
        * command, if in the future the amount of parameters comes
hgs
parents:
diff changeset
    83
        * too large, redesigning might be worth doing. 
hgs
parents:
diff changeset
    84
        *
hgs
parents:
diff changeset
    85
        * @param aWaitingEngine Reference to Phone Settings' object
hgs
parents:
diff changeset
    86
        * @param aBarringEngine Reference to Phone Settings' object
hgs
parents:
diff changeset
    87
        * @param aDivertEngine Reference to Phone Settings' object
hgs
parents:
diff changeset
    88
        * @param aCliEngine Reference to Phone Settings' object
hgs
parents:
diff changeset
    89
        */
hgs
parents:
diff changeset
    90
        void SetEngineContacts( MPsetCallWaiting* aWaitingEngine,
hgs
parents:
diff changeset
    91
            MPsetCallBarring* aBarringEngine, 
hgs
parents:
diff changeset
    92
            MPsetCallDiverting* aDivertEngine,
hgs
parents:
diff changeset
    93
            MPsetCli* aCliEngine);
hgs
parents:
diff changeset
    94
        
hgs
parents:
diff changeset
    95
        /**
hgs
parents:
diff changeset
    96
        * Shows the requested note. 
hgs
parents:
diff changeset
    97
        *
hgs
parents:
diff changeset
    98
        * @param aType Type of note to be shown
hgs
parents:
diff changeset
    99
        *    Error, confirmation, warning and waiting notes are supported.
hgs
parents:
diff changeset
   100
        * @param aResourceID Content text's resource ID for the note
hgs
parents:
diff changeset
   101
        */
hgs
parents:
diff changeset
   102
        void ShowNoteL( TPsuiNoteTypes aType, TInt aResourceID );
hgs
parents:
diff changeset
   103
        
hgs
parents:
diff changeset
   104
        /**
hgs
parents:
diff changeset
   105
        * Kills waiting note when the request is completed.
hgs
parents:
diff changeset
   106
        */
hgs
parents:
diff changeset
   107
        void KillStaticNoteL();
hgs
parents:
diff changeset
   108
        
hgs
parents:
diff changeset
   109
        /**    
hgs
parents:
diff changeset
   110
        * Shows the basic service list assosiated with supplementary service
hgs
parents:
diff changeset
   111
        * activation or status check.
hgs
parents:
diff changeset
   112
        * 
hgs
parents:
diff changeset
   113
        * @param aResourceHeading Heading for the list
hgs
parents:
diff changeset
   114
        * @param aBsc List of basic service groups
hgs
parents:
diff changeset
   115
        */
hgs
parents:
diff changeset
   116
        void ShowBscListL( 
hgs
parents:
diff changeset
   117
            TInt aResourceHeading, 
hgs
parents:
diff changeset
   118
            TUint8 aBsc[KPSUIMaxBscNumber] );
hgs
parents:
diff changeset
   119
        
hgs
parents:
diff changeset
   120
        /* 
hgs
parents:
diff changeset
   121
        * Same as above, except intended for CF basic service lists.
hgs
parents:
diff changeset
   122
        *
hgs
parents:
diff changeset
   123
        * @param aResourceHeading Heading for the list
hgs
parents:
diff changeset
   124
        * @param aList List of basic service groups and their statuses 
hgs
parents:
diff changeset
   125
        *              and settings
hgs
parents:
diff changeset
   126
        * @param aCFType Type of call forwarding
hgs
parents:
diff changeset
   127
        * @param aIndex Index of list item user has selected
hgs
parents:
diff changeset
   128
        * @return user action ID, i.e. what kind of list to show next
hgs
parents:
diff changeset
   129
        */
hgs
parents:
diff changeset
   130
        /*****************************************************
hgs
parents:
diff changeset
   131
        *    Series 60 Customer / ETel
hgs
parents:
diff changeset
   132
        *    Series 60  ETel API
hgs
parents:
diff changeset
   133
        *****************************************************/ 
hgs
parents:
diff changeset
   134
        TCFType ShowBscCFListL( 
hgs
parents:
diff changeset
   135
            TInt aResourceHeading, 
hgs
parents:
diff changeset
   136
            CMobilePhoneCFList& aList, 
hgs
parents:
diff changeset
   137
            TCFType aCFType,
hgs
parents:
diff changeset
   138
            TInt& aIndex );
hgs
parents:
diff changeset
   139
        
hgs
parents:
diff changeset
   140
        /**
hgs
parents:
diff changeset
   141
        * Shows detailed info about the selected basic service group.
hgs
parents:
diff changeset
   142
        *
hgs
parents:
diff changeset
   143
        *   @param  aCFType Type of Call Forwarding, defines softkeys
hgs
parents:
diff changeset
   144
        *   @param  aSetting List of basic service groups and their statuses
hgs
parents:
diff changeset
   145
        *                    and settings
hgs
parents:
diff changeset
   146
        */
hgs
parents:
diff changeset
   147
        /*****************************************************
hgs
parents:
diff changeset
   148
        *    Series 60 Customer / ETel
hgs
parents:
diff changeset
   149
        *    Series 60  ETel API
hgs
parents:
diff changeset
   150
        *****************************************************/ 
hgs
parents:
diff changeset
   151
        void ShowCfInfoL( 
hgs
parents:
diff changeset
   152
            TCFType& aCFType,
hgs
parents:
diff changeset
   153
            const RMobilePhone::TMobilePhoneCFInfoEntryV1& aSetting );
hgs
parents:
diff changeset
   154
        
hgs
parents:
diff changeset
   155
        /**
hgs
parents:
diff changeset
   156
        * Shows request cancelled note.
hgs
parents:
diff changeset
   157
        */
hgs
parents:
diff changeset
   158
        void ShowCancelRequestNoteL();
hgs
parents:
diff changeset
   159
        
hgs
parents:
diff changeset
   160
        /*
hgs
parents:
diff changeset
   161
        * Returns correct resource ID based on error code.
hgs
parents:
diff changeset
   162
        * 
hgs
parents:
diff changeset
   163
        *   @param aErrorCode Error code for which the resource ID is needed
hgs
parents:
diff changeset
   164
        *   @return Resource ID for the string text in the error note
hgs
parents:
diff changeset
   165
        */
hgs
parents:
diff changeset
   166
        TInt SetErrorNoteResourceID ( const TInt aErrorCode );
hgs
parents:
diff changeset
   167
                    
hgs
parents:
diff changeset
   168
        /**
hgs
parents:
diff changeset
   169
        * Called when service request
hgs
parents:
diff changeset
   170
        * is cancelled by the user.
hgs
parents:
diff changeset
   171
        */
hgs
parents:
diff changeset
   172
        void RequestNoteCancelledL();
hgs
parents:
diff changeset
   173
        
hgs
parents:
diff changeset
   174
    protected:
hgs
parents:
diff changeset
   175
    
hgs
parents:
diff changeset
   176
    
hgs
parents:
diff changeset
   177
    private: //new
hgs
parents:
diff changeset
   178
        
hgs
parents:
diff changeset
   179
        void AppendCFNumber( TDes& aString, const TDesC& aNumber);
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
        void CreateListBoxL( 
hgs
parents:
diff changeset
   182
            TCFType aCFType, CAknSinglePopupMenuStyleListBox* aList );
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
        void KillRequestL();
hgs
parents:
diff changeset
   185
hgs
parents:
diff changeset
   186
        void SetTitleL( const TInt& aResourceHeading );        
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
        HBufC* SetBsGroupLC( TUint8 aBscCode );                       
hgs
parents:
diff changeset
   189
hgs
parents:
diff changeset
   190
        TBasicServiceGroups ChangeToGSM( const TInt& aBsc );
hgs
parents:
diff changeset
   191
        
hgs
parents:
diff changeset
   192
    private: // Member variables
hgs
parents:
diff changeset
   193
        
hgs
parents:
diff changeset
   194
        // General Service request
hgs
parents:
diff changeset
   195
        CServiceRequest*        iServiceRequest;
hgs
parents:
diff changeset
   196
        // Call Barrings engine
hgs
parents:
diff changeset
   197
        MPsetCallBarring*       iBarringEngine; 
hgs
parents:
diff changeset
   198
        // Reference to Call Waiting engine
hgs
parents:
diff changeset
   199
        MPsetCallWaiting*       iWaitingEngine;
hgs
parents:
diff changeset
   200
        // Reference to Call Diverts engine
hgs
parents:
diff changeset
   201
        MPsetCallDiverting*     iDivertEngine;
hgs
parents:
diff changeset
   202
        // Reference to Calling Identity engine
hgs
parents:
diff changeset
   203
        MPsetCli*               iCliEngine;
hgs
parents:
diff changeset
   204
        // There is an active request
hgs
parents:
diff changeset
   205
        TBool                   iRequesting;
hgs
parents:
diff changeset
   206
        // Basic Service Groups list
hgs
parents:
diff changeset
   207
        CAknPopupList*          iPopupList;
hgs
parents:
diff changeset
   208
        // Request note cancel observer
hgs
parents:
diff changeset
   209
        CPsuiReqObserver*       iReqObserver;
hgs
parents:
diff changeset
   210
        // Diverts additional information query
hgs
parents:
diff changeset
   211
        CPsuiQueryDialog*        iQuery;
hgs
parents:
diff changeset
   212
hgs
parents:
diff changeset
   213
    };       
hgs
parents:
diff changeset
   214
#endif    //CPSUINOTEMASTER_H