diff -r 6a20128ce557 -r ebfee66fde93 messagingapp/msgutils/unidatautils/unidatamodel/inc/UniSmilSlide.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgutils/unidatautils/unidatamodel/inc/UniSmilSlide.h Fri Jun 04 10:25:39 2010 +0100 @@ -0,0 +1,217 @@ +/* +* 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: +* CUniSmilSlide +* +* +*/ + + +#ifndef __UNISMILSLIDE_H +#define __UNISMILSLIDE_H + + +// INCLUDES + +#include + +#include + +// CONSTANTS + +// MACROS + +// FORWARD DECLARATIONS +class CUniObject; + +// DATA TYPES +typedef CArrayPtrFlat CSmilObjectArray; + +// FUNCTION PROTOTYPES + + + +// CLASS DECLARATION + +// NOTE: Since slide cannot have same object type twice unique key to object within +// slide is it object type ( EImage, EText, EAudio ) +// Object can also be referenced by it's position in slide ( 0,1,2 ) + +/** +* CUniSmilSlide - Representation of a single slide in a SMIL presentation. +* +* @lib UniDataModel.lib +* @since 3.1 +*/ +class CUniSmilSlide :public CBase + { + public: // Constructors and destructor + + /** + * Factory method + * + * @since 3.1 + * @return Pointer to instance in cleanup stack + */ + static CUniSmilSlide* NewLC( TUniLayout aLayout ); + + /** + * Factory method + * + * @since 3.1 + * @return Pointer to instance + */ + static CUniSmilSlide* NewL( TUniLayout aLayout ); + + /** + * Destructor. + * + * @since 3.1 + */ + ~CUniSmilSlide(); + + public: // New functions + + /* + * AddObjectL + * Add object to slide in position specified by Layout. + * NOTE: Takes ownership of the aObject. + * NOTE: Leaves with KErrArgument if object cannot be added to slide + * + * @since 3.1 + * @param aObject IN object to be added + */ + void AddObjectL( CUniObject* aObject ); + + /* + * AddObjectL + * Add object to slide in position specified by Layout. + * NOTE: Takes ownership of the aObject. + * NOTE: Leaves with KErrArgument if object cannot be added to slide + * + * @since 3.1 + * @param aObject IN object to be added + * @param aregion IN region where object is in SMIL. + */ + void AddObjectL( CUniObject* aObject, TUniRegion aRegion ); + + /** + * RemoveObject + * Removes object from slide + * NOTE: Object is not deleted. + * + * @since 3.1 + * @param aObject IN object to be removed + */ + void RemoveObject( CUniObject* aObject ); + + /** + * GetObject + * Get object of given type from slide. + * + * @since 3.1 + * @param aObjType IN object type + * @return Pointer to object, + * NULL, if object not found + */ + CUniObject* GetObject( TUniRegion aRegion ) const; + + /** + * GetObjectByIndex + * Get object at given index from slide. + * + * @since 3.1 + * @param aObjNum IN index to slides object array, + * 0 (zero) is first object. + * @return Pointer to object, + * NULL, if object not found + */ + CUniObject* GetObjectByIndex( TInt aObjNum ) const; + + /** + * IsObject + * Checks if slide contains given object. + * + * @since 3.1 + * @param aObject IN object to be checked + * @return ETrue slide contains the object, + * EFalse, otherwise + */ + TBool IsObject( CUniObject* aObject ) const; + + /** + * IsObject + * Checks if slide has an object of given type + * + * @since 3.1 + * @param aObjType IN object type + * @return ETrue slide contains the object, + * EFalse, otherwise + */ + TBool IsObject( TUniRegion aRegion ) const; + + /** + * ObjectCount + * Accessor + * + * @since 3.1 + * @return Number of objects in this slide + */ + TInt ObjectCount() const; + + /** + * UpdateLayoutL + * Update the layout of the slide + * + * @since 3.1 + * @param aNewLayout IN new layout + */ + void UpdateLayoutL( TUniLayout aNewLayout ); + + private: + + /* + * Constructor + * + * @since 3.1 + */ + CUniSmilSlide( TUniLayout aLayout ); + + /* + * 2nd phase constructor + * + * @since 3.1 + */ + void ConstructL(); + + /** + * UpdateLayoutL + * Update the layout of the slide + * + * @since 3.1 + */ + void UpdateLayoutL(); + + private: + + CSmilObjectArray* iObjectArray; + TUniLayout iLayout; + + }; + +#endif // __UNISMILSLIDE_H + + + +