photosgallery/viewframework/visuallistmanager/inc/glxvisuallistmanager.h
author Simon Howkins <simonh@symbian.org>
Mon, 29 Nov 2010 11:47:03 +0000
branchRCL_3
changeset 78 dbcb928abe9c
parent 0 4e91876724a2
permissions -rw-r--r--
Adjusted to avoid exports, etc, from a top-level bld.inf

/*
* 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:    Manager of visual lists
*
*/





/**
 * @internal reviewed 04/07/2007 by M Byrne
 */

#ifndef C_GLXVISUALLISTMANAGER_H
#define C_GLXVISUALLISTMANAGER_H

#include <alf/alfimagevisual.h>

class MGlxVisualList;
class CGlxVisualListControl;
class MGlxMediaList;
class CAlfEnv;
class CAlfDisplay;

/**
 *  MGlxVisualListManager
 * 
 *  Manager of lists of visuals
 *
 * @author Aki Vanhatalo
 */
class CGlxVisualListManager : public CBase
	{
public:
    /*
     * @return pointer to instance of visual list manager
     */
	IMPORT_C static CGlxVisualListManager* ManagerL();
	
	/**
	  * Close visual list manager
	  */
	IMPORT_C void Close();
	
	/**
	  * Destructor
	  */
	~CGlxVisualListManager();
	
	/**
	 * Allocate new visual list
	 * @param aItemList ponter to media list
     * @param aEnv HuiEnv
     * @param aDisplay HUI display
     * @return pointer to visual list
	 */
	IMPORT_C MGlxVisualList* AllocListL(
	    MGlxMediaList& aItemList, 
    	CAlfEnv& aEnv, CAlfDisplay& aDisplay,
    	CAlfImageVisual::TScaleMode aThumbnailScaleMode = CAlfImageVisual::EScaleFitInside );
    	
    /**
     * Return visual list associated with specified Media List
     * Allocate new list if one does not already exist
     * @param aItemList ponter to media list
     * @param aEnv HuiEnv
     * @param aDisplay HUI display
     * @return pointer to visual list
     */
     IMPORT_C MGlxVisualList* ListL(
        MGlxMediaList& aItemList, 
    	CAlfEnv& aEnv, CAlfDisplay& aDisplay, 
    	CAlfImageVisual::TScaleMode aThumbnailScaleMode = CAlfImageVisual::EScaleFitInside );
    	
	/**
	 * Release a reference to a visual list
	 * @param aList list to be released or NULL. 
     *			    If NULL, does nothing.
	 */
	IMPORT_C void ReleaseList(MGlxVisualList* aList);
	
private:
    /**
      * Constructor
      */
	CGlxVisualListManager();
	
private:
    /** Array of visual lists (owned) */
	RPointerArray<CGlxVisualListControl> iVisualLists;
	};
	
#endif // C_GLXVISUALLISTMANAGER_H