wlanutilities/wlansniffer/aiplugin/inc/wsfaiplugin.h
branchRCL_3
changeset 55 f28ada11abbf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlanutilities/wlansniffer/aiplugin/inc/wsfaiplugin.h	Wed Sep 01 12:20:32 2010 +0100
@@ -0,0 +1,372 @@
+/*
+* Copyright (c) 2007-2008 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:  Class header for CWsfAiPlugin
+*
+*/
+
+
+#ifndef C_WSFAIPLUGIN_H
+#define C_WSFAIPLUGIN_H
+
+//  EXTERNAL INCLUDES
+#include <hscontentpublisher.h>
+#include <e32cmn.h>
+#include <eikenv.h>
+
+//  INTERNAL INCLUDES
+#include "wsfaicontroller.h"
+#include "wsfaipublishobserver.h"
+#include "wsfaiplugincontentmodel.h"
+
+//  CONSTANTS
+LOCAL_D const TInt  KDeferredWaitTime = 1000 * 1000; 
+                            // one second in milliseconds
+
+//  FORWARD DECLARATIONS
+class MAiPluginSettings;
+class MAiContentObserver;
+class MAiContentItemIterator;
+
+class CWsfModel;
+class CWsfAiModel;
+class CWsfAiView;
+class CAknIconArray;
+class CGulIcon;
+class CWsfDbObserver;
+
+
+// CLASS DECLARATION
+
+/**
+ * The main class, containing the plugin behavior. 
+ *
+ * @lib wsfaiplugin.lib
+ * @since S60 v5.0
+ */
+NONSHARABLE_CLASS( CWsfAiPlugin ): public CHsContentPublisher,
+                                   public MWsfAiPublishObserver
+    {
+    public: // Constructors and destructor
+        
+        /**
+        * Two-phased constructor
+        * @since S60 5.0 
+        * @return instance of CWsfAiPlugin class
+        */
+        static CWsfAiPlugin* NewL();
+        
+        /**
+        * Destructor of CWsfAiPlugin class
+        * @since S60 5.0     
+        */
+        virtual ~CWsfAiPlugin();
+    
+    private:// Constructors
+        
+        /**
+        * Default C++ constructor 
+        * @since S60 5.0 
+        */
+        CWsfAiPlugin();
+        
+        /**
+        * 2nd phase constructor
+        * @since S60 5.0 
+        */
+        void ConstructL();
+        
+        /**
+        * Steps 
+        * @param ptr Pointer to an instance of this class
+        */
+        static TInt DoRefreshingStepL( TAny* ptr );
+        
+        /**
+        * Steps the refresh animation
+        */                
+        void DoRefreshingStepL();
+        
+        /**
+        * Steps 
+        * @param ptr Pointer to an instance of this class
+        */
+        static TInt DoConnectingStepL( TAny* ptr );
+        
+        /**
+        * Steps the refresh animation
+        */                
+        void DoConnectingStepL();
+    
+    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 SubscribeL( MAiContentObserver& aObserver );
+    
+        /**
+         * @see CHsContentPublisher
+         */
+        void ConfigureL( RAiSettingsItemArray& aSettings );
+    
+        /**
+         * @see CHsContentPublisher
+         */
+        TAny* GetProperty( TProperty aProperty );
+
+        /**
+         * @see CHsContentPublisher
+         */
+        void HandleEvent( TInt aEvent, const TDesC& aParam );
+
+    
+    public: // From MWsfAiPublishObserver
+    
+        /**
+        * Publishes images from array and text
+        * @since S60 5.0
+        * @param aPublishIconArray the published icons
+        * @param aText1 title text label
+        */
+        void PublishContentL( CArrayFix<TInt>* aPublishIconArray,
+                              CEikLabel* aText1 );
+        
+        /**
+        * Sets Scanning status on/off.
+        * @since S60 5.0
+        * @param aScanState Scanning satus flag
+        */
+        void SetScanningState( TBool aScanState );
+        
+        /**
+        * Sets refreshing status on/off.
+        * @since S60 5.0
+        * @param aScanState Refreshing status flag
+        */
+        void SetRefreshingL( TBool aRefreshing );
+        
+        /**
+        * Set connecting status on.
+        * @since S60 5.0
+        */
+        void StartConnectingL();
+        
+        /**
+        * Publishes just status image from array 
+        * @since S60 5.0
+        * @param aPublishIconArray the published icons
+        * @param aText1 title text label
+        */
+        void PublishStatusIconL( CArrayFix<TInt>* aPublishIconArray, 
+                                            CEikLabel* aText1 );
+        
+    private:
+    
+        /**
+        * Allocates Engine, Model and functional UI for plugin
+        */
+        void AllocateResourcesL();
+    
+        /**
+        * Unpublishes (clears) all plugin content from AI2 view
+        */
+        void ClearL();
+    
+        /**
+        * Launch WLAN Wizard application
+        */
+        void LaunchApplicationL();
+    
+        /**
+        * Set the value of Middle Soft Key based on the
+        * Scanning status of the WLAN Wizard
+        */
+        void SetMskL();
+        
+        /**
+        * Publish the given text
+        * @param aObserver - pointer to the observer
+        * @param aContentId - content ID
+        * @param aText1 - title text label
+        * @return ETrue - if it can be published
+        *         EFalse - if it can not be published
+        */
+        TBool PublishText( MAiContentObserver* aObserver,
+                           TWsfAiWizardContentIds aContentId,
+                           const TDesC16& aText );
+        
+        /**
+        * Publish the given icon
+        * @param aObserver - pointer to the observer
+        * @param aContentId - content ID
+        * @param aIconId - icon ID
+        * @return ETrue - if it can be published
+        *         EFalse - if it can not be published
+        */
+        TBool PublishIconL( MAiContentObserver* aObserver,
+                            TWsfAiWizardContentIds aContentId,
+                            TInt aIconId );
+    
+        /**
+        * Cleanup function to to cancel publish transaction
+        * @since S60 5.0
+        * @param aPtr Pointer for the observer class
+        */
+        static void PublishCleanup( TAny* aPtr );
+
+        
+    private: // Data
+        
+        /**
+        * Handle to Eikon environment.
+        */
+        CEikonEnv* iEnv;
+    
+        /**
+        * Array of content observers
+        */
+        RPointerArray<MAiContentObserver> iObservers;
+    
+        /**
+        * Iterator for plugin content
+        * Own.
+        */
+        MAiContentItemIterator* iContent;
+    
+        /**
+        * Iterator for plugin resources
+        * Own.
+        */
+        MAiContentItemIterator* iResources;
+    
+        /**
+        * Iterator for plugin events
+        * Own.
+        */
+        MAiContentItemIterator* iEvents;
+    
+        /**
+        * Pointer to CWsfModel
+        * Own.
+        */
+        CWsfModel* iModel;
+        
+        /**
+        * Pointer to AI Model
+        * Own.
+        */
+        CWsfAiModel* iAiModel;
+    
+        /**
+        * AI Controller
+        * Own.
+        */
+        TWsfAiController iController;
+        
+        /**
+        * Pointer to CWsfAiView
+        * Own.
+        */
+        CWsfAiView* iUi;
+   
+        /**
+        * The database observer observing changes in
+        * show WLAN availablity
+        */
+        CWsfDbObserver* iDbObserver;
+        
+        /**
+        * The resource file offset
+        */
+        TInt iResourceFileOffset;
+    
+        /**
+        * Constants for MSK activate text
+        * Own.
+        */
+        HBufC* iMskActivate;
+    
+        /**
+        * Scanning status flag
+        */
+        TBool iScanState;
+    
+        /**
+        * Flag for focus of information area 
+        */
+        TBool iInfoAreaFocus;
+        
+        /**
+        * The current observer item index 
+        */
+        TInt iCurrentObserverIndex;
+        
+        /**
+         * The current refreshing state
+         */
+        TBool iRefreshing;
+        
+        /*
+	     * The periodic that steps the refreshing animation
+	     */
+	    CPeriodic* iAnimationPeriodic;
+	    
+	    /**
+	     * Constants for 'Connected to:' text
+	     * Own.
+	     */
+        HBufC* iConnectedTo;
+        
+        /**
+         * Constants for 'Known network found:' text
+         * Own.
+         */
+        HBufC* iKnownNetworkFound;
+        
+        /**
+        * A pointer to CWsfActiveWrappers
+        */
+        CWsfActiveWrappers* iActiveWrappers;
+        
+        /**
+        * Flag to publish network status text
+        */
+        TBool iPublishNetworkStatusText;
+        
+    };
+
+
+#endif // C_WSFAIPLUGIN_H
+
+// End of File.