1 /******************************************************************************
5 * Copyright (C) 1997-2015 by Dimitri van Heesch.
7 * Permission to use, copy, modify, and distribute this software and its
8 * documentation under the terms of the GNU General Public License is hereby
9 * granted. No representations are made about the suitability of this software
10 * for any purpose. It is provided "as is" without express or implied warranty.
11 * See the GNU General Public License for more details.
13 * Documents produced by Doxygen are derivative works derived from the
14 * input used in their production; they are not affected by this license.
21 #include "definition.h"
28 /** @brief A model of a page symbol. */
29 class PageDef : public Definition
32 PageDef(const char *f,int l,const char *n,const char *d,const char *t);
36 void setFileName(const char *name);
37 void setLocalToc(const LocalToc &tl);
38 void setShowLineNo(bool);
41 DefType definitionType() const { return TypePage; }
42 bool isLinkableInProject() const
44 return /*hasDocumentation() &&*/ !isReference();
46 bool isLinkable() const
48 return isLinkableInProject() || isReference();
51 // functions to get a uniform interface with Definitions
52 QCString getOutputFileBase() const;
53 QCString anchor() const { return QCString(); }
54 void findSectionsInDocumentation();
55 QCString title() const { return m_title; }
56 GroupDef * getGroupDef() const;
57 PageSDict * getSubPages() const { return m_subPageDict; }
58 void addInnerCompound(Definition *d);
59 bool visibleInIndex() const;
60 bool documentedPage() const;
61 bool hasSubPages() const;
62 bool hasParentPage() const;
63 LocalToc localToc() const { return m_localToc; }
64 void setPageScope(Definition *d){ m_pageScope = d; }
65 Definition *getPageScope() const { return m_pageScope; }
66 QCString displayName(bool=TRUE) const { return !m_title.isEmpty() ? m_title : Definition::name(); }
67 bool showLineNo() const;
69 void writeDocumentation(OutputList &ol);
70 void writeTagFile(FTextStream &);
73 void setNestingLevel(int l);
74 void writePageDocumentation(OutputList &ol);
77 PageSDict *m_subPageDict; // list of pages in the group
78 Definition *m_pageScope;
84 class PageSDict : public SDict<PageDef>
87 PageSDict(int size) : SDict<PageDef>(size) {}
88 virtual ~PageSDict() {}
90 int compareValues(const PageDef *i1,const PageDef *i2) const
92 return qstricmp(i1->name(),i2->name());