/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "CodeDocument.h" #include #include #include #include namespace HackStudio { class ProjectFile : public RefCounted { public: static NonnullRefPtr construct_with_name(DeprecatedString const& name) { return adopt_ref(*new ProjectFile(name)); } DeprecatedString const& name() const { return m_name; } bool could_render_text() const { return m_could_render_text; } GUI::TextDocument& document() const; CodeDocument& code_document() const; int vertical_scroll_value() const; void vertical_scroll_value(int); int horizontal_scroll_value() const; void horizontal_scroll_value(int); private: explicit ProjectFile(DeprecatedString const& name); void create_document_if_needed() const; DeprecatedString m_name; mutable RefPtr m_document; mutable bool m_could_render_text { false }; int m_vertical_scroll_value { 0 }; int m_horizontal_scroll_value { 0 }; }; }