photosgallery/viewframework/visuallistmanager/inc/mglxvisuallist.h
changeset 0 4e91876724a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/viewframework/visuallistmanager/inc/mglxvisuallist.h	Thu Dec 17 08:45:44 2009 +0200
@@ -0,0 +1,199 @@
+/*
+* Copyright (c) 2008-2009 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:    Interface to visual list
+*
+*/
+
+
+
+
+/**
+ * @internal reviewed 04/07/2007 by M Byrne
+ */
+
+#ifndef M_GLXVISUALLIST_H
+#define M_GLXVISUALLIST_H
+
+#include <glxid.h>
+#include <glxlistdefs.h>
+#include "glxiconmgrdefs.h"
+
+class CGlxVisualObject;
+class MGlxLayout;
+class MGlxVisualListObserver;
+class CAlfControlGroup;
+class CAlfTexture;
+class CAlfVisual;
+
+class TGlxVisualListIdBase {}; 
+typedef TGlxId<TGlxVisualListIdBase> TGlxVisualListId;
+
+/**
+ * View Context id
+ */ 
+class TGlxIdViewContextBase {}; // Don't use this. This is just to make TGlxId concrete
+typedef TGlxId<TGlxIdViewContextBase> TGlxViewContextId; // Use this
+
+
+
+/**
+ *  MGlxVisualList
+ * 
+ *  Interface to a visual list.
+ *  Used to separate the data model from layout and key handling controls.
+ *
+ * @author Aki Vanhatalo
+ */
+class MGlxVisualList
+	{
+public:
+	/**
+	 * @returns the id of the list
+	 */
+	virtual TGlxVisualListId Id() const = 0;
+
+	/**
+	 * @returns a visual by list index
+	 */	
+	virtual CAlfVisual* Visual(TInt aListIndex) = 0;
+
+    /**
+     * @returns a visual item by list index
+     */	
+    virtual CGlxVisualObject* Item(TInt aListIndex) = 0;
+
+	/**
+	 * @returns the count of visuals in window
+	 */	
+	virtual TInt ItemCount(NGlxListDefs::TCountType aType = NGlxListDefs::ECountAll) const = 0; 
+
+	/**
+	 * @returns the focus index
+	 */	
+	virtual TInt FocusIndex() const = 0; 
+
+	/**
+	 * @returns the control group for the visual list
+	 *			The layout/eventhandler controls should add themselved 
+	 *			to this same group. View should show this group when
+	 * 			it is activated and hide it when it is deactivated.
+	 */
+	virtual CAlfControlGroup* ControlGroup() const = 0;
+
+	/**
+	 * Add/remove an observer
+	 */
+    virtual void AddObserverL(MGlxVisualListObserver* aObserver) = 0;
+	virtual void RemoveObserver(MGlxVisualListObserver* aObserver) = 0;
+	
+	/**
+	 * Add a layout 
+	 * The layout is used when layout out the visuals owned by the
+	 * MViuVisualOwner-derived class (or its helper)
+	 */
+	virtual void AddLayoutL(MGlxLayout* aLayout) = 0;
+		
+	/**
+	 * Remove an existing layout
+	 */
+	virtual void RemoveLayout(const MGlxLayout* aLayout) = 0;
+	
+    /**
+     * Defines a context in terms of range offsets
+     *
+     * @param aFrontVisibleRangeOffset The front offset to focus for items that are 
+     *								   visible in the UI. Must be less or equal to 0.
+     * @param aRearVisibleRangeOffset  The front offset to focus for items that are 
+     *								   visible in the UI. Must be greater or equal to 0. 
+     * @returns Unique id of the context
+     */
+	virtual TGlxViewContextId AddContextL(TInt aFrontVisibleRangeOffset, 
+		TInt aRearVisibleRangeOffset) = 0;
+
+    /**
+     * Removes an existing view context. Forwards the request to List Reader.
+     * If you are relying on the visual owner control, use this function to 
+     * remove a context instead of calling the list reader directly.
+     *
+     * @param aContextId Id of the context to be removed
+     */
+	virtual void RemoveContext(const TGlxViewContextId& aContextId) = 0;
+		
+	/**
+	 * Navigate either forward or backward
+	 * @param aIndexCount amount of indexes to navigate
+	 *		  			  if positive, navigates forward
+	 *					  if negative, navigates backward
+	 */
+ 	virtual void NavigateL(TInt aIndexCount) = 0;
+ 	
+ 	/**
+ 	 * @returns size of the control area
+ 	 */
+ 	virtual TSize Size() const = 0;
+ 	
+ 	/**
+ 	 * Brings the visuals to the front of the display
+ 	 */
+ 	virtual void BringVisualsToFront() = 0;
+ 	
+    /**
+     * Start or stop animation of given item, if animation available
+     * @param aAnimate If true, starts the animation if availble; if false, stops it
+     * @param aIndex Index of the item to animate
+     */
+    virtual void EnableAnimationL(TBool aAnimate, TInt aIndex) = 0;
+    
+    /**
+     * Specifies whether the visual list shows default icons or not
+     * @param aEnable true to show the default icons, false to not show
+     */
+    virtual void SetDefaultIconBehaviourL( TBool aEnable ) = 0;
+    
+    /**
+    * Add icon to specified visual
+    * @param aListIndex position in list
+    * @param aTexture texture of icon to apply
+    * @param aIconPos position of icon (centred or relative to a specific corner)
+    * @param aForeground foreground or background icon
+    * @param aStretch ETrue if icon is scaled to visual, EFalse if texture is fixed size
+    * @param aBorderMargin margin from specified corner
+    * @param aWidth width for anchor when icon is stretched
+    * @param aHeight height for anchor when icon is stretched
+    */
+    virtual void AddIconL( TInt aListIndex, const CAlfTexture& aTexture, 
+            NGlxIconMgrDefs::TGlxIconPosition aIconPos,
+            TBool aForeground, TBool aStretch,  TInt aBorderMargin,
+            TReal32 aWidth = 1.0, TReal32 aHeight = 1.0 ) = 0;
+            
+    /**
+    * Remove icon from specified visual
+    * @param aListIndex position in list
+    * @param aTexture texture of icon to remove
+    * @return ETrue if texture was present
+    */
+    virtual TBool RemoveIcon( TInt aListIndex, const CAlfTexture& aTexture ) = 0;
+    
+    /**
+    * Hide or show icon if required
+    * @param aListIndex position in list
+    * @param aTexture texture of icon
+    * @param aVisible Set hidden or show
+    */
+    virtual void SetIconVisibility( TInt aListIndex, const CAlfTexture& aTexture, 
+                                                        TBool aVisible ) = 0;
+	};
+	
+	
+#endif // M_GLXVISUALLIST_H