--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/browserui/browser/BrowserAppInc/BrowserProgressIndicator.h Mon Mar 30 12:49:49 2009 +0300
@@ -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 the License "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 to put animation and progress indicator to contextPane.
+*
+*
+*/
+
+
+#ifndef BROWSERPROGRESSINDICATOR_H
+#define BROWSERPROGRESSINDICATOR_H
+
+// INCLUDES
+#include <E32BASE.H>
+
+// FORWARD DECLARATIONS
+//class CBrowserAnimation;
+class MApiProvider;
+
+// DATA TYPES
+
+// Progressbar data struct.
+struct TProgressData
+ {
+ TUint16 iId; // Id of the transaction
+ TUint32 iRecvdData; // Amount of received data
+ TUint32 iMaxData; // Max amount of data
+ TBool iComplete; // True if TransAct Id downloaded otherwise False.
+ };
+
+
+// CLASS DECLARATION
+/**
+* Encapsulates the animation feature of the browser.
+*
+* @lib Browser.app
+* @since Series60 1.2
+*/
+class CBrowserProgressIndicator : public CBase
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * @param aApiProvider Reference to API provider
+ * @return Pointer to instance of CBrowserAnimation
+ */
+ static CBrowserProgressIndicator* CBrowserProgressIndicator::NewL( MApiProvider& aApiProvider );
+ /**
+ * Constructor.
+ * @param aApiProvider Reference to API provider
+ */
+ CBrowserProgressIndicator( MApiProvider& aApiProvider );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CBrowserProgressIndicator();
+
+ public: // New functions
+
+ /**
+ * Starts animation and progress bar.
+ * @since Series60 1.2
+ * @param aBearerType
+ */
+ void StartL();
+
+ /**
+ * Stops animation and progress bar.
+ * @since Series60 1.2
+ */
+ void StopL();
+
+ /**
+ * Adds transaction id to array.
+ * @since Series60 1.2
+ * @param aId Id of the transaction
+ */
+ void AddTransActIdL( TUint16 aId );
+
+ /**
+ * Notify that new data has arrived to the loaders.
+ * @since Series60_version 2.5
+ * @return none
+ */
+ void NotifyProgress();
+
+ /**
+ * Saves maximum and received data with a transction id.
+ * @since Series60 1.2
+ * @param aId Id of the transaction
+ * @param aRecvdData Amount of data we have received with current transaction Id
+ * @param aMaxData Max size of the transaction
+ */
+ void AddProgressDataL( TUint16 aId, TUint32 aRecvdData, TUint32 aMaxData );
+
+ /**
+ * Marks particular transaction id to complete status
+ * @since Series60 2.0
+ * @param aId Id of the transaction
+ */
+ void TransActIdCompleteL( TUint16 aId );
+
+ /**
+ * Gives amount of transaction ids.
+ * @since Series60 1.2
+ * @return Amount of transaction ids
+ */
+ TInt TransActIdAmount() const;
+
+ /**
+ * Gives amount of completed transaction ids.
+ * @since Series60 1.2
+ * @return Amount of transaction ids
+ */
+ TInt TransActIdAmountCompleted() const;
+
+ protected:
+ /**
+ * Two-phase constructor.
+ */
+ void ConstructL();
+
+ private:
+ /**
+ * Enquires transaction statuses. Calculates and generates progress
+ * text and progress bar.
+ * @since Series60 1.2
+ * @return None.
+ */
+ void EnquireStatusL();
+
+ /**
+ * Deletes progress data item according to aId .
+ * @since Series60 1.2
+ * @param aId Transaction id
+ */
+ void DeleteProgressDataItem( TUint16 aId );
+
+ /**
+ * Resets all saved transaction ids, maximum data and received data.
+ * @since Series60 1.2
+ */
+ void ResetValues();
+
+ /**
+ * Returns total amount of received data.
+ * @since Series60 1.2
+ * @return Number of received data
+ */
+ TUint32 ReceivedData();
+
+ /**
+ * All transaction ids won't give max data info at the same time.
+ * Calculation is needed to get estimated maxData of page.
+ * @since Series60 1.2
+ * @return Number of maximum data
+ */
+ TUint32 EstimateMaxData();
+
+ /**
+ * Returns transaction id of current index from array.
+ * @since Series60 1.2
+ * @param aIndex Index of array
+ * @return Transaction id
+ */
+ TUint16 TransActId( TInt aIndex );
+
+ private: // Data
+
+ TBool iIsRunning; // Animation is running
+ MApiProvider& iApiProvider; // Api provider
+
+ CArrayFixFlat<TProgressData>* iProgressData;
+ TBool iInitialDownloadIndicatorState; // initial download (globe) animation in Full Screen pane
+ TReal iProgressEstimate;
+
+ /**
+ * Temporary storage for strings. Each must be reseted at
+ * the beginning of EnquireStatusL!
+ */
+ TBuf<20> iPercentText;
+ TBuf<15> iDataText;
+ TBuf<5> iMBvalue;
+
+ const TDesC* iMyKb;
+ const TDesC* iMyMb;
+
+ TInt iLastMaxEstimate;
+ TInt iLastReceivedData;
+ };
+
+#endif
+
+// End of File