diff -r f742655b05bf -r d38647835c2e commsconfig/cscapplicationui/inc/cscservicecontainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsconfig/cscapplicationui/inc/cscservicecontainer.h Wed Sep 01 12:29:57 2010 +0100 @@ -0,0 +1,478 @@ +/* +* 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 Application service view´s container +* +*/ + + +#ifndef C_CSCSERVICECONTAINER_H +#define C_CSCSERVICECONTAINER_H + +#include + +class MCSCServiceContainerObserver; +class CCSCEngCCHHandler; +class CCSCEngServiceHandler; +class CCSCEngBrandingHandler; +class CCSCEngServicePluginHandler; +class CCSCEngUiExtensionPluginHandler; + + +const TUint KBrandIdMaxLength = 512; + +/** + * TListBoxItem class + * + * For identifying list box item types + * + * @lib + * @since S60 v3.2 + */ +NONSHARABLE_CLASS( TListBoxItem ) + { + public: + + /** Enumeration for listbox item type */ + enum TItemType + { + EGeneralService = 0, + EServicePlugin, + EUiExtension + }; + + /** + * Constructor. + * + * @since S60 3.2 + */ + TListBoxItem() + : iItemType( EGeneralService ), + iPluginUid( KNullUid ), + iServiceId( KErrNone ) + {} + + public: // data + + /** + * Listbox item type + */ + TItemType iItemType; + + /** + * Plug-in UID for Listbox item type EServicePlugin and EUiExtension + */ + TUid iPluginUid; + + /* + * Service id ( used only with EGeneralService and EServicePlugin) + */ + TUint iServiceId; + }; + + + +/** + * CCSCServiceContainer class + * CSC Applications Service view container class. + * + * @lib + * @since S60 v3.2 + */ +NONSHARABLE_CLASS( CCSCServiceContainer ) : public CCoeControl, + public MEikMenuObserver + { + public: + + /** + * Two-phased constructor. + * + * @param aView pointer to calling view + * @param aRect rect + * @param aServicePluginHandler reference to servicepluginhandler + * @param aUiExtensionPluginHandler reference to uiextensionhandler + * @param aServiceHandler reference to service handler + * @param aBrandingHandler reference to branding handler + * @param aCCHHandler reference to cch handler + */ + static CCSCServiceContainer* NewL( + const TRect& aRect, + MCSCServiceContainerObserver& aContainerObserver, + CCSCEngServicePluginHandler& aServicePluginHandler, + CCSCEngUiExtensionPluginHandler& aUiExtensionPluginHandler, + CCSCEngServiceHandler& aServiceHandler, + CCSCEngBrandingHandler& aBrandingHandler, + CCSCEngCCHHandler& aCCHHandler ); + + + /** + * Destructor. + */ + virtual ~CCSCServiceContainer(); + + + /** + * Update service view + * + * @since S60 v3.2 + */ + void UpdateServiceViewL(); + + + /** + * Update listbox + * + * @since S60 v3.2 + */ + void UpdateListboxL(); + + + /** + * Return current listbox item index + * + * @since S60 v3.2 + * @return current item index + */ + TInt CurrentItemIndex() const; + + + /** + * Return current listbox item + * + * @since S60 v3.2 + * @return current listbox item + */ + TListBoxItem ListBoxItem(); + + + /** + * Return reference to listbox + * + * @since S60 v5.2 + * @return reference to listbox + */ + CAknDouble2LargeStyleListBox& ListBox(); + + + /** + * Return pen down point + * + * @since S60 v5.2 + * @return pen down point + */ + TPoint PenDownPoint(); + + + /** + * Return service count + * + * @since S60 v3.2 + * @return service count + */ + TInt ServiceCount(); + + + /** + * Set current item index + * + * @since S60 v3.2 + * @param current item index + */ + void SetCurrentIndex( TInt aIndex ); + + + /** + * Delete service + * + * @since S60 v3.2 + */ + void DeleteServiceL(); + + + /** + * Handle service plugin removation. + * + * @since S60 v5.0 + * @param aUid plugin uid. + */ + void HandleServicePluginRemovationL( const TUid& aUid ); + + + /** + * Updates container data because of layout change + * + * @since S60 v3.2 + * @param aType for layout change type + */ + void HandleResourceChange( TInt aType ); + + + /** + * Sets listbox observer. + * + * @since S60 v3.2 + * @param aObserver listbox observer + */ + void SetListBoxObserver( MEikListBoxObserver* aObserver ); + + + /** + * Hides dialog wait note + * + * @since S60 v3.2 + * @param aIndex index of plugin + */ + void HideDialogWaitNote(); + + + /** + * Launches cleanup plugin to remove settings. + * + * @since S60 v3.2 + * @param aServiceId for service to be removed. + */ + void LaunchCleanupPluginL( TUint aServiceId ) const; + + + /** + * Resolve service id from service plugin uid + * + * @since S60 v3.2 + * @param aUid service plugin uid + * @param aServiceId service id stored here + */ + void ResolveServiceIdL( const TUid& aUid, TUint& aServiceId ); + + + // from base class CCoeControl + + /** + * From CCoeControl + * Offer key events for controls. + * + * @since S60 v3.0 + * @param aKeyEvent for pressed key + * @param aType for type of press + * @return ETrue if consumed + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ); + + /** + * From CCoeControl + * Returns component controls. + * + * @since S60 v3.0 + * @param aIndex for index + * @return control of the component + */ + CCoeControl* ComponentControl( TInt aIndex ) const; + + + /** + * From CCoeControl + * Handle pointer event. + * + * @since S60 v3.0 + * @param aPointerEvent pointer event + */ + void HandlePointerEventL( const TPointerEvent& aPointerEvent ); + + + // from base class MCSCEngCCHObserver + + /** + * From MCSCEngCCHObserver. + */ + void ServiceStatusChanged( + TUint aServiceId, + TCCHSubserviceType aType, + const TCchServiceStatus& aServiceStatus ); + + + protected: + + // from base class CCoeControl + + /** + * From CCoeControl + * Handles controls size changes + * + * @since S60 v3.0 + */ + void SizeChanged(); + + + /** + * From CoeControl + * Handles focus changes + * + * @since S60 v3.0 + * @param aDrawNow for drawing event + */ + virtual void FocusChanged( TDrawNow aDrawNow ); + + + /** + * From CoeControl + * Counts components controls + * + * @since S60 v3.0 + * @return returns number of controls + */ + TInt CountComponentControls() const; + + + /** + * From CCoeControl + * For getting help context + * + * @since S60 v3.0 + * @param aContext + */ + void GetHelpContext( TCoeHelpContext& aContext ) const; + + + /** + * From MEikMenuObserver + */ + void SetEmphasis( CCoeControl* /*aMenuControl*/, TBool /*aEmphasis*/ ){}; + + + /** + * From MEikMenuObserver + */ + void ProcessCommandL( TInt /*aCommandId*/ ){}; + + private: + + CCSCServiceContainer( + MCSCServiceContainerObserver& aContainerObserver, + CCSCEngServicePluginHandler& aServicePluginHandler, + CCSCEngUiExtensionPluginHandler& aUiExtensionPluginHandler, + CCSCEngServiceHandler& aServiceHandler, + CCSCEngBrandingHandler& aBrandingHandler, + CCSCEngCCHHandler& aCCHHandler ); + + + void ConstructL( const TRect& aRect ); + + + /** + * Sets icons for listbox items. + * + * @since S60 v3.2 + * @param aListBoxItem lisbox item + * @param aIconArray icon array + * @param aIconSize icon size in pixels + */ + void SetIconL( const TListBoxItem& aListBoxItem, + CArrayPtr* aIconArray, TInt aIconSize ); + + + /** + * Cleanup RImplInfoPtrArray + * @since S60 3.2 + * @param aArray Which to be destroyed + */ + static void ResetAndDestroy( TAny* aArray ); + + + private: // data + + /** + * Reference to MCSCServiceContainerObserver + */ + MCSCServiceContainerObserver& iContainerObserver; + + /** + * Reference to CCSCServicePluginHandler + */ + CCSCEngServicePluginHandler& iServicePluginHandler; + + /* + * Reference to CCSCUiExtensionPluginHandler + */ + CCSCEngUiExtensionPluginHandler& iUiExtensionPluginHandler; + + /* + * Reference to CCSCEngServiceHandler + */ + CCSCEngServiceHandler& iServiceHandler; + + /** + * Reference to CCSCEngBrandingHandler + */ + CCSCEngBrandingHandler& iBrandingHandler; + + /** + * Reference to CCSCEngCCHHandler + */ + CCSCEngCCHHandler& iCCHHandler; + + /* + * Pointer to listbox + * Own. + */ + CAknDouble2LargeStyleListBox* iListBox; + + /* + * Pointer to listbox item array + * Own. + */ + CDesCArrayFlat* iArray; + + /* + * Pointer to listbox item array + * Own. + */ + CDesCArray* iListBoxItems; + + /** + * A Global wait note for removing service. + */ + CCSCDialog* iDialog; + + /** + * Menubar. + * Own. + */ + CEikMenuBar* iEikMenuBar; + + /* + * Array for identifying different type listbox items + */ + RArray iListBoxItemArray; + + /** + * Ui extension plug-in count + */ + TUint iUiExtensionCount; + + /** + * Pen down point + */ + TPoint iPenDownPoint; + + /** + * Holds current listbox item height + */ + TInt iListBoxItemHeight; + +#ifdef _DEBUG + friend class UT_CSC; +#endif + +}; + +#endif // C_CSCSERVICECONTAINER_H