diff -r 000000000000 -r ff3b6d0fd310 cellular/ServiceRequest/inc/CServiceRequest.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cellular/ServiceRequest/inc/CServiceRequest.h Tue Feb 02 01:11:09 2010 +0200 @@ -0,0 +1,207 @@ +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Interface for service request +* +*/ + + + +#ifndef CSERVICEREQUEST_H +#define CSERVICEREQUEST_H + +// INCLUDES +#include +#include +#include + +// FORWARD DECLARATIONS +class MServiceRequestObserver; +class CAknWaitDialog; +class RConeResourceLoader; + +// CLASS DECLARATION + +/** +* Interface for service request +* +* -Create instance by calling the static NewL method. User must implement the +* observer interface MServiceRequestObserver. Cancelling the wait note is +* informed through this API. +* +* iServiceRequest = CServiceRequest::NewL( *this ); +* +* +* -The instance can be deleted at any time and all notes are dismissed. +* +* delete iServiceRequest; +* +* +* -The wait note can be launched by calling StartL function: +* +* iServiceRequest->StartL(); +* +* By default the text "Requesting" is used, but the user may give the text +* as a parameter: +* +* iServiceRequest->StartL( _L("Please wait...") ); +* +* Call to the StartL function will delete own notes visible at the call time. +* +* +* -Wait note can deleteted by calling the ShowCompletionNoteL function. This removes +* all own notes. If the user wants to show a completion note for the request, +* the parameter aShowNote must be set to ETrue. Creation of a new note may leave. +* By deafult the Supplementary Service UI specification texts and note types are +* used. The user may override some parameters, like note type and text. By default, +* the error code is converted into note, e.g.: +* KErrNone, Global confirmation note "Done" +* KErrCancel, Local information note "Request not confirmed" +* KErrAccessDenied, Global information note "Not allowed" +* and so on. +* +* +* +* @lib ServiceRequest.lib +* @since 1.2 +*/ +class CServiceRequest : public CActive, public MProgressDialogCallback + { + public: // Constructors and destructor + + // Used note types + enum TSerqNoteType + { + ESerqDefault, + ESerqLocalInformationNote, + ESerqLocalConfirmationNote, + ESerqGlobalInformationNote, + ESerqGlobalErrorNote, + ESerqGlobalConfirmationNote + }; + + + /** + * Two-phased constructor. + * @param aObserver Oberver to inform cancelling. + * @return New CServiceRequest object. + */ + IMPORT_C static CServiceRequest* NewL( MServiceRequestObserver& aObserver ); + + /** + * Destructor. + */ + IMPORT_C virtual ~CServiceRequest(); + + public: // New functions + + /** + * Starts a wait note. + * @since 1.2 + * @param aText "Requesting" text is used, if this descriptor's + * lenght is zero. + */ + IMPORT_C void StartL( const TDesC& aText = KNullDesC() ); + + /** + * Removes wait note and shows new note if wanted. + * If aShowNote = EFalse, this function won't leave! + * Removal of the wait note is guaranteed in leave cases also. + * @since 1.2 + * @param aShowNote ETrue: a note is shown + * EFalse: no additional note is shown + * @param aError Used in default notes. The default note type and used + * text is decided based on this value. These vales are + * overridden if note type or used text is geven as a + * parameter. + * @param aNoteType Type of the note. If EDefault is used, then the + * aError parameter is checked. + * @param aText Given text. If lenght is zero, aError parameter is checked. + */ + IMPORT_C void ShowCompletionNoteL( + TBool aShowNote = ETrue, + TInt aError = KErrNone, + TSerqNoteType aNoteType = ESerqDefault, + const TDesC& aText = KNullDesC() ); + + protected: // From baseclasses + + // From MProgressDialogCallback + void DialogDismissedL( TInt aButtonId ); + + // From CActive + void RunL(); + + // From CActive + void DoCancel(); + + /** + * From CActive + * @param aError + * @return TInt + */ + TInt RunError(TInt aError); + + private: + + /** + * C++ default constructor. + */ + CServiceRequest( MServiceRequestObserver& aObserver ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * Zeroes data members + */ + void Reset(); + + /** + * Gets default note implementation for give error value. + */ + static void GetDefaultNote( + const TInt aError , + TSerqNoteType& aNoteType , + TInt& aResourceId ); + + /** + * Launches given note. Text is fetched from iNoteText. + */ + void LaunchNoteL( const TSerqNoteType aNoteType); + + private: // Data + // Service request observer + MServiceRequestObserver& iObserver; + + // Requesting wait note: + CAknWaitDialog* iRequestingNote; + + // Resource loader + RConeResourceLoader* iResourceLoader; + + // Text for note + HBufC* iNoteText; + + // Enables instance deletion in call back. + TBool* iDestroyed; + + // Reserved pointer for future extension + TAny* iReserved; + }; + +#endif // CSERVICEREQUEST_H + +// End of File