1197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// found in the LICENSE file.
4197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
5197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "config.h"
6197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "core/rendering/RenderPagedFlowThread.h"
7197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
8c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
9197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
10197021e6b966cfb06891637935ef33fff06433d1Ben MurdochRenderPagedFlowThread* RenderPagedFlowThread::createAnonymous(Document& document, RenderStyle* parentStyle)
11197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{
12197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    RenderPagedFlowThread* renderer = new RenderPagedFlowThread();
13197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    renderer->setDocumentForAnonymous(&document);
14197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    renderer->setStyle(RenderStyle::createAnonymousStyleWithDisplay(parentStyle, BLOCK));
15197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    return renderer;
16197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch}
17197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
18197021e6b966cfb06891637935ef33fff06433d1Ben Murdochconst char* RenderPagedFlowThread::renderName() const
19197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{
20197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    return "RenderPagedFlowThread";
21197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch}
22197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
23197021e6b966cfb06891637935ef33fff06433d1Ben Murdochbool RenderPagedFlowThread::needsNewWidth() const
24197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{
25197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    return progressionIsInline() != pagedBlockFlow()->style()->hasInlinePaginationAxis();
26197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch}
27197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
28197021e6b966cfb06891637935ef33fff06433d1Ben Murdochvoid RenderPagedFlowThread::updateLogicalWidth()
29197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{
30197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    // As long as we inherit from RenderMultiColumnFlowThread, we need to bypass its implementation
31197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    // here. We're not split into columns, so the flow thread width will just be whatever is
32197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    // available in the containing block.
33197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    RenderFlowThread::updateLogicalWidth();
34197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch}
35197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
36197021e6b966cfb06891637935ef33fff06433d1Ben Murdochvoid RenderPagedFlowThread::layout()
37197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{
38197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    setProgressionIsInline(pagedBlockFlow()->style()->hasInlinePaginationAxis());
39197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    RenderMultiColumnFlowThread::layout();
40197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch}
41197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
42c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
43