--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/IMPSConnectionUI/UISrc/CCnUiWaitNoteContainer.cpp Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,109 @@
+/*
+* Copyright (c) 2004 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: Wait note container.
+*
+*/
+
+// INCLUDE FILES
+#include <e32std.h>
+#include <aknwaitdialog.h>
+#include "MCnUiWaitNoteObserver.h"
+#include "CCnUiWaitNoteContainer.h"
+
+
+// CONSTANTS
+// ================= MEMBER FUNCTIONS =======================
+// Two-phased constructor.
+CCnUiWaitNoteContainer* CCnUiWaitNoteContainer::NewL( TInt aNoteStructureResourceId,
+ const TDesC& aLabelText,
+ MCnUiWaitNoteObserver* aObserver )
+ {
+ CCnUiWaitNoteContainer* self = new ( ELeave ) CCnUiWaitNoteContainer( aObserver );
+ CleanupStack::PushL( self );
+ self->ConstructL( aLabelText, aNoteStructureResourceId );
+ CleanupStack::Pop( self ); //self
+ return self;
+ }
+
+
+// Destructor
+CCnUiWaitNoteContainer::~CCnUiWaitNoteContainer()
+ {
+ //NULL observer before dismissing the wait note
+ //==>protects the observer from getting the wait note
+ //cancel events caused by the note deletion
+ iObserver = NULL;
+
+ if ( iWaitNote )
+ {
+ //wait note showing, try to dismiss it
+ TInt ignore;
+ TRAP( ignore, iWaitNote->ProcessFinishedL() );
+
+ //if the ProcessFinishedL() leaves,
+ //force the dialog away with delete
+ delete iWaitNote;
+ }
+ }
+
+// C++ default constructor can NOT contain any code, that
+// might leave.
+//
+CCnUiWaitNoteContainer::CCnUiWaitNoteContainer( MCnUiWaitNoteObserver* aObserver )
+ : iObserver( aObserver )
+ {
+ }
+
+// Symbian OS default constructor can leave.
+void CCnUiWaitNoteContainer::ConstructL( const TDesC& aLabelText, TInt aNoteStructureResourceId )
+ {
+ iWaitNote = new ( ELeave ) CAknWaitDialog( reinterpret_cast< CEikDialog** >
+ ( &iWaitNote ) );
+
+ // prepare LC:s push to CleanUpStack isn't a problem in case of leave, cos
+ // CAknWaitDialog sets self pointer to NULL in its destructor
+ iWaitNote->PrepareLC( aNoteStructureResourceId );
+
+ iWaitNote->SetTextL( aLabelText );
+ iWaitNote->SetCallback( this );
+
+ //pops the dialog
+ iWaitNote->RunLD(); // CSI: 50 # This sets iWaitNote as NULL
+ }
+
+
+// -----------------------------------------------------------------------------
+// CCnUiWaitNoteContainer::PushLC()
+// -----------------------------------------------------------------------------
+//
+void CCnUiWaitNoteContainer::PushLC()
+ {
+ CleanupStack::PushL( this );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CCnUiWaitNoteContainer::DialogDismissedL()
+// from MProgressDialogCallback
+// -----------------------------------------------------------------------------
+//
+void CCnUiWaitNoteContainer::DialogDismissedL( TInt /*aButtonId*/ )
+ {
+ if ( iObserver )
+ {
+ iObserver->HandleWaitNoteCancel();
+ }
+ }
+
+// End of File