diff options
author | Anas Nashif <anas.nashif@intel.com> | 2012-11-08 06:36:54 -0800 |
---|---|---|
committer | Anas Nashif <anas.nashif@intel.com> | 2012-11-08 06:36:54 -0800 |
commit | cccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb (patch) | |
tree | 7f31b77ace4359e85dc3d3f66c853858c0bca7a4 /src/pagedef.h | |
download | doxygen-cccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb.tar.gz doxygen-cccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb.tar.bz2 doxygen-cccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb.zip |
Imported Upstream version 1.8.2upstream/1.8.2
Diffstat (limited to 'src/pagedef.h')
-rw-r--r-- | src/pagedef.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/src/pagedef.h b/src/pagedef.h new file mode 100644 index 0000000..6728f7e --- /dev/null +++ b/src/pagedef.h @@ -0,0 +1,92 @@ +/****************************************************************************** + * + * $Id:$ + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ + +#ifndef PAGEDEF_H +#define PAGEDEF_H + +#include "definition.h" +#include "sortdict.h" + +class PageSDict; +class OutputList; + +/** @brief A model of a page symbol. */ +class PageDef : public Definition +{ + public: + PageDef(const char *f,int l,const char *n,const char *d,const char *t); + ~PageDef(); + + // setters + void setFileName(const char *name) { m_fileName = name; } + void setShowToc(bool b); + + // getters + DefType definitionType() const { return TypePage; } + bool isLinkableInProject() const + { + return /*hasDocumentation() &&*/ !isReference(); + } + bool isLinkable() const + { + return isLinkableInProject() || isReference(); + } + + // functions to get a uniform interface with Definitions + QCString getOutputFileBase() const; + QCString anchor() const { return QCString(); } + void findSectionsInDocumentation(); + QCString title() const { return m_title; } + GroupDef * getGroupDef() const; + PageSDict * getSubPages() const { return m_subPageDict; } + void addInnerCompound(Definition *d); + bool visibleInIndex() const; + bool documentedPage() const; + bool hasSubPages() const; + bool hasParentPage() const; + bool showToc() const { return m_showToc; } + void setPageScope(Definition *d){ m_pageScope = d; } + Definition *getPageScope() const { return m_pageScope; } + QCString displayName(bool=TRUE) const { return !m_title.isEmpty() ? m_title : Definition::name(); } + + void writeDocumentation(OutputList &ol); + + private: + void setNestingLevel(int l); + void writePageDocumentation(OutputList &ol); + QCString m_fileName; + QCString m_title; + GroupDef *m_inGroup; + PageSDict *m_subPageDict; // list of pages in the group + Definition *m_pageScope; + int m_nestingLevel; + bool m_showToc; +}; + +class PageSDict : public SDict<PageDef> +{ + public: + PageSDict(int size) : SDict<PageDef>(size) {} + virtual ~PageSDict() {} + int compareItems(GCI i1,GCI i2) + { + return stricmp(((PageDef *)i1)->name(),((PageDef *)i2)->name()); + } +}; + +#endif + |