phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/inc/ccappcommlauncherheadercontrol.h
changeset 0 e686773b3f54
child 3 04ab22b956c2
--- /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 <eikmobs.h>
+#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<CEikLabel> 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<CCmsContactField> iCmsContactFields;
+    
+    /** 
+      * Contact image size 
+      */ 
+    TSize iContactImageSize;
+    
+    /** 
+      * Contact image path
+      * Own
+      */ 
+    HBufC* iContactImageFullName;
+
+    /** 
+      * Contact thumbnail data
+      * Own
+      */ 
+    HBufC8* iContactThumbnailData;
+    };
+
+#endif // CCCAPPCOMMLAUNCHERHEADERCONTROL_H