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

Unified Diff: Source/core/rendering/RenderBlockLineLayout.cpp

Issue 138773002: Move LineLayoutState class into rendering/line (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/core/rendering/line/LineLayoutState.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderBlockLineLayout.cpp
diff --git a/Source/core/rendering/RenderBlockLineLayout.cpp b/Source/core/rendering/RenderBlockLineLayout.cpp
index 29d49ca4d5cf24b47b44dc20b0d241d0c173cebe..d1c5bb4bcd38e268f2fe33eddd11ac89203b6fa2 100644
--- a/Source/core/rendering/RenderBlockLineLayout.cpp
+++ b/Source/core/rendering/RenderBlockLineLayout.cpp
@@ -34,6 +34,7 @@
#include "core/rendering/TrailingFloatsRootInlineBox.h"
#include "core/rendering/VerticalPositionCache.h"
#include "core/rendering/line/BreakingContextInlineHeaders.h"
+#include "core/rendering/line/LineLayoutState.h"
#include "core/rendering/svg/SVGRootInlineBox.h"
#include "platform/text/BidiResolver.h"
#include "wtf/RefCountedLeakCounter.h"
@@ -962,95 +963,6 @@ RootInlineBox* RenderBlockFlow::createLineBoxesFromBidiRuns(unsigned bidiLevel,
return lineBox;
}
-// Like LayoutState for layout(), LineLayoutState keeps track of global information
-// during an entire linebox tree layout pass (aka layoutInlineChildren).
-class LineLayoutState {
-public:
- LineLayoutState(bool fullLayout, LayoutUnit& repaintLogicalTop, LayoutUnit& repaintLogicalBottom, RenderFlowThread* flowThread)
- : m_lastFloat(0)
- , m_endLine(0)
- , m_floatIndex(0)
- , m_endLineLogicalTop(0)
- , m_endLineMatched(false)
- , m_checkForFloatsFromLastLine(false)
- , m_isFullLayout(fullLayout)
- , m_repaintLogicalTop(repaintLogicalTop)
- , m_repaintLogicalBottom(repaintLogicalBottom)
- , m_adjustedLogicalLineTop(0)
- , m_usesRepaintBounds(false)
- , m_flowThread(flowThread)
- { }
-
- void markForFullLayout() { m_isFullLayout = true; }
- bool isFullLayout() const { return m_isFullLayout; }
-
- bool usesRepaintBounds() const { return m_usesRepaintBounds; }
-
- void setRepaintRange(LayoutUnit logicalHeight)
- {
- m_usesRepaintBounds = true;
- m_repaintLogicalTop = m_repaintLogicalBottom = logicalHeight;
- }
-
- void updateRepaintRangeFromBox(RootInlineBox* box, LayoutUnit paginationDelta = 0)
- {
- m_usesRepaintBounds = true;
- m_repaintLogicalTop = min(m_repaintLogicalTop, box->logicalTopVisualOverflow() + min<LayoutUnit>(paginationDelta, 0));
- m_repaintLogicalBottom = max(m_repaintLogicalBottom, box->logicalBottomVisualOverflow() + max<LayoutUnit>(paginationDelta, 0));
- }
-
- bool endLineMatched() const { return m_endLineMatched; }
- void setEndLineMatched(bool endLineMatched) { m_endLineMatched = endLineMatched; }
-
- bool checkForFloatsFromLastLine() const { return m_checkForFloatsFromLastLine; }
- void setCheckForFloatsFromLastLine(bool check) { m_checkForFloatsFromLastLine = check; }
-
- LineInfo& lineInfo() { return m_lineInfo; }
- const LineInfo& lineInfo() const { return m_lineInfo; }
-
- LayoutUnit endLineLogicalTop() const { return m_endLineLogicalTop; }
- void setEndLineLogicalTop(LayoutUnit logicalTop) { m_endLineLogicalTop = logicalTop; }
-
- RootInlineBox* endLine() const { return m_endLine; }
- void setEndLine(RootInlineBox* line) { m_endLine = line; }
-
- FloatingObject* lastFloat() const { return m_lastFloat; }
- void setLastFloat(FloatingObject* lastFloat) { m_lastFloat = lastFloat; }
-
- Vector<RenderBlockFlow::FloatWithRect>& floats() { return m_floats; }
-
- unsigned floatIndex() const { return m_floatIndex; }
- void setFloatIndex(unsigned floatIndex) { m_floatIndex = floatIndex; }
-
- LayoutUnit adjustedLogicalLineTop() const { return m_adjustedLogicalLineTop; }
- void setAdjustedLogicalLineTop(LayoutUnit value) { m_adjustedLogicalLineTop = value; }
-
- RenderFlowThread* flowThread() const { return m_flowThread; }
- void setFlowThread(RenderFlowThread* thread) { m_flowThread = thread; }
-
-private:
- Vector<RenderBlockFlow::FloatWithRect> m_floats;
- FloatingObject* m_lastFloat;
- RootInlineBox* m_endLine;
- LineInfo m_lineInfo;
- unsigned m_floatIndex;
- LayoutUnit m_endLineLogicalTop;
- bool m_endLineMatched;
- bool m_checkForFloatsFromLastLine;
-
- bool m_isFullLayout;
-
- // FIXME: Should this be a range object instead of two ints?
- LayoutUnit& m_repaintLogicalTop;
- LayoutUnit& m_repaintLogicalBottom;
-
- LayoutUnit m_adjustedLogicalLineTop;
-
- bool m_usesRepaintBounds;
-
- RenderFlowThread* m_flowThread;
-};
-
static void deleteLineRange(LineLayoutState& layoutState, RootInlineBox* startLine, RootInlineBox* stopLine = 0)
{
RootInlineBox* boxToDelete = startLine;
« no previous file with comments | « no previous file | Source/core/rendering/line/LineLayoutState.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698