void nsBlockFrame::PlaceFloater(nsIPresContext* aCX, nsIFrame* aFloater, PlaceholderFrame* aPlaceholder)
nsBlockReflowState::PlaceFloater(nsPlaceholderFrame* aPlaceholder, PRBool& aIsLeftFloater)
void nsBlockFrame::PlaceFloater(nsIPresContext* aCX,                                nsIFrame* aFloater,                                PlaceholderFrame* aPlaceholder){  // If the floater is the left-most non-zero size child frame then insert  // it before the current line; otherwise add it to the below-current-line  // todo list and we'll handle it when we flush out the line  if (IsLeftMostChild(aPlaceholder)) {    // Get the type of floater    nsIStyleContext*  styleContext;    aFloater->GetStyleContext(aCX, styleContext);    nsStyleMolecule*  mol = (nsStyleMolecule*)styleContext->GetData(kStyleMoleculeSID);    NS_RELEASE(styleContext);    if (!mCurrentState->isInline) {      // Get the current band for this line      GetAvailableSpaceBand(*mCurrentState, mCurrentState->y + mCurrentState->topMargin);    }      // Commit some space in the space manager    nsRect  region;    aFloater->GetRect(region);    region.y = mCurrentState->currentBand->rects[0].y;    if (NS_STYLE_FLOAT_LEFT == mol->floats) {      region.x = mCurrentState->currentBand->rects[0].x;    } else {      NS_ASSERTION(NS_STYLE_FLOAT_RIGHT == mol->floats, "bad float type");      region.x = mCurrentState->currentBand->rects[0].XMost() - region.width;    }    // XXX Don't forget the floater's margins...    mCurrentState->spaceManager->Translate(mCurrentState->borderPadding.left, 0);    mCurrentState->spaceManager->AddRectRegion(region);    // Set the origin of the floater in world coordinates    nscoord worldX, worldY;    mCurrentState->spaceManager->GetTranslation(worldX, worldY);    aFloater->MoveTo(region.x + worldX, region.y + worldY);    mCurrentState->spaceManager->Translate(-mCurrentState->borderPadding.left, 0);    // Update the band of available space to reflect space taken up by the floater    GetAvailableSpaceBand(*mCurrentState, mCurrentState->y + mCurrentState->topMargin);  } else {    // Add the floater to our to-do list    mCurrentState->floaterToDo.AppendElement(aFloater);  }}