/*
* Copyright (c) 2006 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: Helper class for wait notes
*
*/
#ifndef CCAWAITNOTE_H
#define CCAWAITNOTE_H
// INCLUDES
#include <aknwaitdialog.h>
// FORWARD DECLARATIONS
// CLASS DECLARATION
// Observer class to notice dismissing note by cancel.
class MCAWaitNoteObserver
{
public: // Interface methods
/**
* Wait note is canceled.
*/
virtual void NoteCanceled( TInt aButtonId ) = 0;
};
/**
* Helper class for wait notes
*
* @lib chat.exe
* @since
*/
class CCAWaitNote : public CBase, public MProgressDialogCallback
{
public: // Constructors and destructor
/**
* Shows waitnote and pushes the item to cleanupstack
*
* @param aText Text to be shown in note.
* @param aShowImmediately If ETrue waitnote is shown immediately
* (not after 1 sec delay)
* @param aCanBeCanceledByUser Do we show wait note with cancel soft key or not
*/
IMPORT_C static CCAWaitNote* ShowWaitNoteLC( const TDesC& aText,
TBool aShowImmediately = EFalse,
TBool aCanBeCanceledByUser = EFalse,
MCAWaitNoteObserver* aObserver = NULL );
/**
* Shows waitnote and pushes the item to cleanupstack
*
* @param aTextResource Resource id of text to be shown in note.
* @param aShowImmediately If ETrue waitnote is shown immediately
* (not after 1 sec delay)
* @param aCanBeCanceledByUser Do we show wait note with cancel soft key or not
*/
IMPORT_C static CCAWaitNote* ShowWaitNoteLC( TInt aTextResource,
TBool aShowImmediately = EFalse,
TBool aCanBeCanceledByUser = EFalse,
MCAWaitNoteObserver* aObserver = NULL );
/**
* Shows waitnote, does not leave anything to cleanupstack.
*
* @param aTextResource Resource id of text to be shown in note.
* @param aShowImmediately If ETrue waitnote is shown immediately
* (not after 1 sec delay)
* @param aCanBeCanceledByUser Do we show wait note with cancel soft key or not
*/
IMPORT_C static CCAWaitNote* ShowWaitNoteL( TInt aTextResource,
TBool aShowImmediately = EFalse,
TBool aCanBeCanceledByUser = EFalse,
MCAWaitNoteObserver* aObserver = NULL );
/**
* Destructor.
*/
virtual ~CCAWaitNote();
protected: // From MProgressDialogCallback
/**
* From MProgressDialogCallback Get's called when a dialog is dismissed
* @param aButtonId Button that was used to dismiss the dialog
*/
IMPORT_C void DialogDismissedL( TInt aButtonId );
public: // New functions
/**
* Dismisses this waitnote
*/
IMPORT_C void DismissDialog();
private:
/**
* C++ default constructor.
*/
CCAWaitNote();
/**
* By default Symbian 2nd phase constructor is private.
*/
void ConstructL( const TDesC& aText,
TBool aShowImmediately,
TBool aCanBeCanceledByUser,
MCAWaitNoteObserver* aObserver );
public: // New methods
/**
* Set wait note observer. NULL will unset this one.
*/
IMPORT_C void SetObserver( MCAWaitNoteObserver* aObserver );
private: // Data
// Doesn't own (destroys itself)
CAknWaitDialog* iWaitDialog;
/// Wait note observer. This will be notified when wait note is dismissed.
MCAWaitNoteObserver* iObserver;
};
#endif // CCAWAITNOTE_H
// End of File