diff options
Diffstat (limited to 'Source/WebCore/rendering/RenderRuby.h')
-rw-r--r-- | Source/WebCore/rendering/RenderRuby.h | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/Source/WebCore/rendering/RenderRuby.h b/Source/WebCore/rendering/RenderRuby.h index abac48a1f..e6550faa4 100644 --- a/Source/WebCore/rendering/RenderRuby.h +++ b/Source/WebCore/rendering/RenderRuby.h @@ -28,8 +28,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef RenderRuby_h -#define RenderRuby_h +#pragma once #include "RenderBlockFlow.h" #include "RenderInline.h" @@ -53,42 +52,47 @@ namespace WebCore { // <ruby> when used as 'display:inline' class RenderRubyAsInline final : public RenderInline { public: - RenderRubyAsInline(Element&, PassRef<RenderStyle>); + RenderRubyAsInline(Element&, RenderStyle&&); virtual ~RenderRubyAsInline(); - virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0) override; - virtual void removeChild(RenderObject& child) override; + void addChild(RenderObject* child, RenderObject* beforeChild = 0) override; + void removeChild(RenderObject& child) override; protected: - virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override; + void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override; private: - virtual bool isRuby() const override { return true; } - virtual const char* renderName() const override { return "RenderRuby (inline)"; } - virtual bool createsAnonymousWrapper() const override { return true; } + bool isRubyInline() const final { return true; } + const char* renderName() const override { return "RenderRuby (inline)"; } + bool createsAnonymousWrapper() const override { return true; } }; // <ruby> when used as 'display:block' or 'display:inline-block' class RenderRubyAsBlock final : public RenderBlockFlow { public: - RenderRubyAsBlock(Element&, PassRef<RenderStyle>); + RenderRubyAsBlock(Element&, RenderStyle&&); virtual ~RenderRubyAsBlock(); - Element& element() const { return toElement(nodeForNonAnonymous()); } + Element& element() const { return downcast<Element>(nodeForNonAnonymous()); } - virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0) override; - virtual void removeChild(RenderObject& child) override; + void addChild(RenderObject* child, RenderObject* beforeChild = 0) override; + void removeChild(RenderObject& child) override; protected: - virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override; + void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override; private: - virtual bool isRuby() const override { return true; } - virtual const char* renderName() const override { return "RenderRuby (block)"; } - virtual bool createsAnonymousWrapper() const override { return true; } - virtual void removeLeftoverAnonymousBlock(RenderBlock*) override { ASSERT_NOT_REACHED(); } + bool isRubyBlock() const final { return true; } + const char* renderName() const override { return "RenderRuby (block)"; } + bool createsAnonymousWrapper() const override { return true; } + void removeLeftoverAnonymousBlock(RenderBlock*) override { ASSERT_NOT_REACHED(); } }; + +inline bool isRuby(const RenderObject& renderer) { return (is<RenderRubyAsInline>(renderer) || is<RenderRubyAsBlock>(renderer)); } +inline bool isRuby(const RenderObject* renderer) { return (renderer && isRuby(*renderer)); } + } // namespace WebCore -#endif // RenderRuby_h +SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT(RenderRubyAsInline, isRubyInline()) +SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT(RenderRubyAsBlock, isRubyBlock()) |