summaryrefslogtreecommitdiffstats
path: root/src/pagedef.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pagedef.h')
-rw-r--r--src/pagedef.h141
1 files changed, 141 insertions, 0 deletions
diff --git a/src/pagedef.h b/src/pagedef.h
new file mode 100644
index 0000000..371c4f7
--- /dev/null
+++ b/src/pagedef.h
@@ -0,0 +1,141 @@
+/******************************************************************************
+ *
+ *
+ *
+ * Copyright (C) 1997-2003 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"
+//#include "config.h"
+//#include "docparser.h"
+
+//#include "section.h"
+//#include "doxygen.h"
+
+class PageDef : public Definition
+{
+ public:
+ PageDef(const char *f,int l,const char *n,const char *d,const char *t);
+ ~PageDef();
+ DefType definitionType() { return TypePage; }
+
+ // functions to get a uniform interface with Definitions
+ QCString getOutputFileBase() const { return m_fileName; }
+#if 0
+
+ bool isReference() const { return !reference.isEmpty(); }
+ QCString getReference() const { return reference; }
+ PageInfo(const char *f, int l,const char *n,const char *d,const char *t) :
+ defFileName(f), defLine(l), name(n),
+ doc(d), title(t), context(0), xrefListItems(0),m_inGroup(0)
+ {
+ sectionDict = new SectionDict(17);
+ }
+ ~PageInfo()
+ {
+ delete sectionDict;
+ }
+
+ // where the page definition was found
+ QCString defFileName;
+ int defLine;
+
+ // contents of the page
+ QCString name;
+ QCString doc;
+ QCString title;
+
+ // external reference? if so then this is the tag file name
+ QCString reference;
+ QCString fileName;
+
+ // class, file or namespace in which the page was found
+ Definition *context;
+
+
+ //void addSections(QList<QCString> *anchorList)
+ //{
+ // if (anchorList)
+ // {
+ // QCString *s=anchorList->first();
+ // while (s)
+ // {
+ // SectionInfo *si=0;
+ // if (!s->isEmpty() && (si=Doxygen::sectionDict[*s]))
+ // {
+ // //printf("Add section `%s' to definition `%s'\n",
+ // // si->label.data(),n.data());
+ // if (sectionDict==0)
+ // {
+ // sectionDict = new SectionDict(17);
+ // }
+ // if (sectionDict->find(*s)==0)
+ // {
+ // sectionDict->insert(*s,si);
+ // }
+ // si->pageRef = this;
+ // si->fileName = fileName;
+ // }
+ // s=anchorList->next();
+ // }
+ // }
+ //}
+ void findSectionsInDocumentation()
+ {
+ docFindSections(doc,this,0,0,defFileName);
+ }
+
+ void writeDocAnchorsToTagFile()
+ {
+ if (!Config_getString("GENERATE_TAGFILE").isEmpty() && sectionDict)
+ {
+ QDictIterator<SectionInfo> sdi(*sectionDict);
+ SectionInfo *si;
+ for (;(si=sdi.current());++sdi)
+ {
+ if (!si->generated)
+ {
+ Doxygen::tagFile << " <docanchor>" << si->label << "</docanchor>" << endl;
+ }
+ }
+ }
+ }
+
+
+ void makePartOfGroup(GroupDef *gd) { m_inGroup = gd; }
+ GroupDef *getGroupDef() const { return m_inGroup; }
+
+ // is this page part of a group
+ SectionDict *sectionDict;
+ QList<ListItemInfo> *xrefListItems;
+
+ private:
+ GroupDef *m_inGroup;
+#endif
+ private:
+ QCString m_fileName;
+ QCString m_title;
+};
+
+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());
+ }
+};
+