diff options
Diffstat (limited to 'src/pagedef.h')
-rw-r--r-- | src/pagedef.h | 141 |
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()); + } +}; + |