homesync/contentmanager/homesyncgsplugin/inc/mssettingitemlist.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:52:00 +0200
changeset 0 7f85d04be362
permissions -rw-r--r--
Revision: 200947 Kit: 200951

/*
* Copyright (c) 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:  Definition for Setting item list -class
*
*/


#ifndef MSSETTINGITEMLIST_H
#define MSSETTINGITEMLIST_H

// INCLUDES
#include <aknsettingitemlist.h>

#include "cmcommon.h"
#include "msengineobserver.h"
#include "msgs.hrh"

// FORWARD DECLARATIONS
class CMSSettingsView;
class CMSEngine;
class CCmMediaServerFull;


// CLASS DECLARATION

/**
* CMSSSettingItemList general class. This class is used to
* create setting items to several setting item lists.
*/
NONSHARABLE_CLASS( CMSSettingItemList ): public CAknSettingItemList,
                                         public MMSEngineObserver
    {
    public: // Constructor and destructor

        /**
         * NewL
         * 2-phase constructor.
         * @param aResourceId : resource ID of setting page.
         * @param aAppUi : application ui.
         */
        static CMSSettingItemList* NewL( TInt aResourceId,
                                         CMSSettingsView& aView );

        /**
         * NewLC
         * 2-phase constructor.
         * @param aResourceId : resource ID of setting page.
         * @param aAppUi : application ui.
         */
        static CMSSettingItemList* NewLC( TInt aResourceId,
                                         CMSSettingsView& aView );

        /**
         * Constructor.
         */
        CMSSettingItemList( CMSSettingsView& aView );
        
        /**
         * ConstructL
         * Second phase constructor.
         * @param aResourceId : resource ID of setting page.
         * @param aAppUi : application ui
         */
        void ConstructL( TInt aResourceId );

        /**
         * Destructor.
         */
        virtual ~CMSSettingItemList();

        /**
         * Opens the selected listbox item
         *
         * @since S60 5.1
         */
        void OpenSelectedListboxItemL();

        /**
         * Returns MSEngine
         *
         * @since S60 5.1
         * @return CMSEngine, application engine
         */
        CMSEngine* MSEngine();

    protected:

    // From base class CAknSettingItemList

        /**
         * From CAknSettingItemList
         * See base class definition
         */
        CAknSettingItem* CreateSettingItemL( TInt aSettingId );

        /**
         * From CAknSettingItemList
         * See base class definition
         */
        void SizeChanged();

        /**
         * From CAknSettingItemList
         * See base class definition
         */
        void HandleResourceChange( TInt aType );

        /**
         * From CAknSettingItemList
         * See base class definition
         */
        void EditItemL ( TInt aIndex, TBool aCalledFromMenu );

        /**
         * From CAknSettingItemList
         * See base class definition
         */
        void HandleListBoxEventL( CEikListBox *aListBox,
                                  TListBoxEvent aEventType );

    // From base class MMSEngineObserver

        /**
         * From MMSEngineObserver
         * see base class definition
         */
        void ReadyL( TCmService aService, TInt aError );

    // From base class CCoeControl

        /**
         * From CCoeControl
         * see base class definition
         */
        void GetHelpContext(TCoeHelpContext& aContext) const;

    private:

        /**
         * Searches item from the list be item ID
         *
         * @since S60 5.1
         * @param aId, item id
         * @return CAknSettingItem, item pointer
         */
        CAknSettingItem* SearchItemById( const TMSSettingItems aId ) const;

        /**
         * Reads current profile from cenrep
         *
         * @since S60 5.1
         * @return TInt, profile
         */
        TInt GetCurrentProfileL() const;

        /**
         * Sets memory selection visibility
         *
         * @since S60 5.1
         */
        void SetMemorySelectionL();

    private:

        /**
         * Reference to AppUi
         */
        CMSEngine*                          iMSEngine;          // owned
        
        /**
         * Parent view
         */
        CMSSettingsView&                    iView;
        
        /**
         * Pointer to listbox
         */
        CEikFormattedCellListBox*           iListBox;           // not owned
        
        /**
         * dummy text needed by text setting items
         */
        TBuf<KMaxFileName>                  iDummyText;
        
        /**
         * Sync selection
         */
        TCmServiceState                     iSync;
        
        /**
         * Memory manager
         */
        TCmServiceState                     iMemoryManager;
        
        /**
         * searched servers list
         */
        RPointerArray<CCmMediaServerFull>*  iStoredServers;     // owned        
    };

#endif // MSSETTINGITEMLIST_H

// End of File