diff -r 000000000000 -r 96612d01cf9f mediasettings/feedsettingsviews/inc/feedsettingsviewserviceselection.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mediasettings/feedsettingsviews/inc/feedsettingsviewserviceselection.h Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,251 @@ +/* +* Copyright (c) 2006-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 "service selection list" in Settings UI.* +*/ + + + +#ifndef VCXNSSETTINGSVIEWSERVICESELECTION_H +#define VCXNSSETTINGSVIEWSERVICESELECTION_H + +// INCLUDES +#include +#include "feedsettingsviewcontainer.h" +#include "CIptvService.h" + +// CONSTANTS + +// FORWARD DECLARATIONS +class CAknDoubleStyleListBox; +class CIptvService; +class CVcxConnectionUtility; +class CBrowserLauncher; + +class CIptvLiveUIScheduledProgram; + +// CLASS DECLARATION + +/** + * Class for "service selection list" in Settings UI. + * + * @lib vcsettingsview.lib + * @since S60 3.2 + */ +NONSHARABLE_CLASS( CVcxNsSettingsViewServiceSelection ) : public CBase, + public MAknServerAppExitObserver + { +public: // Constructors and desctructor. + + /** + * @param aParent Pointer to parent container. + * @param aServiceSettings Reference to Service Settings in UI Engine. + */ + static CVcxNsSettingsViewServiceSelection* NewL(CVcxNsSettingsViewContainer* aParent, + CVcxNsServiceSettings& aServiceSettings); + + virtual ~CVcxNsSettingsViewServiceSelection(); + + /** + * Checks if msk needs tp be updated and does so if it is needed + */ + void CheckMsk( ); + +protected: //From MAknServerAppExitObserver + + /** + * Handle the exit of a connected server app. + * This implementation provides Series 60 default behavior + * for handling of the EAknCmdExit exit code. Derived classes + * should base-call this implementation if they override this + * function. + * @param aReason The reason that the server application exited. + * This will either be an error code, or the command id that caused + * the server app to exit. + * ( empty implementation here ) + */ + void HandleServerAppExit( TInt /*aReason*/) { ; } + +private: + /** + * Returns true if currently active list item is marked. + * + * @return ETrue if currently active list item is marked. + */ + TBool IsCurrentListItemMarked(); + +public: + + /** + * Activates "service selection list". + */ + void ActivateL(); + + /** + * Deactivates "service selection list". + */ + void Deactivate(); + + /** + * Sets service type used in "service selection list". + * + * @param aServiceType Service type as CIptvService::TServiceType + * enumeration. + */ + void SetServiceType(CIptvService::TServiceType aServiceType); + + /** + * Returns service type in use. + * + * @return Service type as CIptvService::TServiceType enumeration. + */ + CIptvService::TServiceType GetServiceType(); + + /** + * Returns true if currently active service is read-only. + * + * @return ETrue if currently active service is read-only. + */ + TBool IsCurrentServiceReadOnlyL(); + + /** + * Returns currently active service. Ownership of object is given + * to caller. + * + * @return Pointer to currently active service. + */ + CIptvService* GetCurrentServiceL(); + + /** + * Deletes currently active service. + */ + void DeleteCurrentServiceL(); + + /** + * Loads data to "service selection list". + */ + void LoadL(); + + /** + * Saves data in "service selection list". + */ + void SaveL(); + + /** + * Returns pointer to "service selection item" listbox. No ownership transfer. + * + * @return Pointer to listbox. + */ + CAknSingleGraphicStyleListBox* ListBox(); + + /** + * Shows message query dialog for managing an account before removing service + * + * @return Dialog's result, what user has replied to query. + */ + TInt ShowAccountMgmtDialogL(); + + /** + * Used as a callback function in message query. + * @return System-wide error code. + */ + static TInt ShowLinkL( TAny* ptr ); + + /** + * Opens account management Url with embedded browser. + */ + void OpenEmbeddedBrowserL( const TDesC& aUri ); + +private: // New methods. + + /** + * Gets current service id. + * + * @param aServiceId service id + */ + void GetServiceIdL( TUint32& aServiceId ); + + /** + * Removes commands from CBA + * @param aCba Button group container + */ + void RemoveCommandsFromCba( CEikButtonGroupContainer& aCba ); + +private: // Construction. + + /** + * @param aParent Pointer to parent container. + * @param aServiceSettings Reference to Service Settings in UI Engine. + */ + CVcxNsSettingsViewServiceSelection(CVcxNsSettingsViewContainer* aParent, + CVcxNsServiceSettings& aServiceSettings); + + void ConstructL(); + +private: // Data + + /** + * Parent control container + */ + CVcxNsSettingsViewContainer* iParent; + + /** + * UI engine's application settings provider + */ + CVcxNsServiceSettings& iServiceSettings; + + /** + * List box control + */ + CAknSingleGraphicStyleListBox* iListbox; + + /** + * Is own command set used + */ + TBool iOwnButtons; + + /** + * Service array + */ + CDesC8ArraySeg* iServicesArray; + + /** + * Service array for vod casts + */ + CDesC8ArraySeg* iServicesArrayVodCast; + + /** + * Service type + */ + CIptvService::TServiceType iServiceType; + + /** + * Current Msk resource id. + */ + TInt iCurrentMskResource; + + /* + * Launcher that handles opening of web link in embedded browser + * Own. + */ + CBrowserLauncher* iLauncher; + + /** + * Connection utility. + * Not own. + */ + CVcxConnectionUtility* iConnUtil; + + }; + +#endif // VCXNSSETTINGSVIEWSERVICESELECTION_H