Doxygen
Loading...
Searching...
No Matches
pagedef.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2020 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef PAGEDEF_H
17#define PAGEDEF_H
18
19#include "definition.h"
20
21class OutputList;
23class TagInfo;
24
25/** @brief A model of a page symbol. */
26class PageDef : public DefinitionMutable, public Definition
27{
28 public:
30
31 // setters
32 virtual void setFileName(const DString &name) = 0;
33 virtual void setLocalToc(const LocalToc &tl) = 0;
34 virtual void setShowLineNo(bool) = 0;
35 virtual void setTitle(const DString &title) = 0;
36
37 // getters
38 virtual void findSectionsInDocumentation() = 0;
39 virtual DString title() const = 0;
40 virtual DString titleAsText() const = 0;
41 virtual const GroupDef *getGroupDef() const = 0;
42 virtual const PageLinkedRefMap &getSubPages() const = 0;
43 virtual bool visibleInIndex() const = 0;
44 virtual bool documentedPage() const = 0;
45 virtual bool hasSubPages() const = 0;
46 virtual bool hasParentPage() const = 0;
47 virtual bool hasTitle() const = 0;
48 virtual LocalToc localToc() const = 0;
49 virtual void setPageScope(Definition *) = 0;
50 virtual Definition *getPageScope() const = 0;
51 virtual bool showLineNo() const = 0;
52
53 virtual void writeDocumentation(OutputList &) = 0;
54 virtual void writeTagFile(TextStream &) = 0;
55 virtual void setNestingLevel(int) = 0;
56 virtual void writePageDocumentation(OutputList &) const = 0;
57 virtual void addSectionsToIndex() = 0;
58 virtual void addListReferences() = 0;
59 virtual void addRequirementReferences() = 0;
60
61};
62
63std::unique_ptr<PageDef> createPageDef(const DString &f,int l,const DString &n,const DString &d,const DString &t);
64
65// ----------------------
66
67[[maybe_unused]] PageDef *addRelatedPage(
68 const DString &name,
69 const DString &ptitle,
70 const DString &doc,
71 const DString &fileName,
72 int docLine,
73 int startLine,
74 const RefItemVector &sli = RefItemVector(),
75 GroupDef *gd=nullptr,
76 const TagInfo *tagInfo=nullptr,
77 bool xref=false,
78 SrcLangExt lang=SrcLangExt::Unknown
79 );
80
81// --- Cast functions
82
84const PageDef *toPageDef(const Definition *d);
85
86// ------------------
87
88class PageLinkedMap final : public LinkedMap<PageDef>
89{
90};
91
92class PageLinkedRefMap final : public LinkedRefMap<PageDef>
93{
94};
95
96#endif
97
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:84
The common base class of all entity definitions found in the sources.
Definition definition.h:77
virtual int docLine() const =0
virtual const DString & name() const =0
A model of a group of symbols.
Definition groupdef.h:48
Container class representing a vector of objects with keys.
Definition linkedmap.h:36
Container class representing a vector of objects with keys.
Definition linkedmap.h:232
Class representing a list of output generators that are written to in parallel.
Definition outputlist.h:311
A model of a page symbol.
Definition pagedef.h:27
virtual void setTitle(const DString &title)=0
virtual bool documentedPage() const =0
virtual void writePageDocumentation(OutputList &) const =0
virtual bool hasParentPage() const =0
virtual void addListReferences()=0
virtual void addSectionsToIndex()=0
virtual bool visibleInIndex() const =0
virtual void setLocalToc(const LocalToc &tl)=0
virtual void setNestingLevel(int)=0
virtual const PageLinkedRefMap & getSubPages() const =0
virtual bool hasTitle() const =0
virtual void setFileName(const DString &name)=0
virtual bool hasSubPages() const =0
virtual void setShowLineNo(bool)=0
virtual LocalToc localToc() const =0
virtual bool showLineNo() const =0
virtual void addRequirementReferences()=0
virtual void writeDocumentation(OutputList &)=0
virtual DString title() const =0
virtual void setPageScope(Definition *)=0
virtual const GroupDef * getGroupDef() const =0
virtual void writeTagFile(TextStream &)=0
virtual Definition * getPageScope() const =0
virtual DString titleAsText() const =0
virtual void findSectionsInDocumentation()=0
This struct is used to capture the tag file information for an Entry.
Definition entry.h:101
Text streaming class that buffers data.
Definition textstream.h:36
#define ABSTRACT_BASE_CLASS(cls)
Macro to implement rule of 5 for an abstract base class.
Definition construct.h:20
Definition dstring.h:913
PageDef * addRelatedPage(const DString &name, const DString &ptitle, const DString &doc, const DString &fileName, int docLine, int startLine, const RefItemVector &sli=RefItemVector(), GroupDef *gd=nullptr, const TagInfo *tagInfo=nullptr, bool xref=false, SrcLangExt lang=SrcLangExt::Unknown)
Definition pagedef.cpp:524
PageDef * toPageDef(Definition *d)
Definition pagedef.cpp:656
std::unique_ptr< PageDef > createPageDef(const DString &f, int l, const DString &n, const DString &d, const DString &t)
Definition pagedef.cpp:89
std::vector< RefItem * > RefItemVector
Definition reflist.h:132
SrcLangExt
Definition types.h:207