diff -r f742655b05bf -r d38647835c2e commsconfig/cscapplicationui/inc/cscserviceview.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsconfig/cscapplicationui/inc/cscserviceview.h Wed Sep 01 12:29:57 2010 +0100 @@ -0,0 +1,392 @@ +/* +* Copyright (c) 2007-2010 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: CSC Applications Service View +* +*/ + + +#ifndef C_CSCSERVICEVIEW_H +#define C_CSCSERVICEVIEW_H + +#include +#include "mcscservicecontainerobserver.h" +#include "mcscengtimerobserver.h" + +class CCSCAppUi; +class CCSCDialog; +class CCSCEngCCHHandler; +class CCSCServiceContainer; +class CCSCEngStartupHandler; +class CCSCEngServiceHandler; +class CCSCEngBrandingHandler; +class CCSCEngServicePluginHandler; +class CCSCEngUiExtensionPluginHandler; +class CCSCSettingsUi; + +/** + * CCSCServiceView class + * An instance of CCSCServiceView is the Application View object + * for the CSC application + * + * @lib + * @since S60 v3.2 + */ +NONSHARABLE_CLASS( CCSCServiceView ) : public CAknView, + public MEikListBoxObserver, + public MCSCServiceContainerObserver, + public MCSCEngTimerObserver + { + public: + + /** + * Two-phased constructor. + * + * @param aServicePluginHandler reference to service plug-in handler + * @param aUiExtensionPluginHandler reference to ui extension + * plug-in handler + * @param aStartupHandler reference to startup handler + * @param aServiceHandler reference to service handler + * @param aBrandingHandler reference to branding handler + * @param aCCHHandler reference to cch handler + */ + static CCSCServiceView* NewL( + CCSCEngServicePluginHandler& aServicePluginHandler, + CCSCEngUiExtensionPluginHandler& aUiExtensionPluginHandler, + CCSCEngStartupHandler& aStartupHandler, + CCSCEngServiceHandler& aServiceHandler, + CCSCEngBrandingHandler& aBrandingHandler, + CCSCEngCCHHandler& aCCHHandler ); + + + /** + * Two-phased constructor. + * + * @param aServicePluginHandler reference to service plug-in handler + * @param aUiExtensionPluginHandler reference to ui extension + * plug-in handler + * @param aStartupHandler reference to startup handler + * @param aServiceHandler reference to service handler + * @param aBrandingHandler reference to branding handler + * @param aCCHHandler reference to cch handler + */ + static CCSCServiceView* NewLC( + CCSCEngServicePluginHandler& aServicePluginHandler, + CCSCEngUiExtensionPluginHandler& aUiExtensionPluginHandler, + CCSCEngStartupHandler& aStartupHandler, + CCSCEngServiceHandler& aServiceHandler, + CCSCEngBrandingHandler& aBrandingHandler, + CCSCEngCCHHandler& aCCHHandler ); + + + /** + * Destructor. + */ + virtual ~CCSCServiceView(); + + /** + * Initializes view with startup parameters. + * + * @since S60 v5.1 + */ + void InitializeWithStartupParametersL(); + + + // from base class CAknView + + /** + * From CAknView. + * Handles the commands. If the command is command which is require to + * display outline-screen, the command display outline-screen + * corresponded to required. + * + * @since S60 v3.0 + * @param aCommand Command to be handled. + */ + void HandleCommandL( TInt aCommand ); + + + /** + * From CAknView. + * + * @since S60 v3.0 + * @return The ID of view. + */ + TUid Id() const; + + + /** + * From CAknView. + * + * @since S60 v3.0 + * @param aForeground + */ + void HandleForegroundEventL( TBool aForeground ); + + + /** + * For handling ui extension plug-in exits + * + * @since S60 v3.2 + */ + void HandleUiExtensionExitL(); + + + /** + * For updating service view + * + * @since S60 v3.2 + */ + void UpdateServiceViewL(); + + + /** + * For deleting service + * + * @since S60 v3.2 + * @param aServiceId + */ + void DeleteServiceL( TUint aServiceId ); + + + /** + * Service configuration failed. + * + * @since S60 v3.2 + * @param aIndex index of plugin + */ + void ServiceConfiguringFailedL( TInt aIndex ); + + + /** + * Hides dialog wait note + * + * @since S60 v3.2 + * @param aIndex index of plugin + */ + void HideDialogWaitNote(); + + + /** + * For handling service configuration + * + * @since S60 v3.2 + * @param aUid for service setup plugin uid + * @return ETrue if configuration canceled by user + */ + TBool HandleServiceConfigurationL( TUid aUid ); + + + /** + * Executes startup actions based on startup parameters. + * + * @since S60 v5.1 + * @param aForeGroundEvent ETrue if initiated by foreground event. + * @param aLaunchedFromAi ETrue if launched from active idle. + */ + void ExecuteStartupActionsL( + TBool aForeGroundEvent = EFalse, + TBool aLaunchedFromAi = EFalse ); + + + // from base class MCSCServiceContainerObserver + + /** + * Update softkey + * + * @since S60 v3.2 + */ + void UpdateCbaL(); + + + protected: + + // from base class MEIkListBoxObserver + + /** + * From MEikListBoxObserver. + * For handling list box events. + * + * @since S60 v3.0 + * @param aListBox for listbox + * @param aEventType for event type + */ + void HandleListBoxEventL( CEikListBox* aListBox, + TListBoxEvent aEventType ); + + + private: + + + CCSCServiceView( + CCSCEngServicePluginHandler& aServicePluginHandler, + CCSCEngUiExtensionPluginHandler& aUiExtensionPluginHandler, + CCSCEngStartupHandler& aStartupHandler, + CCSCEngServiceHandler& aServiceHandler, + CCSCEngBrandingHandler& aBrandingHandler, + CCSCEngCCHHandler& aCCHHandler ); + + + void ConstructL(); + + + /** + * For handling listbox itemp opening. + * + * @since S60 v3.2 + */ + void HandleListboxItemOpenL(); + + + /** + * For changing text in the title pane. + * + * @since S60 v3.2 + */ + void SetTitlePaneTextL() const; + + + // from base class CAknView + + /** + * From CAknView. + * Dynamically initializes the contents of the menu list. + * + * @since S60 v3.0 + * @param aResourceId Initiallized resource + * @param aMenuPane Instance to MenuPanel + */ + void DynInitMenuPaneL( TInt aResourceId, + CEikMenuPane* aMenuPane ); + + + /** + * From CAknView. + * Creates the Container class object. + * + * @since S60 v3.0 + * @param aPrevViewId is not used. + * @param aCustomMessageId is not used. + * @param aCustomMessage is not used. + */ + void DoActivateL( const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage ); + + + /** + * From CAknView. + * Deletes the Container class object. + * + * @since S60 v3.0 + */ + void DoDeactivate(); + + + // from base class MCSCEngTimerObserver + + /** + * From MCSCEngTimerObserver. + * + * @since S60 v5.0 + */ + void TimerExpired(); + + + private: // data + + /** + * Reference to CCSCServicePluginHandler + */ + CCSCEngServicePluginHandler& iServicePluginHandler; + + /** + * Reference to CCSCUiExtensionPluginHandler + */ + CCSCEngUiExtensionPluginHandler& iUiExtensionPluginHandler; + + /** + * Reference to CCSCEngStartupHandler + */ + CCSCEngStartupHandler& iStartupHandler; + + /** + * Reference to CCSCEngServiceHandler + */ + CCSCEngServiceHandler& iServiceHandler; + + /** + * Reference to CCSCEngBrandingHandler + */ + CCSCEngBrandingHandler& iBrandingHandler; + + /** + * Reference to CCSCEngCCHHandler + */ + CCSCEngCCHHandler& iCCHHandler; + + /** + * Pointer to service container + * Own. + */ + CCSCServiceContainer* iContainer; + + /** + * Pointer to CSC Settings UI + * Own. + */ + CCSCSettingsUi* iSettingsUi; + + /** + * Flag indicating if DoActivateL is called first time (startup) + */ + TBool iStartup; + + /** + * Current list item index in container + */ + TInt iCurrentIndex; + + /** + * Array for already offered to configure plugin uids + */ + RArray iOfferedPluginUids; + + /** + * Pointer to timer + * Own. + */ + CCSCEngTimer* iEngTimer; + + /** + * Plugin info. + */ + TServicePluginInfo iPluginInfo; + + /** + * Next plugin index. + */ + TUint iNextPluginIndex; + + /** + * Uid. + */ + TUid iUid; + +#ifdef _DEBUG + friend class UT_CSC; +#endif + + }; + +#endif // C_CSCSERVICEVIEW_H