void GroupDef::writeDirs(OutputList &ol,const QCString &title) { // write list of directories if (dirList->count()>0) { ol.startMemberHeader("dirs"); ol.parseText(title); ol.endMemberHeader(); ol.startMemberList(); DirDef *dd=dirList->first(); while (dd) { ol.startMemberItem(dd->getOutputFileBase(),0); ol.parseText(theTranslator->trDir(FALSE,TRUE)); ol.insertMemberAlign(); ol.writeObjectLink(dd->getReference(),dd->getOutputFileBase(),0,dd->shortName()); ol.endMemberItem(); if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { Doxygen::tagFile << " <dir>" << convertToXML(dd->displayName()) << "</dir>" << endl; } if (!dd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) { ol.startMemberDescription(dd->getOutputFileBase()); ol.parseDoc(briefFile(),briefLine(),dd,0,dd->briefDescription(),FALSE,FALSE,0,TRUE,FALSE); ol.endMemberDescription(); } dd=dirList->next(); } ol.endMemberList(); } }
static void writeMapArea(FTextStream &t,ClassDef *cd,QCString relPath, int x,int y,int w,int h) { if (cd->isLinkable()) { QCString ref=cd->getReference(); t << "<area "; if (!ref.isEmpty()) { t << externalLinkTarget() << externalRef(relPath,ref,FALSE); } t << "href=\""; t << externalRef(relPath,ref,TRUE); t << cd->getOutputFileBase() << Doxygen::htmlFileExtension; if (!cd->anchor().isEmpty()) { t << "#" << cd->anchor(); } t << "\" "; QCString tooltip = cd->briefDescriptionAsTooltip(); if (!tooltip.isEmpty()) { t << "title=\"" << tooltip << "\" "; } t << "alt=\"" << convertToXML(cd->displayName()); t << "\" shape=\"rect\" coords=\"" << x << "," << y << ","; t << (x+w) << "," << (y+h) << "\"/>" << endl; } }
void DocSets::addContentsItem(bool isDir, const char *name, const char *ref, const char *file, const char *anchor, bool /* separateIndex */, bool /* addToNavIndex */, Definition * /*def*/) { (void)isDir; if (file && ref==0) { if (!m_firstNode.at(m_dc-1)) { m_nts << indent() << " </Node>" << endl; } m_firstNode.at(m_dc-1)=FALSE; m_nts << indent() << " <Node>" << endl; m_nts << indent() << " <Name>" << convertToXML(name) << "</Name>" << endl; m_nts << indent() << " <Path>"; m_nts << file << Doxygen::htmlFileExtension; m_nts << "</Path>" << endl; if (anchor) { m_nts << indent() << " <Anchor>" << anchor << "</Anchor>" << endl; } } }
void GroupDef::writePageDocumentation(OutputList &ol) { PageDef *pd=0; PageSDict::Iterator pdi(*pageDict); for (pdi.toFirst();(pd=pdi.current());++pdi) { if (!pd->isReference()) { QCString pageName = pd->getOutputFileBase(); if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { Doxygen::tagFile << " <page>" << convertToXML(pageName) << "</page>" << endl; } SectionInfo *si=0; if (!pd->title().isEmpty() && !pd->name().isEmpty() && (si=Doxygen::sectionDict[pd->name()])!=0) { ol.startSection(si->label,si->title,SectionInfo::Subsection); ol.docify(si->title); ol.endSection(si->label,SectionInfo::Subsection); } ol.startTextBlock(); ol.parseDoc(pd->docFile(),pd->docLine(),pd,0,pd->documentation()+pd->inbodyDocumentation(),TRUE,FALSE,0,TRUE,FALSE); ol.endTextBlock(); } } }
void GroupDef::writeFiles(OutputList &ol,const QCString &title) { // write list of files if (fileList->count()>0) { ol.startMemberHeader("files"); ol.parseText(title); ol.endMemberHeader(); ol.startMemberList(); FileDef *fd=fileList->first(); while (fd) { ol.startMemberItem(fd->getOutputFileBase(),0); ol.docify(theTranslator->trFile(FALSE,TRUE)+" "); ol.insertMemberAlign(); ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0,fd->name()); if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { Doxygen::tagFile << " <file>" << convertToXML(fd->name()) << "</file>" << endl; } ol.endMemberItem(); if (!fd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) { ol.startMemberDescription(fd->getOutputFileBase()); ol.parseDoc(briefFile(),briefLine(),fd,0,fd->briefDescription(),FALSE,FALSE); ol.endMemberDescription(); } fd=fileList->next(); } ol.endMemberList(); } }
void GroupDef::writeNestedGroups(OutputList &ol,const QCString &title) { // write list of groups if (groupList->count()>0) { ol.startMemberHeader("groups"); ol.parseText(title); ol.endMemberHeader(); ol.startMemberList(); GroupDef *gd=groupList->first(); while (gd) { ol.startMemberItem(gd->getOutputFileBase(),0); //ol.docify(theTranslator->trGroup(FALSE,TRUE)); //ol.docify(" "); ol.insertMemberAlign(); ol.writeObjectLink(gd->getReference(),gd->getOutputFileBase(),0,gd->groupTitle()); if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { Doxygen::tagFile << " <subgroup>" << convertToXML(gd->name()) << "</subgroup>" << endl; } ol.endMemberItem(); if (!gd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) { ol.startMemberDescription(gd->getOutputFileBase()); ol.parseDoc(briefFile(),briefLine(),gd,0,gd->briefDescription(),FALSE,FALSE); ol.endMemberDescription(); } gd=groupList->next(); } ol.endMemberList(); } }
void DirDef::writeTagFile(FTextStream &tagFile) { tagFile << " <compound kind=\"dir\">" << endl; tagFile << " <name>" << convertToXML(displayName()) << "</name>" << endl; tagFile << " <path>" << convertToXML(name()) << "</path>" << endl; tagFile << " <filename>" << convertToXML(getOutputFileBase()) << Doxygen::htmlFileExtension << "</filename>" << endl; QListIterator<LayoutDocEntry> eli( LayoutDocManager::instance().docEntries(LayoutDocManager::Directory)); LayoutDocEntry *lde; for (eli.toFirst();(lde=eli.current());++eli) { switch (lde->kind()) { case LayoutDocEntry::DirSubDirs: { if (m_subdirs.count()>0) { DirDef *dd; QListIterator<DirDef> it(m_subdirs); for (;(dd=it.current());++it) { tagFile << " <dir>" << convertToXML(dd->displayName()) << "</dir>" << endl; } } } break; case LayoutDocEntry::DirFiles: { if (m_fileList->count()>0) { QListIterator<FileDef> it(*m_fileList); FileDef *fd; for (;(fd=it.current());++it) { tagFile << " <file>" << convertToXML(fd->name()) << "</file>" << endl; } } } break; default: break; } } writeDocAnchorsToTagFile(tagFile); tagFile << " </compound>" << endl; }
void DocSets::addContentsItem(bool isDir, const char *name, const char *ref, const char *file, const char *anchor, bool /* separateIndex */, bool /* addToNavIndex */, Definition * /*def*/) { (void)isDir; //printf("DocSets::addContentsItem(%s) m_dc=%d\n",name,m_dc); if (ref==0) { if (!m_firstNode.at(m_dc-1)) { m_nts << indent() << " </Node>" << endl; } m_firstNode.at(m_dc-1)=FALSE; m_nts << indent() << " <Node>" << endl; m_nts << indent() << " <Name>" << convertToXML(name) << "</Name>" << endl; if (file && file[0]=='^') // URL marker { m_nts << indent() << " <URL>" << convertToXML(&file[1]) << "</URL>" << endl; } else // relative file { m_nts << indent() << " <Path>"; if (file && file[0]=='!') // user specified file { m_nts << convertToXML(&file[1]); } else if (file) // doxygen generated file { m_nts << file << Doxygen::htmlFileExtension; } m_nts << "</Path>" << endl; if (file && anchor) { m_nts << indent() << " <Anchor>" << anchor << "</Anchor>" << endl; } } } }
void DocSets::writeToken(FTextStream &t, const Definition *d, const QCString &type, const QCString &lang, const char *scope, const char *anchor, const char *decl) { t << " <Token>" << endl; t << " <TokenIdentifier>" << endl; QCString name = d->name(); if (name.right(2)=="-p") name=name.left(name.length()-2); t << " <Name>" << convertToXML(name) << "</Name>" << endl; if (!lang.isEmpty()) { t << " <APILanguage>" << lang << "</APILanguage>" << endl; } if (!type.isEmpty()) { t << " <Type>" << type << "</Type>" << endl; } if (scope) { t << " <Scope>" << convertToXML(scope) << "</Scope>" << endl; } t << " </TokenIdentifier>" << endl; t << " <Path>" << d->getOutputFileBase() << Doxygen::htmlFileExtension << "</Path>" << endl; if (anchor) { t << " <Anchor>" << anchor << "</Anchor>" << endl; } QCString tooltip = d->briefDescriptionAsTooltip(); if (!tooltip.isEmpty()) { t << " <Abstract>" << convertToXML(tooltip) << "</Abstract>" << endl; } if (decl) { t << " <DeclaredIn>" << convertToXML(decl) << "</DeclaredIn>" << endl; } t << " </Token>" << endl; }
/*! * \brief Add an item to the content * * @param isDir Flag whether the argument \a file is a directory or a file entry * @param name Name of the item * @param ref URL of the item * @param file Name of a file which the item is defined in (without extension) * @param anchor Name of an anchor of the item. * @param separateIndex not used. * @param addToNavIndex not used. * @param def not used. */ void EclipseHelp::addContentsItem(bool, const QString &name, const QString &, const QString &file, const QString &anchor, bool, bool, QSharedPointer<Definition>) { // -- write the topic tag closedTag(); if (! file.isEmpty() ) { switch (file[0].unicode()) { // check for special markers (user defined URLs) case '^': // URL not supported by eclipse toc.xml break; case '!': indent(); m_tocstream << "<topic label=\"" << convertToXML(name) << "\""; m_tocstream << " href=\"" << convertToXML(m_pathprefix) << file.mid(1) << "\""; m_endtag = true; break; default: indent(); m_tocstream << "<topic label=\"" << convertToXML(name) << "\""; m_tocstream << " href=\"" << convertToXML(m_pathprefix) << file << Doxy_Globals::htmlFileExtension; if (! anchor.isEmpty()) { m_tocstream << "#" << anchor; } m_tocstream << "\""; m_endtag = true; break; } } else { indent(); m_tocstream << "<topic label=\"" << convertToXML(name) << "\""; m_endtag = true; } }
void GroupDef::writeNestedGroups(OutputList &ol,const QCString &title) { // write list of groups int count=0; if (groupList->count()>0) { QListIterator<GroupDef> it(*groupList); GroupDef *gd; for (;(gd=it.current());++it) { if (gd->isVisible()) count++; } } if (count>0) { ol.startMemberHeader("groups"); ol.parseText(title); ol.endMemberHeader(); ol.startMemberList(); if (Config_getBool("SORT_GROUP_NAMES")) { groupList->sort(); } QListIterator<GroupDef> it(*groupList); GroupDef *gd; for (;(gd=it.current());++it) { if (gd->isVisible()) { ol.startMemberDeclaration(); ol.startMemberItem(gd->getOutputFileBase(),0); //ol.docify(theTranslator->trGroup(FALSE,TRUE)); //ol.docify(" "); ol.insertMemberAlign(); ol.writeObjectLink(gd->getReference(),gd->getOutputFileBase(),0,gd->groupTitle()); if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { Doxygen::tagFile << " <subgroup>" << convertToXML(gd->name()) << "</subgroup>" << endl; } ol.endMemberItem(); if (!gd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) { ol.startMemberDescription(gd->getOutputFileBase()); ol.generateDoc(briefFile(),briefLine(),gd,0,gd->briefDescription(),FALSE,FALSE,0,TRUE,FALSE); ol.endMemberDescription(); } ol.endMemberDeclaration(0,0); } } ol.endMemberList(); } }
static void visitPreStart(FTextStream &t, const char *cmd, const bool doCaption, XmlDocVisitor *parent, QList<DocNode> children, const QCString &name, bool writeType, DocImage::Type type, const QCString &width, const QCString &height) { t << "<" << cmd; if (writeType) { t << " type=\""; switch(type) { case DocImage::Html: t << "html"; break; case DocImage::Latex: t << "latex"; break; case DocImage::Rtf: t << "rtf"; break; case DocImage::DocBook: t << "docbook"; break; } t << "\""; } if (!name.isEmpty()) { t << " name=\"" << name << "\""; } if (!width.isEmpty()) { t << " width=\"" << convertToXML(width) << "\""; } if (!height.isEmpty()) { t << " height=\"" << convertToXML(height) << "\""; } if (doCaption) { t << " caption=\""; visitCaption(parent, children); t << "\""; } t << ">"; }
void HtmlDocVisitor::visitPre(DocHRef *href) { if (m_hide) return; if (href->url().left(7)=="mailto:") { writeObfuscatedMailAddress(href->url().mid(7)); } else { QCString url = correctURL(href->url(),href->relPath()); m_t << "<a href=\"" << convertToXML(url) << "\"" << htmlAttribsToString(href->attribs()) << ">"; } }
void PageDef::writeTagFile(FTextStream &tagFile) { bool found = name()=="citelist"; QDictIterator<RefList> rli(*Doxygen::xrefLists); RefList *rl; for (rli.toFirst();(rl=rli.current()) && !found;++rli) { if (rl->listName()==name()) { found=TRUE; break; } } if (!found) // not one of the generated related pages { tagFile << " <compound kind=\"page\">" << endl; tagFile << " <name>" << name() << "</name>" << endl; tagFile << " <title>" << convertToXML(title()) << "</title>" << endl; tagFile << " <filename>" << convertToXML(getOutputFileBase()) << "</filename>" << endl; writeDocAnchorsToTagFile(tagFile); tagFile << " </compound>" << endl; } }
static QString htmlAttribsToString(const HtmlAttribList &attribs) { QString result; HtmlAttribListIterator li(attribs); HtmlAttrib *att; for (li.toFirst();(att=li.current());++li) { if (!att->value.isEmpty()) // ignore attribute without values as they // are not XHTML compliant { result+=" "; result+=att->name; result+="=\""+convertToXML(att->value)+"\""; } } return result; }
static void generateSqlite3Section(sqlite3*db, Definition *d, MemberList *ml,const char * /*kind*/,const char * /*header*/=0, const char * /*documentation*/=0) { if (ml==0) return; MemberListIterator mli(*ml); MemberDef *md; int count=0; for (mli.toFirst();(md=mli.current());++mli) { // namespace members are also inserted in the file scope, but // to prevent this duplication in the XML output, we filter those here. if (d->definitionType()!=Definition::TypeFile || md->getNamespaceDef()==0) { count++; } } if (count==0) return; // empty list #if 0 t << " <sectiondef kind=\"" << kind << "\">" << endl; if (header) { t << " <header>" << convertToXML(header) << "</header>" << endl; } if (documentation) { t << " <description>"; writeXMLDocBlock(t,d->docFile(),d->docLine(),d,0,documentation); t << "</description>" << endl; } #endif for (mli.toFirst();(md=mli.current());++mli) { // namespace members are also inserted in the file scope, but // to prevent this duplication in the XML output, we filter those here. //if (d->definitionType()!=Definition::TypeFile || md->getNamespaceDef()==0) { generateSqlite3ForMember(db,md,d); } } //t << " </sectiondef>" << endl; }
cwLinePlotTask::cwLinePlotTask(QObject *parent) : cwTask(parent) { Region = new cwCavingRegion(); SurvexFile = new QTemporaryFile(this); SurvexFile->open(); SurvexFile->close(); SurvexExporter = new cwSurvexExporterRegionTask(); SurvexExporter->setParentTask(this); SurvexExporter->setOutputFile(SurvexFile->fileName()); connect(SurvexExporter, SIGNAL(finished()), SLOT(runCavern())); connect(SurvexExporter, SIGNAL(stopped()), SLOT(done())); CavernTask = new cwCavernTask(); CavernTask->setParentTask(this); CavernTask->setSurvexFile(SurvexFile->fileName()); connect(CavernTask, SIGNAL(finished()), SLOT(convertToXML())); connect(CavernTask, SIGNAL(stopped()), SLOT(done())); PlotSauceTask = new cwPlotSauceTask(); PlotSauceTask->setParentTask(this); connect(PlotSauceTask, SIGNAL(finished()), SLOT(readXML())); connect(PlotSauceTask, SIGNAL(stopped()), SLOT(done())); PlotSauceParseTask = new cwPlotSauceXMLTask(); PlotSauceParseTask->setParentTask(this); connect(PlotSauceParseTask, SIGNAL(finished()), SLOT(generateCenterlineGeometry())); connect(PlotSauceParseTask, SIGNAL(stopped()), SLOT(done())); //connect(PlotSauceParseTask, SIGNAL(stationPosition(QString,QVector3D)), SLOT(updateStationPositionForCaves(QString,QVector3D))); CenterlineGeometryTask = new cwLinePlotGeometryTask(); CenterlineGeometryTask->setParentTask(this); connect(CenterlineGeometryTask, SIGNAL(finished()), SLOT(linePlotTaskComplete())); connect(CenterlineGeometryTask, SIGNAL(stopped()), SLOT(done())); }
void DirDef::writeSubDirList(OutputList &ol) { // write subdir list if (m_subdirs.count()>0) { ol.startMemberHeader(); ol.parseText(theTranslator->trDir(TRUE,FALSE)); ol.endMemberHeader(); ol.startMemberList(); DirDef *dd=m_subdirs.first(); while (dd) { ol.startMemberItem(0); ol.parseText(theTranslator->trDir(FALSE,TRUE)+" "); ol.insertMemberAlign(); ol.writeObjectLink(dd->getReference(),dd->getOutputFileBase(),0,dd->shortName()); ol.endMemberItem(); if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { Doxygen::tagFile << " <dir>" << convertToXML(dd->displayName()) << "</dir>" << endl; } if (!dd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) { ol.startParagraph(); ol.startMemberDescription(); ol.parseDoc(briefFile(),briefLine(),dd,0,dd->briefDescription(), FALSE, // indexWords FALSE, // isExample 0, // exampleName FALSE, // single line TRUE // link from index ); ol.endMemberDescription(); ol.endParagraph(); } dd=m_subdirs.next(); } ol.endMemberList(); } }
void Definition::writeDocAnchorsToTagFile(FTextStream &tagFile) { if (m_impl->sectionDict) { //printf("%s: writeDocAnchorsToTagFile(%d)\n",name().data(),m_impl->sectionDict->count()); SDict<SectionInfo>::Iterator sdi(*m_impl->sectionDict); SectionInfo *si; for (;(si=sdi.current());++sdi) { if (!si->generated) { //printf("write an entry!\n"); if (definitionType()==TypeMember) tagFile << " "; tagFile << " <docanchor file=\"" << si->fileName << "\""; if (!si->title.isEmpty()) { tagFile << " title=\"" << convertToXML(si->title) << "\""; } tagFile << ">" << si->label << "</docanchor>" << endl; } } } }
void DocSets::addContentsItem(bool isDir, const char *name, const char *ref, const char *file, const char *anchor) { (void)isDir; if (file && ref==0) { if (!m_firstNode.at(m_dc-1)) { m_nts << indent() << " </Node>" << endl; } m_firstNode.at(m_dc-1)=FALSE; m_nts << indent() << " <Node>" << endl; m_nts << indent() << " <Name>" << convertToXML(name) << "</Name>" << endl; m_nts << indent() << " <Path>" << file << Doxygen::htmlFileExtension; if (anchor) { m_nts << "#" << anchor; } m_nts << "</Path>" << endl; } }
void DocbookDocVisitor::filter(const char *str) { m_t << convertToXML(str); }
void XmlDocVisitor::visitPre(DocCopy *c) { if (m_hide) return; m_t << "<copydoc link=\"" << convertToXML(c->link()) << "\">"; }
void HtmlDocVisitor::visitPre(DocHRef *href) { if (m_hide) return; m_t << "<a href=\"" << convertToXML(href->url()) << "\"" << htmlAttribsToString(href->attribs()) << ">"; }
static void generateSqlite3ForFile(sqlite3 *db, FileDef *fd) { // + includes files // + includedby files // + include graph // + included by graph // + contained class definitions // + contained namespace definitions // + member groups // + normal members // + brief desc // + detailed desc // + source code // + location // - number of lines if (fd->isReference()) return; // skip external references #if 0 ti << " <compound refid=\"" << fd->getOutputFileBase() << "\" kind=\"file\"><name>" << convertToXML(fd->name()) << "</name>" << endl; QCString outputDirectory = Config_getString("XML_OUTPUT"); QCString fileName=outputDirectory+"/"+fd->getOutputFileBase()+".xml"; QFile f(fileName); if (!f.open(IO_WriteOnly)) { err("Cannot open file %s for writing!\n",fileName.data()); return; } FTextStream t(&f); //t.setEncoding(FTextStream::UnicodeUTF8); writeXMLHeader(t); t << " <compounddef id=\"" << fd->getOutputFileBase() << "\" kind=\"file\">" << endl; t << " <compoundname>"; writeXMLString(t,fd->name()); t << "</compoundname>" << endl; IncludeInfo *inc; if (fd->includeFileList()) { QListIterator<IncludeInfo> ili1(*fd->includeFileList()); for (ili1.toFirst();(inc=ili1.current());++ili1) { t << " <includes"; if (inc->fileDef && !inc->fileDef->isReference()) // TODO: support external references { t << " refid=\"" << inc->fileDef->getOutputFileBase() << "\""; } t << " local=\"" << (inc->local ? "yes" : "no") << "\">"; t << inc->includeName; t << "</includes>" << endl; } } if (fd->includedByFileList()) { QListIterator<IncludeInfo> ili2(*fd->includedByFileList()); for (ili2.toFirst();(inc=ili2.current());++ili2) { t << " <includedby"; if (inc->fileDef && !inc->fileDef->isReference()) // TODO: support external references { t << " refid=\"" << inc->fileDef->getOutputFileBase() << "\""; } t << " local=\"" << (inc->local ? "yes" : "no") << "\">"; t << inc->includeName; t << "</includedby>" << endl; } } DotInclDepGraph incDepGraph(fd,FALSE); if (!incDepGraph.isTrivial()) { t << " <incdepgraph>" << endl; incDepGraph.writeXML(t); t << " </incdepgraph>" << endl; } DotInclDepGraph invIncDepGraph(fd,TRUE); if (!invIncDepGraph.isTrivial()) { t << " <invincdepgraph>" << endl; invIncDepGraph.writeXML(t); t << " </invincdepgraph>" << endl; } #endif if (fd->getClassSDict()) { writeInnerClasses(db,fd->getClassSDict()); } if (fd->getNamespaceSDict()) { writeInnerNamespaces(db,fd->getNamespaceSDict()); } if (fd->getMemberGroupSDict()) { MemberGroupSDict::Iterator mgli(*fd->getMemberGroupSDict()); MemberGroup *mg; for (;(mg=mgli.current());++mgli) { generateSqlite3Section(db,fd,mg->members(),"user-defined",mg->header(), mg->documentation()); } } QListIterator<MemberList> mli(fd->getMemberLists()); MemberList *ml; for (mli.toFirst();(ml=mli.current());++mli) { if ((ml->listType()&MemberListType_declarationLists)!=0) { generateSqlite3Section(db,fd,ml,"user-defined");//g_xmlSectionMapper.find(ml->listType())); } } #if 0 generateXMLSection(fd,ti,t,fd->decDefineMembers,"define"); generateXMLSection(fd,ti,t,fd->decProtoMembers,"prototype"); generateXMLSection(fd,ti,t,fd->decTypedefMembers,"typedef"); generateXMLSection(fd,ti,t,fd->decEnumMembers,"enum"); generateXMLSection(fd,ti,t,fd->decFuncMembers,"func"); generateXMLSection(fd,ti,t,fd->decVarMembers,"var"); #endif #if 0 t << " <briefdescription>" << endl; writeXMLDocBlock(t,fd->briefFile(),fd->briefLine(),fd,0,fd->briefDescription()); t << " </briefdescription>" << endl; t << " <detaileddescription>" << endl; writeXMLDocBlock(t,fd->docFile(),fd->docLine(),fd,0,fd->documentation()); t << " </detaileddescription>" << endl; if (Config_getBool("XML_PROGRAMLISTING")) { t << " <programlisting>" << endl; writeXMLCodeBlock(t,fd); t << " </programlisting>" << endl; } t << " <location file=\"" << fd->getDefFileName() << "\"/>" << endl; t << " </compounddef>" << endl; t << "</doxygen>" << endl; ti << " </compound>" << endl; #endif }
static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def) { // + declaration/definition arg lists // + reimplements // + reimplementedBy // + exceptions // + const/volatile specifiers // - examples // + source definition // + source references // + source referenced by // - body code // + template arguments // (templateArguments(), definitionTemplateParameterLists()) // - call graph // enum values are written as part of the enum if (md->memberType()==MemberType_EnumValue) return; if (md->isHidden()) return; //if (md->name().at(0)=='@') return; // anonymous member // group members are only visible in their group //if (def->definitionType()!=Definition::TypeGroup && md->getGroupDef()) return; QCString memType; #if 0 // member idx = sqlite3_bind_parameter_index(stmt, ":refid"); sqlite3_bind_text(stmt, idx, memberOutputFileBase(md).data(),-1,SQLITE_TRANSIENT); idx = sqlite3_bind_parameter_index(stmt,":kind"); sqlite3_bind_int(stmt, idx, md->memberType()); idx = sqlite3_bind_parameter_index(stmt, ":name"); sqlite3_bind_text(stmt, idx, md->name().data(),-1,SQLITE_TRANSIENT); #endif // memberdef bindTextParameter(i_s_memberdef,":refid",md->anchor()); bindIntParameter(i_s_memberdef,":kind",md->memberType()); bindIntParameter(i_s_memberdef,":prot",md->protection()); bindIntParameter(i_s_memberdef,":static",md->isStatic()); bool isFunc=FALSE; switch (md->memberType()) { case MemberType_Function: // fall through case MemberType_Signal: // fall through case MemberType_Friend: // fall through case MemberType_DCOP: // fall through case MemberType_Slot: isFunc=TRUE; break; default: break; } if (isFunc) { LockingPtr<ArgumentList> al = md->argumentList(); if (al!=0 && al->constSpecifier) { bindIntParameter(i_s_memberdef,":const",al->constSpecifier); } bindIntParameter(i_s_memberdef,":explicit",md->isExplicit()); bindIntParameter(i_s_memberdef,":inline",md->isInline()); bindIntParameter(i_s_memberdef,":final",md->isFinal()); bindIntParameter(i_s_memberdef,":sealed",md->isSealed()); bindIntParameter(i_s_memberdef,":new",md->isNew()); bindIntParameter(i_s_memberdef,":optional",md->isOptional()); bindIntParameter(i_s_memberdef,":required",md->isRequired()); bindIntParameter(i_s_memberdef,":virt",md->virtualness()); } // place in the arguments and linkify the arguments if (md->memberType() == MemberType_Variable) { bindIntParameter(i_s_memberdef,":mutable",md->isMutable()); bindIntParameter(i_s_memberdef,":initonly",md->isInitonly()); } else if (md->memberType() == MemberType_Property) { bindIntParameter(i_s_memberdef,":readable",md->isReadable()); bindIntParameter(i_s_memberdef,":writable",md->isWritable()); bindIntParameter(i_s_memberdef,":gettable",md->isGettable()); bindIntParameter(i_s_memberdef,":settable",md->isSettable()); if (md->isAssign() || md->isCopy() || md->isRetain()) { int accessor = md->isAssign() ? md->isAssign() : (md->isCopy() ? md->isCopy() : md->isRetain()) ; bindIntParameter(i_s_memberdef,":accessor",accessor); } } else if (md->memberType() == MemberType_Event) { bindIntParameter(i_s_memberdef,":addable",md->isAddable()); bindIntParameter(i_s_memberdef,":removable",md->isRemovable()); bindIntParameter(i_s_memberdef,":raisable",md->isRaisable()); } if (md->memberType()!=MemberType_Define && md->memberType()!=MemberType_Enumeration ) { QCString typeStr = md->typeString(); stripQualifiers(typeStr); StringList l; linkifyText(TextGeneratorSqlite3Impl(l),def,md->getBodyDef(),md,typeStr); if (typeStr.data()) { bindTextParameter(i_s_memberdef,":type",typeStr); } if (md->definition()) { bindTextParameter(i_s_memberdef,":definition",md->definition()); } if (md->argsString()) { bindTextParameter(i_s_memberdef,":argsstring",md->argsString()); } } bindTextParameter(i_s_memberdef,":name",md->name()); if (md->memberType() == MemberType_Property) { if (md->isReadable()) { DBG_CTX(("<read>\n")); } if (md->isWritable()) { DBG_CTX(("<write>\n")); } } #if 0 if (md->memberType()==MemberType_Variable && md->bitfieldString()) { QCString bitfield = md->bitfieldString(); if (bitfield.at(0)==':') bitfield=bitfield.mid(1); t << " <bitfield>" << bitfield << "</bitfield>" << endl; } MemberDef *rmd = md->reimplements(); if (rmd) { t << " <reimplements refid=\"" << memberOutputFileBase(rmd) << "_1" << rmd->anchor() << "\">" << convertToXML(rmd->name()) << "</reimplements>" << endl; } LockingPtr<MemberList> rbml = md->reimplementedBy(); if (rbml!=0) { MemberListIterator mli(*rbml); for (mli.toFirst();(rmd=mli.current());++mli) { t << " <reimplementedby refid=\"" << memberOutputFileBase(rmd) << "_1" << rmd->anchor() << "\">" << convertToXML(rmd->name()) << "</reimplementedby>" << endl; } } #endif if (isFunc) //function { LockingPtr<ArgumentList> declAl = md->declArgumentList(); LockingPtr<ArgumentList> defAl = md->argumentList(); if (declAl!=0 && declAl->count()>0) { ArgumentListIterator declAli(*declAl); ArgumentListIterator defAli(*defAl); Argument *a; for (declAli.toFirst();(a=declAli.current());++declAli) { Argument *defArg = defAli.current(); DBG_CTX(("<param>\n")); if (!a->attrib.isEmpty()) { DBG_CTX(("<attributes>:%s\n",a->attrib.data())); } if (!a->type.isEmpty()) { StringList l; linkifyText(TextGeneratorSqlite3Impl(l),def,md->getBodyDef(),md,a->type); QCString *s=l.first(); while (s) { insertMemberReference(db,md->anchor().data(),s->data(),def->getDefFileName().data(),md->getDefLine(),1); s=l.next(); } } if (!a->name.isEmpty()) { DBG_CTX(("<declname>%s\n",a->name.data())); } if (defArg && !defArg->name.isEmpty() && defArg->name!=a->name) { DBG_CTX(("<defname>%s\n",defArg->name.data())); } if (!a->array.isEmpty()) { DBG_CTX(("<array>%s",a->array.data())); } if (!a->defval.isEmpty()) { StringList l; linkifyText(TextGeneratorSqlite3Impl(l),def,md->getBodyDef(),md,a->defval); } if (defArg) ++defAli; } } } else if (md->memberType()==MemberType_Define && md->argsString()) // define { if (md->argumentList()->count()==0) // special case for "foo()" to // disguish it from "foo". { DBG_CTX(("no params\n")); } else { ArgumentListIterator ali(*md->argumentList()); Argument *a; for (ali.toFirst();(a=ali.current());++ali) { DBG_CTX(("<param><defname>%s\n",a->type.data())); } } } // Extract references from initializer // avoid that extremely large tables are written to the output. // todo: it's better to adhere to MAX_INITIALIZER_LINES. // drm_mod_register_buffer, if (!md->initializer().isEmpty() && md->initializer().length()<2000) { StringList l; linkifyText(TextGeneratorSqlite3Impl(l),def,md->getBodyDef(),md,md->initializer()); QCString *s=l.first(); while (s) { DBG_CTX(("initializer:%s %s %s %d\n", md->anchor().data(), s->data(), md->getBodyDef()->getDefFileName().data(), md->getStartBodyLine())); insertMemberReference(db,md->anchor().data(),s->data(),md->getBodyDef()->getDefFileName().data(),md->getStartBodyLine(),1); s=l.next(); } } #if 0 if (md->excpString()) { linkifyText(TextGeneratorXMLImpl(t),def,md->getBodyDef(),md,md->excpString()); } #endif if ( md->getScopeString() ) { bindTextParameter(i_s_memberdef,":scope",md->getScopeString()); } // File location if (md->getDefLine() != -1) { int id_file = insertFile(db,md->getDefFileName()); if (id_file!=-1) { bindIntParameter(i_s_memberdef,":id_file",id_file); bindIntParameter(i_s_memberdef,":line",md->getDefLine()); bindIntParameter(i_s_memberdef,":column",md->getDefColumn()); if (md->getStartBodyLine()!=-1) { int id_bfile = insertFile(db,md->getBodyDef()->absFilePath()); if (id_bfile == -1) exit(-1); bindIntParameter(i_s_memberdef,":id_ibfile",id_bfile); bindIntParameter(i_s_memberdef,":bline",md->getStartBodyLine()); // XXX implement getStartBodyColumn bindIntParameter(i_s_memberdef,":bcolumn",1); } } } step(db,i_s_memberdef); /*int id_src =*/ sqlite3_last_insert_rowid(db); // + cross-references // The cross-references in initializers only work when both the src and dst // are defined. LockingPtr<MemberSDict> mdict = md->getReferencesMembers(); // references if (mdict!=0) { MemberSDict::IteratorDict mdi(*mdict); MemberDef *rmd; for (mdi.toFirst();(rmd=mdi.current());++mdi) { insertMemberReference(db,md,rmd,mdi.currentKey()); } } mdict = md->getReferencedByMembers(); // referencedby if (mdict!=0) { MemberSDict::IteratorDict mdi(*mdict); MemberDef *rmd; for (mdi.toFirst();(rmd=mdi.current());++mdi) { insertMemberReference(db,rmd,md,mdi.currentKey()); } } }
static void generateSqlite3ForNamespace(sqlite3 *db, NamespaceDef *nd) { // + contained class definitions // + contained namespace definitions // + member groups // + normal members // + brief desc // + detailed desc // + location // - files containing (parts of) the namespace definition if (nd->isReference() || nd->isHidden()) return; // skip external references #if 0 ti << " <compound refid=\"" << nd->getOutputFileBase() << "\" kind=\"namespace\"" << "><name>" << convertToXML(nd->name()) << "</name>" << endl; QCString outputDirectory = Config_getString("XML_OUTPUT"); QCString fileName=outputDirectory+"/"+nd->getOutputFileBase()+".xml"; QFile f(fileName); if (!f.open(IO_WriteOnly)) { err("Cannot open file %s for writing!\n",fileName.data()); return; } FTextStream t(&f); //t.setEncoding(FTextStream::UnicodeUTF8); writeXMLHeader(t); t << " <compounddef id=\"" << nd->getOutputFileBase() << "\" kind=\"namespace\">" << endl; t << " <compoundname>"; writeXMLString(t,nd->name()); t << "</compoundname>" << endl; #endif writeInnerClasses(db,nd->getClassSDict()); writeInnerNamespaces(db,nd->getNamespaceSDict()); if (nd->getMemberGroupSDict()) { MemberGroupSDict::Iterator mgli(*nd->getMemberGroupSDict()); MemberGroup *mg; for (;(mg=mgli.current());++mgli) { generateSqlite3Section(db,nd,mg->members(),"user-defined",mg->header(), mg->documentation()); } } QListIterator<MemberList> mli(nd->getMemberLists()); MemberList *ml; for (mli.toFirst();(ml=mli.current());++mli) { if ((ml->listType()&MemberListType_declarationLists)!=0) { generateSqlite3Section(db,nd,ml,"user-defined");//g_xmlSectionMapper.find(ml->listType())); } } #if 0 generateXMLSection(nd,ti,t,&nd->decDefineMembers,"define"); generateXMLSection(nd,ti,t,&nd->decProtoMembers,"prototype"); generateXMLSection(nd,ti,t,&nd->decTypedefMembers,"typedef"); generateXMLSection(nd,ti,t,&nd->decEnumMembers,"enum"); generateXMLSection(nd,ti,t,&nd->decFuncMembers,"func"); generateXMLSection(nd,ti,t,&nd->decVarMembers,"var"); t << " <briefdescription>" << endl; writeXMLDocBlock(t,nd->briefFile(),nd->briefLine(),nd,0,nd->briefDescription()); t << " </briefdescription>" << endl; t << " <detaileddescription>" << endl; writeXMLDocBlock(t,nd->docFile(),nd->docLine(),nd,0,nd->documentation()); t << " </detaileddescription>" << endl; t << " <location file=\"" << nd->getDefFileName() << "\" line=\"" << nd->getDefLine() << "\"" << " column=\"" << nd->getDefColumn() << "\"/>" << endl ; t << " </compounddef>" << endl; t << "</doxygen>" << endl; ti << " </compound>" << endl; #endif }
void GroupDef::writeTagFile(FTextStream &tagFile) { tagFile << " <compound kind=\"group\">" << endl; tagFile << " <name>" << convertToXML(name()) << "</name>" << endl; tagFile << " <title>" << convertToXML(title) << "</title>" << endl; tagFile << " <filename>" << convertToXML(getOutputFileBase()) << Doxygen::htmlFileExtension << "</filename>" << endl; QListIterator<LayoutDocEntry> eli( LayoutDocManager::instance().docEntries(LayoutDocManager::Group)); LayoutDocEntry *lde; for (eli.toFirst();(lde=eli.current());++eli) { switch (lde->kind()) { case LayoutDocEntry::GroupClasses: { if (classSDict) { SDict<ClassDef>::Iterator ci(*classSDict); ClassDef *cd; for (ci.toFirst();(cd=ci.current());++ci) { if (cd->isLinkableInProject()) { tagFile << " <class kind=\"" << cd->compoundTypeString() << "\">" << convertToXML(cd->name()) << "</class>" << endl; } } } } break; case LayoutDocEntry::GroupNamespaces: { if (namespaceSDict) { SDict<NamespaceDef>::Iterator ni(*namespaceSDict); NamespaceDef *nd; for (ni.toFirst();(nd=ni.current());++ni) { if (nd->isLinkableInProject()) { tagFile << " <namespace>" << convertToXML(nd->name()) << "</namespace>" << endl; } } } } break; case LayoutDocEntry::GroupFiles: { if (fileList) { QListIterator<FileDef> it(*fileList); FileDef *fd; for (;(fd=it.current());++it) { if (fd->isLinkableInProject()) { tagFile << " <file>" << convertToXML(fd->name()) << "</file>" << endl; } } } } break; case LayoutDocEntry::GroupPageDocs: { if (pageDict) { PageSDict::Iterator pdi(*pageDict); PageDef *pd=0; for (pdi.toFirst();(pd=pdi.current());++pdi) { QCString pageName = pd->getOutputFileBase(); if (pd->isLinkableInProject()) { tagFile << " <page>" << convertToXML(pageName) << "</page>" << endl; } } } } break; case LayoutDocEntry::GroupDirs: { if (dirList) { QListIterator<DirDef> it(*dirList); DirDef *dd; for (;(dd=it.current());++it) { if (dd->isLinkableInProject()) { tagFile << " <dir>" << convertToXML(dd->displayName()) << "</dir>" << endl; } } } } break; case LayoutDocEntry::GroupNestedGroups: { if (groupList) { QListIterator<GroupDef> it(*groupList); GroupDef *gd; for (;(gd=it.current());++it) { if (gd->isVisible()) { tagFile << " <subgroup>" << convertToXML(gd->name()) << "</subgroup>" << endl; } } } } break; case LayoutDocEntry::MemberDecl: { LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; MemberList * ml = getMemberList(lmd->type); if (ml) { ml->writeTagFile(tagFile); } } break; case LayoutDocEntry::MemberGroups: { if (memberGroupSDict) { MemberGroupSDict::Iterator mgli(*memberGroupSDict); MemberGroup *mg; for (;(mg=mgli.current());++mgli) { mg->writeTagFile(tagFile); } } } break; default: break; } } writeDocAnchorsToTagFile(tagFile); tagFile << " </compound>" << endl; }
void NamespaceDef::writeTagFile(FTextStream &tagFile) { tagFile << " <compound kind=\"namespace\">" << endl; tagFile << " <name>" << convertToXML(name()) << "</name>" << endl; tagFile << " <filename>" << convertToXML(getOutputFileBase()) << Doxygen::htmlFileExtension << "</filename>" << endl; QCString idStr = id(); if (!idStr.isEmpty()) { tagFile << " <clangid>" << convertToXML(idStr) << "</clangid>" << endl; } QListIterator<LayoutDocEntry> eli( LayoutDocManager::instance().docEntries(LayoutDocManager::Namespace)); LayoutDocEntry *lde; for (eli.toFirst(); (lde=eli.current()); ++eli) { switch (lde->kind()) { case LayoutDocEntry::NamespaceNestedNamespaces: { if (namespaceSDict) { SDict<NamespaceDef>::Iterator ni(*namespaceSDict); NamespaceDef *nd; for (ni.toFirst(); (nd=ni.current()); ++ni) { if (nd->isLinkableInProject()) { tagFile << " <namespace>" << convertToXML(nd->name()) << "</namespace>" << endl; } } } } break; case LayoutDocEntry::NamespaceClasses: { if (classSDict) { SDict<ClassDef>::Iterator ci(*classSDict); ClassDef *cd; for (ci.toFirst(); (cd=ci.current()); ++ci) { if (cd->isLinkableInProject()) { tagFile << " <class kind=\"" << cd->compoundTypeString() << "\">" << convertToXML(cd->name()) << "</class>" << endl; } } } } case LayoutDocEntry::MemberDecl: { LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; MemberList * ml = getMemberList(lmd->type); if (ml) { ml->writeTagFile(tagFile); } } break; case LayoutDocEntry::MemberGroups: { if (memberGroupSDict) { MemberGroupSDict::Iterator mgli(*memberGroupSDict); MemberGroup *mg; for (; (mg=mgli.current()); ++mgli) { mg->writeTagFile(tagFile); } } } break; default: break; } } writeDocAnchorsToTagFile(tagFile); tagFile << " </compound>" << endl; }
void GroupDef::writeDocumentation(OutputList &ol) { //static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW"); ol.pushGeneratorState(); startFile(ol,getOutputFileBase(),name(),title,HLI_None); ol.startHeaderSection(); writeSummaryLinks(ol); ol.startTitleHead(getOutputFileBase()); ol.pushGeneratorState(); ol.disable(OutputGenerator::Man); ol.parseText(title); ol.popGeneratorState(); ol.endTitleHead(getOutputFileBase(),title); addGroupListToTitle(ol,this); ol.endHeaderSection(); ol.startContents(); if (Doxygen::searchIndex) { Doxygen::searchIndex->setCurrentDoc(title,getOutputFileBase()); static QRegExp we("[a-zA-Z_][-a-zA-Z_0-9]*"); int i=0,p=0,l=0; while ((i=we.match(title,p,&l))!=-1) // foreach word in the title { Doxygen::searchIndex->addWord(title.mid(i,l),TRUE); p=i+l; } } Doxygen::indexList.addIndexItem(this,0,title); if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { Doxygen::tagFile << " <compound kind=\"group\">" << endl; Doxygen::tagFile << " <name>" << convertToXML(name()) << "</name>" << endl; Doxygen::tagFile << " <title>" << convertToXML(title) << "</title>" << endl; Doxygen::tagFile << " <filename>" << convertToXML(getOutputFileBase()) << Doxygen::htmlFileExtension << "</filename>" << endl; } //---------------------------------------- start flexible part ------------------------------- QListIterator<LayoutDocEntry> eli( LayoutDocManager::instance().docEntries(LayoutDocManager::Group)); LayoutDocEntry *lde; for (eli.toFirst();(lde=eli.current());++eli) { switch (lde->kind()) { case LayoutDocEntry::BriefDesc: writeBriefDescription(ol); break; case LayoutDocEntry::MemberDeclStart: startMemberDeclarations(ol); break; case LayoutDocEntry::GroupClasses: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeClasses(ol,ls->title); } break; case LayoutDocEntry::GroupInlineClasses: { writeInlineClasses(ol); } break; case LayoutDocEntry::GroupNamespaces: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeNamespaces(ol,ls->title); } break; case LayoutDocEntry::MemberGroups: writeMemberGroups(ol); break; case LayoutDocEntry::MemberDecl: { LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; writeMemberDeclarations(ol,lmd->type,lmd->title); } break; case LayoutDocEntry::MemberDeclEnd: endMemberDeclarations(ol); break; case LayoutDocEntry::DetailedDesc: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeDetailedDescription(ol,ls->title); } break; case LayoutDocEntry::MemberDefStart: startMemberDocumentation(ol); break; case LayoutDocEntry::MemberDef: { LayoutDocEntryMemberDef *lmd = (LayoutDocEntryMemberDef*)lde; writeMemberDocumentation(ol,lmd->type,lmd->title); } break; case LayoutDocEntry::MemberDefEnd: endMemberDocumentation(ol); break; case LayoutDocEntry::GroupNestedGroups: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeNestedGroups(ol,ls->title); } break; case LayoutDocEntry::GroupPageDocs: writePageDocumentation(ol); break; case LayoutDocEntry::GroupDirs: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeDirs(ol,ls->title); } break; case LayoutDocEntry::GroupFiles: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeFiles(ol,ls->title); } break; case LayoutDocEntry::GroupGraph: writeGroupGraph(ol); break; case LayoutDocEntry::AuthorSection: writeAuthorSection(ol); break; case LayoutDocEntry::ClassIncludes: case LayoutDocEntry::ClassInheritanceGraph: case LayoutDocEntry::ClassNestedClasses: case LayoutDocEntry::ClassCollaborationGraph: case LayoutDocEntry::ClassAllMembersLink: case LayoutDocEntry::ClassUsedFiles: case LayoutDocEntry::ClassInlineClasses: case LayoutDocEntry::NamespaceNestedNamespaces: case LayoutDocEntry::NamespaceClasses: case LayoutDocEntry::NamespaceInlineClasses: case LayoutDocEntry::FileClasses: case LayoutDocEntry::FileNamespaces: case LayoutDocEntry::FileIncludes: case LayoutDocEntry::FileIncludeGraph: case LayoutDocEntry::FileIncludedByGraph: case LayoutDocEntry::FileSourceLink: case LayoutDocEntry::FileInlineClasses: case LayoutDocEntry::DirSubDirs: case LayoutDocEntry::DirFiles: case LayoutDocEntry::DirGraph: err("Internal inconsistency: member %d should not be part of " "LayoutDocManager::Group entry list\n",lde->kind()); break; } } //---------------------------------------- end flexible part ------------------------------- endFile(ol); ol.popGeneratorState(); if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { writeDocAnchorsToTagFile(); Doxygen::tagFile << " </compound>" << endl; } if (Config_getBool("SEPARATE_MEMBER_PAGES")) { allMemberList->sort(); writeMemberPages(ol); } }
void DocbookDocVisitor::visitPre(DocSimpleSect *s) { if (m_hide) return; switch(s->type()) { case DocSimpleSect::See: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trSeeAlso() << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trSeeAlso()) << ": </title>" << endl; } break; case DocSimpleSect::Return: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trReturns()<< ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trReturns()) << ": </title>" << endl; } break; case DocSimpleSect::Author: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trAuthor(TRUE, TRUE) << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trAuthor(TRUE, TRUE)) << ": </title>" << endl; } break; case DocSimpleSect::Authors: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trAuthor(TRUE, FALSE) << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trAuthor(TRUE, FALSE)) << ": </title>" << endl; } break; case DocSimpleSect::Version: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trVersion() << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trVersion()) << ": </title>" << endl; } break; case DocSimpleSect::Since: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trSince() << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trSince()) << ": </title>" << endl; } break; case DocSimpleSect::Date: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trDate() << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trDate()) << ": </title>" << endl; } break; case DocSimpleSect::Note: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trNote() << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trNote()) << ": </title>" << endl; } break; case DocSimpleSect::Warning: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trWarning() << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trWarning()) << ": </title>" << endl; } break; case DocSimpleSect::Pre: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trPrecondition() << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trPrecondition()) << ": </title>" << endl; } break; case DocSimpleSect::Post: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trPostcondition() << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trPostcondition()) << ": </title>" << endl; } break; case DocSimpleSect::Copyright: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trCopyright() << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trCopyright()) << ": </title>" << endl; } break; case DocSimpleSect::Invar: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trInvariant() << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trInvariant()) << ": </title>" << endl; } break; case DocSimpleSect::Remark: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trRemarks() << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trRemarks()) << ": </title>" << endl; } break; case DocSimpleSect::Attention: if (m_insidePre) { m_t << "<formalpara><title>" << theTranslator->trAttention() << ": </title>" << endl; } else { m_t << "<formalpara><title>" << convertToXML(theTranslator->trAttention()) << ": </title>" << endl; } break; case DocSimpleSect::User: m_t << "<formalpara><title></title>" << endl; break; case DocSimpleSect::Rcs: m_t << "<formalpara><title></title>" << endl; break; case DocSimpleSect::Unknown: m_t << "<formalpara><title></title>" << endl; break; } }