wlanutilities/wlansettingsui/inc/wlansettingsuisettingitemlist.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:20:32 +0100
branchRCL_3
changeset 55 f28ada11abbf
parent 0 56b72877c1cb
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201029 Kit: 201035

/*
* Copyright (c) 2004-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: 
*      Declaration of class CWlanSettingsUiSettingItemList.   
*      
*
*/


#ifndef WLAN_SETTINGS_UI_SETTING_ITEM_LIST_H
#define WLAN_SETTINGS_UI_SETTING_ITEM_LIST_H

// INCLUDES

#include <aknsettingitemlist.h>
#include "wlansettingsuibinarypopupsettingitem.h"

// CLASS DECLARATION
class CWlanSettingsUiModel;

/**
* WLAN settings item list.
* Added functionality:
* - Creates proper type setting items, based on setting id.
*/
NONSHARABLE_CLASS( CWlanSettingsUiSettingItemList )
: public CAknSettingItemList,
  public MWlanSettingsUiBinaryPopupSettingObserver
    {

    public:     // Constructors

        /**
        * Constructor.
        * @param aModel Data model.
        */
        inline CWlanSettingsUiSettingItemList
            ( CWlanSettingsUiModel* aModel );

    public:     // New methods

        /**
        * Edit current item.
        * @param aCalledFromMenu ETrue if called from menu.
        */
        void EditCurrentItemL( TBool aCalledFromMenu );

    public: // From CAknSettingItemList & base classes

        /**
        * Activate.
        */
        void ActivateL();

        /**
        * Load settings.
        */
        void LoadSettingsL();
        
        /**
        * Handle resource change
        * @param aType message UID value
        */
        void HandleResourceChange( TInt aType );

        /**
        * Launches the setting page for the current item by calling 
        * EditItemL on it
        * @param aIndex Current item's (Visible) index in the list
        * @param aCalledFromMenu Ignored in most classes; may alter 
        * the behaviour of the setting page
        */
        void EditItemL( TInt aIndex, TBool aCalledFromMenu );

        /**
        * Create setting item.
        * @param aSettingId Setting id.
        * @return Setting item.
        */
        CAknSettingItem* CreateSettingItemL( TInt aSettingId );

        /**
        * Set view (hide / show items as appropriate).
        */
        void RefreshViewL();

    private:    // From MWlanSettingsUiBinaryPopupSettingObserver

        /**
        * Binary setting internal value has changed.
        * @param aItem Changed item.
        * @param aNewInternalVal New internal value.
        */
        void BinarySettingChangedL
            (
            CWlanSettingsUiBinaryPopupSettingItem* aItem,
            TBool aNewInternalVal
            );

    private:    // New methods

        /**
        * Sets the drawing rectangle for the listbox.
        */
        void SetListBoxRect();
       
    
    private:    // Data

        CWlanSettingsUiModel* iModel;///< Data model.

        TBool iShowWlanAvail;        ///< Show WLAN availablility on/off
        
        ///< Scan networks mode selection (automatic/user-defined)
        TInt iScanMode;
        
        ///< User selected scan interval needs to be checked if in PSM mode              
        TInt iScanInterval;      

        TInt iPowerSaving;
        
        // Old scan networks value is reverted back if 
        // user turns PSM mode on and then off in settings UI
        TBool iChangeScanNetworksValueBack;
        
        // Back up for the scan networks value
        TUint iScanNetworksBackUp;
        
        };

#include "wlansettingsuisettingitemlist.inl"

#endif