#ifndef RenderFrameSet_H
#define RenderFrameSet_H
#include "RenderContainer.h"
#include "HTMLFrameSetElement.h"
namespace WebCore {
class HTMLFrameSetElement;
class MouseEvent;
class RenderFrameSet : public RenderContainer
{
friend class HTMLFrameSetElement;
public:
RenderFrameSet(HTMLFrameSetElement*);
virtual ~RenderFrameSet();
virtual const char* renderName() const { return "RenderFrameSet"; }
virtual bool isFrameSet() const { return true; }
virtual void layout();
virtual bool isChildAllowed(RenderObject*, RenderStyle*) const;
virtual void calcMinMaxWidth();
void positionFrames();
void positionFramesWithFlattening();
bool resizing() const { return m_resizing; }
bool userResize(MouseEvent*);
bool canResize(int x, int y);
void setResizing(bool);
bool flattenFrameset() const;
virtual bool nodeAtPoint(NodeInfo&, int x, int y, int tx, int ty, HitTestAction);
HTMLFrameSetElement* element() const
{ return static_cast<HTMLFrameSetElement*>(RenderContainer::element()); }
#ifndef NDEBUG
virtual void dump(TextStream* stream, DeprecatedString ind = "") const;
#endif
private:
inline HTMLFrameSetElement* frameSet() const;
int m_oldpos;
int m_gridLen[2];
int* m_gridDelta[2];
int* m_gridLayout[2];
bool* m_hSplitVar; bool* m_vSplitVar;
int m_hSplit; int m_vSplit;
int m_hSplitPos;
int m_vSplitPos;
bool m_resizing;
bool m_clientResizing;
};
}
#endif