/** Copyright (c) 2005-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: XDM GS plugin, Setting List class**/#ifndef CXDMPLUGINSETTINGLIST_H#define CXDMPLUGINSETTINGLIST_H// INCLUDE FILES#include <coecntrl.h>#include <aknsettingitemlist.h>#include <agentdialog.h>// FORWARD DECLARATIONSclass CSettingsData;/*** CXDMPluginSettinglist derived from CAknSettingItemList*/class CXDMPluginSettinglist : public CAknSettingItemList { public: /** * Symbian OS two-phased constructor * @param reference to CSettingsData from which data to be displayed */ static CXDMPluginSettinglist* NewL(CSettingsData &aData); /** * Symbian OS two-phased constructor, leave pointer to stack * @param reference to CSettingsData from which data to be displayed */ static CXDMPluginSettinglist* NewLC(CSettingsData &aData); /** * Destructor. */ virtual ~CXDMPluginSettinglist(); /** * Inherited from base classes. See CCoeControl */ void SizeChanged(); /** * Edit the indexed item. This probably came as a result of UI command * @param aIndex index to the item * aCalledFromMenu ETrue of this call resulted from UI command */ void EditItemL (TInt aIndex, TBool aCalledFromMenu); /** * Actual editing of item done here, from whereever the call is made from */ void EditCurrentItemL(); /** * Gets the Access point name * @param aAP Access point number as integer * aAccessPoint reference to TDes, doesnt change if AP not found * otherwise access point name returns here */ void GetAccessPointNameL(TInt32 aAP, TDes& aAccessPoint); /** * Sets the focus to the first item of the settings list */ void ResetItemIndex(); private: /** * C++ constructor * @param reference to CSettingsData */ CXDMPluginSettinglist(CSettingsData &aData); /** * See CAknSettingItemList */ CAknSettingItem* CreateSettingItemL (TInt aSettingId); /** * Edit the AccessPoint, We edit the access point differently than other * settings. We bypass the list's text editor and open the S60 standard * access point editor */ void EditAccessPointL(); /** * Saves the changed settings to the list's data * @param aIndex index of the setting to be saved */ void SaveSettingL(TInt aIndex); /** * Sets the title pane text with given discriptor * @param aTitleText text to be shown on title pane */ void SetTitlePaneTextL( const TDesC& aTitleText ) const; private: // Reference to the data owned by container CSettingsData& iSettingsData; };#endif // CXDMPLUGINSETTINGLIST_H