Orb/Doxygen/src/pagedef.h
changeset 0 42188c7ea2d9
child 4 468f4c8d3d5b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Orb/Doxygen/src/pagedef.h	Thu Jan 21 17:29:01 2010 +0000
@@ -0,0 +1,76 @@
+/******************************************************************************
+ *
+ * 
+ *
+ * Copyright (C) 1997-2008 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.
+ *
+ */
+
+#include "definition.h"
+#include "sortdict.h"
+
+class PageSDict;
+class OutputList;
+
+class PageDef : public Definition
+{
+  public:
+    PageDef(const char *f,int l,const char *n,const char *d,const char *t);
+   ~PageDef();
+    DefType definitionType() const { return TypePage; }
+    bool isLinkableInProject() const 
+    { 
+      return hasDocumentation() && !isReference();
+    }
+    bool isLinkable() const 
+    {
+      return isLinkableInProject() || isReference();
+    } 
+    void writeDocumentation(OutputList &ol);
+
+    // functions to get a uniform interface with Definitions
+    QCString getOutputFileBase() const;
+    void findSectionsInDocumentation();
+    QCString title() const { return m_title; }
+    GroupDef *  getGroupDef() const;
+    PageSDict * getSubPages() const { return m_subPageDict; }
+    void setFileName(const char *name) { m_fileName = name; }
+    void addInnerCompound(Definition *d);
+    bool visibleInIndex() const;
+    bool documentedPage() const;
+    bool hasSubPages() const;
+    bool hasParentPage() const;
+    void setPageScope(Definition *d){ m_pageScope = d; }
+    Definition *getPageScope() const { return m_pageScope; }
+
+  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;
+};
+
+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());
+    }
+};
+