summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/rendering/RenderDetails.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/RenderDetails.h')
-rw-r--r--Source/WebCore/rendering/RenderDetails.h55
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