diff --git a/layout/html/base/src/nsHTMLHead.cpp b/layout/html/base/src/nsHTMLHead.cpp new file mode 100644 index 000000000000..1b3bcf3ab3c0 --- /dev/null +++ b/layout/html/base/src/nsHTMLHead.cpp @@ -0,0 +1,74 @@ +/* -*- 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. + */ +#include "nsHTMLParts.h" +#include "nsHTMLContainer.h" +#include "nsFrame.h" +#include "nsHTMLIIDs.h" + +class nsHTMLHead : public nsHTMLContainer { +public: + nsHTMLHead(nsIAtom* aTag); + + virtual nsresult CreateFrame(nsIPresContext* aPresContext, + nsIFrame* aParentFrame, + nsIStyleContext* aStyleContext, + nsIFrame*& aResult); + +protected: + virtual ~nsHTMLHead(); +}; + +nsHTMLHead::nsHTMLHead(nsIAtom* aTag) + : nsHTMLContainer(aTag) +{ +} + +nsHTMLHead::~nsHTMLHead() +{ +} + +nsresult +nsHTMLHead::CreateFrame(nsIPresContext* aPresContext, + nsIFrame* aParentFrame, + nsIStyleContext* aStyleContext, + nsIFrame*& aResult) +{ + nsIFrame* frame; + nsFrame::NewFrame(&frame, this, aParentFrame); + if (nsnull == frame) { + return NS_ERROR_OUT_OF_MEMORY; + } + frame->SetStyleContext(aPresContext, aStyleContext); + aResult = frame; + return NS_OK; +} + +nsresult +NS_NewHTMLHead(nsIHTMLContent** aInstancePtrResult, + nsIAtom* aTag) +{ + NS_PRECONDITION(nsnull != aInstancePtrResult, "null ptr"); + if (nsnull == aInstancePtrResult) { + return NS_ERROR_NULL_POINTER; + } + nsIHTMLContent* it = new nsHTMLHead(aTag); + if (nsnull == it) { + return NS_ERROR_OUT_OF_MEMORY; + } + return it->QueryInterface(kIHTMLContentIID, (void **) aInstancePtrResult); +}