diff -r 000000000000 -r dd21522fd290 webengine/wmlengine/src/css/include/CSSHandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/wmlengine/src/css/include/CSSHandler.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,147 @@ +/* +* Copyright (c) 2003 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: Applies CSS for the box tree +* +*/ + + + +#ifndef CCSSHANDLER_H +#define CCSSHANDLER_H + +// INCLUDES +#include +#include "nw_css_processor.h" +#include "nw_lmgr_boxvisitor.h" + + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +// CLASS DECLARATION + +/** +* This class applies the CSS styles to the box tree. +* It breaks each box ApplyStyle into separate RunL +* +* @lib css.lib +* @since 2.1 +*/ +class CCSSHandler : public CActive + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aProcessor A pointer to processor object that owns this object + * @return CCSSHandler* + */ + static CCSSHandler* NewL(NW_CSS_Processor_t* aProcessor); + + /** + * Destructor. + */ + virtual ~CCSSHandler(); + + + public: // New functions + + /** + * This is called from the processor when a new stylesheet needs to be applied + * @since 2.1 + * @return void + */ + void ApplyStylesL(); + + public: // Functions from base classes + + /** + * From CActive + * @since 2.1 + * @param + * @return void + */ + void RunL(); + + private: + + /** + * From CActive Noop. + * @since 2.1 + * @param + * @return void + */ + void DoCancel(); + + /** + * C++ default constructor. + * @param aProcessor A pointer to processor object that owns this object + * @return CCSSHandler* + */ + CCSSHandler(NW_CSS_Processor_t* aProcessor); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * This method applies styles to each box in the box tree and stores it as backup. + * It is called from the RunL method. + * @since 2.1 + * @return ETrue if styles have been applied to all the boxes, otherwise EFalse + */ + TBool ApplyBoxStylesL(); + + /** + * After the styles have been applied, this method replace the property list of all boxes + * with the box backup property list, reformats the box tree and redraws it. Called from RunL + * @since 2.1 + * @return void + */ + void ApplyStylesCompleteL(); + + /** + * This method swaps the property list of all boxes with the box backup property list + * @since 2.1 + * @return void + */ + void SwapPropListL(); + + /** + * Gets the next box (using box visitor) which has the element node set up + * @since 2.1 + * @param (OUT) element node which has been set on the box + * @return pointer to the next box + */ + NW_LMgr_Box_t* GetNextBox(NW_DOM_ElementNode_t** node); + + private: // Data + + // box visitor to visit each box of the box tree to which styles are applied + NW_LMgr_BoxVisitor_t iBoxVisitor; + // processor whose styles need to be applied + NW_CSS_Processor_t* iProcessor; + }; + +#endif // CCSSHandler + +// End of CSS