mpxplugins/viewplugins/inc/mpxwaitnotedialog.h
changeset 0 ff3acec5bc43
child 17 c8156a91d13c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpxplugins/viewplugins/inc/mpxwaitnotedialog.h	Thu Dec 17 08:45:05 2009 +0200
@@ -0,0 +1,219 @@
+/*
+* 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:  Base class for all wait notes
+*
+*/
+
+
+#ifndef C_MPXWAITNOTEDIALOG_H
+#define C_MPXWAITNOTEDIALOG_H
+
+#include <AknWaitDialog.h>
+#include <AknProgressDialog.h>
+#include <mpxcollectionobserver.h>
+#include "mpxwaitnoteobserver.h"
+#include "mpxwaitnotedefs.h"
+
+// FOWARD DECLARATIONS
+class MMPXCollectionUtility;
+class CAknQueryDialog;
+class CAknNoteDialog;
+/*
+* Simple structure to hold icon info
+*/
+class TNoteIconInfo
+    {
+public:
+    TInt bitmapId;
+    TInt maskId;
+    TFileName bmpfile;
+    
+    inline TNoteIconInfo( TInt b, TInt m, TFileName f ) 
+        {
+        bitmapId=b; 
+        maskId=m; 
+        bmpfile=f;
+        }
+    };
+ 
+/**
+ *  MPXWaitNoteDialog
+ *
+ *  Base class for all wait dialogs in MPX
+ *
+ *  @lib mpxwaitnotedialog.lib
+ *  @since S60 3.1
+ */
+class CMPXWaitNoteDialog : public CBase,
+                           public MMPXCollectionObserver,
+                           public MProgressDialogCallback
+    {
+
+public:
+
+    /**
+    * Virtual destructor
+    */
+    virtual ~CMPXWaitNoteDialog();
+
+public: // New Functions
+    
+    /**
+    * Execute the dialog
+    */
+    virtual void ExecuteLD();
+
+    /**
+    * Cancel the wait note
+    */
+    virtual void CancelNoteL();
+    
+    /**
+    * Check the dialog destruction status
+    */
+    virtual TBool ReadyToDestroy();
+    
+protected: // New functions
+    
+    /**
+    * Initialize the note before executing
+    * The inherited class should set CBA, text, icons etc here
+    */
+    virtual void PreNoteDisplayHandleL() = 0;
+    
+    /**
+    * Post note dissmissal handling
+    * @arg aButtonId, button ID that the note was cancelled with
+    */
+    virtual void PostNoteHandleL( TInt aButtonId );
+    
+    /**
+    * Set the CBA for the waitnote
+    * @arg aCBAId, button group ID
+    */
+    void SetCBAL( TInt aCBAId );
+    
+    /**
+    * Set the Text in the wait note
+    * @arg aText, text to display
+    */
+    void SetTextL( const TDesC& aText );
+    
+    /**
+    * Set the icon in the wait note 
+    */
+    void SetIconL( TNoteIconInfo& aIconInfo );
+    
+protected: // From Base classes
+
+    /**
+    * From MMPXCollectionObserver
+    */
+    void HandleCollectionMediaL(const CMPXMedia& aMedia, 
+                                TInt aError);
+    
+    /**
+    * From MMPXCollectionObserver
+    */
+    void HandleCollectionMessage(
+        CMPXMessage* aMessage, TInt aError );
+    
+    /**
+    * From MMPXCollectionObserver
+    */
+    void HandleOpenL(const CMPXMedia& aEntries,
+                             TInt aIndex,TBool aComplete,TInt aError);
+    
+    /**
+    * From MMPXCollectionObserver
+    */                       
+    void HandleOpenL(const CMPXCollectionPlaylist& aPlaylist,TInt aError);                                    
+
+    /**
+    * Callback method when a dialog is dismissed.
+    * @param aButtonId Button ID.
+    */
+    void DialogDismissedL( TInt aButtonId );
+    
+    /**
+    * Display a confirmation dialog
+    * @param aLabel, label for the popup note
+    */
+    void DisplayConfirmationNoteL( const TDesC& aLabel );
+    
+    /**
+    * Display an information dialog
+    * @param aLabel, label for the popup note
+    */
+    void DisplayInformationNoteL( const TDesC& aLabel );
+    
+    /**
+    * Display a query dialog
+    * @param aLabel, label for the query
+    * @return button that was selected
+    */
+    TInt DisplayQueryNoteL( const TDesC& aQuery );
+    
+    /**
+    * Dismiss the current query note, if any
+    */
+    void DismissQueryNoteL();
+    
+    /**
+    * Display a generic CAknNoteDialog
+    * @param aDlgRsc, dialog resource
+    * @param aLabel, text 
+    */
+    void DisplayNoteDialogL( TInt aDlgRsc, const TDesC& aLabel, 
+                             CAknNoteDialog::TTone aTone = CAknNoteDialog::ENoTone );
+// Cover UI start
+//#ifdef __COVER_DISPLAY
+    /**
+    * Display a generic CAknNoteDialog
+    * @param aDlgRsc, dialog resource
+    * @param aLabel, text 
+    */
+    void DisplayNoteDialogL( TInt aDlgRsc, TInt aTextRsc, 
+                             TInt aItemsAdded, const TDesC& aLabel, 
+                             CAknNoteDialog::TTone aTone = CAknNoteDialog::ENoTone );
+//#endif // __COVER_DISPLAY    
+// Cover UI end
+
+protected:
+
+    /**
+    * Constructor
+    */
+    CMPXWaitNoteDialog( MMPXWaitNoteObserver* aObs, 
+                        TWaitNoteType aType, 
+                        TBool aVisibilityDelayOff = ETrue );
+
+    /**
+    * Two-phased constructor
+    */
+    void BaseConstructL();
+
+protected: // data
+    MMPXCollectionUtility* iCollection;
+    
+    MMPXWaitNoteObserver*  iObserver;
+    TWaitNoteType          iWaitNoteType;
+    TBool                  iVisDelayOff;    // VisibilityDelayOff
+    CAknWaitDialog*        iWaitDialog;
+    TInt                   iResourceOffset;
+    CAknQueryDialog*       iQueryDialog; // Not Owned
+    CAknNoteDialog* 	   iNoteDialog;  // Not Owned
+    };
+
+#endif // C_MPXWAITNOTEDIALOG_H