#ifndef RenderContainer_H
#define RenderContainer_H
#include "RenderBox.h"
namespace WebCore {
class Position;
class RenderContainer : public RenderBox
{
public:
RenderContainer(Node*);
virtual ~RenderContainer();
RenderObject *firstChild() const { return m_first; }
RenderObject *lastChild() const { return m_last; }
virtual bool canHaveChildren() const;
virtual void addChild(RenderObject *newChild, RenderObject *beforeChild = 0);
virtual void removeChild(RenderObject *oldChild);
virtual void destroy();
void destroyLeftoverChildren();
virtual RenderObject* removeChildNode(RenderObject* child);
virtual void appendChildNode(RenderObject* child);
virtual void insertChildNode(RenderObject* child, RenderObject* before);
virtual void layout();
virtual void calcMinMaxWidth() { setMinMaxKnown( true ); }
virtual void removeLeftoverAnonymousBoxes();
RenderObject* pseudoChild(RenderStyle::PseudoId) const;
virtual void updatePseudoChild(RenderStyle::PseudoId);
void updatePseudoChildForObject(RenderStyle::PseudoId, RenderObject*);
virtual VisiblePosition positionForCoordinates(int x, int y);
virtual DeprecatedValueList<IntRect> lineBoxRects();
protected:
void setFirstChild(RenderObject *first) { m_first = first; }
void setLastChild(RenderObject *last) { m_last = last; }
protected:
RenderObject *m_first;
RenderObject *m_last;
};
}
#endif