mmuifw_plat/mul_coverflowwidget_api/inc/mul/imulcoverflowwidget.h
branchRCL_3
changeset 26 0e9bb658ef58
parent 0 e83bab7cf002
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmuifw_plat/mul_coverflowwidget_api/inc/mul/imulcoverflowwidget.h	Wed Sep 01 12:23:18 2010 +0100
@@ -0,0 +1,169 @@
+/*
+* Copyright (c) 2007 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 interface class for all Multimedia UI Library Cover Flow Widgets.
+ *
+*/
+
+#ifndef I_MULCOVERFLOWWIDGET_H
+#define I_MULCOVERFLOWWIDGET_H
+
+#include <alf/ialfinterfacebase.h>
+#include <alf/alftypes.h>
+#include <mul/imulmultiitemwidget.h>
+#include <gdi.h>
+#include <AknsItemID.h>
+
+//Gesture Helper namespace 
+namespace GestureHelper
+    {
+    class CGestureHelper;
+    }
+    
+namespace Alf
+	{
+	namespace mulcoverflowwidget
+	    {
+	    static const IfId Ident=
+	    	{
+	    	0, "mulcoverflowwidget"
+	        };      
+		}
+
+	/**
+	 *  An interface for Multimedia coverflow Widget.
+	 *  Widgets consist of control and visualization elements.
+	 * 	
+	 *	Interface paradigm would be used in a restrictive way.
+	 *  Controls are owned by Alfred environment.
+	 *  Widgets can be constructed using the widget factory.
+	 *  Widgets are owned and accessed using the Alfred
+	 *  environment.
+	 *
+	 *  @lib mulcoverflowwidget.lib
+	 */
+    class IMulCoverFlowWidget : public IMulMultiItemWidget
+    	{
+    public:
+
+		/**
+		 * Getter for the type identifier of this interface.
+		 *
+		 * @return A descriptor to identify the type of this interface.
+		 **/
+        static inline const IfId& Type()
+        	{
+        	return mulcoverflowwidget::Ident;
+        	}
+		
+        /**
+         * Setting color as background of the coverflow.
+         * The API should be used in the case when the background type doesn't 
+         * comes along with any extra data. This API should be used when the 
+         * background has to set to Black, White or any other color
+         *
+         * @param aColor RGB color
+         *
+         * <B>Examples:</b>
+         * @code
+         * Set background of the coverflow as red color.
+         *
+         *     mCoverFlowWidget->SetBackground( KRgbRed );
+         * @endcode
+         **/ 
+        virtual void SetBackground( const TRgb& aColor ) = 0;
+
+        /**
+         * Setting Skin id as background of the coverflow.
+         * The API should be used in the case when the background of
+         * Coverflow should come from skin data.
+         *
+         * @param aItemID Skin ID.
+         *
+         * <B>Examples:</b>
+         * @code
+         * Set background of the coverflow as a texture.
+         *
+         *     mCoverFlowWidget->SetBackground( KAknsIIDQsnBgScreenIdle );
+         * 
+         * @endcode
+         **/ 
+        virtual  void SetBackground(const TAknsItemID& aItemID ) = 0;
+        
+		/**
+		 * Setting UIOnOff mode in template4 of the coverflow.
+		 * The API should be in template 4 to hide or show counter as per UI ON/OFF mode.
+		 *
+		 * @param aUIOn true if UIOn mode and counter to be displayed, else false for UIOff.
+		 * @param aTransition transition time to show or hide counter.
+
+		 * <B>Examples:</b>
+		 * @code
+		 * Set UiOnOff mode in coverflow widget. 
+		 *
+		 *     mCoverFlowWidget->SetUIOnOFF( true, 100 );
+		 * 
+		 * @endcode
+		 **/
+        virtual  void SetUIMode(bool aUIOn = false, int aTransition = 0 ) = 0;  
+        
+		/**
+		 * Rotate the highlight image
+		 * The API is supported in template 4(fullscreen templet) to rotate the highlight image as per the 
+		 * direction specified in the param.
+		 * This will rotate the image 90 degree on left or right side.
+		 *
+		 * @param aDirection, Direction of the rotation (ERotateLeft/ERotateRight).
+		 * @param aImageSize, The actual size of the current highlighted image.
+		 * @param aTransition transition time to rotate the image.
+
+		 * <B>Examples:</b>
+		 * @code
+		 * Rotate the highlight image of the coverflow widget. 
+		 *
+		 *     mCoverFlowWidget->RotateImage( IMulWidget::ERotateLeft,TSize(500,400),100 );
+		 * 
+		 * @endcode
+		 **/
+        virtual  void RotateImage(TMulRotation aDirection ,TSize aImageSize,int aAnimationTime) = 0;     
+        
+		/**
+		 * Returns the gesture helper used in coverflow.
+		 * This API is required for sharing the gesture helper between the widget and application.
+		 * The ownership of the gesture helper lies with the widget.
+		 *
+		 * @return CGestureHelper Instance of gesture helper created by the widget.
+
+		 * <B>Examples:</b>
+		 * @code
+		 * Query the gesture helper and use it in application
+		 *
+		 *     CGestureHelper* gestureInstance = mCoverFlowWidget->Gesturehelper();
+		 *     gestureInstance->addObserver(*this);
+		 * 
+		 * @endcode
+		 **/
+        virtual  GestureHelper::CGestureHelper* Gesturehelper() = 0;   
+                     
+     
+		/** 
+		 * Virtual destructor. 
+		 **/
+		virtual ~IMulCoverFlowWidget()
+			{
+			}
+		};
+
+	} // namespace Alf
+
+#endif // I_MULCOVERFLOWWIDGET_H