diff -r 63be7eb3fc78 -r f28ada11abbf wlanutilities/wlansniffer/aiplugin/inc/wsfaiplugin.h --- /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 +#include +#include + +// 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* 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* 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 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.