mmsharing/mmshui/inc/musuinavimediadecorator.h
branchRCL_3
changeset 33 bc78a40cd63c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/mmshui/inc/musuinavimediadecorator.h	Wed Sep 01 12:31:01 2010 +0100
@@ -0,0 +1,216 @@
+/*
+* Copyright (c) 2005 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: 
+*
+*/
+
+
+
+#ifndef MUSUINAVIMEDIADECORATOR_H
+#define MUSUINAVIMEDIADECORATOR_H
+
+#include "musuidefinitions.h"
+#include "musuinavimediaanimatorobserver.h"
+
+#include <coecntrl.h>
+#include <AknUtils.h>
+
+class CAknIconArray;
+class CMusUiNaviMediaAnimator;
+class MAknsSkinInstance;
+
+/**
+ * CMusUiNaviMediaDecorator
+ *
+ * @lib musui.exe
+ */
+class CMusUiNaviMediaDecorator : public CCoeControl, 
+                                 public MMusUiNaviMediaAnimatorObserver
+    {
+
+	public:  // constructors and destructor
+
+	    /**
+	     * Two-phased constructor.
+	     *
+	     */
+	    static CMusUiNaviMediaDecorator* NewL();
+
+	    /**
+	     * 
+	     *
+	     */
+	    virtual ~CMusUiNaviMediaDecorator();
+
+
+	private: // constructors
+
+	    /**
+	     * C++ default constructor.
+	     *
+	     */
+	    CMusUiNaviMediaDecorator();
+
+	    /**
+	     * By default Symbian second-phase constructor is private.
+	     *
+	     */
+	    void ConstructL();
+
+
+	public: // API
+
+	    /**
+	     * Updates left label (usually time string) in navi pane.
+		 *
+	     * @param aLabel New label
+	     */
+	    void SetLeftLabelL( const TDesC& aLabel );
+
+	    /**
+	     * Updates right label (usually time string) in navi pane.
+		 *
+	     * @param aLabel New label
+	     */
+	    void SetRightLabelL( const TDesC& aLabel );
+	    
+		/**
+		* Selects icon show
+		*
+		*/
+		void ShowIcon( TMusUiNaviMediaDecorator aIcon );
+
+
+	protected: // from MMusUiNaviMediaAnimatorObserver
+	
+        void SetIcon( CGulIcon* aIcon );
+
+
+	protected: // from CCoeControl
+
+	    /**
+	     * Handles the size change events.
+	     *
+	     */
+	    void SizeChanged();
+
+	    /**
+	     * Draws the control.
+	     *
+	     * @param aRect The region of the control to be redrawn.
+	     */
+	    void Draw( const TRect& aRect ) const;
+
+
+	private: // HELPERS 
+	
+	    /**
+	     * Layouts the text depending on current situation.
+	     *
+	     */
+		void DoLayoutText();
+
+
+        void LoadImagesL();
+
+        void  ConstructImageL( MAknsSkinInstance* aSkin,
+                                                const TAknsItemID& aId,
+                                                TInt aBitmapId,
+                                                TInt aMaskId,
+                                                TParse parse,
+                                                TBool aIconHasOwnColor = ETrue);
+
+
+	private: // DATA
+
+	    /**
+	    *
+	    *
+	    */
+	    HBufC* iLeftLabel;
+
+	    /**
+	    *
+	    *
+	    */
+	    HBufC* iRightLabel;
+
+
+        CAknLayoutFont *iFont;
+
+	    /**
+	    *
+	    *
+	    */
+	    TAknLayoutText iLeftTextLayout;
+
+	    /**
+	    *
+	    *
+	    */
+	    TAknLayoutText iRightTextLayout;
+
+	    /**
+	    *
+	    *
+	    */
+	    TAknLayoutRect iIconLayout;    
+	    
+	    /**
+	    *
+	    *
+	    */
+	    CAknIconArray* iIconArray;
+	    
+	    /**
+	    *
+	    *
+	    */
+	    TInt iMiddle;
+	    
+	    TInt iIconLeft;
+	    
+	    /**
+	    *
+	    *
+	    */
+	    TSize iLeftTextSize;
+
+	    /**
+	    *
+	    *
+	    */
+	    TSize iRightTextSize;
+	    
+	    /**
+	    *
+	    *
+	    */
+	    CGulIcon* iIcon;
+	    
+	    /**
+	    * resource file location ( eq. Z or C )
+	    */
+        TBool iResourceRam;
+	    
+    
+        CMusUiNaviMediaAnimator* iAnimation;
+        
+        TSize iImageSize;
+    
+    };
+
+#endif // MUSUINAVIMEDIADECORATOR_H
+
+// end of file