--- /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 <e32base.h>
+#include <txtfrmat.h>
+
+/**
+ * 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 <typename T>
+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<T>* iStack;
+ };
+
+
+#include "xhtmlstack.inl"
+
+#endif
+