Back to index

lightning-sunbird  0.9+nobinonly
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Friends
nsLineBox Class Reference

The nsLineBox class represents a horizontal line of frames. More...

#include <nsLineBox.h>

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

List of all members.

Classes

struct  ExtraBlockData
struct  ExtraData
struct  ExtraInlineData
struct  FlagBits

Public Member Functions

void Destroy (nsIPresShell *aPresShell)
PRBool IsBlock () const
PRBool IsInline () const
void MarkDirty ()
void ClearDirty ()
PRBool IsDirty () const
void MarkPreviousMarginDirty ()
void ClearPreviousMarginDirty ()
PRBool IsPreviousMarginDirty () const
void SetHasClearance ()
void ClearHasClearance ()
PRBool HasClearance () const
void SetLineIsImpactedByFloat (PRBool aValue)
PRBool IsImpactedByFloat () const
void SetHasPercentageChild (PRBool aOn)
PRBool HasPercentageChild () const
void SetLineWrapped (PRBool aOn)
PRBool IsLineWrapped () const
void DisableResizeReflowOptimization ()
void EnableResizeReflowOptimization ()
PRBool ResizeReflowOptimizationDisabled () const
PRInt32 GetChildCount () const
void SetChildCount (PRInt32 aNewCount)
PRBool HasBreakBefore () const
void SetBreakTypeBefore (PRUint8 aBreakType)
PRUint8 GetBreakTypeBefore () const
PRBool HasBreakAfter () const
void SetBreakTypeAfter (PRUint8 aBreakType)
PRBool HasFloatBreakAfter () const
PRUint8 GetBreakTypeAfter () const
nsCollapsingMargin GetCarriedOutBottomMargin () const
PRBool SetCarriedOutBottomMargin (nsCollapsingMargin aValue)
PRBool HasFloats () const
nsFloatCacheGetFirstFloat ()
void FreeFloats (nsFloatCacheFreeList &aFreeList)
void AppendFloats (nsFloatCacheFreeList &aFreeList)
PRBool RemoveFloat (nsIFrame *aFrame)
void SetCombinedArea (const nsRect &aCombinedArea)
nsRect GetCombinedArea ()
PRBool CombinedAreaIntersects (const nsRect &aDamageRect)
void SlideBy (nscoord aDY)
nscoord GetAscent () const
 The ascent (distance from top to baseline) of the linebox is the ascent of the anonymous inline box (for which we don't actually create a frame) that wraps all the consecutive inline children of a block.
void SetAscent (nscoord aAscent)
nscoord GetHeight () const
nsIFrameLastChild () const
PRBool IsLastChild (nsIFrame *aFrame) const
PRInt32 IndexOf (nsIFrame *aFrame) const
PRBool Contains (nsIFrame *aFrame) const
PRBool IsEmpty () const
PRBool CachedIsEmpty ()
void InvalidateCachedIsEmpty ()
PRBool IsValidCachedIsEmpty ()

Static Public Member Functions

static void DeleteLineList (nsPresContext *aPresContext, nsLineList &aLines)
static nsLineBoxFindLineContaining (nsLineList &aLines, nsIFrame *aFrame, PRInt32 *aFrameIndexInLine)
static PRBool RFindLineContaining (nsIFrame *aFrame, const nsLineList_iterator &aBegin, nsLineList_iterator &aEnd, PRInt32 *aFrameIndexInLine)

Public Attributes

nsIFramemFirstChild
nsRect mBounds
nscoord mMaxElementWidth
nscoord mMaximumWidth

Protected Member Functions

void Cleanup ()
void MaybeFreeData ()

Protected Attributes

nscoord mAscent
union {
PRUint32 mAllFlags
FlagBits mFlags
}; 
union {
ExtraDatamData
ExtraBlockDatamBlockData
ExtraInlineDatamInlineData
}; 

Private Member Functions

 nsLineBox (nsIFrame *aFrame, PRInt32 aCount, PRBool aIsBlock)
 ~nsLineBox ()
voidoperator new (size_t sz, nsIPresShell *aPresShell) CPP_THROW_NEW
void operator delete (void *aPtr, size_t sz)

Friends

nsLineBoxNS_NewLineBox (nsIPresShell *aPresShell, nsIFrame *aFrame, PRInt32 aCount, PRBool aIsBlock)
class nsLineList
class nsLineList_iterator
class nsLineList_reverse_iterator
class nsLineList_const_iterator
class nsLineList_const_reverse_iterator

Detailed Description

The nsLineBox class represents a horizontal line of frames.

It contains enough state to support incremental reflow of the frames, event handling for the frames, and rendering of the frames.

Definition at line 204 of file nsLineBox.h.


Class Documentation

struct nsLineBox::FlagBits

Definition at line 458 of file nsLineBox.h.

Class Members
PRUint32 mBlock: 1
PRUint32 mBreakType: 4
PRUint32 mChildCount: 18
PRUint32 mDirty: 1
PRUint32 mEmptyCacheState: 1
PRUint32 mEmptyCacheValid: 1
PRUint32 mHasClearance: 1
PRUint32 mHasPercentageChild: 1
PRUint32 mImpactedByFloat: 1
PRUint32 mLineWrapped: 1
PRUint32 mPreviousMarginDirty: 1
PRUint32 mResizeReflowOptimizationDisabled: 1

Constructor & Destructor Documentation

nsLineBox::nsLineBox ( nsIFrame aFrame,
PRInt32  aCount,
PRBool  aIsBlock 
) [private]

Definition at line 56 of file nsLineBox.cpp.

  : mFirstChild(aFrame),
    mBounds(0, 0, 0, 0),
    mMaxElementWidth(0),
    mMaximumWidth(-1),
    mData(nsnull)
{
  MOZ_COUNT_CTOR(nsLineBox);
#ifdef DEBUG
  ++ctorCount;
  NS_ASSERTION(!aIsBlock || aCount == 1, "Blocks must have exactly one child");
  nsIFrame* f = aFrame;
  for (PRInt32 n = aCount; n > 0; f = f->GetNextSibling(), --n) {
    NS_ASSERTION(aIsBlock == f->GetStyleDisplay()->IsBlockLevel(),
                 "wrong kind of child frame");
  }
#endif

  mAllFlags = 0;
#if NS_STYLE_CLEAR_NONE > 0
  mFlags.mBreakType = NS_STYLE_CLEAR_NONE;
#endif
  SetChildCount(aCount);
  MarkDirty();
  mFlags.mBlock = aIsBlock;
}

Here is the call graph for this function:

nsLineBox::~nsLineBox ( ) [private]

Definition at line 83 of file nsLineBox.cpp.

Here is the call graph for this function:


Member Function Documentation

Definition at line 450 of file nsLineBox.cpp.

{ 
  NS_ABORT_IF_FALSE(IsInline(), "block line can't have floats");
  if (IsInline()) {
    if (aFreeList.NotEmpty()) {
      if (!mInlineData) {
        mInlineData = new ExtraInlineData(mBounds);
      }
      if (mInlineData) {
        mInlineData->mFloats.Append(aFreeList);
      }
    }
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 300 of file nsLineBox.cpp.

{
  if (mFlags.mDirty) {
    return IsEmpty();
  }
  
  if (mFlags.mEmptyCacheValid) {
    return mFlags.mEmptyCacheState;
  }

  PRBool result = IsEmpty();
  mFlags.mEmptyCacheValid = PR_TRUE;
  mFlags.mEmptyCacheState = result;
  return result;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void nsLineBox::Cleanup ( ) [protected]

Definition at line 122 of file nsLineBox.cpp.

{
  if (mData) {
    if (IsBlock()) {
      delete mBlockData;
    }
    else {
      delete mInlineData;
    }
    mData = nsnull;
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 233 of file nsLineBox.h.

                    {
    mFlags.mDirty = 0;
  }

Here is the caller graph for this function:

Definition at line 255 of file nsLineBox.h.

                           {
    mFlags.mHasClearance = 0;
  }

Here is the caller graph for this function:

Definition at line 244 of file nsLineBox.h.

                                  {
    mFlags.mPreviousMarginDirty = 0;
  }

Here is the caller graph for this function:

Definition at line 371 of file nsLineBox.h.

                                                           {
    nsRect* ca = (mData ? &mData->mCombinedArea : &mBounds);
    return !((ca->YMost() <= aDamageRect.y) ||
             (ca->y >= aDamageRect.YMost()));
  }

Here is the call graph for this function:

PRBool nsLineBox::Contains ( nsIFrame aFrame) const [inline]

Definition at line 426 of file nsLineBox.h.

                                          {
    return IndexOf(aFrame) >= 0;
  }

Here is the call graph for this function:

Here is the caller graph for this function:

void nsLineBox::DeleteLineList ( nsPresContext aPresContext,
nsLineList aLines 
) [static]

Definition at line 317 of file nsLineBox.cpp.

{
  if (! aLines.empty()) {
    // Delete our child frames before doing anything else. In particular
    // we do all of this before our base class releases it's hold on the
    // view.
    for (nsIFrame* child = aLines.front()->mFirstChild; child; ) {
      nsIFrame* nextChild = child->GetNextSibling();
      child->Destroy(aPresContext);
      child = nextChild;
    }

    nsIPresShell *shell = aPresContext->PresShell();

    do {
      nsLineBox* line = aLines.front();
      aLines.pop_front();
      line->Destroy(shell);
    } while (! aLines.empty());
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 112 of file nsLineBox.cpp.

{
  // Destroy the object. This won't actually free the memory, though
  delete this;

  // Have the pres shell recycle the memory
  aPresShell->FreeFrame(sizeof(*this), (void*)this);
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 290 of file nsLineBox.h.

                                         {
    mFlags.mResizeReflowOptimizationDisabled = PR_TRUE;
  }

Here is the caller graph for this function:

Definition at line 293 of file nsLineBox.h.

                                        {
    mFlags.mResizeReflowOptimizationDisabled = PR_FALSE;
  }
nsLineBox * nsLineBox::FindLineContaining ( nsLineList aLines,
nsIFrame aFrame,
PRInt32 aFrameIndexInLine 
) [static]

Definition at line 340 of file nsLineBox.cpp.

{
  NS_PRECONDITION(aFrameIndexInLine && !aLines.empty() && aFrame, "null ptr");
  for (nsLineList::iterator line = aLines.begin(),
                            line_end = aLines.end();
       line != line_end;
       ++line)
  {
    PRInt32 ix = line->IndexOf(aFrame);
    if (ix >= 0) {
      *aFrameIndexInLine = ix;
      return line;
    }
  }
  *aFrameIndexInLine = -1;
  return nsnull;
}

Here is the call graph for this function:

Definition at line 438 of file nsLineBox.cpp.

{
  NS_ABORT_IF_FALSE(IsInline(), "block line can't have floats");
  if (IsInline() && mInlineData) {
    if (mInlineData->mFloats.NotEmpty()) {
      aFreeList.Append(mInlineData->mFloats);
    }
    MaybeFreeData();
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

nscoord nsLineBox::GetAscent ( ) const [inline]

The ascent (distance from top to baseline) of the linebox is the ascent of the anonymous inline box (for which we don't actually create a frame) that wraps all the consecutive inline children of a block.

This is currently unused for block lines.

Definition at line 392 of file nsLineBox.h.

{ return mAscent; }

Here is the caller graph for this function:

Definition at line 345 of file nsLineBox.h.

                                    {
    return !IsBlock() ? mFlags.mBreakType : NS_STYLE_CLEAR_NONE;
  }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 328 of file nsLineBox.h.

                                     {
    return IsBlock() ? mFlags.mBreakType : NS_STYLE_CLEAR_NONE;
  }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 379 of file nsLineBox.cpp.

{
  NS_ASSERTION(IsBlock(),
               "GetCarriedOutBottomMargin called on non-block line.");
  return (IsBlock() && mBlockData)
    ? mBlockData->mCarriedOutBottomMargin
    : nsCollapsingMargin();
}

Here is the call graph for this function:

Here is the caller graph for this function:

PRInt32 nsLineBox::GetChildCount ( ) const [inline]

Definition at line 301 of file nsLineBox.h.

                                {
    return (PRInt32) mFlags.mChildCount;
  }

Here is the caller graph for this function:

Definition at line 368 of file nsLineBox.h.

                           {
    return mData ? mData->mCombinedArea : mBounds;
  }

Here is the caller graph for this function:

Definition at line 430 of file nsLineBox.cpp.

{
  NS_ABORT_IF_FALSE(IsInline(), "block line can't have floats");
  return mInlineData ? mInlineData->mFloats.Head() : nsnull;
}

Here is the call graph for this function:

Here is the caller graph for this function:

nscoord nsLineBox::GetHeight ( ) const [inline]

Definition at line 395 of file nsLineBox.h.

                            {
    return mBounds.height;
  }
PRBool nsLineBox::HasBreakAfter ( ) const [inline]

Definition at line 332 of file nsLineBox.h.

                               {
    return !IsBlock() && NS_STYLE_CLEAR_NONE != mFlags.mBreakType;
  }

Here is the call graph for this function:

Here is the caller graph for this function:

PRBool nsLineBox::HasBreakBefore ( ) const [inline]

Definition at line 319 of file nsLineBox.h.

                                {
    return IsBlock() && NS_STYLE_CLEAR_NONE != mFlags.mBreakType;
  }

Here is the call graph for this function:

PRBool nsLineBox::HasClearance ( ) const [inline]

Definition at line 258 of file nsLineBox.h.

                              {
    return mFlags.mHasClearance;
  }

Here is the caller graph for this function:

Definition at line 340 of file nsLineBox.h.

                                    {
    return !IsBlock() && (NS_STYLE_CLEAR_LEFT == mFlags.mBreakType ||
                          NS_STYLE_CLEAR_RIGHT == mFlags.mBreakType ||
                          NS_STYLE_CLEAR_LEFT_AND_RIGHT == mFlags.mBreakType);
  }

Here is the call graph for this function:

Here is the caller graph for this function:

PRBool nsLineBox::HasFloats ( ) const [inline]

Definition at line 355 of file nsLineBox.h.

                           {
    return (IsInline() && mInlineData) && mInlineData->mFloats.NotEmpty();
  }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 276 of file nsLineBox.h.

                                    {
    return mFlags.mHasPercentageChild;
  }
PRInt32 nsLineBox::IndexOf ( nsIFrame aFrame) const

Definition at line 268 of file nsLineBox.cpp.

{
  PRInt32 i, n = GetChildCount();
  nsIFrame* frame = mFirstChild;
  for (i = 0; i < n; i++) {
    if (frame == aFrame) {
      return i;
    }
    frame = frame->GetNextSibling();
  }
  return -1;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 438 of file nsLineBox.h.

                                 {
    mFlags.mEmptyCacheValid = PR_FALSE;
  }

Here is the caller graph for this function:

PRBool nsLineBox::IsBlock ( ) const [inline]

Definition at line 222 of file nsLineBox.h.

                         {
    return mFlags.mBlock;
  }

Here is the caller graph for this function:

PRBool nsLineBox::IsDirty ( void  ) const [inline]

Definition at line 236 of file nsLineBox.h.

                         {
    return mFlags.mDirty;
  }

Here is the caller graph for this function:

Definition at line 282 of file nsLineBox.cpp.

{
  if (IsBlock())
    return mFirstChild->IsEmpty();

  PRInt32 n;
  nsIFrame *kid;
  for (n = GetChildCount(), kid = mFirstChild;
       n > 0;
       --n, kid = kid->GetNextSibling())
  {
    if (!kid->IsEmpty())
      return PR_FALSE;
  }
  return PR_TRUE;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 267 of file nsLineBox.h.

                                   {
    return mFlags.mImpactedByFloat;
  }

Here is the caller graph for this function:

PRBool nsLineBox::IsInline ( ) const [inline]

Definition at line 225 of file nsLineBox.h.

                          {
    return 0 == mFlags.mBlock;
  }

Here is the caller graph for this function:

PRBool nsLineBox::IsLastChild ( nsIFrame aFrame) const

Definition at line 261 of file nsLineBox.cpp.

{
  nsIFrame* lastFrame = LastChild();
  return aFrame == lastFrame;
}

Here is the call graph for this function:

PRBool nsLineBox::IsLineWrapped ( ) const [inline]

Definition at line 285 of file nsLineBox.h.

                               {
    return mFlags.mLineWrapped;
  }

Here is the caller graph for this function:

Definition at line 247 of file nsLineBox.h.

                                       {
    return mFlags.mPreviousMarginDirty;
  }

Here is the caller graph for this function:

Definition at line 443 of file nsLineBox.h.

                                {
    return mFlags.mEmptyCacheValid;
  }

Definition at line 250 of file nsLineBox.cpp.

{
  nsIFrame* frame = mFirstChild;
  PRInt32 n = GetChildCount() - 1;
  while (--n >= 0) {
    frame = frame->GetNextSibling();
  }
  return frame;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void nsLineBox::MarkDirty ( ) [inline]

Definition at line 230 of file nsLineBox.h.

                   {
    mFlags.mDirty = 1;
  }

Here is the caller graph for this function:

Definition at line 241 of file nsLineBox.h.

                                 {
    mFlags.mPreviousMarginDirty = 1;
  }

Here is the caller graph for this function:

void nsLineBox::MaybeFreeData ( ) [protected]

Definition at line 412 of file nsLineBox.cpp.

{
  if (mData && (mData->mCombinedArea == mBounds)) {
    if (IsInline()) {
      if (mInlineData->mFloats.IsEmpty()) {
        delete mInlineData;
        mInlineData = nsnull;
      }
    }
    else if (mBlockData->mCarriedOutBottomMargin.IsZero()) {
      delete mBlockData;
      mBlockData = nsnull;
    }
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

void nsLineBox::operator delete ( void aPtr,
size_t  sz 
) [private]

Definition at line 107 of file nsLineBox.cpp.

{
}
void * nsLineBox::operator new ( size_t  sz,
nsIPresShell aPresShell 
) [private]

Definition at line 99 of file nsLineBox.cpp.

{
  return aPresShell->AllocateFrame(sz);
}

Definition at line 466 of file nsLineBox.cpp.

{
  NS_ABORT_IF_FALSE(IsInline(), "block line can't have floats");
  if (IsInline() && mInlineData) {
    nsFloatCache* fc = mInlineData->mFloats.Find(aFrame);
    if (fc) {
      // Note: the placeholder is part of the line's child list
      // and will be removed later.
      mInlineData->mFloats.Remove(fc);
      MaybeFreeData();
      return PR_TRUE;
    }
  }
  return PR_FALSE;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 296 of file nsLineBox.h.

                                                  {
    return mFlags.mResizeReflowOptimizationDisabled;
  }

Here is the caller graph for this function:

PRBool nsLineBox::RFindLineContaining ( nsIFrame aFrame,
const nsLineList_iterator aBegin,
nsLineList_iterator aEnd,
PRInt32 aFrameIndexInLine 
) [static]

Definition at line 360 of file nsLineBox.cpp.

{
  NS_PRECONDITION(aFrame, "null ptr");
  while (aBegin != aEnd) {
    --aEnd;
    PRInt32 ix = aEnd->IndexOf(aFrame);
    if (ix >= 0) {
      *aFrameIndexInLine = ix;
      return PR_TRUE;
    }
  }
  *aFrameIndexInLine = -1;
  return PR_FALSE;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void nsLineBox::SetAscent ( nscoord  aAscent) [inline]

Definition at line 393 of file nsLineBox.h.

{ mAscent = aAscent; }

Here is the caller graph for this function:

void nsLineBox::SetBreakTypeAfter ( PRUint8  aBreakType) [inline]

Definition at line 335 of file nsLineBox.h.

                                             {
    NS_ASSERTION(!IsBlock(), "Only inlines have break-after");
    NS_ASSERTION(aBreakType <= LINE_MAX_BREAK_TYPE, "bad break type");
    mFlags.mBreakType = aBreakType;
  }

Here is the call graph for this function:

Here is the caller graph for this function:

void nsLineBox::SetBreakTypeBefore ( PRUint8  aBreakType) [inline]

Definition at line 322 of file nsLineBox.h.

                                              {
    NS_ASSERTION(IsBlock(), "Only blocks have break-before");
    NS_ASSERTION(aBreakType <= NS_STYLE_CLEAR_LEFT_AND_RIGHT,
                 "Only float break types are allowed before a line");
    mFlags.mBreakType = aBreakType;
  }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 389 of file nsLineBox.cpp.

{
  PRBool changed = PR_FALSE;
  if (IsBlock()) {
    if (!aValue.IsZero()) {
      if (!mBlockData) {
        mBlockData = new ExtraBlockData(mBounds);
      }
      if (mBlockData) {
        changed = aValue != mBlockData->mCarriedOutBottomMargin;
        mBlockData->mCarriedOutBottomMargin = aValue;
      }
    }
    else if (mBlockData) {
      changed = aValue != mBlockData->mCarriedOutBottomMargin;
      mBlockData->mCarriedOutBottomMargin = aValue;
      MaybeFreeData();
    }
  }
  return changed;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void nsLineBox::SetChildCount ( PRInt32  aNewCount) [inline]

Definition at line 304 of file nsLineBox.h.

                                        {
    if (aNewCount < 0) {
      NS_WARNING("negative child count");
      aNewCount = 0;
    }
    if (aNewCount > LINE_MAX_CHILD_COUNT) {
      aNewCount = LINE_MAX_CHILD_COUNT;
    }
    mFlags.mChildCount = aNewCount;
  }

Here is the caller graph for this function:

Definition at line 483 of file nsLineBox.cpp.

{  
  NS_ASSERTION(aCombinedArea.width >= 0, "illegal width for combined area");
  NS_ASSERTION(aCombinedArea.height >= 0, "illegal height for combined area");
  if (aCombinedArea != mBounds) {
    if (mData) {
      mData->mCombinedArea = aCombinedArea;
    }
    else {
      if (IsInline()) {
        mInlineData = new ExtraInlineData(aCombinedArea);
      }
      else {
        mBlockData = new ExtraBlockData(aCombinedArea);
      }
    }
  }
  else {
    if (mData) {
      // Store away new value so that MaybeFreeData compares against
      // the right value.
      mData->mCombinedArea = aCombinedArea;
    }
    MaybeFreeData();
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 252 of file nsLineBox.h.

                         {
    mFlags.mHasClearance = 1;
  }

Here is the caller graph for this function:

Definition at line 272 of file nsLineBox.h.

                                         {
    NS_ASSERTION((PR_FALSE==aOn || PR_TRUE==aOn), "somebody is playing fast and loose with bools and bits!");
    mFlags.mHasPercentageChild = aOn;
  }

Here is the caller graph for this function:

Definition at line 263 of file nsLineBox.h.

                                               {
    NS_ASSERTION((PR_FALSE==aValue || PR_TRUE==aValue), "somebody is playing fast and loose with bools and bits!");
    mFlags.mImpactedByFloat = aValue;
  }

Here is the caller graph for this function:

Definition at line 281 of file nsLineBox.h.

                                  {
    NS_ASSERTION((PR_FALSE==aOn || PR_TRUE==aOn), "somebody is playing fast and loose with bools and bits!");
    mFlags.mLineWrapped = aOn;
  }

Here is the caller graph for this function:

void nsLineBox::SlideBy ( nscoord  aDY) [inline]

Definition at line 377 of file nsLineBox.h.

                            {
    mBounds.y += aDY;
    if (mData) {
      mData->mCombinedArea.y += aDY;
    }
  }

Here is the caller graph for this function:


Friends And Related Function Documentation

nsLineBox* NS_NewLineBox ( nsIPresShell aPresShell,
nsIFrame aFrame,
PRInt32  aCount,
PRBool  aIsBlock 
) [friend]

Definition at line 90 of file nsLineBox.cpp.

{
  return new (aPresShell)nsLineBox(aFrame, aCount, aIsBlock);
}
friend class nsLineList [friend, inherited]

Definition at line 186 of file nsLineBox.h.

friend class nsLineList_const_iterator [friend, inherited]

Definition at line 189 of file nsLineBox.h.

friend class nsLineList_const_reverse_iterator [friend, inherited]

Definition at line 190 of file nsLineBox.h.

friend class nsLineList_iterator [friend, inherited]

Definition at line 187 of file nsLineBox.h.

friend class nsLineList_reverse_iterator [friend, inherited]

Definition at line 188 of file nsLineBox.h.


Member Data Documentation

union { ... } [protected]
union { ... } [protected]

Definition at line 496 of file nsLineBox.h.

Definition at line 453 of file nsLineBox.h.

Definition at line 451 of file nsLineBox.h.

Definition at line 454 of file nsLineBox.h.

Definition at line 455 of file nsLineBox.h.


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