SubsectionNode.h 886 B

123456789101112131415161718192021222324252627282930313233
  1. /*
  2. * Copyright (c) 2022, kleines Filmröllchen <filmroellchen@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibManual/PageNode.h>
  8. #include <LibManual/SectionNode.h>
  9. namespace Manual {
  10. // A non-toplevel (i.e. not numbered) manual section.
  11. class SubsectionNode : public SectionNode {
  12. public:
  13. SubsectionNode(NonnullRefPtr<SectionNode const> parent, StringView name, RefPtr<PageNode> page = {});
  14. virtual ~SubsectionNode() = default;
  15. virtual Node const* parent() const override;
  16. virtual ErrorOr<String> path() const override;
  17. virtual ErrorOr<String> name() const override;
  18. virtual PageNode const* document() const override;
  19. virtual unsigned section_number() const override { return m_parent->section_number(); }
  20. protected:
  21. NonnullRefPtr<SectionNode const> m_parent;
  22. private:
  23. RefPtr<PageNode> m_page;
  24. };
  25. }