diff -r 000000000000 -r dd21522fd290 webengine/wmlengine/src/lmgr/include/BoxFormat.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/wmlengine/src/lmgr/include/BoxFormat.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,335 @@ +/* +* Copyright (c) 2000 - 2001 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: +* +*/ + + +#ifndef BOX_FORMATTER_H +#define BOX_FORMATTER_H + +#include // To avoid NULL redefine warning (no #ifndef NULL) + + +//#include "nw_lmgr_posflowbox.h" +#include "nw_lmgr_flowbox.h" +#include "nw_lmgr_formatcontext.h" +#include "nw_fbox_inputbox.h" +#include "nw_lmgr_splittextbox.h" +#include "nw_lmgr_textbox.h" +#include "nw_lmgr_rootbox.h" +#include "nw_text_ucs2.h" +#include "nw_lmgr_activecontainerbox.h" +#include "nw_lmgr_animatedimagebox.h" +#include "nw_lmgr_imgcontainerbox.h" +#include "nw_lmgr_marqueebox.h" +#include "nwx_settings.h" +#include "BrsrStatusCodes.h" +#include "nw_lmgr_emptybox.h" +#include "nw_lmgr_rulebox.h" +#include "nw_lmgr_breakbox.h" +#include "nw_lmgr_statictablebox.h" +#include "nw_lmgr_statictablerowbox.h" +#include "nw_lmgr_statictablecellbox.h" +#include "nw_lmgr_cssproperties.h" +#include "nw_lmgr_listbullets.h" +#include "nw_image_virtualimage.h" +#include "nw_image_cannedimages.h" +#include "nw_fbox_formbox.h" +#include "nwx_string.h" +#include "nw_lmgr_imgcontainerbox.h" +#include "LMgrObjectBoxOOC.h" +#include "nwx_settings.h" + +#include "BrsrStatusCodes.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +void PartialFormatL(NW_LMgr_Box_t* aFormatBox, TBool aDocumentComplete); +void FormatL(NW_LMgr_Box_t* aFormatBox, + NW_LMgr_ContainerBox_t *containerBox, + NW_LMgr_FormatContext_t* aContext); + + +class TLMgr_BoxFormatter + { + public: + // check if they have to be virtual functions + + TBrowserStatusCode + NW_LMgr_BidiFlowBox_PostFormat(NW_LMgr_Box_t* flow, + NW_LMgr_ContainerBox_t *whose, + NW_LMgr_FormatContext_t* parentContext); + + virtual TBrowserStatusCode + NW_LMgr_FlowBox_PostFormatBox(NW_LMgr_Box_t* parentFormatBox, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + virtual TBrowserStatusCode NW_LMgr_FlowBox_FormatBox(NW_LMgr_Box_t* parentFormatBox, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + // virtual function + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_FlowInline(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext) ; + // virtual function + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_PostFlowInline(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + // virtual function + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_FlowBlock(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + //virtual function + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_PostFlowBlock(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + // virtual function + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_PostFlowFloat(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + // virtual function + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_Float(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + // virtual function + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_NewLine(NW_LMgr_Box_t* flow, + NW_LMgr_FormatContext_t* context, + NW_GDI_Metric_t delta, + NW_Bool indentNewLine); + + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_ListItem(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* item, + NW_LMgr_FormatContext_t* context); + + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_DirectKey(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* item, + NW_LMgr_FormatContext_t* context); + + // public function + TBrowserStatusCode + NW_LMgr_BidiFlowBox_Flush(NW_LMgr_Box_t* flow, + NW_LMgr_FormatContext_t* parentContext, NW_Bool addLineSpacing); + TBrowserStatusCode + NW_LMgr_BidiFlowBox_AdvanceToClear(NW_LMgr_Box_t* flow, + NW_LMgr_FormatContext_t* parentContext, + NW_LMgr_PropertyValueToken_t clearToken); + + TBrowserStatusCode + NW_LMgr_BidiFlowBox_AdvanceToClearReformat(NW_LMgr_Box_t* flow, + NW_LMgr_FormatContext_t* parentContext, + NW_LMgr_PropertyValueToken_t clearToken); + + NW_GDI_Metric_t + NW_LMgr_FlowBox_GetIndentation(NW_LMgr_Box_t* flow, + NW_LMgr_FormatContext_t* parentContext); + TBrowserStatusCode + NW_LMgr_BidiFlowBox_FlushInlineContainers(NW_LMgr_Box_t* flow, + NW_LMgr_FormatContext_t* parentContext); + + TBrowserStatusCode + NW_LMgr_BidiFlowBox_ReformatLine(NW_LMgr_Box_t* flow, + NW_LMgr_FormatContext_t* parentContext); + + NW_LMgr_Box_t* + NW_LMgr_BidiFlowBox_GetFirstBlock(NW_LMgr_Box_t* flow); + + NW_LMgr_Box_t* + NW_LMgr_BidiFlowBox_GetLastBlock(NW_LMgr_Box_t* flow); + + NW_Bool IsClosedTop(NW_LMgr_Box_t *box); + + NW_Bool IsClosedBottom(NW_LMgr_Box_t *box); + + TBrowserStatusCode NW_LMgr_BidiFlowBox_CollapseMargins(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, NW_LMgr_FormatContext_t* parentContext, NW_ADT_Vector_Metric_t index); + + NW_GDI_Metric_t NW_LMgr_FlowBox_GetLineStart(NW_LMgr_Box_t* flow, + NW_LMgr_FormatContext_t* parentContext, + NW_GDI_Metric_t where); + + NW_GDI_Metric_t NW_LMgr_FlowBox_GetLineEnd(NW_LMgr_Box_t* flow, + NW_LMgr_FormatContext_t* parentContext, + NW_GDI_Metric_t where); + + NW_Bool NW_LMgr_BidiFlowBox_AtNewLine(NW_LMgr_Box_t* flow, + NW_LMgr_FormatContext_t* parentContext); + + void NW_LMgr_BidiFlowBox_GetConstraint(NW_LMgr_Box_t *flow, + NW_LMgr_FormatContext_t *parentContext, + NW_GDI_Metric_t *constraint); + + void + NW_LMgr_BidiFlowBox_GetBlockMargins (NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t *parentContext, + NW_LMgr_FrameInfo_t *margin); + + void + NW_LMgr_BidiFlowBox_PlaceChild(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + void + NW_LMgr_BidiFlowBox_PlaceChildAt(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_GDI_Metric_t x, + NW_GDI_Metric_t y); + + TBrowserStatusCode + NW_LMgr_BidiFlowBox_HandleInline(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + TBrowserStatusCode + NW_LMgr_BidiFlowBox_HandleInlineContainer(NW_LMgr_Box_t* flow, + NW_LMgr_ContainerBox_t* container, + NW_LMgr_FormatContext_t* parentContext); + TBrowserStatusCode + NW_LMgr_BidiFlowBox_HandleInlineContainerPost(NW_LMgr_Box_t* flow, + NW_LMgr_ContainerBox_t* container, + NW_LMgr_FormatContext_t* parentContext); + TBrowserStatusCode + NW_LMgr_BidiFlowBox_HandleBlock (NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + TBrowserStatusCode + NW_LMgr_BidiFlowBox_HandleBlockPost (NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + TBrowserStatusCode + NW_LMgr_BidiFlowBox_PlaceFloat(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t *box, + NW_LMgr_FormatContext_t* parentContext); + + TBrowserStatusCode NW_LMgr_BidiFlowBox_HandleFloat(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + TBrowserStatusCode + NW_LMgr_BidiFlowBox_HandleBreak(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + NW_LMgr_Box_t* NW_LMgr_BidiFlowBox_GetMarker(NW_LMgr_Box_t* flowBox, + NW_LMgr_Box_t* item, + NW_LMgr_FormatContext_t* context, + NW_LMgr_PropertyValueToken_t* markerVerticalAlign, + NW_Bool* style); + NW_LMgr_Box_t* NW_LMgr_BidiFlowBox_GetDirectKeyMarker(NW_LMgr_Box_t* item); + NW_Image_AbstractImage_t* NW_LMgr_BidiFlowBox_GetListStyleImage(NW_LMgr_Box_t* flowBox, + NW_LMgr_PropertyValueToken_t token); + + TBrowserStatusCode NW_LMgr_BidiFlowBox_Initialize(NW_LMgr_BidiFlowBox_t *flow); + TBrowserStatusCode NW_LMgr_BidiFlowBox_InitializeSSL(NW_LMgr_BidiFlowBox_t *flow); + TBrowserStatusCode NW_LMgr_BidiFlowBox_GetListMargin(NW_LMgr_FlowBox_t* flowBox); + TBrowserStatusCode NW_LMgr_ResizeToFloat(NW_LMgr_Box_t* flow, NW_LMgr_FormatContext_t* parentContext); + }; + + +class TLMgr_Marquee_Box_Formatter:public TLMgr_BoxFormatter + { +public: + // virtual function + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_FlowInline(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext) ; + // virtual function + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_PostFlowInline(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + // virtual function + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_FlowBlock(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + //virtual function + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_PostFlowBlock(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + // virtual function + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_Float(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_ListItem(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* item, + NW_LMgr_FormatContext_t* context); + + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_DirectKey(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* item, + NW_LMgr_FormatContext_t* context); + + }; + + +class TLMgr_StaticCell_Box_Formatter:public TLMgr_BoxFormatter + { + public: + + virtual TBrowserStatusCode + NW_LMgr_FlowBox_FormatBox(NW_LMgr_Box_t* parentFormatBox, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_Float(NW_LMgr_Box_t* flow, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + virtual TBrowserStatusCode + NW_LMgr_BidiFlowBox_NewLine(NW_LMgr_Box_t* flow, + NW_LMgr_FormatContext_t* context, + NW_GDI_Metric_t delta, + NW_Bool indentNewLine); + virtual TBrowserStatusCode + NW_LMgr_FlowBox_PostFormatBox(NW_LMgr_Box_t* parentFormatBox, + NW_LMgr_Box_t* box, + NW_LMgr_FormatContext_t* parentContext); + + + }; + +#ifdef __cplusplus +} // extern "C" { +#endif /* __cplusplus */ + +#endif +