summaryrefslogtreecommitdiff
path: root/src/pagedef.h
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2012-11-08 06:36:54 -0800
committerAnas Nashif <anas.nashif@intel.com>2012-11-08 06:36:54 -0800
commitcccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb (patch)
tree7f31b77ace4359e85dc3d3f66c853858c0bca7a4 /src/pagedef.h
downloaddoxygen-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.h92
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
+