diff -r 3104fc151679 -r 9a48e301e94b uiservicetab/vimpstdetailsviewplugin/inc/cvimpstdetailsviewcontainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpstdetailsviewplugin/inc/cvimpstdetailsviewcontainer.h Wed Sep 01 12:33:36 2010 +0100 @@ -0,0 +1,254 @@ +/* +* Copyright (c) 2008 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: Implementation of detailsview plugin control container + * +*/ + + +#ifndef CVIMPSTDETAILSVIEWCONTAINER_H +#define CVIMPSTDETAILSVIEWCONTAINER_H + +// INCLUDES +#include +#include +#include +#include "cvimpstdetailscontacthandler.h" + +// forward declaration +class CVIMPSTDetailsViewListBoxModel; +class CVIMPSTDetailsViewBrandHandler; +class CVIMPSTDetailsHeaderControl; +class MEikListBoxObserver; +class CAknsBasicBackgroundControlContext; +class RResourceFile; +class MVIMPSTDetailsPresenceHandler; +class MVPbkStoreContact; + +// CLASS DECLARATION + +/** + * Class implementing CCCAppViewPluginAknContainer interface from cca. This is + * this class is responsible for creating the control to show + * this creates the two control , one is header and another is list box + * + * @lib vimpstdetailsviewplugin.dll + * @since S60 v5.0 + */ + +class CVIMPSTDetailsViewContainer : public CCCAppViewPluginAknContainer, + public MEikListBoxObserver +{ +public: + + /** + * Constructor. This is called from plugin class NewContainerL. + * @param aPluginUid, plugin uid + * @param aBrandHandler, reference to brand handler + * @param aLaunchParameter, reference to presence handler + * @param aFocusedListIndex, field index to focus + */ + CVIMPSTDetailsViewContainer(const TUid& aPluginUid, + CVIMPSTDetailsViewBrandHandler& aBrandHandler , + MVIMPSTDetailsPresenceHandler& aPresenceHandler, + TInt aFocusedListIndex ); + + /** + * Destructor. + */ + virtual ~CVIMPSTDetailsViewContainer(); + +public: // from base class CCCAppViewPluginAknContainer + + /** + * From CCoeControl + * (see details from baseclass ) + * @param aRect, a rect layout + */ + void Draw( const TRect& aRect ) const; + + /** + * From CCoeControl + * (see details from baseclass ) + */ + virtual void SizeChanged(); + + + /** + * From CCoeControl + * (see details from baseclass ) + * @param aId, object type uid + */ + TTypeUid::Ptr MopSupplyObject( TTypeUid aId ); + + /** + * From CCoeControl + * (see details from baseclass ) + * @param aDrawNow, reference to draNow class + */ + void FocusChanged( TDrawNow aDrawNow ); + + + /** + * From CCCAppViewPluginAknContainer. + * (see baseclass for details) + * @return control count + * @since S60 v5.0 + */ + TInt CountComponentControls() const; + + /** + * From CCCAppViewPluginAknContainer. + * (see baseclass for details) + * @param aIndex, index of control + * @return selected control + * @since S60 v5.0 + */ + CCoeControl* ComponentControl(TInt aIndex) const; + + /** + * From CCCAppViewPluginAknContainer. + * (see baseclass for details) + * @param aKeyEvent, a event + * @param aType, a event type + * @return key response + * @since S60 v5.0 + */ + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType); + + /** + * From CCoeControl + * (see details from baseclass ) + * @param aContext, a reference to help context + */ + void GetHelpContext(TCoeHelpContext& aContext) const; + + /** + * From MEikListBoxObserver + * (see details from baseclass ) + * @param aListBox, a pointer to list box + * @param aEventType, alist box event type + */ + void HandleListBoxEventL( CEikListBox *aListBox, TListBoxEvent aEventType ); + +public: + + /** + * Helper function to get listbox. + * + * @see CAknDoubleStyleListBox + * @since S60 5.0 + * @return reference to listbox object. + */ + CAknFormDoubleGraphicStyleListBox& ListBox() const; + + /** + * Helper function to get (temporary) listbox model. + * + * @see CVIMPSTDetailsViewListBoxModel + * @since S60 5.0 + * @return reference to listbox model object. + */ + CVIMPSTDetailsViewListBoxModel& ListBoxModel() const; + + /** + * called from plugin + * notification call back from presence handler about presence change + * @since s60 v5.0 + */ + void PresenceChangedL() ; + + /** + * contact retrived + * @param aContact, a contact fetched from store + */ + void CreatePresentationL( MVPbkStoreContact& aContact,TDesC& aServiceName,TStoreType aStoreType ) ; + + /** + * show no data in view + */ + void CreateEmptyPresentationL() ; + + /** + * create the title text based on service store typoe + * @param aStoreType, store type + * object is pushed on clean up stack if valid + * @return HBufC pointer , Ownership is given to caller + */ + HBufC* GetTitleTextLC( TStoreType aStoreType ); + +private: + + + // Called by ccapplication framework + void ConstructL(); + + /** + * See more details from CCoeControl. + * @param aType, resource type + */ + void HandleResourceChange(TInt aType); + + +private: // data + + /** + * not owns : Reference to plugin uid. + */ + const TUid& iPluginUid; + + /** + * not owns : Reference to barnd handler + */ + CVIMPSTDetailsViewBrandHandler& iBrandHandler; + + /** + * not Owns : reference to presence + */ + MVIMPSTDetailsPresenceHandler& iPresenceHandler; + + /** + * owns : pointer to the list box + */ + CAknFormDoubleGraphicStyleListBox* iListBox; + + /** + * owns : pointer to the list box model + */ + CVIMPSTDetailsViewListBoxModel* iListBoxModel; + + /** + * owns : Reference to plugin uid. + */ + CVIMPSTDetailsHeaderControl* iHeaderCtrl; + + /** + * owns : pointer to background context + */ + CAknsBasicBackgroundControlContext* iBackground; + + /** + * Owns : focus field index in the display list + */ + TInt iFocusedListIndex; + + /** + * owns : resource files + */ + RResourceFile iResourceFile; + + }; + +#endif // CVIMPSTDETAILSVIEWCONTAINER_H + +// End of File