| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2000 Antti Koivisto (koivisto@kde.org) | 3 * (C) 2000 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) |
| 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights
reserved. | 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights
reserved. |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 IntRect clip; | 108 IntRect clip; |
| 109 int type; | 109 int type; |
| 110 }; | 110 }; |
| 111 #endif | 111 #endif |
| 112 | 112 |
| 113 // Base class for all rendering tree objects. | 113 // Base class for all rendering tree objects. |
| 114 class RenderObject : public CachedResourceClient { | 114 class RenderObject : public CachedResourceClient { |
| 115 friend class RenderBlock; | 115 friend class RenderBlock; |
| 116 friend class RenderContainer; | 116 friend class RenderContainer; |
| 117 friend class RenderLayer; | 117 friend class RenderLayer; |
| 118 friend class RenderObjectChildList; |
| 118 friend class RenderSVGContainer; | 119 friend class RenderSVGContainer; |
| 119 public: | 120 public: |
| 120 // Anonymous objects should pass the document as their node, and they will t
hen automatically be | 121 // Anonymous objects should pass the document as their node, and they will t
hen automatically be |
| 121 // marked as anonymous in the constructor. | 122 // marked as anonymous in the constructor. |
| 122 RenderObject(Node*); | 123 RenderObject(Node*); |
| 123 virtual ~RenderObject(); | 124 virtual ~RenderObject(); |
| 124 | 125 |
| 125 virtual const char* renderName() const { return "RenderObject"; } | 126 virtual const char* renderName() const { return "RenderObject"; } |
| 126 | 127 |
| 127 RenderObject* parent() const { return m_parent; } | 128 RenderObject* parent() const { return m_parent; } |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 virtual int staticX() const { return 0; } | 207 virtual int staticX() const { return 0; } |
| 207 virtual int staticY() const { return 0; } | 208 virtual int staticY() const { return 0; } |
| 208 | 209 |
| 209 // RenderObject tree manipulation | 210 // RenderObject tree manipulation |
| 210 ////////////////////////////////////////// | 211 ////////////////////////////////////////// |
| 211 virtual bool canHaveChildren() const { return virtualChildren(); } | 212 virtual bool canHaveChildren() const { return virtualChildren(); } |
| 212 virtual bool isChildAllowed(RenderObject*, RenderStyle*) const { return true
; } | 213 virtual bool isChildAllowed(RenderObject*, RenderStyle*) const { return true
; } |
| 213 virtual void addChild(RenderObject* newChild, RenderObject* beforeChild = 0)
; | 214 virtual void addChild(RenderObject* newChild, RenderObject* beforeChild = 0)
; |
| 214 virtual void removeChild(RenderObject*); | 215 virtual void removeChild(RenderObject*); |
| 215 virtual bool createsAnonymousWrapper() const { return false; } | 216 virtual bool createsAnonymousWrapper() const { return false; } |
| 216 | |
| 217 // raw tree manipulation | |
| 218 virtual RenderObject* removeChildNode(RenderObject*, bool fullRemove = true)
; | |
| 219 virtual void appendChildNode(RenderObject*, bool fullAppend = true); | |
| 220 virtual void insertChildNode(RenderObject* child, RenderObject* before, bool
fullInsert = true); | |
| 221 // Designed for speed. Don't waste time doing a bunch of work like layer up
dating and repainting when we know that our | |
| 222 // change in parentage is not going to affect anything. | |
| 223 virtual void moveChildNode(RenderObject*); | |
| 224 ////////////////////////////////////////// | 217 ////////////////////////////////////////// |
| 225 | 218 |
| 226 protected: | 219 protected: |
| 227 ////////////////////////////////////////// | 220 ////////////////////////////////////////// |
| 228 // Helper functions. Dangerous to use! | 221 // Helper functions. Dangerous to use! |
| 229 void setPreviousSibling(RenderObject* previous) { m_previous = previous; } | 222 void setPreviousSibling(RenderObject* previous) { m_previous = previous; } |
| 230 void setNextSibling(RenderObject* next) { m_next = next; } | 223 void setNextSibling(RenderObject* next) { m_next = next; } |
| 231 void setParent(RenderObject* parent) { m_parent = parent; } | 224 void setParent(RenderObject* parent) { m_parent = parent; } |
| 232 ////////////////////////////////////////// | 225 ////////////////////////////////////////// |
| 233 private: | 226 private: |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 */ | 370 */ |
| 378 RenderObject* container() const; | 371 RenderObject* container() const; |
| 379 virtual RenderObject* hoverAncestor() const { return parent(); } | 372 virtual RenderObject* hoverAncestor() const { return parent(); } |
| 380 | 373 |
| 381 void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObjec
t* newRoot = 0); | 374 void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObjec
t* newRoot = 0); |
| 382 void setNeedsLayout(bool b, bool markParents = true); | 375 void setNeedsLayout(bool b, bool markParents = true); |
| 383 void setChildNeedsLayout(bool b, bool markParents = true); | 376 void setChildNeedsLayout(bool b, bool markParents = true); |
| 384 void setNeedsPositionedMovementLayout(); | 377 void setNeedsPositionedMovementLayout(); |
| 385 void setPrefWidthsDirty(bool, bool markParents = true); | 378 void setPrefWidthsDirty(bool, bool markParents = true); |
| 386 void invalidateContainerPrefWidths(); | 379 void invalidateContainerPrefWidths(); |
| 387 virtual void invalidateCounters() { } | |
| 388 | 380 |
| 389 void setNeedsLayoutAndPrefWidthsRecalc() | 381 void setNeedsLayoutAndPrefWidthsRecalc() |
| 390 { | 382 { |
| 391 setNeedsLayout(true); | 383 setNeedsLayout(true); |
| 392 setPrefWidthsDirty(true); | 384 setPrefWidthsDirty(true); |
| 393 } | 385 } |
| 394 | 386 |
| 395 void setPositioned(bool b = true) { m_positioned = b; } | 387 void setPositioned(bool b = true) { m_positioned = b; } |
| 396 void setRelPositioned(bool b = true) { m_relPositioned = b; } | 388 void setRelPositioned(bool b = true) { m_relPositioned = b; } |
| 397 void setFloating(bool b = true) { m_floating = b; } | 389 void setFloating(bool b = true) { m_floating = b; } |
| (...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1002 } | 994 } |
| 1003 | 995 |
| 1004 } // namespace WebCore | 996 } // namespace WebCore |
| 1005 | 997 |
| 1006 #ifndef NDEBUG | 998 #ifndef NDEBUG |
| 1007 // Outside the WebCore namespace for ease of invocation from gdb. | 999 // Outside the WebCore namespace for ease of invocation from gdb. |
| 1008 void showTree(const WebCore::RenderObject*); | 1000 void showTree(const WebCore::RenderObject*); |
| 1009 #endif | 1001 #endif |
| 1010 | 1002 |
| 1011 #endif // RenderObject_h | 1003 #endif // RenderObject_h |
| OLD | NEW |