wlanutilities/wlansniffer/aiplugin/inc/wsfaiview.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 09:20:28 +0200
changeset 0 56b72877c1cb
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* 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 CWsfAiView
*
*/


#ifndef C_WSFAIVIEW_H
#define C_WSFAIVIEW_H

//  EXTERNAL INCLUDES
#include <e32def.h>

//  INTERNAL INCLUDES
#include "wsfaiuiobserver.h"
#include "wsfaiplugincommon.h"


//  CONSTANTS
//  MACROS
//  DATA TYPES
//  FORWARD DECLARATIONS
class CEikLabel;
class MWsfAiPublishObserver;

class CWsfAiView : public CBase,
                   public MWsfAiUiObserver
    {
    public:     // Constructors
        /**
        * Two-phased constructor
        * @since S60 5.0 
        * @param aPublishObserver - reference to the plugin's 
        *                           abstract interface
        * @return instance of CWsfAiView class
        */
        static CWsfAiView* NewL( MWsfAiPublishObserver& aPublishObserver );
        
        /**
        * Two-phased constructor. Leaves the object on CleanupStack
        * @since S60 5.0 
        * @param aPublishObserver - reference to the plugin's 
        *                           abstract interface
        * @return instance of CWsfAiView class
        */
        static CWsfAiView* NewLC( MWsfAiPublishObserver& aPublishObserver );
        
        /**
        * Destructor of CWsfAiView class
        * @since S60 5.0     
        */
        ~CWsfAiView();
        
    private:
        
        /**
        * Default C++ constructor 
        * @since S60 5.0 
        * @param aPublishObserver - reference to the plugin's 
        *                           abstract interface
        */
        CWsfAiView( MWsfAiPublishObserver& aPublishObserver );
        
        /**
        * 2nd phase constructor
        * @since S60 5.0 
        */
        void ConstructL();    

    public: // from MWsfAiUiObserver
        
        /**
        * Update the contents of control
        * Set the focus on aCurrentImte
        * @since S60 5.0 
        * @param aItemTextArray text of the current item
        * @param aCurrentItem index of the current item
        */ 
        void UpdateHotSpotsL( MDesCArray* aItemTextArray, 
                              TInt aCurrentItem );

        /**
        * Gives back the index of the selected item
        * @since S60 5.0 
        * @return the index of the selected item
        */ 
        TInt SelectedItem();
        
        /*
        * Check if the control is multiline capable control 
        * @since S60 5.0 
        * @return Etrue if control is multiline capable control
        */
        TBool MultilineControl();

        /*
        * Display engine off text in UI
        * @since S60 5.0 
        */
        void DisplayEngineOffL();
        
        /*
        * Set the refressing UI note visible
        * @since S60 5.0 
        */
        void ForceRefreshingL();
        
        /*
        * Set the refressing UI note visible
        * @since S60 5.0 
        */
        void StartConnectingAnimationL();
        
        /**
        * Update the contents of control
        * @since S60 5.0 
        * @param aItemTextArray text of the current item
        */ 
        void UpdateViewL( MDesCArray* aItemTextArray );
        
    private:
        
        /*
        * Parses the string into ui component data
        * @since S60 5.0 
        * @param aString - a string into ui
        * @return - TBool - ETrue if deferred update is executed
        */
         TBool ParseStringL( const TDesC& aString );
             
        /*
        * Complete the change for new data - this is 
        * a callback for deferred update
        * @since S60 5.0 
        * @param aPtr pointer to this
        * @return ETrue if update is completed
        */
        static TInt DoCompleteUpdateL( TAny* aPtr );

        /* 
        * Commit the update change
        * @since S60 5.0 
        */
        void DoCompleteUpdateL();

        /** 
        * Activates refresh timer  
        * @since S60 5.0 
        */
        void ActivateRefreshTimer();
        
        /**
        * 'MakePublishIconsL' and 'MakeTransparentPublishIconsL'
        * create arrays consisting of icon ids for the icons to publish
        * @since S60 5.0 
        */
        void MakePublishIconsL();
        
        /** 
        * 'MakePublishIconsL' and 'MakeTransparentPublishIconsL'
        * create arrays consisting of icon ids for the icons to publish
        * @since S60 5.0 
        */
        void MakeTransparentPublishIconsL();

    private:    // Data

        /**
        * Coe env for loading string from resource
        * Not Own.
        */
        CCoeEnv* iEnv;

        /**
        * Publish images in array
        * Own.
        */
        CArrayFix< TInt >* iPublishIconArray;

        /**
         * Timer for update
         * Own.
         */
        CPeriodic*     iDeferredUpdater;
        
        /**
        * Times callback
        * Own. 
        */
        TCallBack*     iDeferredUpdateCallBack;
        
        /**
        * Title text label
        * Own.
        */
        CEikLabel* iTextLabel;
        
        /**
        * The label text
        */ 
        TName        iCurrentText;
        
        /**
        * ID constants for Secure Icon 
        */
        TWsfPluginIcons iUpdateSecureIconDeferred;

        /**
        * ID constants for Signal Strength Icon 
        */
        TWsfPluginIcons iUpdateSignalStrengthIconDeferred;

        /**
        * ID constants for Status Icon 
        */
        TWsfPluginIcons iUpdateStatusIconDeferred;
        
        /**
        * ID constants for Status Icon saved to remember after refreshing
        */
        TWsfPluginIcons iSavedUpdateStatusIconDeferred;
        
        /**
        * Pointer to Publish Observer interface
        * Not Own. 
        */
        MWsfAiPublishObserver* iPublishObserver;
        
        /**
        * Constants for 'WLAN scanning off' text
        * Own.
        */
        HBufC* iStatusScanningOff;
        
        /**
        * Constants for 'Refreshing' text
        * Own.
        */
        HBufC* iStatusRefreshing;

        /**
        * Constants for 'Connecting' text
        * Own.
        */
        HBufC* iStatusConnecting;
    };



#endif      //  C_WSFAIVIEW_H

// End of file