summaryrefslogtreecommitdiffstats
path: root/layout/generic/nsHTMLParts.h
diff options
context:
space:
mode:
Diffstat (limited to 'layout/generic/nsHTMLParts.h')
-rw-r--r--layout/generic/nsHTMLParts.h211
1 files changed, 211 insertions, 0 deletions
diff --git a/layout/generic/nsHTMLParts.h b/layout/generic/nsHTMLParts.h
new file mode 100644
index 000000000..89a7a6edd
--- /dev/null
+++ b/layout/generic/nsHTMLParts.h
@@ -0,0 +1,211 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* factory functions for rendering object classes */
+
+#ifndef nsHTMLParts_h___
+#define nsHTMLParts_h___
+
+#include "nscore.h"
+#include "nsISupports.h"
+#include "nsIFrame.h"
+class nsIAtom;
+class nsNodeInfoManager;
+class nsIContent;
+class nsIDocument;
+class nsIFrame;
+class nsIHTMLContentSink;
+class nsIFragmentContentSink;
+class nsStyleContext;
+class nsIURI;
+class nsIPresShell;
+class nsIChannel;
+class nsTableColFrame;
+
+// These are all the block specific frame bits, they are copied from
+// the prev-in-flow to a newly created next-in-flow, except for the
+// NS_BLOCK_FLAGS_NON_INHERITED_MASK bits below.
+#define NS_BLOCK_FLAGS_MASK (NS_BLOCK_MARGIN_ROOT | \
+ NS_BLOCK_FLOAT_MGR | \
+ NS_BLOCK_CLIP_PAGINATED_OVERFLOW | \
+ NS_BLOCK_HAS_FIRST_LETTER_STYLE | \
+ NS_BLOCK_FRAME_HAS_OUTSIDE_BULLET | \
+ NS_BLOCK_HAS_FIRST_LETTER_CHILD | \
+ NS_BLOCK_FRAME_HAS_INSIDE_BULLET)
+
+// This is the subset of NS_BLOCK_FLAGS_MASK that is NOT inherited
+// by default. They should only be set on the first-in-flow.
+// See nsBlockFrame::Init.
+#define NS_BLOCK_FLAGS_NON_INHERITED_MASK \
+ (NS_BLOCK_FRAME_HAS_OUTSIDE_BULLET | \
+ NS_BLOCK_HAS_FIRST_LETTER_CHILD | \
+ NS_BLOCK_FRAME_HAS_INSIDE_BULLET)
+
+// Factory methods for creating html layout objects
+
+// Create a frame that supports "display: block" layout behavior
+class nsBlockFrame;
+nsBlockFrame*
+NS_NewBlockFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+
+// Special Generated Content Node. It contains text taken from an
+// attribute of its *grandparent* content node.
+nsresult
+NS_NewAttributeContent(nsNodeInfoManager *aNodeInfoManager,
+ int32_t aNameSpaceID, nsIAtom* aAttrName,
+ nsIContent** aResult);
+
+// Create a basic area frame but the GetFrameForPoint is overridden to always
+// return the option frame
+// By default, area frames will extend
+// their height to cover any children that "stick out".
+nsContainerFrame*
+NS_NewSelectsAreaFrame(nsIPresShell* aPresShell, nsStyleContext* aContext, nsFrameState aFlags);
+
+// Create a block formatting context blockframe
+nsBlockFrame*
+NS_NewBlockFormattingContext(nsIPresShell* aPresShell, nsStyleContext* aStyleContext);
+
+nsIFrame*
+NS_NewBRFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+
+nsIFrame*
+NS_NewCommentFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+
+// <frame> and <iframe>
+nsIFrame*
+NS_NewSubDocumentFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+// <frameset>
+nsIFrame*
+NS_NewHTMLFramesetFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+
+class ViewportFrame;
+ViewportFrame*
+NS_NewViewportFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+class nsCanvasFrame;
+nsCanvasFrame*
+NS_NewCanvasFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewImageFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+class nsInlineFrame;
+nsInlineFrame*
+NS_NewInlineFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewObjectFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewTextFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewContinuingTextFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewEmptyFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+inline nsIFrame*
+NS_NewWBRFrame(nsIPresShell* aPresShell, nsStyleContext* aContext) {
+ return NS_NewEmptyFrame(aPresShell, aContext);
+}
+
+nsContainerFrame*
+NS_NewColumnSetFrame(nsIPresShell* aPresShell, nsStyleContext* aContext, nsFrameState aStateFlags);
+
+class nsSimplePageSequenceFrame;
+nsSimplePageSequenceFrame*
+NS_NewSimplePageSequenceFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+class nsPageFrame;
+nsPageFrame*
+NS_NewPageFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+class nsPageContentFrame;
+nsPageContentFrame*
+NS_NewPageContentFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewPageBreakFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+class nsFirstLetterFrame;
+nsFirstLetterFrame*
+NS_NewFirstLetterFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+class nsFirstLineFrame;
+nsFirstLineFrame*
+NS_NewFirstLineFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+
+// forms
+nsContainerFrame*
+NS_NewGfxButtonControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewNativeButtonControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewImageControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsContainerFrame*
+NS_NewHTMLButtonControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewGfxCheckboxControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewNativeCheckboxControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsContainerFrame*
+NS_NewFieldSetFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewFileControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewColorControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewLegendFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewNativeTextControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewTextControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewGfxAutoTextControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewGfxRadioControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewNativeRadioControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewNativeSelectControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsContainerFrame*
+NS_NewListControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsContainerFrame*
+NS_NewComboboxControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext, nsFrameState aFlags);
+nsIFrame*
+NS_NewProgressFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewMeterFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewRangeFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewNumberControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsIFrame*
+NS_NewDateTimeControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsBlockFrame*
+NS_NewDetailsFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+
+// Table frame factories
+class nsTableWrapperFrame;
+nsTableWrapperFrame*
+NS_NewTableWrapperFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+class nsTableFrame;
+nsTableFrame*
+NS_NewTableFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+nsTableColFrame*
+NS_NewTableColFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+class nsTableColGroupFrame;
+nsTableColGroupFrame*
+NS_NewTableColGroupFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+class nsTableRowFrame;
+nsTableRowFrame*
+NS_NewTableRowFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+class nsTableRowGroupFrame;
+nsTableRowGroupFrame*
+NS_NewTableRowGroupFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
+class nsTableCellFrame;
+nsTableCellFrame*
+NS_NewTableCellFrame(nsIPresShell* aPresShell, nsStyleContext* aContext, nsTableFrame* aTableFrame);
+
+nsresult
+NS_NewHTMLContentSink(nsIHTMLContentSink** aInstancePtrResult,
+ nsIDocument* aDoc, nsIURI* aURL,
+ nsISupports* aContainer, // e.g. docshell
+ nsIChannel* aChannel);
+nsresult
+NS_NewHTMLFragmentContentSink(nsIFragmentContentSink** aInstancePtrResult);
+nsresult
+NS_NewHTMLFragmentContentSink2(nsIFragmentContentSink** aInstancePtrResult);
+
+#endif /* nsHTMLParts_h___ */