diff -r 3104fc151679 -r 9a48e301e94b uiservicetab/vimpstdetailsviewplugin/inc/cvimpstdetailsheadercontrol.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpstdetailsviewplugin/inc/cvimpstdetailsheadercontrol.h Wed Sep 01 12:33:36 2010 +0100 @@ -0,0 +1,198 @@ +/* +* Copyright (c) 2008-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 the header part control(s) of the details view layout +* +*/ + + +#ifndef CVIMPSTDETAILSHEADERCONTROL_H +#define CVIMPSTDETAILSHEADERCONTROL_H + +// INCLUDES +#include +#include + +// FORWARD DECLARATIONS +class CEikImage; +class CEikLabel; +class CVIMPSTDetailsViewBrandHandler; +class MVPbkStoreContact; +class MVPbkStoreContactField; +class CVIMPSTDetailsImageDecoder; +class MVIMPSTDetailsPresenceHandler; + +// CLASS DECLARATION +/** + * Class implementing the header part control of vimpstdetailsviewplugin + * + * @lib vimpstdetailsviewplugin.dll + * @since S60 v5.0 + */ + +class CVIMPSTDetailsHeaderControl : public CCoeControl + { +public: + // Construction & destruction + /** + * Two-phased constructor + * @param aBrandHandler, Reference to brand handler class + * @param aPresenceHandler , reference presence handler + * @return a instance of this class + * @since S60 v5.0 + */ + static CVIMPSTDetailsHeaderControl* NewL(CVIMPSTDetailsViewBrandHandler& aBrandHandler, + MVIMPSTDetailsPresenceHandler& aPresenceHandler ); + + /** + * Destructor. + * @since S60 v5.0 + */ + ~CVIMPSTDetailsHeaderControl(); + +public: // FROM CCoeControl + // Functions from base classes + /** + * From CCoeControl + * Component control handling (compound control) + * @since S60 v5.0 + */ + TInt CountComponentControls() const; + + /** + * From CCoeControl + * Component control handling (compound control) + * @since S60 v5.0 + */ + CCoeControl* ComponentControl(TInt aIndex) const; + + /** + * From CoeControl + * Called by framework when the view size is changed. + * @since S60 v5.0 + */ + void SizeChanged(); + + /** + * From CoeControl + * Overridden to set the container window for child controls + * @since S60 v5.0 + */ + void SetContainerWindowL(const CCoeControl& aContainer); + + /** + * Sets the bitmap shown in the header image + * Ownership is transferred + * + * @param aBmp The bitmap + * @param aMask The bitmap mask + * @since S60 v5.0 + */ + void SetBitmap(CFbsBitmap* aBmp, CFbsBitmap* aMask ); + + /** + * Clears the texts & the image + * @since S60 v5.0 + */ + void ClearL(); + +public: + + + /** + * create the presentation for given contact + * @param aContactStore the contact store + * @since S60 v5.0 + */ + void CreateHeaderPresentationL( MVPbkStoreContact& aContact ); + + /** + * Helper function for the leaving part of changing labels size + * @since S60 v5.0 + */ + void LabelsSizeChangedL(); + /** + * Helper function for changing avatar icon in the header + * @since S60 v5.0 + */ + void HeaderSizeChangedL(); + +private: + + /** + * Constructor for performing 1st stage construction + * @param aBrandHandler , reference brand handlere + * @param aPresenceHandler , reference presence handler + * @since S60 v5.0 + */ + CVIMPSTDetailsHeaderControl(CVIMPSTDetailsViewBrandHandler& aBrandHandler, + MVIMPSTDetailsPresenceHandler& aPresenceHandler ); + + /** + * Constructor for performing 2nd stage construction + * @since S60 v5.0 + */ + void ConstructL(); + + +private: // data member + + /** + * not Owned : The label controls + */ + CVIMPSTDetailsViewBrandHandler& iBrandHandler; + + /** + * Not owned : reference to presence handler + */ + MVIMPSTDetailsPresenceHandler& iPresenceHandler; + + + /** + * Owns : The image control + */ + CEikImage* iImage; + + /** + * Owns : The bitmap + */ + CFbsBitmap* iBitmap; + + /** + * Owns : The mask + */ + CFbsBitmap* iMask; + + /** + * Owns : The label controls + */ + RPointerArray iLabels; + + + + /** + * Owns : virtual pbk field + */ + MVPbkStoreContactField* iHeaderField; + + /** + * Owns : image decoder + */ + CVIMPSTDetailsImageDecoder* iImageDecoder; + + TSize iContactImageSize; + + + }; + +#endif // CVIMPSTDETAILSHEADERCONTROL_H