#ifndef RenderMedia_h
#define RenderMedia_h
#if ENABLE(VIDEO)
#include "RenderImage.h"
namespace WebCore {
class HTMLMediaElement;
class RenderMedia : public RenderImage {
public:
explicit RenderMedia(HTMLMediaElement*);
RenderMedia(HTMLMediaElement*, const IntSize& intrinsicSize);
virtual ~RenderMedia();
RenderObject* firstChild() const { ASSERT(children() == virtualChildren()); return children()->firstChild(); }
RenderObject* lastChild() const { ASSERT(children() == virtualChildren()); return children()->lastChild(); }
const RenderObjectChildList* children() const { return &m_children; }
RenderObjectChildList* children() { return &m_children; }
HTMLMediaElement* mediaElement() const;
protected:
virtual void layout();
private:
virtual RenderObjectChildList* virtualChildren() { return children(); }
virtual const RenderObjectChildList* virtualChildren() const { return children(); }
virtual bool canHaveChildren() const { return true; }
virtual const char* renderName() const { return "RenderMedia"; }
virtual bool isMedia() const { return true; }
virtual bool isImage() const { return false; }
virtual void paintReplaced(PaintInfo&, const LayoutPoint&);
virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
RenderObjectChildList m_children;
};
inline RenderMedia* toRenderMedia(RenderObject* object)
{
ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isMedia());
return static_cast<RenderMedia*>(object);
}
void toRenderMedia(const RenderMedia*);
}
#endif
#endif // RenderMedia_h