--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlefw/plugins/wrtdataplugin/inc/wrtdataplugin.h Wed Sep 01 12:22:09 2010 +0100
@@ -0,0 +1,357 @@
+/*
+* Copyright (c) 2005-2007 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: Plug-in main class
+*
+*/
+
+
+#ifndef WRTDATAPLUGIN_H
+#define WRTDATAPLUGIN_H
+
+// System includes
+
+// User includes
+#include <hscontentpublisher.h>
+#include <aicontentmodel.h>
+
+// Forward declarations
+class MAiContentObserver;
+class MAiContentItemIterator;
+class CWrtData;
+class CGulIcon;
+class CLiwDefaultMap;
+
+/**
+ * @ingroup group_wrtdataplugin
+ *
+ * Plug-in main class
+ *
+ * @since S60 v3.2
+ */
+NONSHARABLE_CLASS( CWrtDataPlugin ) : public CHsContentPublisher
+ {
+public:
+ // type definitions
+
+ /**
+ * Plugin's network state.
+ */
+ enum TPluginNetworkStatus
+ {
+ EUnknown,
+ EOffline,
+ EOnline
+ };
+
+ /**
+ * Plugin's state.
+ */
+ enum TPluginStates
+ {
+ EStopped,
+ EStarted,
+ EResume,
+ ESuspend
+ };
+
+ /**
+ * Content Items
+ */
+ enum TContentItem
+ {
+ EDefaultImage,
+ EDefaultText,
+ EImage1
+ };
+
+public:
+ // constructor and destructor
+
+ static CWrtDataPlugin* NewL();
+
+ ~CWrtDataPlugin();
+
+private:
+ // constructors
+
+ /**
+ * C++ constructor
+ */
+ CWrtDataPlugin();
+
+ /**
+ * 2nd phase constructor
+ */
+ void ConstructL();
+
+public:
+ // from CHsContentPublisher
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void Start( TStartReason aReason );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void Stop( TStopReason aReason );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void Resume( TResumeReason aReason );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void Suspend( TSuspendReason aReason );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void SetOnline();
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void SetOffline();
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void SubscribeL( MAiContentObserver& aObserver );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void ConfigureL( RAiSettingsItemArray& aSettings );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void SetProperty( TProperty aProperty, TAny* aAny );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ TAny* GetProperty( TProperty aProperty );
+
+ /**
+ * @see CHsContentPublisher
+ */
+ void HandleEvent( const TDesC& aEventName, const TDesC& aParam );
+
+public:
+
+ /**
+ * Gets the id of a content
+ *
+ * @param aObjectId image or text id
+ * @return id of the content
+ */
+ TInt GetIdL( TDesC16& aObjectId );
+
+ /**
+ * Gets the type of a specific content
+ *
+ * @param aObjectId image or text id
+ * @param aType type
+ * @return void
+ */
+ void GetTypeL( TDesC16& aObjectId, TDes16& aType );
+
+ /**
+ * RefereshL a specific image of text in the widget
+ *
+ * @param aOperation operation performed
+ * @param aDataMap data map
+ * @return void
+ */
+ void RefreshL( TDesC16& aOperation, CLiwDefaultMap* aDataMap );
+
+ /**
+ * Is plugin active to publish the data
+ *
+ * @param void
+ * @return boolean (ETrue/EFalse)
+ */
+ TBool IsActive() const;
+
+ /**
+ * Is plugin stopped
+ *
+ * @param void
+ * @return boolean (ETrue/EFalse)
+ */
+ TBool IsStopped() const;
+
+ /**
+ * Publish a specific text of the widget
+ *
+ * @param aObserver observer
+ * @param aContentId content model id
+ * @param aContentValue content value
+ * @return void
+ */
+ void PublishTextL( MAiContentObserver* aObserver,
+ TInt aContentId, const TDesC16& aContentValue );
+
+ /**
+ * Publish a specific image of the widget
+ *
+ * @param aObserver observer
+ * @param aContentId content model id
+ * @param aHandle image handle
+ * @param aMaskHandle handle of the mask image
+ * @return void
+ */
+ void PublishImageL( MAiContentObserver* aObserver,
+ TContentItem aContentId, TInt aHandle, TInt aMaskHandle );
+
+ /**
+ * Publish a specific image of the widget
+ *
+ * @param aObserver observer
+ * @param aContentId content model id
+ * @param aPath image path / skin id pattern / mif id Pattern
+ * @return void
+ */
+ void PublishImageL( MAiContentObserver* aObserver,
+ TContentItem aContentId, const TDesC16& aPath );
+
+ /**
+ * Cleans a data from the widget
+ *
+ * @param aObserver observer
+ * @param aContentId content model id
+ * @return void
+ */
+ void Clean( MAiContentObserver* aObserver,
+ TInt aContentId );
+
+ /**
+ * Shows the loading icon animation
+ *
+ * @param aObserver observer
+ * @return void
+ */
+ void ShowLoadingIcon( MAiContentObserver* aObserver );
+
+ /**
+ * Hides the loading icon animation
+ *
+ * @param aObserver observer
+ * @return void
+ */
+ void HideLoadingIcon( MAiContentObserver* aObserver );
+
+ /**
+ * CWrtData getter
+ * @return Pointer to CWrtData
+ */
+ CWrtData* Data() const;
+
+ /*
+ * Plugin's network status getter
+ * @return Pointer to Harvester status observer
+ */
+ TPluginNetworkStatus NetworkStatus() const;
+
+ /**
+ * Creates initial data republishing timer if needed and starts it
+ */
+ void StartTimer();
+
+private:
+ // new functions
+
+ /**
+ * Publishes widget's initial texts and images
+ *
+ * @param void
+ * @return void
+ */
+ void PublishInitialDataL();
+
+ /**
+ * Resolves skin item id and Mif id from pattern
+ * skin( <majorId> <minorId> (<colourGroupId>)
+ * mif(<MifFileName.mif> <bitmapId> <maskId>)
+ *
+ * @param aPath skin pattern / mif pattern value
+ * @param aItemId skin item id
+ * @param aMifId mif id
+ * @param aMaskId mask id
+ * @param aFilename mif file name
+ * @return boolean (ETrue/EFalse)
+ */
+ TBool ResolveSkinIdAndMifId( const TDesC& aPath, TAknsItemID& aItemId,
+ TInt& aMifId, TInt& aMaskId, TDes& aFilename );
+
+ /**
+ * Cancels transaction in case of leave
+ *
+ * @param aObserver Transaction target
+ */
+ static void CancelTransaction( TAny* aObserver );
+
+ /**
+ * Cancels initial data republishing timer
+ */
+ void CancelTimer();
+
+ /**
+ * Stops and deletes initial data republishing timer.
+ */
+ void StopTimer();
+
+ /**
+ * Timeout callback from timer. Used if publishing of initial data has failed.
+ *
+ * @param aPtr Contains pointer to instance of this class
+ */
+ static TInt Timeout( TAny* aPtr );
+
+
+private:
+ // data
+
+ /** Iterator for plugin content, owned */
+ MAiContentItemIterator* iContent;
+ /** Array of content observers, owned */
+ RPointerArray< MAiContentObserver > iObservers;
+ /** Number of data in the content model */
+ TInt iDataCount;
+ /** Dynamic content model, owned */
+ TAiContentItem* iContentModel;
+ /** Reference array for Published text, owned */
+ RPointerArray< HBufC > iDataArray;
+ /** Service API Data Subscriber, owned */
+ CWrtData* iData;
+ /* References array for published images, owned */
+ RArray< CGulIcon* > iIconArray;
+ /** Plugin's network status */
+ TPluginNetworkStatus iNetworkStatus;
+ /** Plugin state */
+ TPluginStates iPluginState;
+ /** File server session handle, owned */
+ RFs iRfs;
+ /** Timer for initial data republishing, owned */
+ CPeriodic* iTimer;
+ };
+
+#endif // WRTDATAPLUGIN_H
+
+