blob: 98956ba3cd3b41ad0a65b1cf25b32bb1c931eb52 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SKY_ENGINE_CORE_PAINTING_LAYOUTROOT_H_
#define SKY_ENGINE_CORE_PAINTING_LAYOUTROOT_H_
#include "sky/engine/core/dom/Node.h"
#include "sky/engine/core/frame/FrameHost.h"
#include "sky/engine/core/painting/Paint.h"
#include "sky/engine/core/painting/Picture.h"
#include "sky/engine/platform/graphics/DisplayList.h"
#include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/RefCounted.h"
namespace blink {
class Canvas;
class Document;
class Element;
class LocalFrame;
class LayoutRoot : public RefCounted<LayoutRoot>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
LayoutRoot();
~LayoutRoot() override;
static PassRefPtr<LayoutRoot> create();
Element* rootElement() const;
void setRootElement(Element*);
void layout();
void paint(Canvas*);
LayoutUnit minWidth() const { return m_minWidth; }
void setMinWidth(LayoutUnit width) { m_minWidth = width; }
LayoutUnit maxWidth() const { return m_maxWidth; }
void setMaxWidth(LayoutUnit width) { m_maxWidth = width; }
LayoutUnit minHeight() const { return m_minHeight; }
void setMinHeight(LayoutUnit height) { m_minHeight = height; }
LayoutUnit maxHeight() const { return m_maxHeight; }
void setMaxHeight(LayoutUnit height) { m_maxHeight = height; }
private:
LayoutUnit m_minWidth;
LayoutUnit m_maxWidth;
LayoutUnit m_minHeight;
LayoutUnit m_maxHeight;
RefPtr<Document> m_document;
RefPtr<LocalFrame> m_frame;
// TODO(eseidel): All of these should be removed:
OwnPtr<Settings> m_settings;
OwnPtr<FrameHost> m_frameHost;
};
} // namespace blink
#endif // SKY_ENGINE_CORE_PAINTING_LAYOUTROOT_H_