diff -r 000000000000 -r 96612d01cf9f mediasettings/feedsettingsviews/inc/feedsettingsviewaddservicelistbox.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mediasettings/feedsettingsviews/inc/feedsettingsviewaddservicelistbox.h Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,162 @@ +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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 for Add Service list in Settings UI.* +*/ + + + + +#ifndef VCXNSSETTINGSVIEWADDSERVICELISTBOX_H +#define VCXNSSETTINGSVIEWADDSERVICELISTBOX_H + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class CVcxNsSettingsViewContainer; + +// CLASS DECLARATION + +/** + * The settings list for "add/edit service list". Used by class + * CVcSettingsViewAddOrEditService. Part of Settings UI. + * + * @lib vcsettingsview.lib + * @since S60 3.2 + */ +NONSHARABLE_CLASS( CVcxNsSettingsViewAddServiceListbox ) : public CAknSettingItemList + { +public: + + /** + * Constructor. + * + * @param aParent Parent container. + * @param aServiceName Reference to data member where service name is stored. + * @param aAddress Reference to data member where service address is stored. + * @param aPluginType Reference to data member where service type is stored. + */ + CVcxNsSettingsViewAddServiceListbox(CVcxNsSettingsViewContainer* aParent, + TDes& aServiceName, + TDes& aAddress, + TInt& aPluginType ); + + /** + * Updates the internal references to data. + * Set input data to variables before calling this method. + * + * @param aAdding ETrue if adding a service, EFalse if editing. + * @param aServiceName Reference to data member where service name is stored. + * @param aAddress Reference to data member where service address is stored. + * @param aServiceType Service type. + * @param aPluginType Reference to data member where plugin type is stored. + */ + void LoadAddServiceInformationL(TBool aAdding, + TDes& aServiceName, + TDes& aAddress, + CIptvService::TServiceType aServiceType, + TInt& aPluginType ); + + /* + * Copies data from UI (this list) to referenced data variables. + */ + void SaveAddServiceInformationL(); + + /** + * Is list shown for adding new item or for editing old. + * + * @return ETrue if adding a service, EFalse if editing. + */ + TBool IsAdding(); + + /** + * Creates SettingItem. Overridden from CAknSettingItemList + * + * @param identifier Index numbre of the setting item to create. + * @return pointer to new CAknSettingItem object. + */ + CAknSettingItem* CreateSettingItemL(TInt identifier); + + /** + * Opens editor for current setting item. + */ + void EditCurrentItemL(); + +public: + /** + * From CCoeControl. + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,TEventCode aType ); + + /** + * Event handling section, from MEikListBoxObserver. + */ + void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aListBoxEvent ); + +private: + + /** + * From CCoeControl. Called by framework when the size is changed. + */ + void SizeChanged(); + +private: // Data + + /** + * Parent control container + */ + CVcxNsSettingsViewContainer* iParent; + + /** + * ServiceName setting item + */ + CAknTextSettingItem* iServiceNameItem; + + /** + * Address setting item + */ + CAknTextSettingItem* iAddressItem; + + /** + * Service type + */ + CIptvService::TServiceType iServiceType; + + /** + * Plugin type item + */ + CAknEnumeratedTextPopupSettingItem* iPluginTypeItem; + + /** + * Is adding ongoing + */ + TBool iAdding; + + /** + * Service Name + */ + TDes& iServiceName; + + /** + * Address + */ + TDes& iAddress; + + /** + * Service plugin type + */ + TInt& iServicePluginType; + }; + +#endif // VCXNSSETTINGSVIEWADDSERVICELISTBOX_H