#ifndef RenderWidget_h
#define RenderWidget_h
#include "core/rendering/RenderReplaced.h"
#include "platform/Widget.h"
namespace WebCore {
class RenderWidget : public RenderReplaced {
public:
virtual ~RenderWidget();
Widget* widget() const;
void updateOnWidgetChange();
void updateWidgetPosition();
void widgetPositionsUpdated();
void setIsOverlapped(bool);
void ref() { ++m_refCount; }
void deref();
virtual bool isWidget() const OVERRIDE FINAL { return true; }
bool updateWidgetGeometry();
protected:
explicit RenderWidget(Element*);
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OVERRIDE FINAL;
virtual void layout() OVERRIDE;
virtual void paint(PaintInfo&, const LayoutPoint&) OVERRIDE;
virtual CursorDirective getCursor(const LayoutPoint&, Cursor&) const OVERRIDE FINAL;
virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) OVERRIDE;
virtual void paintContents(PaintInfo&, const LayoutPoint&);
private:
virtual void willBeDestroyed() OVERRIDE FINAL;
virtual void destroy() OVERRIDE FINAL;
bool setWidgetGeometry(const LayoutRect&);
int m_refCount;
};
DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderWidget, isWidget());
}
#endif