diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/inc/ccappcommlauncherheadercontrol.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/inc/ccappcommlauncherheadercontrol.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,284 @@ +/* +* 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: The header part control(s) of the commlauncher plugin UI +* +*/ + + +#ifndef CCCAPPCOMMLAUNCHERHEADERCONTROL_H +#define CCCAPPCOMMLAUNCHERHEADERCONTROL_H + +// INCLUDES +#include +#include "ccappcommlauncherheaders.h" + +// FORWARD DECLARATIONS +class CEikImage; +class CEikLabel; +class CCCAppCommLauncherImageDecoding; +class CCCAppCommLauncherHeaderTextOrder; +class CAknStylusPopUpMenu; +class CCCAppCommLauncherPbkCmd; + +// CLASS DECLARATION +/** + * Class implementing the header part control of commlauncherplugin + * + * @code + * ?good_class_usage_example(s) + * @endcode + * + * @lib ccappcommlauncherplugin.dll + * @since S60 v5.0 + */ +class CCCAppCommLauncherHeaderControl : public CCoeControl, public MEikMenuObserver + { +public: + // Construction & destruction + /** + * Two-phased constructor. + */ + static CCCAppCommLauncherHeaderControl* NewL( CCCAppCommLauncherPlugin& aPlugin ); + + /** + * Destructor. + */ + ~CCCAppCommLauncherHeaderControl(); + + // Functions from base classes + /** + * From CCoeControl + * Component control handling (compound control) + */ + TInt CountComponentControls() const; + + /** + * From CCoeControl + * Component control handling (compound control) + */ + CCoeControl* ComponentControl(TInt aIndex) const; + + /** + * From CoeControl + * Called by framework when the view size is changed. + */ + void SizeChanged(); + + /** + * From CoeControl + * Overridden to set the container window for child controls + */ + void SetContainerWindowL(const CCoeControl& aContainer); + + /** + * From CoeControl + * Overridden to receive pointer events + */ + void HandlePointerEventL(const TPointerEvent& aPointerEvent); + + /** + * Contact data info is given through this + */ + void ContactInfoFetchedNotifyL( + const CCmsContactFieldInfo& aContactFieldInfo ); + + /** + * Contact data is given through this + */ + void ContactFieldFetchedNotifyL( + const CCmsContactField& aContactField ); + + /** + * Notification of completed fetching is given through this + */ + void ContactFieldFetchingCompletedL(); + + /** + * Sets the bitmap shown in the header image + * Ownership is transferred + * + * @param aBmp The bitmap + */ + void SetBitmap(CFbsBitmap* aBmp); + + /** + * Clears the texts & the image + */ + void ClearL(); + + /** + * Set contact store information + * @param aContactStore the contact store + */ + void SetContactStoreL(TCmsContactStore aContactStore); + + /** + * From CCoeControl + * (see details from baseclass ) + */ + TKeyResponse OfferKeyEventL( + const TKeyEvent& aKeyEvent, TEventCode aType); + +public: // MEikMenuObserver + virtual void ProcessCommandL(TInt aCommandId); + virtual void SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis); + +private: + + /** + * Constructor for performing 1st stage construction + */ + CCCAppCommLauncherHeaderControl( CCCAppCommLauncherPlugin& aPlugin ); + + /** + * Constructor for performing 2nd stage construction + */ + void ConstructL(); + + /** + * Helper function for the leaving part of changing labels size + */ + void LabelsSizeChangedL(); + + /** + * Updates the number/address popup + */ + void UpdatePopupL(); + + /** + * Converts point's relative coordinaters into absolute screen coordinates + */ + void PosToScreenCoordinates( CCoeControl* aControl, TPoint& aPos ); + + /** + * Launches contact image selection stylus popup menu + */ + void LaunchStylusPopupL( const TPointerEvent& aPointerEvent ); + + /** + * Launches view image command + */ + void DoViewImageCmdL(); + + /** + * Launches change image command + */ + void DoChangeImageCmdL(); + + /** + * Launches remove image command + */ + void DoRemoveImageCmdL(); + + /** + * Launches add image command + */ + void DoAddImageCmdL(); + + /** + * Does the configuration contain phone memory + */ + TBool IsPhoneMemoryInConfigurationL(); + + /** + * Displays contact image if available + */ + void ProcessContactImageDisplayL(); + + /** + * The image control + * Own. + */ + CEikImage* iImage; + + /** + * The bitmap + * Own. + */ + CFbsBitmap* iBitmap; + CFbsBitmap* iMask; + + /** + * The label controls + * Own. + */ + RPointerArray iLabels; + + /** + * Active listener to make asynchronic operation synchronic + * Own. + */ + CCCAppCommLauncherImageDecoding* iImageDecoding; + + /** + * Helper for ordering the texts + * Own. + */ + CCCAppCommLauncherHeaderTextOrder* iTextOrder; + + /** + * Contact image selection stylus popup menu + * Own. + */ + CAknStylusPopUpMenu* iImageSelectionPopup; + + /** + * Contact image selection stylus popup menu position + * + */ + TPoint iPos; + + /** + * Contact has an image + * + */ + TBool iHasContactImage; + + /** + * Command launcher to start Pbk commands + * Own + */ + CCCAppCommLauncherPbkCmd* iPbkCmd; + + /** + * Ref to plugin. + * Not own. + */ + CCCAppCommLauncherPlugin& iPlugin; + + /** + * Pointers to contact fields. + * Pointed contact fields not own. + */ + RArray iCmsContactFields; + + /** + * Contact image size + */ + TSize iContactImageSize; + + /** + * Contact image path + * Own + */ + HBufC* iContactImageFullName; + + /** + * Contact thumbnail data + * Own + */ + HBufC8* iContactThumbnailData; + }; + +#endif // CCCAPPCOMMLAUNCHERHEADERCONTROL_H