Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(545)

Side by Side Diff: Source/core/rendering/FlowThreadController.h

Issue 153233002: *** DO NOT LAND *** Remove regions support, keeping a bare minimum to support "region-based"... (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. 2 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above 8 * 1. Redistributions of source code must retain the above
9 * copyright notice, this list of conditions and the following 9 * copyright notice, this list of conditions and the following
10 * disclaimer. 10 * disclaimer.
(...skipping 12 matching lines...) Expand all
23 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
25 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 25 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
26 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE. 27 * SUCH DAMAGE.
28 */ 28 */
29 29
30 #ifndef FlowThreadController_h 30 #ifndef FlowThreadController_h
31 #define FlowThreadController_h 31 #define FlowThreadController_h
32 32
33 #include "core/rendering/RenderView.h" 33 #include "wtf/FastAllocBase.h"
34 #include "wtf/ListHashSet.h" 34 #include "wtf/PassOwnPtr.h"
35 #include "wtf/OwnPtr.h"
36 35
37 namespace WebCore { 36 namespace WebCore {
38 37
39 class RenderFlowThread; 38 class RenderFlowThread;
40 class RenderNamedFlowThread;
41
42 typedef ListHashSet<RenderNamedFlowThread*> RenderNamedFlowThreadList;
43 39
44 class FlowThreadController { 40 class FlowThreadController {
45 WTF_MAKE_FAST_ALLOCATED; 41 WTF_MAKE_FAST_ALLOCATED;
46 public: 42 public:
47 static PassOwnPtr<FlowThreadController> create(RenderView*); 43 static PassOwnPtr<FlowThreadController> create();
48 ~FlowThreadController();
49 44
50 RenderFlowThread* currentRenderFlowThread() const { return m_currentRenderFl owThread; } 45 RenderFlowThread* currentRenderFlowThread() const { return m_currentRenderFl owThread; }
51 void setCurrentRenderFlowThread(RenderFlowThread* flowThread) { m_currentRen derFlowThread = flowThread; } 46 void setCurrentRenderFlowThread(RenderFlowThread* flowThread) { m_currentRen derFlowThread = flowThread; }
52 47
53 bool isRenderNamedFlowThreadOrderDirty() const { return m_isRenderNamedFlowT hreadOrderDirty; }
54 void setIsRenderNamedFlowThreadOrderDirty(bool dirty)
55 {
56 m_isRenderNamedFlowThreadOrderDirty = dirty;
57 if (dirty)
58 m_view->setNeedsLayout();
59 }
60
61 RenderNamedFlowThread* ensureRenderFlowThreadWithName(const AtomicString&);
62 const RenderNamedFlowThreadList* renderNamedFlowThreadList() const { return m_renderNamedFlowThreadList.get(); }
63 bool hasRenderNamedFlowThreads() const { return m_renderNamedFlowThreadList && !m_renderNamedFlowThreadList->isEmpty(); }
64 void layoutRenderNamedFlowThreads();
65 void styleDidChange();
66
67 void registerNamedFlowContentNode(Node*, RenderNamedFlowThread*);
68 void unregisterNamedFlowContentNode(Node*);
69 bool isContentNodeRegisteredWithAnyNamedFlow(const Node*) const;
70
71 bool hasFlowThreadsWithAutoLogicalHeightRegions() const { return m_flowThrea dsWithAutoLogicalHeightRegions; }
72 void incrementFlowThreadsWithAutoLogicalHeightRegions() { ++m_flowThreadsWit hAutoLogicalHeightRegions; }
73 void decrementFlowThreadsWithAutoLogicalHeightRegions() { ASSERT(m_flowThrea dsWithAutoLogicalHeightRegions > 0); --m_flowThreadsWithAutoLogicalHeightRegions ; }
74
75 bool updateFlowThreadsNeedingLayout();
76 bool updateFlowThreadsNeedingTwoStepLayout();
77 void updateFlowThreadsIntoConstrainedPhase();
78
79 #ifndef NDEBUG
80 bool isAutoLogicalHeightRegionsCountConsistent() const;
81 #endif
82
83 protected: 48 protected:
84 FlowThreadController(RenderView*); 49 FlowThreadController();
85 void updateFlowThreadsChainIfNecessary();
86 void resetFlowThreadsWithAutoHeightRegions();
87 50
88 private: 51 private:
89 RenderView* m_view;
90 RenderFlowThread* m_currentRenderFlowThread; 52 RenderFlowThread* m_currentRenderFlowThread;
91 bool m_isRenderNamedFlowThreadOrderDirty;
92 unsigned m_flowThreadsWithAutoLogicalHeightRegions;
93 OwnPtr<RenderNamedFlowThreadList> m_renderNamedFlowThreadList;
94 // maps a content node to its render flow thread.
95 HashMap<const Node*, RenderNamedFlowThread*> m_mapNamedFlowContentNodes;
96 }; 53 };
97 54
98 } 55 }
99 56
100 #endif 57 #endif
OLDNEW
« no previous file with comments | « Source/core/rendering/FixedTableLayout.cpp ('k') | Source/core/rendering/FlowThreadController.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698