Back to index

lightning-sunbird  0.9+nobinonly
Public Member Functions | Static Public Member Functions | Public Attributes
CLeafElement Class Reference

#include <COtherElements.h>

Inheritance diagram for CLeafElement:
Inheritance graph
[legend]
Collaboration diagram for CLeafElement:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 CLeafElement (eHTMLTags aTag)
CElementGetDelegate (void)
CElementGetDefaultContainerFor (CElement *anElement)
virtual PRBool CanContain (CElement *anElement, nsDTDContext *aContext)
virtual PRInt32 FindAutoCloseIndexForStartTag (CElement *anElement, PRInt32 aParentIndex, nsDTDContext *aContext)
virtual PRBool CanBeClosedByEndTag (CElement *anElement, nsDTDContext *aContext)
virtual PRBool IsBlockCloser (void)
virtual PRBool IsBlockElement (eHTMLTags aParentID)
virtual PRBool IsInlineElement (eHTMLTags aParentID)
virtual PRBool IsContainer (void)
virtual PRBool IsSinkContainer (void)
virtual eHTMLTags GetSkipTarget (void)
virtual nsresult WillHandleStartToken (CElement *anElement, nsIParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
virtual nsresult HandleStartToken (nsCParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
virtual nsresult HandleEndToken (nsCParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
virtual nsresult HandleMisplacedStartToken (nsCParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
virtual PRInt32 FindAutoCloseTargetForEndTag (nsCParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink, PRInt32 &anIndex)
virtual nsresult HandleMisplacedEndToken (nsIParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
nsresult AutoGenerateStructure (eHTMLTags *aTagList, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
virtual nsresult NotifyOpen (nsIParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
virtual nsresult NotifyClose (nsIParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
virtual nsresult OpenContainer (nsIParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
virtual nsresult OpenContext (nsCParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
virtual nsresult OpenContainerInContext (nsCParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
virtual nsresult CloseContainer (nsIParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
virtual nsresult CloseContext (nsCParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
virtual nsresult CloseContainerInContext (nsCParserNode *aNode, eHTMLTags aTag, nsDTDContext *aContext, nsIHTMLContentSink *aSink)
CElementGetElement (eHTMLTags aTag)

Static Public Member Functions

static CGroupMembersGetGroup (void)
static CGroupMembersGetContainedGroups (void)
static void Initialize (CElement &anElement, eHTMLTags aTag)
static CGroupMembersGetEmptyGroup (void)
static void Initialize (CElement &anElement, eHTMLTags aTag, CGroupMembers &aGroup, CGroupMembers &aContainsGroups)
static void InitializeLeaf (CElement &anElement, eHTMLTags aTag, CGroupMembers &aGroup, CGroupMembers &aContainsGroups)

Public Attributes

union CElement.__unnamed__ 
eHTMLTags mTag
eHTMLTags mDelegate
CGroupMembers mGroup
CGroupMembers mContainsGroups
const eHTMLTagsmIncludeKids
const eHTMLTagsmExcludeKids
const eHTMLTagsmAutoClose

Detailed Description

Definition at line 373 of file COtherElements.h.


Constructor & Destructor Documentation

Definition at line 392 of file COtherElements.h.

                               : CElement(aTag) {
    mProperties.mIsContainer=0;
  }

Member Function Documentation

nsresult CElement::AutoGenerateStructure ( eHTMLTags aTagList,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [inline, inherited]

Definition at line 264 of file COtherElements.h.

                                                                                                        {
    nsresult  result=NS_OK;

    CStartToken theToken(*aTagList);
    nsCParserNode theNode(&theToken, 0 /*stack token*/);
    result=OpenContainer(&theNode,*aTagList,aContext,aSink);
    if(eHTMLTag_unknown!=*(aTagList+1)) {
      AutoGenerateStructure(++aTagList,aContext,aSink);
    }
    
    CEndToken theEndToken(*aTagList--);
    nsCParserNode theEndNode(&theEndToken, 0 /*stack token*/);
    result=CloseContainer(&theEndNode,*aTagList,aContext,aSink);

    return result;
  }

Here is the call graph for this function:

Here is the caller graph for this function:

PRBool CElement::CanBeClosedByEndTag ( CElement anElement,
nsDTDContext aContext 
) [virtual, inherited]

Definition at line 2581 of file COtherElements.h.

                                                                               {
  PRBool result=PR_FALSE;

    //first, let's see if we can contain the given tag based on group info...
  if(anElement) {
    if(ListContainsTag(mAutoClose,anElement->mTag)) {
      return PR_TRUE;
    }
    else if((this==anElement) && (!mContainsGroups.mBits.mSelf)){
      return PR_TRUE;
    }
    else {
      eHTMLTags theTag=aContext->Last();
      CElement* theElement=gElementTable->mElements[theTag];
      if(HasOptionalEndTag(theTag)) {
        if(anElement->CanContain(theElement,aContext)){
          result=PR_TRUE;
        }
      }
    }
  }
  return result;
}

Here is the call graph for this function:

PRBool CElement::CanContain ( CElement anElement,
nsDTDContext aContext 
) [virtual, inherited]

Reimplemented in CBodyElement, CTableElement, and CFormElement.

Definition at line 2609 of file COtherElements.h.

                                                                      {
  PRBool result=PR_FALSE;

    //first, let's see if we can contain the given tag based on group info...
  if(anElement) {
    if(!anElement->mProperties.mDeprecated) {
      if(anElement!=this) {
        if(ListContainsTag(mExcludeKids,anElement->mTag)) {
          return PR_FALSE;
        }
        else if(ContainsGroup(mContainsGroups,anElement->mGroup)) {
          result=PR_TRUE;
        }
        else if(ListContainsTag(mIncludeKids,anElement->mTag)) {
          return PR_TRUE;
        }
      }
      else result=mContainsGroups.mBits.mSelf;
    }    

      /***************************************************
        This is a (cheesy) exception table, that allows
        us to override containment for transitional 
        documents. A better implementation would be to
        create unique classes for each of the tags in 
        this table, and to override CanContain() there.
       ***************************************************/
    
    if((!result) && (aContext->mFlags.mTransitional)) {
      switch(mTag) {
        case eHTMLTag_address:
          if(eHTMLTag_p==anElement->mTag)
            result=PR_TRUE;
          break;

        case eHTMLTag_blockquote:
        case eHTMLTag_form:
        case eHTMLTag_iframe:
          result=ContainsGroup(CFlowElement::GetContainedGroups(),anElement->mGroup);            
          break;

        case eHTMLTag_button:
          if((eHTMLTag_iframe==anElement->mTag) || (eHTMLTag_isindex==anElement->mTag)) 
            result=PR_TRUE;
          break;

        default:
          break;
      }
    }
  }
  return result;
}

Here is the call graph for this function:

Here is the caller graph for this function:

virtual nsresult CElement::CloseContainer ( nsIParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [inline, virtual, inherited]

Definition at line 324 of file COtherElements.h.

                                                                                                                         {
    return aSink->CloseContainer(aTag);
  }

Here is the call graph for this function:

Here is the caller graph for this function:

virtual nsresult CElement::CloseContainerInContext ( nsCParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [inline, virtual, inherited]

Definition at line 346 of file COtherElements.h.

                                                                                                                                 {    
    nsresult result=NS_OK;
    if(mTag!=aTag) {
      CElement *theElement=GetElement(aTag);
      return theElement->CloseContainerInContext(aNode,aTag,aContext,aSink);
    }
    result=CloseContainer(aNode,aTag,aContext,aSink);
    CloseContext(aNode,aTag,aContext,aSink);
    return result;
  }

Here is the call graph for this function:

Here is the caller graph for this function:

virtual nsresult CElement::CloseContext ( nsCParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [inline, virtual, inherited]

Definition at line 331 of file COtherElements.h.

                                                                                                                       {
    nsresult result=NS_OK;
    nsEntryStack  *theStack=0;
    nsCParserNode *theNode=aContext->Pop(theStack);

    CElement *theElement=(aTag==mTag) ? this : GetElement(aTag);
    result=theElement->NotifyClose(theNode,aTag,aContext,aSink);

    IF_FREE(aNode, aContext->mNodeAllocator);
    return result;
  }

Here is the call graph for this function:

Here is the caller graph for this function:

PRInt32 CElement::FindAutoCloseIndexForStartTag ( CElement anElement,
PRInt32  aParentIndex,
nsDTDContext aContext 
) [virtual, inherited]

Definition at line 2545 of file COtherElements.h.

                                                                                                               {
  PRInt32 result=kNotFound;

  if(anElement) {
    eHTMLTags theParentTag=aContext->TagAt(aParentIndex);
    if(eHTMLTag_unknown!=theParentTag) {

      CElement* theParent=gElementTable->mElements[theParentTag];

      if(!theParent->CanContain(anElement,aContext)) {
        if(HasOptionalEndTag(theParentTag)) {

          if(ListContainsTag(theParent->mAutoClose,anElement->mTag)) {
            result=theParent->FindAutoCloseIndexForStartTag(anElement,aParentIndex-1,aContext);
          }
          else if((theParent->mTag==anElement->mTag) && (!theParent->mContainsGroups.mBits.mSelf)){
            result=aParentIndex;
          }
          else if(eHTMLTag_body!=theParent->mTag) {
            result=theParent->FindAutoCloseIndexForStartTag(anElement,aParentIndex-1,aContext);
          }
          else result=aParentIndex+1;
        }
        else result=kNotFound;
      } 
      else result=aParentIndex+1;
    }
  }

  return result;
}

Here is the call graph for this function:

Here is the caller graph for this function:

virtual PRInt32 CElement::FindAutoCloseTargetForEndTag ( nsCParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink,
PRInt32 anIndex 
) [inline, virtual, inherited]

Definition at line 242 of file COtherElements.h.

                                                                                                                                                       {
    PRInt32 result=-1;

    if(mTag!=aTag) {
      if(HasOptionalEndTag(mTag) && (0<anIndex)) {
        eHTMLTags theGrandParentTag=aContext->TagAt(--anIndex);
        CElement *theGrandParent=GetElement(theGrandParentTag);
        if(theGrandParent) {
          result=theGrandParent->FindAutoCloseTargetForEndTag(aNode,aTag,aContext,aSink,anIndex); //give the parent a chance...
        }
      }
    }
    else result=anIndex;

    return result;
  }

Here is the call graph for this function:

Here is the caller graph for this function:

static CGroupMembers& CLeafElement::GetContainedGroups ( void  ) [inline, static]

Definition at line 382 of file COtherElements.h.

                                                 {
    static CGroupMembers theGroups={0};
    return theGroups;
  }

Here is the caller graph for this function:

CElement * CElement::GetDefaultContainerFor ( CElement anElement) [inline, inherited]

Definition at line 2822 of file COtherElements.h.

                                                                     {
  CElement* result=0;

  if(anElement) {
    if(anElement->mGroup.mBits.mBlock) {
      result=gElementTable->mElements[eHTMLTag_body];
    }
    else if(anElement->mGroup.mBits.mHeadContent) {
      result=gElementTable->mElements[eHTMLTag_head];
    }
    else if(anElement->mGroup.mBits.mHeadMisc) {
      result=gElementTable->mElements[eHTMLTag_head];
    }
  }
  return result;
}

Here is the caller graph for this function:

CElement * CElement::GetDelegate ( void  ) [inline, inherited]

Definition at line 2815 of file COtherElements.h.

                                           {
  if(eHTMLTag_unknown!=mDelegate) {
    return gElementTable->mElements[mDelegate];
  }
  return 0;
}

Here is the caller graph for this function:

CElement * CElement::GetElement ( eHTMLTags  aTag) [inline, inherited]

Definition at line 2103 of file COtherElements.h.

                                                    {
  return gElementTable->mElements[aTag];
}

Here is the caller graph for this function:

static CGroupMembers& CElement::GetEmptyGroup ( void  ) [inline, static, inherited]

Definition at line 151 of file COtherElements.h.

                                            {
    static CGroupMembers theGroup={0};
    return theGroup;
  }

Here is the caller graph for this function:

static CGroupMembers& CLeafElement::GetGroup ( void  ) [inline, static]

Definition at line 376 of file COtherElements.h.

                                       {
    static CGroupMembers theGroup={0};
    theGroup.mBits.mLeaf=1;
    return theGroup;
  }

Here is the caller graph for this function:

virtual eHTMLTags CElement::GetSkipTarget ( void  ) [inline, virtual, inherited]

Definition at line 221 of file COtherElements.h.

{return eHTMLTag_unknown;}
nsresult CElement::HandleEndToken ( nsCParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [virtual, inherited]

Reimplemented in CBodyElement, CHTMLElement, CTopLevelElement, CPreformattedElement, and CTableElement.

Definition at line 2782 of file COtherElements.h.

                                                                                                                      {
  nsresult result=NS_OK;

  if(aContext->Last()==aTag) {
    CElement* theElement=gElementTable->mElements[aTag];
    if(theElement) {
      if(theElement->IsSinkContainer()) {
        result=CloseContainerInContext(aNode,aTag,aContext,aSink);
      }
      else result=CloseContext(aNode,aTag,aContext,aSink);
      return result;
    }
  }

  PRInt32   theCount=aContext->GetCount();
  PRInt32   theIndex=theCount-1;

  PRInt32 theCloseTarget=FindAutoCloseTargetForEndTag(aNode,aTag,aContext,aSink,theIndex);

  if(-1!=theCloseTarget) {
    while(theCloseTarget<theCount) {
      eHTMLTags theTag=aContext->Last();
      eHTMLTags theGrandParentTag=aContext->TagAt(theCount-2);
      CElement *theGrandParent=GetElement(theGrandParentTag);
      result=theGrandParent->HandleEndToken(aNode,theTag,aContext,aSink);
      theCount--;
    }
    //return result;
  }
  return result;
}

Here is the call graph for this function:

Here is the caller graph for this function:

virtual nsresult CElement::HandleMisplacedEndToken ( nsIParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [inline, virtual, inherited]

Definition at line 259 of file COtherElements.h.

                                                                                                                                  {
    nsresult result=NS_OK;
    return result;
  }
virtual nsresult CElement::HandleMisplacedStartToken ( nsCParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [inline, virtual, inherited]

Definition at line 237 of file COtherElements.h.

                                                                                                                                    {
    nsresult result=NS_OK;
    return result;
  }

Here is the caller graph for this function:

nsresult CElement::HandleStartToken ( nsCParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [virtual, inherited]

Reimplemented in CBodyElement, CHTMLElement, CTopLevelElement, CFieldsetElement, CAppletElement, CPreformattedElement, and CTableElement.

Definition at line 2672 of file COtherElements.h.

                                                                 {

  CElement* theElement=gElementTable->mElements[aTag];

  nsresult  result=WillHandleStartToken(theElement,aNode,aTag,aContext,aSink);

#if 0
  CElement* theDelegate=theElement->GetDelegate();
  if(theDelegate) {
    result=theDelegate->HandleStartToken(aNode,aTag,aContext,aSink);
  }
  else 
#endif

  {
    if(theElement) {
      if(CanContain(theElement,aContext)) {
    
        if(theElement->IsContainer()) {
          if(theElement->IsSinkContainer()) {
            result=theElement->OpenContainerInContext(aNode,aTag,aContext,aSink);
          }
          else {
            result=theElement->OpenContext(aNode,aTag,aContext,aSink);
          }
        }
        else {
          result=aSink->AddLeaf(*aNode); 
        }
      }
      else if(theElement->IsBlockCloser()){

        //Ok, so we have a start token that is misplaced. Before handing this off
        //to a default container (parent), let's check the autoclose condition.
        if(HasOptionalEndTag(mTag)) {

          //aha! We have a case where this tag is autoclosed by anElement.
          //Let's close this container, then try to open theElement.
          PRInt32 theCount=aContext->GetCount();
          PRInt32 theIndex=FindAutoCloseIndexForStartTag(theElement,theCount-2,aContext);

          //continue ripping code out here...

          if(kNotFound!=theIndex) {
            eHTMLTags theParentTag=eHTMLTag_unknown;
            CElement* theParent=0;

            while(NS_SUCCEEDED(result) && (theCount>theIndex)) {

              theParentTag=aContext->Last();
              theParent=gElementTable->mElements[theParentTag];

              nsCParserNode *theNode=aContext->PeekNode(); //this will get popped later...
              if(theParent->IsSinkContainer()) {
                CloseContainerInContext(theNode,theParentTag,aContext,aSink);
              }
              else CloseContext(theNode,theParentTag,aContext,aSink);
              theCount--;
            }

            if(NS_SUCCEEDED(result)){
              theParentTag=aContext->Last();
              theParent=gElementTable->mElements[theParentTag];
              result=theParent->HandleStartToken(aNode,aTag,aContext,aSink);
            }
          }
          return result;
        }
        else {
          
          PRBool theElementCanOpen=PR_FALSE;

            //the logic here is simple:
            //  This operation can only succeed if the given tag is open, AND
            //  all the tags below it have optional end tags.
            //  If these conditions aren't met, we bail out, leaving the tag open.

          if(mTag!=aTag) {
            PRInt32 theLastPos=aContext->LastOf(aTag); //see if it's already open...
            if(-1!=theLastPos) {
              PRInt32 theCount=aContext->GetCount();
              result=HandleEndToken(aNode,aTag,aContext,aSink);
              theElementCanOpen=PRBool(aContext->GetCount()<theCount);
            }
          }

          if(theElementCanOpen) {
            if(NS_SUCCEEDED(result)){
              eHTMLTags theParentTag=aContext->Last();
              CElement* theParent=gElementTable->mElements[theParentTag];
              return theParent->HandleStartToken(aNode,aTag,aContext,aSink);
            }            
          }
        }

          //ok, here's our last recourse -- let's let the parent handle it.
        CElement* theContainer=GetDefaultContainerFor(theElement);
        if(theContainer) {
          result=theContainer->HandleMisplacedStartToken(aNode,aTag,aContext,aSink);
        }
      }
    }
  }
  return result;
}

Here is the call graph for this function:

Here is the caller graph for this function:

static void CElement::Initialize ( CElement anElement,
eHTMLTags  aTag,
CGroupMembers aGroup,
CGroupMembers aContainsGroups 
) [inline, static, inherited]

Definition at line 172 of file COtherElements.h.

                                                                                                                  {
    anElement.mProperties.mIsContainer=PR_TRUE;
    anElement.mProperties.mIsSinkContainer=PR_TRUE;
    anElement.mTag=aTag;
    anElement.mGroup.mAllBits=aGroup.mAllBits;
    anElement.mContainsGroups.mAllBits=aContainsGroups.mAllBits;
  }
static void CLeafElement::Initialize ( CElement anElement,
eHTMLTags  aTag 
) [inline, static]

Reimplemented from CElement.

Definition at line 387 of file COtherElements.h.

Here is the call graph for this function:

static void CElement::InitializeLeaf ( CElement anElement,
eHTMLTags  aTag,
CGroupMembers aGroup,
CGroupMembers aContainsGroups 
) [inline, static, inherited]

Definition at line 164 of file COtherElements.h.

                                                                                                                      {
    anElement.mProperties.mIsContainer=PR_FALSE;
    anElement.mProperties.mIsSinkContainer=PR_FALSE;
    anElement.mTag=aTag;
    anElement.mGroup.mAllBits=aGroup.mAllBits;
    anElement.mContainsGroups.mAllBits=aContainsGroups.mAllBits;
  }

Here is the caller graph for this function:

virtual PRBool CElement::IsBlockCloser ( void  ) [inline, virtual, inherited]

Definition at line 189 of file COtherElements.h.

Here is the call graph for this function:

Here is the caller graph for this function:

PRBool CElement::IsBlockElement ( eHTMLTags  aParentID) [virtual, inherited]

Definition at line 2842 of file COtherElements.h.

Here is the call graph for this function:

Here is the caller graph for this function:

virtual PRBool CElement::IsContainer ( void  ) [inline, virtual, inherited]

Definition at line 216 of file COtherElements.h.

{return mProperties.mIsContainer;  }

Here is the caller graph for this function:

PRBool CElement::IsInlineElement ( eHTMLTags  aParentID) [virtual, inherited]

Definition at line 2850 of file COtherElements.h.

                                                    {
  CGroupMembers& theInlineGroup=CInlineElement::GetContainedGroups();
  PRBool result=ContainsGroup(theInlineGroup,mGroup);
  return result;
}

Here is the call graph for this function:

Here is the caller graph for this function:

virtual PRBool CElement::IsSinkContainer ( void  ) [inline, virtual, inherited]

Definition at line 219 of file COtherElements.h.

{ return mProperties.mIsSinkContainer; }

Here is the caller graph for this function:

virtual nsresult CElement::NotifyClose ( nsIParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [inline, virtual, inherited]

Reimplemented in CTextContainer, and CTableElement.

Definition at line 292 of file COtherElements.h.

                                                                                                                      {
    return NS_OK;
  }

Here is the caller graph for this function:

virtual nsresult CElement::NotifyOpen ( nsIParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [inline, virtual, inherited]

Reimplemented in CTableElement.

Definition at line 285 of file COtherElements.h.

                                                                                                                     {
    return NS_OK;
  }

Here is the caller graph for this function:

virtual nsresult CElement::OpenContainer ( nsIParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [inline, virtual, inherited]

Reimplemented in CFormElement.

Definition at line 299 of file COtherElements.h.

                                                                                                                        {
    return aSink->OpenContainer(*aNode);
  }

Here is the call graph for this function:

Here is the caller graph for this function:

virtual nsresult CElement::OpenContainerInContext ( nsCParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [inline, virtual, inherited]

Reimplemented in CBodyElement, and CScriptElement.

Definition at line 316 of file COtherElements.h.

                                                                                                                                {    
    OpenContext(aNode,aTag,aContext,aSink);
    return OpenContainer(aNode,aTag,aContext,aSink);
  }

Here is the call graph for this function:

Here is the caller graph for this function:

virtual nsresult CElement::OpenContext ( nsCParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [inline, virtual, inherited]

Definition at line 306 of file COtherElements.h.

                                                                                                                      {
    aContext->Push(aNode, 0, PR_FALSE);
    CElement *theElement = (aTag == mTag) ? this : GetElement(aTag);
    theElement->NotifyOpen(aNode, aTag, aContext,aSink);
    return NS_OK;
  }

Here is the call graph for this function:

Here is the caller graph for this function:

nsresult CElement::WillHandleStartToken ( CElement anElement,
nsIParserNode aNode,
eHTMLTags  aTag,
nsDTDContext aContext,
nsIHTMLContentSink aSink 
) [virtual, inherited]

Definition at line 2663 of file COtherElements.h.

                                                                     {
  nsresult result=NS_OK;
  return result;
}

Here is the caller graph for this function:


Member Data Documentation

union { ... } [inherited]

Definition at line 366 of file COtherElements.h.

Definition at line 363 of file COtherElements.h.

Definition at line 361 of file COtherElements.h.

Definition at line 365 of file COtherElements.h.

Definition at line 362 of file COtherElements.h.

Definition at line 364 of file COtherElements.h.

Definition at line 360 of file COtherElements.h.


The documentation for this class was generated from the following file: