ladybird/Userland/Libraries/LibManual/SubsectionNode.h
kleines Filmröllchen a9053618a8 LibManual: Allow directly obtaining any page's main section number
This has previously been incorrectly handled in a variety of
applications, e.g. subsections were not accounted for.
2023-07-05 16:15:42 +01:00

34 lines
886 B
C++

/*
* Copyright (c) 2022, kleines Filmröllchen <filmroellchen@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibManual/PageNode.h>
#include <LibManual/SectionNode.h>
namespace Manual {
// A non-toplevel (i.e. not numbered) manual section.
class SubsectionNode : public SectionNode {
public:
SubsectionNode(NonnullRefPtr<SectionNode const> parent, StringView name, RefPtr<PageNode> page = {});
virtual ~SubsectionNode() = default;
virtual Node const* parent() const override;
virtual ErrorOr<String> path() const override;
virtual ErrorOr<String> name() const override;
virtual PageNode const* document() const override;
virtual unsigned section_number() const override { return m_parent->section_number(); }
protected:
NonnullRefPtr<SectionNode const> m_parent;
private:
RefPtr<PageNode> m_page;
};
}