forked from mirrors/gecko-dev
moved frame construction code from HTML style sheet
This commit is contained in:
parent
99f67ca469
commit
157564981f
4 changed files with 7650 additions and 0 deletions
3470
layout/base/nsCSSFrameConstructor.cpp
Normal file
3470
layout/base/nsCSSFrameConstructor.cpp
Normal file
File diff suppressed because it is too large
Load diff
355
layout/base/nsCSSFrameConstructor.h
Normal file
355
layout/base/nsCSSFrameConstructor.h
Normal file
|
|
@ -0,0 +1,355 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
* for the specific language governing rights and limitations under the
|
||||
* NPL.
|
||||
*
|
||||
* The Initial Developer of this code under the NPL is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
#ifndef nsCSSFrameConstructor_h___
|
||||
#define nsCSSFrameConstructor_h___
|
||||
|
||||
#include "nsIStyleFrameConstruction.h"
|
||||
#include "nslayout.h"
|
||||
|
||||
class nsIDocument;
|
||||
struct nsFrameItems;
|
||||
struct nsAbsoluteItems;
|
||||
class nsIStyleContext;
|
||||
class nsDeque;
|
||||
struct nsStyleDisplay;
|
||||
class nsIPresShell;
|
||||
|
||||
class nsCSSFrameConstructor : public nsIStyleFrameConstruction {
|
||||
public:
|
||||
nsCSSFrameConstructor(void);
|
||||
virtual ~nsCSSFrameConstructor(void);
|
||||
|
||||
private:
|
||||
// These are not supported and are not implemented!
|
||||
nsCSSFrameConstructor(const nsCSSFrameConstructor& aCopy);
|
||||
nsCSSFrameConstructor& operator=(const nsCSSFrameConstructor& aCopy);
|
||||
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
NS_IMETHOD Init(nsIDocument* aDocument);
|
||||
|
||||
// nsIStyleFrameConstruction API
|
||||
NS_IMETHOD ConstructRootFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aDocElement,
|
||||
nsIFrame*& aNewFrame);
|
||||
|
||||
NS_IMETHODIMP ReconstructFrames(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIFrame* aFrameSubTree);
|
||||
|
||||
NS_IMETHOD ContentAppended(nsIPresContext* aPresContext,
|
||||
nsIContent* aContainer,
|
||||
PRInt32 aNewIndexInContainer);
|
||||
|
||||
NS_IMETHOD ContentInserted(nsIPresContext* aPresContext,
|
||||
nsIContent* aContainer,
|
||||
nsIContent* aChild,
|
||||
PRInt32 aIndexInContainer);
|
||||
|
||||
NS_IMETHOD ContentReplaced(nsIPresContext* aPresContext,
|
||||
nsIContent* aContainer,
|
||||
nsIContent* aOldChild,
|
||||
nsIContent* aNewChild,
|
||||
PRInt32 aIndexInContainer);
|
||||
|
||||
NS_IMETHOD ContentRemoved(nsIPresContext* aPresContext,
|
||||
nsIContent* aContainer,
|
||||
nsIContent* aChild,
|
||||
PRInt32 aIndexInContainer);
|
||||
|
||||
NS_IMETHOD ContentChanged(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsISupports* aSubContent);
|
||||
NS_IMETHOD AttributeChanged(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIAtom* aAttribute,
|
||||
PRInt32 aHint);
|
||||
|
||||
// Style change notifications
|
||||
NS_IMETHOD StyleRuleChanged(nsIPresContext* aPresContext,
|
||||
nsIStyleSheet* aStyleSheet,
|
||||
nsIStyleRule* aStyleRule,
|
||||
PRInt32 aHint); // See nsStyleConsts fot hint values
|
||||
NS_IMETHOD StyleRuleAdded(nsIPresContext* aPresContext,
|
||||
nsIStyleSheet* aStyleSheet,
|
||||
nsIStyleRule* aStyleRule);
|
||||
NS_IMETHOD StyleRuleRemoved(nsIPresContext* aPresContext,
|
||||
nsIStyleSheet* aStyleSheet,
|
||||
nsIStyleRule* aStyleRule);
|
||||
|
||||
// Notification that we were unable to render a replaced element.
|
||||
NS_IMETHOD CantRenderReplacedElement(nsIPresContext* aPresContext,
|
||||
nsIFrame* aFrame);
|
||||
|
||||
protected:
|
||||
|
||||
nsresult ConstructFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsFrameItems& aFrameItems,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructDocElementFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aDocElement,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aParentStyleContext,
|
||||
nsIFrame*& aNewFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
// BEGIN TABLE SECTION
|
||||
nsresult ConstructTableFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAboluteItems,
|
||||
nsIFrame*& aNewFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructAnonymousTableFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIFrame*& aOuterFrame,
|
||||
nsIFrame*& aInnerFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTableCaptionFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewTopMostFrame,
|
||||
nsIFrame*& aNewCaptionFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTableGroupFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
PRBool aIsRowGroup,
|
||||
nsIFrame*& aNewTopMostFrame,
|
||||
nsIFrame*& aNewGroupFrame,
|
||||
nsAbsoluteItems& aFixedItems,
|
||||
nsDeque* aToDo = nsnull);
|
||||
|
||||
nsresult ConstructTableGroupFrameOnly(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
PRBool aIsRowGroup,
|
||||
PRBool aContentDisplayIsGroup,
|
||||
nsIFrame*& aNewTopMostFrame,
|
||||
nsIFrame*& aNewGroupFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTableRowFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewTopMostFrame,
|
||||
nsIFrame*& aNewRowFrame,
|
||||
nsAbsoluteItems& aFixedItems,
|
||||
nsDeque* aToDo = nsnull);
|
||||
|
||||
nsresult ConstructTableRowFrameOnly(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
PRBool aProcessChildren,
|
||||
nsIFrame*& aNewRowFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTableColFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewTopMostFrame,
|
||||
nsIFrame*& aNewColFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTableCellFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewTopMostFrame,
|
||||
nsIFrame*& aNewCellFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTableCellFrameOnly(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
PRBool aProcessChildren,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult TableProcessChildren(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsFrameItems& aChildList,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult TableProcessChild(nsIPresContext* aPresContext,
|
||||
nsIContent* aChildContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aParentStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aChildFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult TableProcessChildLists(nsIPresContext* aPresContext,
|
||||
nsDeque* aParentChildPairs);
|
||||
|
||||
nsIFrame* TableGetAsNonScrollFrame(nsIPresContext* aPresContext,
|
||||
nsIFrame* aFrame,
|
||||
const nsStyleDisplay* aDisplayType);
|
||||
|
||||
|
||||
const nsStyleDisplay* GetDisplay(nsIFrame* aFrame);
|
||||
|
||||
// END TABLE SECTION
|
||||
|
||||
nsresult CreatePlaceholderFrameFor(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIFrame*& aPlaceholderFrame);
|
||||
|
||||
nsresult ConstructSelectFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIAtom* aTag,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewFrame,
|
||||
PRBool & aProcessChildren,
|
||||
PRBool & aIsAbsolutelyPositioned,
|
||||
PRBool & aFrameHasBeenInitialized);
|
||||
|
||||
nsresult ConstructFrameByTag(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIAtom* aTag,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsFrameItems& aFrameItems,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
#ifdef INCLUDE_XUL
|
||||
nsresult ConstructXULFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIAtom* aTag,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsFrameItems& aFrameItems,
|
||||
nsAbsoluteItems& aFixedItems,
|
||||
PRBool& aHaltProcessing);
|
||||
|
||||
nsresult ConstructTreeFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAboluteItems,
|
||||
nsIFrame*& aNewFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTreeBodyFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsIFrame*& aNewScrollFrame,
|
||||
nsIFrame*& aNewFrame);
|
||||
|
||||
nsresult ConstructTreeCellFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewFrame,
|
||||
nsAbsoluteItems& aFixedItems,
|
||||
PRBool anAllowEvents);
|
||||
#endif
|
||||
|
||||
nsresult ConstructFrameByDisplayType(nsIPresContext* aPresContext,
|
||||
const nsStyleDisplay* aDisplay,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsFrameItems& aFrameItems,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult GetAdjustedParentFrame(nsIFrame* aCurrentParentFrame,
|
||||
PRUint8 aChildDisplayType,
|
||||
nsIFrame*& aNewParentFrame);
|
||||
|
||||
|
||||
nsresult ProcessChildren(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aFrame,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsFrameItems& aFrameItems,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult CreateInputFrame(nsIContent* aContent, nsIFrame*& aFrame);
|
||||
|
||||
PRBool IsScrollable(nsIPresContext* aPresContext, const nsStyleDisplay* aDisplay);
|
||||
|
||||
nsIFrame* GetFrameFor(nsIPresShell* aPresShell, nsIPresContext* aPresContext,
|
||||
nsIContent* aContent);
|
||||
|
||||
nsIFrame* GetAbsoluteContainingBlock(nsIPresContext* aPresContext,
|
||||
nsIFrame* aFrame);
|
||||
|
||||
nsresult InitializeScrollFrame(nsIFrame * aScrollFrame,
|
||||
nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewFrame,
|
||||
nsAbsoluteItems& aFixedItems,
|
||||
PRBool aIsAbsolutelyPositioned,
|
||||
PRBool aIsFixedPositioned,
|
||||
PRBool aCreateBlock);
|
||||
|
||||
nsresult RecreateFramesOnAttributeChange(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIAtom* aAttribute);
|
||||
|
||||
protected:
|
||||
nsIDocument* mDocument;
|
||||
|
||||
nsIFrame* mInitialContainingBlock;
|
||||
nsIFrame* mFixedContainingBlock;
|
||||
nsIFrame* mDocElementContainingBlock;
|
||||
};
|
||||
|
||||
#endif /* nsCSSFrameConstructor_h___ */
|
||||
3470
layout/html/style/src/nsCSSFrameConstructor.cpp
Normal file
3470
layout/html/style/src/nsCSSFrameConstructor.cpp
Normal file
File diff suppressed because it is too large
Load diff
355
layout/html/style/src/nsCSSFrameConstructor.h
Normal file
355
layout/html/style/src/nsCSSFrameConstructor.h
Normal file
|
|
@ -0,0 +1,355 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
* for the specific language governing rights and limitations under the
|
||||
* NPL.
|
||||
*
|
||||
* The Initial Developer of this code under the NPL is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
#ifndef nsCSSFrameConstructor_h___
|
||||
#define nsCSSFrameConstructor_h___
|
||||
|
||||
#include "nsIStyleFrameConstruction.h"
|
||||
#include "nslayout.h"
|
||||
|
||||
class nsIDocument;
|
||||
struct nsFrameItems;
|
||||
struct nsAbsoluteItems;
|
||||
class nsIStyleContext;
|
||||
class nsDeque;
|
||||
struct nsStyleDisplay;
|
||||
class nsIPresShell;
|
||||
|
||||
class nsCSSFrameConstructor : public nsIStyleFrameConstruction {
|
||||
public:
|
||||
nsCSSFrameConstructor(void);
|
||||
virtual ~nsCSSFrameConstructor(void);
|
||||
|
||||
private:
|
||||
// These are not supported and are not implemented!
|
||||
nsCSSFrameConstructor(const nsCSSFrameConstructor& aCopy);
|
||||
nsCSSFrameConstructor& operator=(const nsCSSFrameConstructor& aCopy);
|
||||
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
NS_IMETHOD Init(nsIDocument* aDocument);
|
||||
|
||||
// nsIStyleFrameConstruction API
|
||||
NS_IMETHOD ConstructRootFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aDocElement,
|
||||
nsIFrame*& aNewFrame);
|
||||
|
||||
NS_IMETHODIMP ReconstructFrames(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIFrame* aFrameSubTree);
|
||||
|
||||
NS_IMETHOD ContentAppended(nsIPresContext* aPresContext,
|
||||
nsIContent* aContainer,
|
||||
PRInt32 aNewIndexInContainer);
|
||||
|
||||
NS_IMETHOD ContentInserted(nsIPresContext* aPresContext,
|
||||
nsIContent* aContainer,
|
||||
nsIContent* aChild,
|
||||
PRInt32 aIndexInContainer);
|
||||
|
||||
NS_IMETHOD ContentReplaced(nsIPresContext* aPresContext,
|
||||
nsIContent* aContainer,
|
||||
nsIContent* aOldChild,
|
||||
nsIContent* aNewChild,
|
||||
PRInt32 aIndexInContainer);
|
||||
|
||||
NS_IMETHOD ContentRemoved(nsIPresContext* aPresContext,
|
||||
nsIContent* aContainer,
|
||||
nsIContent* aChild,
|
||||
PRInt32 aIndexInContainer);
|
||||
|
||||
NS_IMETHOD ContentChanged(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsISupports* aSubContent);
|
||||
NS_IMETHOD AttributeChanged(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIAtom* aAttribute,
|
||||
PRInt32 aHint);
|
||||
|
||||
// Style change notifications
|
||||
NS_IMETHOD StyleRuleChanged(nsIPresContext* aPresContext,
|
||||
nsIStyleSheet* aStyleSheet,
|
||||
nsIStyleRule* aStyleRule,
|
||||
PRInt32 aHint); // See nsStyleConsts fot hint values
|
||||
NS_IMETHOD StyleRuleAdded(nsIPresContext* aPresContext,
|
||||
nsIStyleSheet* aStyleSheet,
|
||||
nsIStyleRule* aStyleRule);
|
||||
NS_IMETHOD StyleRuleRemoved(nsIPresContext* aPresContext,
|
||||
nsIStyleSheet* aStyleSheet,
|
||||
nsIStyleRule* aStyleRule);
|
||||
|
||||
// Notification that we were unable to render a replaced element.
|
||||
NS_IMETHOD CantRenderReplacedElement(nsIPresContext* aPresContext,
|
||||
nsIFrame* aFrame);
|
||||
|
||||
protected:
|
||||
|
||||
nsresult ConstructFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsFrameItems& aFrameItems,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructDocElementFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aDocElement,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aParentStyleContext,
|
||||
nsIFrame*& aNewFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
// BEGIN TABLE SECTION
|
||||
nsresult ConstructTableFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAboluteItems,
|
||||
nsIFrame*& aNewFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructAnonymousTableFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIFrame*& aOuterFrame,
|
||||
nsIFrame*& aInnerFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTableCaptionFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewTopMostFrame,
|
||||
nsIFrame*& aNewCaptionFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTableGroupFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
PRBool aIsRowGroup,
|
||||
nsIFrame*& aNewTopMostFrame,
|
||||
nsIFrame*& aNewGroupFrame,
|
||||
nsAbsoluteItems& aFixedItems,
|
||||
nsDeque* aToDo = nsnull);
|
||||
|
||||
nsresult ConstructTableGroupFrameOnly(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
PRBool aIsRowGroup,
|
||||
PRBool aContentDisplayIsGroup,
|
||||
nsIFrame*& aNewTopMostFrame,
|
||||
nsIFrame*& aNewGroupFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTableRowFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewTopMostFrame,
|
||||
nsIFrame*& aNewRowFrame,
|
||||
nsAbsoluteItems& aFixedItems,
|
||||
nsDeque* aToDo = nsnull);
|
||||
|
||||
nsresult ConstructTableRowFrameOnly(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
PRBool aProcessChildren,
|
||||
nsIFrame*& aNewRowFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTableColFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewTopMostFrame,
|
||||
nsIFrame*& aNewColFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTableCellFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewTopMostFrame,
|
||||
nsIFrame*& aNewCellFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTableCellFrameOnly(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
PRBool aProcessChildren,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult TableProcessChildren(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsFrameItems& aChildList,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult TableProcessChild(nsIPresContext* aPresContext,
|
||||
nsIContent* aChildContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aParentStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aChildFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult TableProcessChildLists(nsIPresContext* aPresContext,
|
||||
nsDeque* aParentChildPairs);
|
||||
|
||||
nsIFrame* TableGetAsNonScrollFrame(nsIPresContext* aPresContext,
|
||||
nsIFrame* aFrame,
|
||||
const nsStyleDisplay* aDisplayType);
|
||||
|
||||
|
||||
const nsStyleDisplay* GetDisplay(nsIFrame* aFrame);
|
||||
|
||||
// END TABLE SECTION
|
||||
|
||||
nsresult CreatePlaceholderFrameFor(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIFrame*& aPlaceholderFrame);
|
||||
|
||||
nsresult ConstructSelectFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIAtom* aTag,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewFrame,
|
||||
PRBool & aProcessChildren,
|
||||
PRBool & aIsAbsolutelyPositioned,
|
||||
PRBool & aFrameHasBeenInitialized);
|
||||
|
||||
nsresult ConstructFrameByTag(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIAtom* aTag,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsFrameItems& aFrameItems,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
#ifdef INCLUDE_XUL
|
||||
nsresult ConstructXULFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIAtom* aTag,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsFrameItems& aFrameItems,
|
||||
nsAbsoluteItems& aFixedItems,
|
||||
PRBool& aHaltProcessing);
|
||||
|
||||
nsresult ConstructTreeFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAboluteItems,
|
||||
nsIFrame*& aNewFrame,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult ConstructTreeBodyFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParent,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsIFrame*& aNewScrollFrame,
|
||||
nsIFrame*& aNewFrame);
|
||||
|
||||
nsresult ConstructTreeCellFrame(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewFrame,
|
||||
nsAbsoluteItems& aFixedItems,
|
||||
PRBool anAllowEvents);
|
||||
#endif
|
||||
|
||||
nsresult ConstructFrameByDisplayType(nsIPresContext* aPresContext,
|
||||
const nsStyleDisplay* aDisplay,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsFrameItems& aFrameItems,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult GetAdjustedParentFrame(nsIFrame* aCurrentParentFrame,
|
||||
PRUint8 aChildDisplayType,
|
||||
nsIFrame*& aNewParentFrame);
|
||||
|
||||
|
||||
nsresult ProcessChildren(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aFrame,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsFrameItems& aFrameItems,
|
||||
nsAbsoluteItems& aFixedItems);
|
||||
|
||||
nsresult CreateInputFrame(nsIContent* aContent, nsIFrame*& aFrame);
|
||||
|
||||
PRBool IsScrollable(nsIPresContext* aPresContext, const nsStyleDisplay* aDisplay);
|
||||
|
||||
nsIFrame* GetFrameFor(nsIPresShell* aPresShell, nsIPresContext* aPresContext,
|
||||
nsIContent* aContent);
|
||||
|
||||
nsIFrame* GetAbsoluteContainingBlock(nsIPresContext* aPresContext,
|
||||
nsIFrame* aFrame);
|
||||
|
||||
nsresult InitializeScrollFrame(nsIFrame * aScrollFrame,
|
||||
nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIFrame* aParentFrame,
|
||||
nsIStyleContext* aStyleContext,
|
||||
nsAbsoluteItems& aAbsoluteItems,
|
||||
nsIFrame*& aNewFrame,
|
||||
nsAbsoluteItems& aFixedItems,
|
||||
PRBool aIsAbsolutelyPositioned,
|
||||
PRBool aIsFixedPositioned,
|
||||
PRBool aCreateBlock);
|
||||
|
||||
nsresult RecreateFramesOnAttributeChange(nsIPresContext* aPresContext,
|
||||
nsIContent* aContent,
|
||||
nsIAtom* aAttribute);
|
||||
|
||||
protected:
|
||||
nsIDocument* mDocument;
|
||||
|
||||
nsIFrame* mInitialContainingBlock;
|
||||
nsIFrame* mFixedContainingBlock;
|
||||
nsIFrame* mDocElementContainingBlock;
|
||||
};
|
||||
|
||||
#endif /* nsCSSFrameConstructor_h___ */
|
||||
Loading…
Reference in a new issue