mobilemessaging/mmsui/mtminc/MmsMtmDeliveryPopup.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mobilemessaging/mmsui/mtminc/MmsMtmDeliveryPopup.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,160 @@
+/*
+* Copyright (c) 2005-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: MmsMtmDeliveryPopup  declaration
+*
+*/
+
+
+
+#if !defined(__MUIU_DELIVERY_POPUP_H__)
+#define __MUIU_DELIVERY_POPUP_H__
+
+
+//  INCLUDES
+#include <bamdesca.h>               //MDesCArray
+#include <aknPopup.h>               //CAknPopupList
+#include <aknlists.h>               //CAknSingleHeadingPopupMenuStyleListBox
+#include <ConeResLoader.h>
+#include <Muiumsginfo.h> // TMsgInfoMessageInfoData
+
+// DATA TYPES
+class CMsgDeliveryItem;
+
+
+/**
+* Class which displays a message info dialog for particular message types
+*/
+class CMsgInfoDeliveryStatusPopup : public CBase
+    {
+
+    public:
+
+        /**
+        * Two-phased constructor.
+        */  
+        static CMsgInfoDeliveryStatusPopup* NewL();
+
+        /**
+        * Destructor.
+        */ 
+        ~CMsgInfoDeliveryStatusPopup();
+
+        /**
+        * Show the message info dialog.
+        */
+        TInt ExecuteL();
+
+        /**
+        * Receives the data array from where to read data for the dialog.
+        */
+        void SetDataArray(CArrayPtrFlat< CMsgDeliveryItem >* aArray);
+
+    private:
+
+        /**
+        * 
+        */
+        CMsgInfoDeliveryStatusPopup();
+
+        /**
+        * Symbian OS constructor.
+        */
+        void ConstructL();
+
+        /**
+        * Reads data from the delivery item, parses it to a suitable form and
+        * adds it into a string given in aDest. Calculates the length of the items 
+        * data presented in one string.
+        * 
+        * @param aItem: Message item to be parsed.
+        * @param aDest: Destination string. Give it as NULL and method only returns the lenght.
+        */
+        TInt ParseStringL(CMsgDeliveryItem* aItem, TPtr* aDest);
+        
+        /**
+        * Reads data from the delivery item, parses it to a suitable form and
+        * adds it into iFailedText string.
+        * 
+        * @param aItem: Message item to be parsed.
+        */
+        void ParseFailedL(CMsgDeliveryItem* aItem);
+
+        /**
+        * Reads data from the delivery item, parses it to a suitable form and
+        * adds it into iDeliveredText string.
+        * 
+        * @param aItem: Message item to be parsed.
+        */
+        void ParseDeliveredL(CMsgDeliveryItem* aItem);
+
+        /**
+        * Reads data from the delivery item, parses it to a suitable form and
+        * adds it into iPendingText string.
+        * 
+        * @param aItem: Message item to be parsed.
+        */
+        void ParsePendingL(CMsgDeliveryItem* aItem);	
+
+        /**
+        * Loops through the delivery items in the data array and
+        * parses their data into the correct strings with a correct style
+        */
+        void ParseTextL();
+        
+        /**
+        * Adds localised "Delivered:", "Failed:" and "Pending" strings as labels into the text
+        * strings
+        */
+        void AddLabelsL(TInt aFailed, 
+                        TInt aPending, 
+                        TInt aDelivered, 
+                        TInt aRead, 
+                        TInt aUnavailable );
+
+        /**
+        * Calculates the length of the labels and adds the lengths in to the message length attributes
+        */
+        void CalculateLabelSizesL(   TInt aFailed, 
+                                    TInt aPending, 
+                                    TInt aDelivered, 
+                                    TInt aRead, 
+                                    TInt aUnavailable );
+
+        /**
+        * Checks whether message was sent today. Information used to determine
+        * on how to display the time / date in delivery status dialog
+        */
+        TBool MessageSentToday(const TDateTime& messageTime);
+
+    private:
+        HBufC* iFailedText;
+        HBufC* iPendingText;
+        HBufC* iDeliveredText;
+        HBufC* iReadText;
+        HBufC* iUnavailableText;
+        HBufC* iText;
+        
+        TInt iMessageSize;
+        TInt iFailedSize;
+        TInt iPendingSize;
+        TInt iDeliveredSize;
+        TInt iReadSize;
+        TInt iUnavailableSize;
+
+        CArrayPtrFlat< CMsgDeliveryItem >* iDataArray;	
+    };
+
+#endif  //__MUIU_MESSAGE_INFO_H__
+
+// End of file