webengine/wmlengine/src/lmgr/include/BoxFormatHandler.h
changeset 74 91031d3aab7d
parent 68 92a765b5b3e7
child 85 e358f2276d3f
--- a/webengine/wmlengine/src/lmgr/include/BoxFormatHandler.h	Mon May 03 13:32:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,337 +0,0 @@
-/*
-* Copyright (c) 2003-2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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:  The class handles formatting of the boxes , refreshes the boxe on the postformatting,
-              adds the active boxes  to the tab list
-*
-*/
-
-#ifndef BOX_FORMAT_HANDLER_H
-#define BOX_FORMAT_HANDLER_H
-
-#include "e32base.h"
-#include "cstack.h"
-#include "nw_gdi_utils.h"
-#include "BoxFormat.h"
-
-//  INCLUDES
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-
-/**
-*  The class handles formatting of the boxes , refreshes the boxe on the postformatting,
-*   adds the active boxes  to the tab list
-*
-*  @lib lmgr.lib
-*/
-class CLMgr_BoxFormatHandler: public CActive
-    {
-    public:
-        /**
-        * A two phase constructor that constructs  and initializes CLMgr_BoxFormatHandler class
-        * leaves KErrNoMemory if out of memory
-        * @param aRootBox - flowBox to be formatted
-        * @param aSelectiveFormatting is ETrue if only a flowBox  and its children needs to be formatted
-        * @return CLMgr_BoxFormatHandler* - pointer to the instance of  class CLMgr_BoxFormatHandler
-        */
-        static CLMgr_BoxFormatHandler* NewL(NW_LMgr_Box_t* aRootBox,
-                                            TBool aSelectiveFormatting);
-        /**
-        * the method is called from view to format box tree
-        */
-        void PartialFormatL( CActive::TPriority aPriority );
-
-        /**
-        * the method is called from view after the partialFormat is called 
-        * for the last chunk 
-        */
-        void PageLoadCompleted();
-
-        TBrowserStatusCode Collapse( NW_LMgr_FlowBox_t* aContainingFlow, NW_Bool aCollapseAnonymous );
-        /**
-        * the method clears the formatting context . 
-        * The formatting context includes the formatting stack and the current format box
-        */
-        void ClearFormattingContext();
-
-        /**
-        * initializes the flowbox and its children
-        * @param - flowbox and its children to  be initialized
-        * @return - returns KBrsrSuccess if no error 
-        */
-        TBrowserStatusCode InitializeBox(NW_LMgr_BidiFlowBox_t *flow);
-
-        /**
-        * initializes the flowbox and its children in small screen mode
-        * @param - flowbox and its children to  be initialized
-        * @return - returns KBrsrSuccess if no error 
-        */
-        TBrowserStatusCode InitializeBoxSSL(NW_LMgr_BidiFlowBox_t *flow);
-
-        /**
-        * set the background format flag to true which means that
-        * the next format is a background format
-        */
-        inline void SetBackgroundFormat() { iBackgroundFormat = ETrue; }
-
-        /**
-        * This function returns true if the current format is a background format
-        */
-        inline TBool BackgroundFormat() { return iBackgroundFormat; }
-
-        /**
-        * Destructor- deletes format stack and 
-        * removes the instance from CActiveScheduler
-        */
-        ~CLMgr_BoxFormatHandler();
-
-        /**
-        * 
-        * adds the box to the tab list 
-        * @param box - the box to be added to the tab list 
-        * @return - returns KBrsrOutOfMemory if OOM
-        */
-        TBrowserStatusCode AddTabItem(NW_LMgr_Box_t *box);
-
-        /**
-        * 
-        * returns last formatted box
-        * @return - last formatted box of the box tree
-        */
-        NW_LMgr_Box_t* GetLastFormattedBox()
-            {
-            return iFormatBox;
-            }
-        /**
-        * 
-        * sets the last box to be formatted from the boxtee
-        * @param aLastBoxToFormat - the last box to be formatted from the boxtee
-        */
-        void SetLastBoxToFormatL(NW_LMgr_Box_t *aLastBoxToFormat)
-            {
-            iLastBoxToFormat = aLastBoxToFormat;
-            }
-
-        /**
-        * 
-        * overriddes Active virtual function . The method formats  a flowbox (  including its children) 
-        * or a leaf box 
-        * leaves if OOM
-        */
-        void RunL();
-
-        /**
-        * overriddes Active virtual function 
-        * Clears the formatting context, if the formatting is cancelled
-        */
-        void DoCancel();
-
-        /**
-        * overriddes Active virtual function 
-        * Clears the formatting context, incase if any error 
-        */
-        TInt RunError(TInt aError);
-
-        /**
-        * sets the root box on the format handler (generally used if the
-        * root box changes, but the format handler is the same)
-        */
-        void SetRootBox(NW_LMgr_Box_t* aRootBox);
-		TBool GetFormattingComplete(){return iFormattingCompleted;};
-
-    private:
-        // auxiallary class to contain ,enable copying and deleting of FormatContexts
-
-    class CFormatStackContext: public CBase
-            {
-            public:
-                CFormatStackContext(CLMgr_BoxFormatHandler* aBoxFormatHandler);
-                static void CleanupStackContext(TAny* aFormatStackContext);
-           
-                CFormatStackContext(const CFormatStackContext& aFormatStackContext);
-                ~CFormatStackContext();
-                // formatbox - box to be formatted
-                NW_LMgr_Box_t *iBox;
-                // parent box of iBox
-                NW_LMgr_Box_t *iParentFormatBox;
-                // context to format iBox
-                NW_LMgr_FormatContext_t* iParentContext;
-                // used to calculate rootBox temp height after formatting part of box tree
-                NW_GDI_Dimension2D_t iTempDimensions ;
-                // is ETrue if page load is completed
-                TBool iPageLoadCompleted;
-                // reference to the containing class
-                CLMgr_BoxFormatHandler* iBoxFormatHandler;// has
-            };
-    private:
-        /**
-        * Constructor
-        **/
-        CLMgr_BoxFormatHandler();
-        /**
-        * Initializes CLMgr_BoxFormatHandler , creates stack to handle formatting
-        * and adds the CLMgr_BoxFormatHandler instance to ActiveScheduler
-        * @param aRootBox - flowbox to be formatted
-        * @param aSelectiveFormatting- is ETrue if only aRootBox and its children need
-                  to be formatted
-        **/
-        void ConstructL(NW_LMgr_Box_t* aRootBox,
-                        TBool aSelectiveFormatting);
-
-        /**
-        * Formats iFormatBox (the current box to be formatted ) and all the boxes to
-        * the left subtree iFormatBox
-        * Leaves with KErrNoMemory if OOM
-        **/
-        void HandlePartialFormatL();
-        /**
-        * Finds the format context of the next box of aFormatBox to be formatted
-        * If the aFormatBox is NULL , then a new FormatContext is created on rootbox and
-        * the child of the rootbox becomes the next box to be formattec
-        * Leaves with KErrNoMemory if OOM
-        **/
-        void FindFormatContextL(NW_LMgr_Box_t* aFormatBox);
-        /**
-        * The method is called after the formatting all the chunks and no more 
-        * chunks are available for the page. The method does post formatting of all 
-        * the boxes on the stack and calls the formatting completed on IBoxTreeListener
-        **/
-        void HandlePageLoadCompletedL();
-        /**
-        * The method handles post formatting on a box 
-        * @param CFormatStackContext- Formatting context instance to be post formatted
-        **/
-        void PostFormatL(CFormatStackContext& );
-        /**
-        * The method clears all the items on the format stack and sets the current box to 
-        * formatted to NULL
-        **/
-        void ClearFormatStack();
-        /**
-        * The method returns the BoxFormatter instance based on the box type 
-        * @param aBox the box to find the formatter .
-        * @return TLMgr_BoxFormatter instance that can handle formatting of aBox
-        **/
-        TLMgr_BoxFormatter& GetBoxFormatter(NW_LMgr_Box_t* aBox);
-
-        /**
-          * The method returns the last box of the boxtree
-          * @return the last box of the boxtree
-          **/
-
-        NW_LMgr_Box_t* GetLastBox();
-
-        /**
-          * The method returns dimensions of aBox by the aBox childrens height and width
-          * @return NW_GDI_Dimension2D_t - dimensions of the aBox 
-          **/
-        NW_GDI_Dimension2D_t CalculateBoxTempBounds(NW_LMgr_Box_t* aBox );
-
-        /**
-          * The method normalizes the box on the box tree
-          * @param box - box to be normalized
-          * @return void
-          **/
-        void InitBoxL(NW_LMgr_Box_t *aBox);
-
-        /**
-          * The method refreshes the box after the box is post formatted 
-          * @return void
-          * @param box - box to be refresed
-          **/
-        void RefreshBoxL(NW_LMgr_Box_t *aBox );
-
-        /**
-          * This method adds the children boxes which are instances of active boxes
-          * to the tab list 
-          * @param box - box to be added
-          **/
-        void AddTabItemL( NW_LMgr_Box_t *aBox );
-
-        /**
-          * This method is called from AddTabItemL to add tabitems 
-          * containeed in container box subtree
-          **/
-        void AddSubTreeTabItemsL(NW_LMgr_Box_t *aBox);
-
-        /**
-          * This method is called from PartialFormatL to initialize the rootbox 
-          * It sets the body box and initializes the display bounds
-          **/
-        void InitRootBox();
-
-        /**
-          * This method appends the NW_LMgr_FormatContext_t* object to the array of pointers
-          * iFormatContextRef.
-          **/
-        void AppendFormatContextL(NW_LMgr_FormatContext_t* aLMgr_FormatContext_t);
-
-        /**
-          * This method updates the display bounds on a formatted subtree
-          **/
-        void UpdateDisplayBounds( NW_LMgr_Box_t* aBox );
-
-    private:
-      // friends
-      friend class CFormatStackContext;
-
-    private:
-        // members
-        // formatted flowboxes  are added to the stack(iFormatStack) to be postformatted after
-        // formatting the flowboxes children
-        CStack<CFormatStackContext, ETrue>* iFormatStack;
-        // default box formatter
-        TLMgr_BoxFormatter iTLMgr_BoxFormatter;
-        // marquee box formatter
-        TLMgr_Marquee_Box_Formatter iTLMgr_Marquee_Box_Formatter;
-        // Table cell  or table row box formatter
-        TLMgr_StaticCell_Box_Formatter iTLMgr_StaticCell_Box_Formatter;
-
-        // Last box to be formatted from the boxtree
-        NW_LMgr_Box_t *iLastBoxToFormat ;
-        // RootBox reference
-        NW_LMgr_Box_t *iRootBox;
-
-        // The current flowbox used to format iFormatBox
-        NW_LMgr_Box_t* iCurrentFlowBox ;
-        // The current format context used to format iFormatBox
-        NW_LMgr_FormatContext_t* iCurrentFormatContext;
-        // The box to be formatted
-        NW_LMgr_Box_t* iFormatBox;
-        // is ETrue if the box that is formatted is split
-        TBool iContainerSplit;
-        // is ETrue if part of the tree is to be formatted
-        TBool iSelectiveFormatting;
-        // is ETrue if PartialFormatL method is called for the last chunk
-        TBool iPageLoadCompleted;
-    	TBool iFormattingCompleted;
-        CArrayPtrFlat<NW_LMgr_FormatContext_t>* iFormatContextRef;
-        // the following 2 members are used to normalize the boxtree
-        TBool iFirstBr;
-        TBool iSecondBr;
-        TBool iBackgroundFormat;
-        CActive::TPriority iFormattingPriority;
-    };
-
-#endif