1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef RenderPagedFlowThread_h
6#define RenderPagedFlowThread_h
7
8#include "core/rendering/RenderMultiColumnFlowThread.h"
9
10namespace blink {
11
12// A flow thread for paged overflow. FIXME: The current implementation relies on the multicol
13// implementation, but it in the long run it would be better to have what's common between
14// RenderMultiColumnFlowThread and RenderPagedFlowThread in RenderFlowThread, and have both of them
15// inherit from that one.
16class RenderPagedFlowThread : public RenderMultiColumnFlowThread {
17public:
18    static RenderPagedFlowThread* createAnonymous(Document&, RenderStyle* parentStyle);
19
20    RenderBlockFlow* pagedBlockFlow() const { return toRenderBlockFlow(parent()); }
21
22    virtual bool isRenderPagedFlowThread() const OVERRIDE { return true; }
23    virtual bool heightIsAuto() const OVERRIDE { return !columnHeightAvailable(); }
24    virtual const char* renderName() const OVERRIDE;
25    virtual bool needsNewWidth() const OVERRIDE;
26    virtual void updateLogicalWidth() OVERRIDE;
27    virtual void layout();
28};
29
30} // namespace blink
31
32#endif // RenderPagedFlowThread_h
33