diff -r 000000000000 -r 4e91876724a2 photosgallery/viewframework/visuallistmanager/inc/mglxvisuallist.h --- /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 +#include +#include "glxiconmgrdefs.h" + +class CGlxVisualObject; +class MGlxLayout; +class MGlxVisualListObserver; +class CAlfControlGroup; +class CAlfTexture; +class CAlfVisual; + +class TGlxVisualListIdBase {}; +typedef TGlxId TGlxVisualListId; + +/** + * View Context id + */ +class TGlxIdViewContextBase {}; // Don't use this. This is just to make TGlxId concrete +typedef TGlxId 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