diff options
Diffstat (limited to 'Source/WebCore/rendering/RenderDetails.h')
-rw-r--r-- | Source/WebCore/rendering/RenderDetails.h | 55 |
1 files changed, 51 insertions, 4 deletions
diff --git a/Source/WebCore/rendering/RenderDetails.h b/Source/WebCore/rendering/RenderDetails.h index b8aebab..0b56c13 100644 --- a/Source/WebCore/rendering/RenderDetails.h +++ b/Source/WebCore/rendering/RenderDetails.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) + * Copyright (C) 2010, 2011 Nokia Corporation and/or its subsidiary(-ies) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -21,18 +21,65 @@ #ifndef RenderDetails_h #define RenderDetails_h -#include "RenderBlock.h" +#include "RenderFlexibleBox.h" +#include "Timer.h" +#include <wtf/OwnPtr.h> namespace WebCore { +class RenderDetailsMarker; + class RenderDetails : public RenderBlock { public: explicit RenderDetails(Node*); -private: virtual const char* renderName() const { return "RenderDetails"; } virtual bool isDetails() const { return true; } + + bool isOpen() const; + IntRect interactiveArea() const { return m_interactiveArea; } + void markerDestroyed(); + void summaryDestroyed(RenderObject*); + +private: virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle); + + virtual void addChild(RenderObject* newChild, RenderObject *beforeChild = 0); + virtual void removeChild(RenderObject*); + virtual void removeLeftoverAnonymousBlock(RenderBlock*) { } + virtual bool createsAnonymousWrapper() const { return true; } + + virtual bool requiresForcedStyleRecalcPropagation() const { return true; } + + virtual void layout(); + virtual void destroy(); + + void createDefaultSummary(); + void replaceMainSummary(RenderObject*); + void moveSummaryToContents(); + void checkMainSummary(); + RenderObject* getRenderPosition(RenderObject*); + PassRefPtr<RenderStyle> createSummaryStyle(); + void setMarkerStyle(); + + RenderBlock* summaryBlock(); + RenderBlock* contentBlock(); + + RenderObject* getParentOfFirstLineBox(RenderBlock* curr); + RenderObject* firstNonMarkerChild(RenderObject* parent); + void updateMarkerLocation(); + + RenderBlock* m_summaryBlock; + RenderBlock* m_contentBlock; + + RenderObject* m_defaultSummaryBlock; + RenderObject* m_defaultSummaryText; + + IntRect m_interactiveArea; + + RenderDetailsMarker* m_marker; + + RenderObject* m_mainSummary; }; inline RenderDetails* toRenderDetails(RenderObject* object) @@ -44,6 +91,6 @@ inline RenderDetails* toRenderDetails(RenderObject* object) // This will catch anyone doing an unnecessary cast. void toRenderDetails(const RenderDetails*); -} +} // namespace WebCore #endif // RenderDetails_h |