diff -r 000000000000 -r 72b543305e3a messagingappbase/smilengine/xhtml/inc/xhtmlstack.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/smilengine/xhtml/inc/xhtmlstack.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,217 @@ +/* +* 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: xhtmlstack declaration +* +*/ + + + +#ifndef XHTMLSTACK_H +#define XHTMLSTACK_H + +#include +#include + +/** + * Class defining a style info. + * + * @code + * ?good_class_usage_example(s) + * @endcode + * + * @lib ?library + * @since S60 v3.2 + */ +NONSHARABLE_CLASS( TXhtmlStyleInfo ) + { +public: + + /** + * Constructor. + * + * @since S60 v3.2 + * @param aStyleStart Start position of the style + * @param aPrevAlign Previous alignment + * @return ?description + */ + TXhtmlStyleInfo( TInt aStyleStart, CParaFormat::TAlignment aPrevAlign ); + + /** + * Start position of the style + */ + TInt iStyleStart; + + /** + * True if current style has been changed. + * This is set to true in CXhtmlparser::ChangeCurrentStyleL + */ + TBool iStyleChanged; + + /** + * True if alignment has been changed. + */ + TBool iAlignmentChanged; + + /** + * Stores previous alignment. + */ + CParaFormat::TAlignment iPrevAlign; + }; + +/** + * Class defining a paragraph info. + * + * @code + * ?good_class_usage_example(s) + * @endcode + * + * @lib ?library + * @since S60 v3.2 + */ +NONSHARABLE_CLASS( TXhtmlParaInfo ) + { +public: + + /** + * Constructor. + * + * @since S60 v3.2 + * @param aParaStart Start position of the paragraph + * @param aAlignment Alignment + * @return ?description + */ + TXhtmlParaInfo( TInt aParaStart, CParaFormat::TAlignment aAlignment ); + + /** + * Start position of the paragraph + */ + TInt iParaStart; + + /** + * Alignment + */ + CParaFormat::TAlignment iAlignment; + }; + +/** + * Class defining a list info. + * + * @code + * ?good_class_usage_example(s) + * @endcode + * + * @lib ?library + * @since S60 v3.2 + */ +NONSHARABLE_CLASS( TXhtmlListInfo ) + { +public: + + /** + * Constructor. + * + * @since S60 v3.2 + * @param aListContext List context, ordered or unordered + * @return ?description + */ + TXhtmlListInfo( TInt aListContext ); + + /** + * List index, tells the number of list items in current list + */ + TInt iListIndex; + + /** + * List context, ordered or unordered + */ + TInt iListContext; + }; + + +/** + * Class defining a stack. Methods implemented in XhtmlStack.inl. + * + * @code + * ?good_class_usage_example(s) + * @endcode + * + * @lib ?library + * @since S60 v3.2 + */ +template +NONSHARABLE_CLASS( CXhtmlStack ) : public CBase + { +public: + + /** + * CXhtmlStack phase one constructor + * + * @since S60 v3.2 + * @return Created CXhtmlStack instance + */ + static inline CXhtmlStack* NewL(); + + /** + * Destructor. + */ + virtual inline ~CXhtmlStack(); + + /** + * Removes item from top of the stack. + * + * @since S60 v3.2 + */ + inline void Pop(); + + /** + * Adds item to top of the stack. + * + * @since S60 v3.2 + * @param aInfo Pointer to item + */ + inline void PushL( T* aInfo ); + + /** + * Returns item on top of the stack. + * + * @since S60 v3.2 + * @return Pointer to item + */ + inline T* Top(); + + /** + * Returns number of items on the stack. + * + * @since S60 v3.2 + * @return Number of items + */ + inline TInt Count() { return iStack->Count(); }; + +protected: + void ConstructL(); + CXhtmlStack(); + +private: + /** + * Array of pointers to stack items. + * Owns + */ + RPointerArray* iStack; + }; + + +#include "xhtmlstack.inl" + +#endif +