1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:08:12 +00:00
serenity/Userland/Libraries/LibManual/PageNode.h
kleines Filmröllchen 4625f7aab5 LibManual: Refactor SectionNode in preparation for subsections
- Calculate the full name on demand
- Make section and name protected
- Reorder some members logically
- Change the name getter to be fallible, as some implementors need to
  allocate
2022-12-11 16:05:23 +00:00

38 lines
811 B
C++

/*
* Copyright (c) 2019-2020, Sergey Bugaev <bugaevc@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/NonnullRefPtr.h>
#include <LibManual/Node.h>
namespace Manual {
class SectionNode;
class PageNode : public Node {
public:
virtual ~PageNode() override = default;
PageNode(NonnullRefPtr<SectionNode> section, String page)
: m_section(move(section))
, m_page(move(page))
{
}
virtual NonnullRefPtrVector<Node>& children() const override;
virtual Node const* parent() const override;
virtual ErrorOr<String> name() const override { return m_page; };
virtual bool is_page() const override { return true; }
ErrorOr<String> path() const;
private:
NonnullRefPtr<SectionNode> m_section;
String m_page;
};
}