diff options
Diffstat (limited to 'src')
112 files changed, 966 insertions, 251 deletions
diff --git a/src/Makefile.in b/src/Makefile.in index 4792667..0d19f57 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -10,7 +10,8 @@ # for any purpose. It is provided "as is" without express or implied warranty. # See the GNU General Public License for more details. # -# All output generated with Doxygen is not covered by this license. +# Documents produced by Doxygen are derivative works derived from the +# input used in their production; they are not affected by this license. # all: Makefile.doxygen Makefile.doxytag Makefile.doxysearch Makefile diff --git a/src/classdef.cpp b/src/classdef.cpp index 55cc8a0..3b73672 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -105,7 +106,8 @@ void ClassDef::insertBaseClass(ClassDef *cd,Protection p, Specifier s,const char *t) { //printf("*** insert base class %s into %s\n",cd->name().data(),name().data()); - inherits->inSort(new BaseClassDef(cd,p,s,t)); + //inherits->inSort(new BaseClassDef(cd,p,s,t)); + inherits->append(new BaseClassDef(cd,p,s,t)); } // inserts a super class in the inherited list @@ -143,21 +145,18 @@ void ClassDef::insertMember(MemberDef *md,int groupId) //printf("adding %s::%s\n",name().data(),md->name().data()); if (!isReference()) { - /*************************************************/ - /* insert member in the appropriate member group */ - /*************************************************/ - addMemberToGroup(md,groupId); - /********************************************/ /* insert member in the declaration section */ /********************************************/ if (md->isRelated() && (Config::extractPrivateFlag || md->protection()!=Private)) { related.append(md); + md->setSectionList(&related); } else if (md->isFriend()) { friends.append(md); + md->setSectionList(&friends); } else { @@ -165,18 +164,22 @@ void ClassDef::insertMember(MemberDef *md,int groupId) { case MemberDef::Signal: signals.append(md); + md->setSectionList(&signals); break; case MemberDef::Slot: switch (md->protection()) { case Protected: proSlots.append(md); + md->setSectionList(&proSlots); break; case Public: pubSlots.append(md); + md->setSectionList(&pubSlots); break; case Private: priSlots.append(md); + md->setSectionList(&priSlots); break; } break; @@ -189,12 +192,15 @@ void ClassDef::insertMember(MemberDef *md,int groupId) { case Protected: proStaticAttribs.append(md); + md->setSectionList(&proStaticAttribs); break; case Public: pubStaticAttribs.append(md); + md->setSectionList(&pubStaticAttribs); break; case Private: priStaticAttribs.append(md); + md->setSectionList(&priStaticAttribs); break; } } @@ -204,12 +210,15 @@ void ClassDef::insertMember(MemberDef *md,int groupId) { case Protected: proStaticMembers.append(md); + md->setSectionList(&proStaticMembers); break; case Public: pubStaticMembers.append(md); + md->setSectionList(&pubStaticMembers); break; case Private: priStaticMembers.append(md); + md->setSectionList(&priStaticMembers); break; } } @@ -220,27 +229,54 @@ void ClassDef::insertMember(MemberDef *md,int groupId) { switch (md->protection()) { - case Protected: proAttribs.append(md); break; - case Public: pubAttribs.append(md); break; - case Private: priAttribs.append(md); break; + case Protected: + proAttribs.append(md); + md->setSectionList(&proAttribs); + break; + case Public: + pubAttribs.append(md); + md->setSectionList(&pubAttribs); + break; + case Private: + priAttribs.append(md); + md->setSectionList(&priAttribs); + break; } } else if (md->isTypedef() || md->isEnumerate()) { switch (md->protection()) { - case Protected: proTypes.append(md); break; - case Public: pubTypes.append(md); break; - case Private: priTypes.append(md); break; + case Protected: + proTypes.append(md); + md->setSectionList(&proTypes); + break; + case Public: + pubTypes.append(md); + md->setSectionList(&pubTypes); + break; + case Private: + priTypes.append(md); + md->setSectionList(&priTypes); + break; } } else // member function { switch (md->protection()) { - case Protected: proMembers.append(md); break; - case Public: pubMembers.append(md); break; - case Private: priMembers.append(md); break; + case Protected: + proMembers.append(md); + md->setSectionList(&proMembers); + break; + case Public: + pubMembers.append(md); + md->setSectionList(&pubMembers); + break; + case Private: + priMembers.append(md); + md->setSectionList(&priMembers); + break; } } } @@ -345,6 +381,14 @@ void ClassDef::insertMember(MemberDef *md,int groupId) break; } } + + /*************************************************/ + /* insert member in the appropriate member group */ + /*************************************************/ + // Note: this must be done AFTER inserting the member in the + // regular groups + addMemberToGroup(md,groupId); + } MemberInfo *mi = new MemberInfo((MemberDef *)md,Public,Normal); @@ -408,12 +452,6 @@ void ClassDef::computeAnchors() setAnchors('s',&pubTypes); setAnchors('t',&proTypes); setAnchors('u',&priTypes); - //MemberGroupListIterator mgli(*memberGroupList); - //MemberGroup *mg; - //for (;(mg=mgli.current());++mgli) - //{ - // mg->setAnchors(); - //} } // add a file name to the used files set @@ -687,7 +725,14 @@ void ClassDef::writeDocumentation(OutputList &ol) MemberGroup *mg; for (;(mg=mgli.current());++mgli) { - mg->writeDeclarations(ol,this,0,0,0); + if (!mg->allMembersInSameSection()) // group is in its own section + { + mg->writeDeclarations(ol,this,0,0,0); + } + else // add this group to the corresponding member section + { + mg->addToDeclarationSection(); + } } // non static public members diff --git a/src/classdef.h b/src/classdef.h index e3c8da9..817d50c 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/classlist.cpp b/src/classlist.cpp index 8623347..527fa58 100644 --- a/src/classlist.cpp +++ b/src/classlist.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -30,13 +31,12 @@ int ClassList::compareItems(GCI item1, GCI item2) { ClassDef *c1=(ClassDef *)item1; ClassDef *c2=(ClassDef *)item2; - //int prefixLength = Config::ignorePrefix.length(); //int i1 = c1->name().left(prefixLength)==Config::ignorePrefix ? prefixLength : 0; //int i2 = c2->name().left(prefixLength)==Config::ignorePrefix ? prefixLength : 0; return stricmp(c1->name().data()+getPrefixIndex(c1->name()), - c2->name().data()+getPrefixIndex(c2->name()) - ); + c2->name().data()+getPrefixIndex(c2->name()) + ); } ClassListIterator::ClassListIterator(const ClassList &cllist) : diff --git a/src/classlist.h b/src/classlist.h index 2e52083..332eeec 100644 --- a/src/classlist.h +++ b/src/classlist.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/config.h b/src/config.h index 4cd77dc..a18fce0 100644 --- a/src/config.h +++ b/src/config.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/config.l b/src/config.l index 549450a..01cb527 100644 --- a/src/config.l +++ b/src/config.l @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/constexp.h b/src/constexp.h index c7be36d..f31e19d 100644 --- a/src/constexp.h +++ b/src/constexp.h @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/constexp.l b/src/constexp.l index d69dc08..f73e293 100644 --- a/src/constexp.l +++ b/src/constexp.l @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/constexp.y b/src/constexp.y index 6de51f6..f4306fb 100644 --- a/src/constexp.y +++ b/src/constexp.y @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/cppvalue.cpp b/src/cppvalue.cpp index 7f0a5d9..25b94b4 100644 --- a/src/cppvalue.cpp +++ b/src/cppvalue.cpp @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/cppvalue.h b/src/cppvalue.h index 0818f7e..32e0566 100644 --- a/src/cppvalue.h +++ b/src/cppvalue.h @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/debug.cpp b/src/debug.cpp index ecad34e..5398991 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/debug.h b/src/debug.h index 4f90eaa..ce280df 100644 --- a/src/debug.h +++ b/src/debug.h @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/declinfo.h b/src/declinfo.h index 6d89545..6cf6096 100644 --- a/src/declinfo.h +++ b/src/declinfo.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/declinfo.l b/src/declinfo.l index a964bf9..555cb0f 100644 --- a/src/declinfo.l +++ b/src/declinfo.l @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/defargs.h b/src/defargs.h index da37150..1678797 100644 --- a/src/defargs.h +++ b/src/defargs.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/defargs.l b/src/defargs.l index 76d1d97..5ff1fcb 100644 --- a/src/defargs.l +++ b/src/defargs.l @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/define.cpp b/src/define.cpp index 464c0c3..ea8d8e3 100644 --- a/src/define.cpp +++ b/src/define.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/define.h b/src/define.h index a2e858d..09e0140 100644 --- a/src/define.h +++ b/src/define.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/definition.cpp b/src/definition.cpp index 02bb2f1..b6c3bd4 100644 --- a/src/definition.cpp +++ b/src/definition.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/definition.h b/src/definition.h index 2b802c8..42213fd 100644 --- a/src/definition.h +++ b/src/definition.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/diagram.cpp b/src/diagram.cpp index 2763a28..22b2f5e 100644 --- a/src/diagram.cpp +++ b/src/diagram.cpp @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -261,7 +262,7 @@ void DiagramRow::insertClass(DiagramItem *parent,ClassDef *cd,bool doBases, row=diagram->at(level+1); } /* insert base classes in the next row */ - BaseClassDef *bcd=bcl->last(); + BaseClassDef *bcd=bcl->first(); while (bcd) { ClassDef *ccd=bcd->classDef; @@ -271,7 +272,7 @@ void DiagramRow::insertClass(DiagramItem *parent,ClassDef *cd,bool doBases, doBases?bcd->virt:Normal, doBases?bcd->templSpecifiers.data():""); } - bcd=bcl->prev(); + bcd=bcl->next(); } } } diff --git a/src/diagram.h b/src/diagram.h index 6959911..2557065 100644 --- a/src/diagram.h +++ b/src/diagram.h @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/dot.cpp b/src/dot.cpp index ffa6918..3c59fd6 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -204,7 +205,7 @@ void DotNode::addChild(DotNode *n, m_edgeInfo = new QList<EdgeInfo>; m_edgeInfo->setAutoDelete(TRUE); } - m_children->insert(0,n); + m_children->append(n); EdgeInfo *ei = new EdgeInfo; ei->m_color = edgeColor; ei->m_style = edgeStyle; @@ -214,7 +215,7 @@ void DotNode::addChild(DotNode *n, ei->m_labColor=edgeColor; else ei->m_labColor=edgeLabCol; - m_edgeInfo->insert(0,ei); + m_edgeInfo->append(ei); } void DotNode::addParent(DotNode *n) @@ -610,7 +611,7 @@ DotGfxHierarchyTable::DotGfxHierarchyTable() initClassHierarchy(&classList); ClassListIterator cli(classList); ClassDef *cd; - for (cli.toFirst();(cd=cli.current());++cli) + for (cli.toLast();(cd=cli.current());--cli) { //printf("Trying %s superClasses=%d\n",cd->name().data(),cd->superClasses()->count()); if (!hasVisibleRoot(cd->baseClasses())) @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 8060e93..d53f327 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -370,43 +371,6 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root) } } -/*! Input is a scopeName, output is the scopename split into a - * namespace part (as large as possible) and a classname part. - */ -static void extractNamespaceName(const QCString &scopeName, - QCString &className,QCString &namespaceName) -{ - QCString clName=scopeName.copy(); - QCString nsName; - if (!clName.isEmpty() && namespaceDict[clName] && getClass(clName)==0) - { // the whole name is a namespace (and not a class) - namespaceName=clName.copy(); - className.resize(0); - //printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(), - // className.data(),namespaceName.data()); - return; - } - int i,p=clName.length()-2; - while (p>=0 && (i=clName.findRev("::",p))!=-1) - // see if the first part is a namespace (and not a class) - { - if (i>0 && namespaceDict[clName.left(i)] && getClass(clName.left(i))==0) - { - namespaceName=clName.left(i); - className=clName.right(clName.length()-i-2); - //printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(), - // className.data(),namespaceName.data()); - return; - } - p=i-2; // try a smaller piece of the scope - } - className=scopeName.copy(); - namespaceName.resize(0); - //printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(), - // className.data(),namespaceName.data()); - return; -} - static bool addNamespace(Entry *root,ClassDef *cd) { // see if this class is defined inside a namespace @@ -1837,6 +1801,7 @@ static bool findBaseClassRelation(Entry *root,ClassDef *cd, // the undocumented base was found in this file baseClass->insertUsedFile(root->fileName); // add class to the list + //classList.inSort(baseClass); classList.inSort(baseClass); //printf("ClassDict.insert(%s)\n",resolveDefines(fullName).data()); //classDict.insert(resolveDefines(bi->name),baseClass); diff --git a/src/doxygen.h b/src/doxygen.h index 52f4995..aa8f4b4 100644 --- a/src/doxygen.h +++ b/src/doxygen.h @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/doxygen.pro.in b/src/doxygen.pro.in index e00f871..eda5885 100644 --- a/src/doxygen.pro.in +++ b/src/doxygen.pro.in @@ -9,7 +9,8 @@ # for any purpose. It is provided "as is" without express or implied warranty. # See the GNU General Public License for more details. # -# All output generated with Doxygen is not covered by this license. +# Documents produced by Doxygen are derivative works derived from the +# input used in their production; they are not affected by this license. # # TMake project file for doxygen diff --git a/src/doxygen.t b/src/doxygen.t index 3f688bf..3cff9b1 100644 --- a/src/doxygen.t +++ b/src/doxygen.t @@ -9,7 +9,8 @@ # for any purpose. It is provided "as is" without express or implied warranty. # See the GNU General Public License for more details. # -# All output generated with Doxygen is not covered by this license. +# Documents produced by Doxygen are derivative works derived from the +# input used in their production; they are not affected by this license. #! #! doxygen.t: This is a custom template for building Doxygen #! diff --git a/src/doxysearch.cpp b/src/doxysearch.cpp index 57d4093..1dbad7e 100644 --- a/src/doxysearch.cpp +++ b/src/doxysearch.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/doxysearch.pro.in b/src/doxysearch.pro.in index 198a381..17c90e7 100644 --- a/src/doxysearch.pro.in +++ b/src/doxysearch.pro.in @@ -9,7 +9,8 @@ # for any purpose. It is provided "as is" without express or implied warranty. # See the GNU General Public License for more details. # -# All output generated with Doxygen is not covered by this license. +# Documents produced by Doxygen are derivative works derived from the +# input used in their production; they are not affected by this license. TEMPLATE = app.t CONFIG = console warn_on $extraopts diff --git a/src/doxytag.l b/src/doxytag.l index 8d28150..76772a7 100644 --- a/src/doxytag.l +++ b/src/doxytag.l @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/doxytag.pro.in b/src/doxytag.pro.in index c2a1b67..1032443 100644 --- a/src/doxytag.pro.in +++ b/src/doxytag.pro.in @@ -9,7 +9,8 @@ # for any purpose. It is provided "as is" without express or implied warranty. # See the GNU General Public License for more details. # -# All output generated with Doxygen is not covered by this license. +# Documents produced by Doxygen are derivative works derived from the +# input used in their production; they are not affected by this license. # # TMake project file for doxytag diff --git a/src/doxytag.t b/src/doxytag.t index f507616..b56e0a1 100644 --- a/src/doxytag.t +++ b/src/doxytag.t @@ -9,7 +9,8 @@ # for any purpose. It is provided "as is" without express or implied warranty. # See the GNU General Public License for more details. # -# All output generated with Doxygen is not covered by this license. +# Documents produced by Doxygen are derivative works derived from the +# input used in their production; they are not affected by this license. # #! #! doxytag.t: This is a custom template for building Doxytag diff --git a/src/entry.cpp b/src/entry.cpp index 7012339..2b4f4ce 100644 --- a/src/entry.cpp +++ b/src/entry.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/entry.h b/src/entry.h index 3514e85..4adc374 100644 --- a/src/entry.h +++ b/src/entry.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/example.h b/src/example.h index d0f8a4b..d531978 100644 --- a/src/example.h +++ b/src/example.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/filedef.cpp b/src/filedef.cpp index af98024..d5c5d4e 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/filedef.h b/src/filedef.h index 5a48afc..03ef921 100644 --- a/src/filedef.h +++ b/src/filedef.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/filename.cpp b/src/filename.cpp index 5aa2b04..69646ec 100644 --- a/src/filename.cpp +++ b/src/filename.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/filename.h b/src/filename.h index cb4f207..aefacb9 100644 --- a/src/filename.h +++ b/src/filename.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/formula.cpp b/src/formula.cpp index cffb87c..4cd5644 100644 --- a/src/formula.cpp +++ b/src/formula.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/formula.h b/src/formula.h index dccf36b..a17f279 100644 --- a/src/formula.h +++ b/src/formula.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/gifenc.cpp b/src/gifenc.cpp index 74d800e..458d050 100644 --- a/src/gifenc.cpp +++ b/src/gifenc.cpp @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * * The GIF compression code below is based on the file ppmtogif.c of the * netpbm package. The original copyright message follows: diff --git a/src/gifenc.h b/src/gifenc.h index a4d9c3d..0aff24e 100644 --- a/src/gifenc.h +++ b/src/gifenc.h @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/groupdef.cpp b/src/groupdef.cpp index 6c355a4..44a7639 100644 --- a/src/groupdef.cpp +++ b/src/groupdef.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/groupdef.h b/src/groupdef.h index 647b10f..f35536a 100644 --- a/src/groupdef.h +++ b/src/groupdef.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index 5f8863d..408c1d7 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -199,14 +200,14 @@ void HtmlGenerator::writeStyleInfo(int part) t << "A.elRef { font-weight: bold }" << endl; t << "A.code { text-decoration: none; font-weight: normal; color: #4444ee }" << endl; t << "A.codeRef { font-weight: normal; color: #4444ee }" << endl; - t << "A.gl:link { color: #ffffff }" << endl; - t << "A.gl:visited { color: #ffffff }" << endl; - t << "A.gl { text-decoration: none; font-weight: bold; background-color: " << GROUP_COLOR << " }" << endl; t << "DL.el { margin-left: -1cm }" << endl; t << "DIV.fragment { width: 100%; border: none; background-color: #eeeeee }" << endl; t << "DIV.in { margin-left: 16 }" << endl; t << "DIV.ah { background-color: black; margin-bottom: 3; margin-top: 3 }" << endl; t << "TD.md { background-color: #f2f2ff }" << endl; + t << "DIV.groupHeader { margin-left: 16; margin-top: 12; margin-bottom: 6; font-weight: bold }" << endl; + t << "DIV.groupText { margin-left: 16; font-style: italic; font-size: smaller }" << endl; + //t << "TD.groupLine { background-color: #3080ff }" << endl; t << endl; endPlainFile(); } @@ -791,3 +792,51 @@ void HtmlGenerator::writeGraphicalHierarchy(DotGfxHierarchyTable &g) { g.writeGraph(t,Config::htmlOutputDir); } + +void HtmlGenerator::startMemberGroupHeader() +{ + //t << "<tr><td colspan=2><img src=\"null.gif\" height=8></td></tr>" << endl; + //t << "<tr><td colspan=2>" << endl; + //t << " <div class=\"in\">" << endl; + //t << " <table border=0 cellspacing=0 cellpadding=0>" << endl; + //t << " <tr><td colspan=3 class=\"groupLine\"><img src=\"null.gif\" height=1></td></tr>" << endl; + //t << " <tr>" << endl; + //t << " <td class=\"groupLine\"><img src=\"null.gif\" width=1></td>" << endl; + //t << " <td><div class=\"groupHeader\"> "; + + t << "<tr><td colspan=2><div class=\"groupHeader\">"; +} + +void HtmlGenerator::endMemberGroupHeader() +{ + //t << " </div></td>" << endl; + //t << " <td class=\"groupLine\"><img src=\"null.gif\" width=1></td>" << endl; + //t << " </tr>" << endl; + //t << " <tr><td colspan=3 class=\"groupLine\"><img src=\"null.gif\" height=1></td></tr>" << endl; + //t << " </table>" << endl; + //t << " </div>" << endl; + //t << "</tr>" << endl; + //t << "<tr><td colspan=2><img src=\"null.gif\" height=4></td></tr>" << endl; + + t << "</div></td></tr>" << endl; +} + +void HtmlGenerator::startMemberGroupDocs() +{ + //t << "<tr><td colspan=2><img src=\"null.gif\" height=4></td></tr>" << endl; + t << "<tr><td colspan=2><div class=\"groupText\">"; +} + +void HtmlGenerator::endMemberGroupDocs() +{ + t << "<br><br></div></td></tr>" << endl; +} + +void HtmlGenerator::startMemberGroup() +{ +} + +void HtmlGenerator::endMemberGroup(bool) +{ +} + diff --git a/src/htmlgen.h b/src/htmlgen.h index d34c712..75f5ce7 100644 --- a/src/htmlgen.h +++ b/src/htmlgen.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -96,8 +97,14 @@ class HtmlGenerator : public OutputGenerator void startMemberList(); void endMemberList(); void startMemberItem(int); - //void memberGroupSpacing(bool inGroup); - //void memberGroupSeparator(); + + void startMemberGroupHeader(); + void endMemberGroupHeader(); + void startMemberGroupDocs(); + void endMemberGroupDocs(); + void startMemberGroup(); + void endMemberGroup(bool); + void insertMemberAlign(); void endMemberItem(bool); void startMemberDescription(); diff --git a/src/htmlhelp.cpp b/src/htmlhelp.cpp index 66a661b..5ff21f2 100644 --- a/src/htmlhelp.cpp +++ b/src/htmlhelp.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * * The code is this file is largely based on a contribution from * Harm van der Heijden <H.v.d.Heijden@phys.tue.nl> diff --git a/src/htmlhelp.h b/src/htmlhelp.h index e10754a..f054735 100644 --- a/src/htmlhelp.h +++ b/src/htmlhelp.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * * The code is this file is largely based on a contribution from * Harm van der Heijden <H.v.d.Heijden@phys.tue.nl> diff --git a/src/image.cpp b/src/image.cpp index 4b20aca..2b82bf5 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/image.h b/src/image.h index b78f4af..3d4b1a4 100644 --- a/src/image.h +++ b/src/image.h @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/index.cpp b/src/index.cpp index b35d2be..62cf84d 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -689,9 +690,9 @@ void writeAlphabeticalClassList(OutputList &ol) if (cd->isLinkableInProject()) { int index = getPrefixIndex(cd->name()); - if (cd->name().at(index)!=startLetter) // new begin letter => new header + if (toupper(cd->name().at(index))!=startLetter) // new begin letter => new header { - startLetter=cd->name().at(index); + startLetter=toupper(cd->name().at(index)); headerItems++; } } @@ -722,10 +723,10 @@ void writeAlphabeticalClassList(OutputList &ol) if (cd->isLinkableInProject()) { int index = getPrefixIndex(cd->name()); - if (cd->name().at(index)!=startLetter) + if (toupper(cd->name().at(index))!=startLetter) { // insert a new header using a dummy class pointer. - startLetter=cd->name().at(index); + startLetter=toupper(cd->name().at(index)); colList[col].append((ClassDef *)8); // insert dummy for the header row++; if ( row >= rows + ((col<itemsInLastRow) ? 0 : -1)) @@ -770,15 +771,34 @@ void writeAlphabeticalClassList(OutputList &ol) { //printf("head ClassDef=%p %s\n",cd,cd ? cd->name().data() : "<none>"); int index = getPrefixIndex(cd->name()); - startLetter=cd->name().at(index); + startLetter=toupper(cd->name().at(index)); char s[2]; s[0]=startLetter; s[1]=0; ol.writeIndexHeading(s); } } else if (cd) // a real class, insert a link { + QCString cname; + QCString namesp; + extractNamespaceName(cd->name(),cname,namesp); + ol.writeObjectLink(cd->getReference(), - cd->getOutputFileBase(),0,cd->name()); + cd->getOutputFileBase(),0,cname); + if (!namesp.isEmpty()) + { + ol.docify(" ("); + NamespaceDef *nd = namespaceDict[namesp]; + if (nd && nd->isLinkable()) + { + ol.writeObjectLink(nd->getReference(), + nd->getOutputFileBase(),0,namesp); + } + else + { + ol.docify(namesp); + } + ol.docify(")"); + } ol.writeNonBreakableSpace(); //printf("item ClassDef=%p %s\n",cd,cd ? cd->name().data() : "<none>"); ++(*colIterators[j]); diff --git a/src/index.h b/src/index.h index 8c54a9b..56abdda 100644 --- a/src/index.h +++ b/src/index.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/instdox.cpp b/src/instdox.cpp index 3ab2137..0ef6b6e 100644 --- a/src/instdox.cpp +++ b/src/instdox.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/instdox.h b/src/instdox.h index fbb913a..f71c8fd 100644 --- a/src/instdox.h +++ b/src/instdox.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/language.cpp b/src/language.cpp index 39ace77..e29fa22 100644 --- a/src/language.cpp +++ b/src/language.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/language.h b/src/language.h index 8f3bb66..d38f494 100644 --- a/src/language.h +++ b/src/language.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/latexgen.cpp b/src/latexgen.cpp index 5edb999..a22a804 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -621,6 +622,12 @@ void LatexGenerator::writeStyleInfo(int part) t << " }\n"; t << "}\n"; t << "{\\end{list}}\n"; + + t << "\\newenvironment{Indent}\n"; + t << " {\\begin{list}{}{\\setlength{\\leftmargin}{0.5cm}}\n"; + t << " \\item[]\\ignorespaces}\n"; + t << " {\\unskip\\end{list}}\n"; + t << "\\setlength{\\parindent}{0cm}\n"; t << "\\setlength{\\parskip}{0.2cm}\n"; t << "\\addtocounter{secnumdepth}{1}\n"; @@ -1234,3 +1241,32 @@ void LatexGenerator::writeImage(const char *name,const char *w,const char *h) t << "," << h; t << "}}" << endl; } + +void LatexGenerator::startMemberGroupHeader() +{ + t << "\\begin{Indent}{\\bf "; +} + +void LatexGenerator::endMemberGroupHeader() +{ + t << "}\\par" << endl; +} + +void LatexGenerator::startMemberGroupDocs() +{ + t << "{\\em "; +} + +void LatexGenerator::endMemberGroupDocs() +{ + t << "}"; +} + +void LatexGenerator::startMemberGroup() +{ +} + +void LatexGenerator::endMemberGroup(bool) +{ + t << "\\end{Indent}" << endl; +} diff --git a/src/latexgen.h b/src/latexgen.h index 364f86d..1012dea 100644 --- a/src/latexgen.h +++ b/src/latexgen.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -93,8 +94,14 @@ class LatexGenerator : public OutputGenerator void endMemberList(); void startMemberItem(int); void endMemberItem(bool); - //void memberGroupSpacing(bool) {} - //void memberGroupSeparator() {} + + void startMemberGroupHeader(); + void endMemberGroupHeader(); + void startMemberGroupDocs(); + void endMemberGroupDocs(); + void startMemberGroup(); + void endMemberGroup(bool); + void insertMemberAlign() {} void writeRuler() { t << endl << endl; /*t << "\\vspace{0.4cm}\\hrule\\vspace{0.2cm}" << endl; */ } diff --git a/src/logos.cpp b/src/logos.cpp index 50a5794..d019a92 100644 --- a/src/logos.cpp +++ b/src/logos.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/logos.h b/src/logos.h index f6bfd6a..5dbdf22 100644 --- a/src/logos.h +++ b/src/logos.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/mangen.cpp b/src/mangen.cpp index e4d155c..5b1a7d1 100644 --- a/src/mangen.cpp +++ b/src/mangen.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -276,8 +277,8 @@ void ManGenerator::writeListItem() void ManGenerator::startCodeFragment() { newParagraph(); - t << ".nf"; - firstCol=FALSE; + t << ".nf" << endl; + firstCol=TRUE; paragraph=FALSE; } @@ -384,3 +385,33 @@ void ManGenerator::endMemberList() } } +void ManGenerator::startMemberGroupHeader() +{ + t << "\n.PP\n.RI \"\\fB"; +} + +void ManGenerator::endMemberGroupHeader() +{ + t << "\\fR\"\n.br\n"; + firstCol=TRUE; +} + +void ManGenerator::startMemberGroupDocs() +{ +} + +void ManGenerator::endMemberGroupDocs() +{ + t << "\n.PP"; +} + +void ManGenerator::startMemberGroup() +{ + t << "\n.in +1c"; +} + +void ManGenerator::endMemberGroup(bool) +{ + t << "\n.in -1c"; + firstCol=FALSE; +} diff --git a/src/mangen.h b/src/mangen.h index 7893d2e..f34caed 100644 --- a/src/mangen.h +++ b/src/mangen.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -93,8 +94,14 @@ class ManGenerator : public OutputGenerator void endMemberList(); void startMemberItem(int); void endMemberItem(bool); - //void memberGroupSpacing(bool) {} - //void memberGroupSeparator() {} + + void startMemberGroupHeader(); + void endMemberGroupHeader(); + void startMemberGroupDocs(); + void endMemberGroupDocs(); + void startMemberGroup(); + void endMemberGroup(bool); + void writeRuler() {} void writeAnchor(const char *) {} void startCodeFragment(); diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 3c9bcf6..2c1fd32 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -268,6 +269,7 @@ MemberDef::MemberDef(const char *t,const char *na,const char *a,const char *e, annUsed=FALSE; annShown=FALSE; indDepth=0; + section=0; docEnumValues=FALSE; // copy function template arguments (if any) if (tal) @@ -591,7 +593,10 @@ void MemberDef::writeDeclaration(OutputList &ol, { htmlHelp->addIndexItem(cname,name(),cfname,anchor()); } + ol.pushGeneratorState(); + ol.disable(OutputGenerator::Man); ol.docify("\n"); + ol.popGeneratorState(); } //printf("member name=%s indDepth=%d\n",name().data(),indDepth); diff --git a/src/memberdef.h b/src/memberdef.h index 8a7d293..c4e3bd2 100644 --- a/src/memberdef.h +++ b/src/memberdef.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -92,6 +93,7 @@ class MemberDef : public Definition bool isRelated() const { return related; } bool isStatic() const { return stat; } bool isInline() const { return inLine; } + MemberList *getSectionList() const { return section; } void setMemberType(MemberType t) { mtype=t; } void setDefinition(const char *d) { def=d; } void setDefFile(const char *f) { defFile=f; } @@ -106,6 +108,7 @@ class MemberDef : public Definition initLines=init.contains('\n'); } void setMemberClass(ClassDef *cd) { classDef=cd; } + void setSectionList(MemberList *sl) { section=sl; } void makeRelated() { related=TRUE; } void setGroupDef(GroupDef *gd) { group=gd; } bool hasDocumentation(); // overrides hasDocumentation in definition.h @@ -229,7 +232,8 @@ class MemberDef : public Definition bool annUsed; bool annShown; int indDepth; - MemberDef *annMemb; + MemberList *section; // declation list containing this member + MemberDef *annMemb; ArgumentList *argList; // argument list of this member ArgumentList *tArgList; // template argument list of function template ArgumentList *scopeTAL; // template argument list of class template diff --git a/src/membergroup.cpp b/src/membergroup.cpp index c376632..75317d4 100644 --- a/src/membergroup.cpp +++ b/src/membergroup.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -34,11 +35,14 @@ MemberGroup::MemberGroup(int id,const char *hdr,const char *d) /* : Definition(idToName(id)) */ { - memberList = new MemberList; - grpId = id; - grpHeader = hdr; - doc = d; - scope = 0; + memberList = new MemberList; + grpId = id; + grpHeader = hdr; + doc = d; + scope = 0; + inSameSection = TRUE; + inDeclSection = 0; + numDeclMembers = -1; //printf("Member group docs=`%s'\n",doc.data()); } @@ -50,6 +54,15 @@ MemberGroup::~MemberGroup() void MemberGroup::insertMember(MemberDef *md) { //printf("MemberGroup::insertMember(%s)\n",md->name().data()); + if (inSameSection && memberList->count()>0 && + memberList->first()->getSectionList()!=md->getSectionList()) + { + inSameSection=FALSE; + } + else if (inDeclSection==0) + { + inDeclSection = md->getSectionList(); + } memberList->append(md); } @@ -66,9 +79,30 @@ void MemberGroup::writeDeclarations(OutputList &ol, } void MemberGroup::writePlainDeclarations(OutputList &ol, - ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd) + ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, + bool inGroup) { //printf("MemberGroup::writePlainDeclarations() memberList->count()=%d\n",memberList->count()); - memberList->writePlainDeclarations(ol,cd,nd,fd,gd,TRUE); + memberList->writePlainDeclarations(ol,cd,nd,fd,gd,inGroup); } +/*! Add this group as a subsection of the declaration section, instead + * of rendering it in its own section + */ +void MemberGroup::addToDeclarationSection() +{ + if (inDeclSection) + { + inDeclSection->addMemberGroup(this); + } +} + +int MemberGroup::countDecMembers() +{ + if (numDeclMembers==-1) /* number of member not cached */ + { + memberList->countDecMembers(TRUE); + numDeclMembers = memberList->totalCount(); + } + return numDeclMembers; +} diff --git a/src/membergroup.h b/src/membergroup.h index d96db26..1b54596 100644 --- a/src/membergroup.h +++ b/src/membergroup.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -44,18 +45,25 @@ class MemberGroup /* : public Definition */ void insertMember(MemberDef *); void setAnchors(); void writePlainDeclarations(OutputList &ol, - ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd); + ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, + bool inGroup=TRUE); void writeDeclarations(OutputList &ol, ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd); QCString documentation() { return doc; } + bool allMembersInSameSection() { return inSameSection; } + void addToDeclarationSection(); + int countDecMembers(); private: - MemberList *memberList; // list of all members in the group + MemberList *memberList; // list of all members in the group int grpId; QCString grpHeader; - QCString fileName; // base name of the generated file + QCString fileName; // base name of the generated file Definition *scope; QCString doc; + MemberList *inDeclSection; + bool inSameSection; + int numDeclMembers; }; class MemberGroupList : public QList<MemberGroup> diff --git a/src/memberlist.cpp b/src/memberlist.cpp index 6e05bff..f997529 100644 --- a/src/memberlist.cpp +++ b/src/memberlist.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -28,10 +29,12 @@ MemberList::MemberList() : QList<MemberDef>() { + memberGroupList=0; } MemberList::~MemberList() { + delete memberGroupList; } int MemberList::compareItems(GCI item1, GCI item2) @@ -85,6 +88,18 @@ void MemberList::countDecMembers(bool inGroup) } md=next(); } + if (memberGroupList && !inGroup) + { + MemberGroupListIterator mgli(*memberGroupList); + MemberGroup *mg; + for (;(mg=mgli.current());++mgli) + { + printf("memberGroupList adding %d inGroup=%d\n", + mg->countDecMembers(),m_count); + m_count+=mg->countDecMembers(); + } + } + //printf("MemberList::countDecMembers(%d)=%d\n",inGroup,m_count); } @@ -553,6 +568,31 @@ void MemberList::writeDeclarations(OutputList &ol, } writePlainDeclarations(ol,cd,nd,fd,gd,inGroup); + + if (memberGroupList) + { + printf("MemberList::writeDeclarations()\n"); + MemberGroupListIterator mgli(*memberGroupList); + MemberGroup *mg; + while ((mg=mgli.current())) + { + ol.startMemberGroupHeader(); + parseText(ol,mg->header()); + ol.endMemberGroupHeader(); + if (!mg->documentation().isEmpty()) + { + printf("Member group has docs!\n"); + ol.startMemberGroupDocs(); + parseDoc(ol,0,0,mg->documentation()); + ol.endMemberGroupDocs(); + } + ol.startMemberGroup(); + mg->writePlainDeclarations(ol,cd,nd,fd,gd); + ++mgli; + ol.endMemberGroup(mgli.current()==0); + } + } + } void MemberList::writeDocumentation(OutputList &ol, @@ -565,3 +605,13 @@ void MemberList::writeDocumentation(OutputList &ol, md->writeDocumentation(this,ol,scopeName); } } + +void MemberList::addMemberGroup(MemberGroup *mg) +{ + printf("MemberList::addMemberGroup(%p)\n",mg); + if (memberGroupList==0) + { + memberGroupList=new MemberGroupList; + } + memberGroupList->append(mg); +} diff --git a/src/memberlist.h b/src/memberlist.h index b20a510..239d5f7 100644 --- a/src/memberlist.h +++ b/src/memberlist.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -20,6 +21,8 @@ #include <qlist.h> #include "memberdef.h" class GroupDef; +class MemberGroup; +class MemberGroupList; class MemberList : public QList<MemberDef> { @@ -53,10 +56,12 @@ class MemberList : public QList<MemberDef> const char *title,const char *subtitle,bool inGroup=FALSE); void writeDocumentation(OutputList &ol,const char *scopeName /*,MemberDef::MemberType m*/); + void addMemberGroup(MemberGroup *mg); private: int varCnt,funcCnt,enumCnt,enumValCnt,typeCnt,protoCnt,defCnt,friendCnt; int m_count; + MemberGroupList *memberGroupList; }; class MemberListIterator : public QListIterator<MemberDef> diff --git a/src/membername.cpp b/src/membername.cpp index 39c1b8d..e62e629 100644 --- a/src/membername.cpp +++ b/src/membername.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/membername.h b/src/membername.h index 6a66a31..fb81a55 100644 --- a/src/membername.h +++ b/src/membername.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/message.cpp b/src/message.cpp index 50e8adb..838182f 100644 --- a/src/message.cpp +++ b/src/message.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/message.h b/src/message.h index 638fe58..e125cdd 100644 --- a/src/message.h +++ b/src/message.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/namespacedef.cpp b/src/namespacedef.cpp index d9da522..b1fb93a 100644 --- a/src/namespacedef.cpp +++ b/src/namespacedef.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/namespacedef.h b/src/namespacedef.h index ddf9fa8..797bf6b 100644 --- a/src/namespacedef.h +++ b/src/namespacedef.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/outputgen.cpp b/src/outputgen.cpp index 851a670..b765eec 100644 --- a/src/outputgen.cpp +++ b/src/outputgen.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/outputgen.h b/src/outputgen.h index 36e806d..a422338 100644 --- a/src/outputgen.h +++ b/src/outputgen.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -102,8 +103,12 @@ class OutputGenerator virtual void endMemberList() = 0; virtual void startMemberItem(int) = 0; virtual void endMemberItem(bool) = 0; - //virtual void memberGroupSpacing(bool) = 0; - //virtual void memberGroupSeparator() = 0; + virtual void startMemberGroupHeader() = 0; + virtual void endMemberGroupHeader() = 0; + virtual void startMemberGroupDocs() = 0; + virtual void endMemberGroupDocs() = 0; + virtual void startMemberGroup() = 0; + virtual void endMemberGroup(bool) = 0; virtual void insertMemberAlign() = 0; virtual void writeRuler() = 0; diff --git a/src/outputlist.cpp b/src/outputlist.cpp index fadc43b..5071ffa 100644 --- a/src/outputlist.cpp +++ b/src/outputlist.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/outputlist.h b/src/outputlist.h index 7357d9f..1dd11b2 100644 --- a/src/outputlist.h +++ b/src/outputlist.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -163,10 +164,18 @@ class OutputList { forall(&OutputGenerator::startMemberItem,i1); } void endMemberItem(bool b2) { forall(&OutputGenerator::endMemberItem,b2); } - //void memberGroupSpacing(bool b) - //{ forall(&OutputGenerator::memberGroupSpacing,b); } - //void memberGroupSeparator() - //{ forall(&OutputGenerator::memberGroupSeparator); } + void startMemberGroupHeader() + { forall(&OutputGenerator::startMemberGroupHeader); } + void endMemberGroupHeader() + { forall(&OutputGenerator::endMemberGroupHeader); } + void startMemberGroupDocs() + { forall(&OutputGenerator::startMemberGroupDocs); } + void endMemberGroupDocs() + { forall(&OutputGenerator::endMemberGroupDocs); } + void startMemberGroup() + { forall(&OutputGenerator::startMemberGroup); } + void endMemberGroup(bool last) + { forall(&OutputGenerator::endMemberGroup,last); } void insertMemberAlign() { forall(&OutputGenerator::insertMemberAlign); } void writeRuler() @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp index a3e3ea6..f18d33d 100644 --- a/src/rtfgen.cpp +++ b/src/rtfgen.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -129,6 +130,7 @@ const char *Rtf_Style_BodyText = "\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgri const char *Rtf_Style_DenseText = "\\s18\\widctlpar\\fs22\\cgrid "; const char *Rtf_Style_Header = "\\s28\\widctlpar\\tqc\\tx4320\\tqr\\tx8640\\adjustright \\fs20\\cgrid "; const char *Rtf_Style_Footer = "\\s29\\widctlpar\\tqc\\tx4320\\tqr\\tx8640\\qr\\adjustright \\fs20\\cgrid "; +const char *Rtf_Style_GroupHeader = "\\s30\\li360\\sa60\\sb120\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid "; const char *Rtf_Style_CodeExample[] = { "\\s40\\li0\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ", @@ -256,6 +258,8 @@ void RTFGenerator::beginRTFDocument() t <<"{" << Rtf_Style_DenseText << "\\sbasedon0 \\snext18 DenseText;}\n"; t <<"{" << Rtf_Style_Header << "\\sbasedon0 \\snext28 header;}\n"; t <<"{" << Rtf_Style_Footer << "\\sbasedon0 \\snext29 footer;}\n"; + t <<"{" << Rtf_Style_GroupHeader << "\\sbasedon0 \\snext30 GroupHeader}\n"; + for (i=0;i<indentLevels;i++) { t <<"{" << Rtf_Style_CodeExample[i] <<"\\sbasedon0 \\snext4" @@ -1164,6 +1168,7 @@ void RTFGenerator::startTitle() void RTFGenerator::startGroupHeader() { t <<"{\\comment startGroupHeader}" << endl; + newParagraph(); t << Rtf_Style_Reset; t << Rtf_Style_Heading3; t << endl; @@ -1316,12 +1321,14 @@ void RTFGenerator::endDescItem() { t << "{\\comment (endDescItem)}" << endl; t << "}" << endl; - //newParagraph(); + newParagraph(); } void RTFGenerator::startMemberDescription() { t << "{\\comment (startMemberDescription)}" << endl; + t << "{" << endl; + incrementIndentLevel(); t << Rtf_Style_Reset << Rtf_CList_DepthStyle(); startEmphasis(); } @@ -1330,6 +1337,9 @@ void RTFGenerator::endMemberDescription() { t << "{\\comment (endMemberDescription)}" << endl; endEmphasis(); + newParagraph(); + decrementIndentLevel(); + t << "}" << endl; } void RTFGenerator::startDescList() @@ -1372,18 +1382,18 @@ void RTFGenerator::writeSection(const char *lab,const char *title,bool sub) if (sub) { // set style - t << Rtf_Style_Heading2; + t << Rtf_Style_Heading3; // make table of contents entry - t << "{\\tc\\tcl2 \\v "; + t << "{\\tc\\tcl3 \\v "; docify(title); t << "}" << endl; } else { // set style - t << Rtf_Style_Heading3; + t << Rtf_Style_Heading2; // make table of contents entry - t << "{\\tc\\tcl3 \\v "; + t << "{\\tc\\tcl2 \\v "; docify(title); t << "}" << endl; } @@ -1518,11 +1528,13 @@ void RTFGenerator::writeFormula(const char *,const char *text) void RTFGenerator::startMemberItem(int) { + t <<"{\\comment startMemberItem }" << endl; t << Rtf_Style_Reset << Rtf_BList_DepthStyle() << endl; // set style to apropriate depth } void RTFGenerator::endMemberItem(bool) { + t <<"{\\comment endMemberItem }" << endl; newParagraph(); } @@ -1566,6 +1578,8 @@ void RTFGenerator::writeNonBreakableSpace() void RTFGenerator::startMemberList() { t << endl; + t << "{\\comment (startMemberList) }" << endl; + t << "{" << endl; #ifdef DELETEDCODE if (!insideTabbing) t << "\\begin{CompactItemize}" << endl; @@ -1574,6 +1588,8 @@ void RTFGenerator::startMemberList() void RTFGenerator::endMemberList() { + t << "{\\comment (endMemberList) }" << endl; + t << "}" << endl; #ifdef DELETEDCODE if (!insideTabbing) t << "\\end{CompactItemize}" << endl; @@ -1691,6 +1707,7 @@ const char * RTFGenerator::Rtf_Code_DepthStyle() void RTFGenerator::startTextBlock(bool dense) { + t << "{\\comment Start TextBlock}" << endl; t << "{" << endl; t << Rtf_Style_Reset; if (dense) // no spacing between "paragraphs" @@ -1707,6 +1724,7 @@ void RTFGenerator::endTextBlock() { newParagraph(); t << "}" << endl; + t << "{\\comment End TextBlock}" << endl; m_omitParagraph = TRUE; } @@ -1728,8 +1746,105 @@ void RTFGenerator::endMemberSubtitle() t << "}" << endl; } +void RTFGenerator::writeUmlaut(char c) +{ + switch(c) + { + case 'A' : t << '\304'; break; + case 'E' : t << '\313'; break; + case 'I' : t << '\317'; break; + case 'O' : t << '\326'; break; + case 'U' : t << '\334'; break; + case 'Y' : t << 'Y'; break; + case 'a' : t << '\344'; break; + case 'e' : t << '\353'; break; + case 'i' : t << '\357'; break; + case 'o' : t << '\366'; break; + case 'u' : t << '\374'; break; + case 'y' : t << '\377'; break; + default: t << '?'; break; + } +} + +void RTFGenerator::writeAcute(char c) +{ + switch(c) + { + case 'A' : t << '\301'; break; + case 'E' : t << '\311'; break; + case 'I' : t << '\315'; break; + case 'O' : t << '\323'; break; + case 'U' : t << '\332'; break; + case 'Y' : t << '\335'; break; + case 'a' : t << '\341'; break; + case 'e' : t << '\351'; break; + case 'i' : t << '\355'; break; + case 'o' : t << '\363'; break; + case 'u' : t << '\372'; break; + case 'y' : t << '\375'; break; + default: t << '?'; break; + } +} + +void RTFGenerator::writeGrave(char c) +{ + switch(c) + { + case 'A' : t << '\300'; break; + case 'E' : t << '\310'; break; + case 'I' : t << '\314'; break; + case 'O' : t << '\322'; break; + case 'U' : t << '\331'; break; + case 'a' : t << '\340'; break; + case 'e' : t << '\350'; break; + case 'i' : t << '\354'; break; + case 'o' : t << '\362'; break; + case 'u' : t << '\371'; break; + default: t << '?'; break; + } +} + +void RTFGenerator::writeCirc(char c) +{ + switch(c) + { + case 'A' : t << '\302'; break; + case 'E' : t << '\312'; break; + case 'I' : t << '\316'; break; + case 'O' : t << '\324'; break; + case 'U' : t << '\333'; break; + case 'a' : t << '\342'; break; + case 'e' : t << '\352'; break; + case 'i' : t << '\356'; break; + case 'o' : t << '\364'; break; + case 'u' : t << '\373'; break; + default: t << '?'; break; + } +} +void RTFGenerator::writeTilde(char c) +{ + switch(c) + { + case 'A' : t << '\303'; break; + case 'N' : t << '\321'; break; + case 'O' : t << '\325'; break; + case 'a' : t << '\343'; break; + case 'n' : t << '\361'; break; + case 'o' : t << '\365'; break; + default: t << '?'; break; + } +} +void RTFGenerator::writeRing(char c) +{ + switch(c) + { + case 'A' : t << '\305'; break; + case 'a' : t << '\345'; break; + default: t << '?'; break; + } +} /** * VERY brittle routine inline RTF's included by other RTF's. @@ -1896,3 +2011,45 @@ bool RTFGenerator::preProcessFileInplace(const char *path,const char *name) QDir::setCurrent(oldDir); return TRUE; } + +void RTFGenerator::startMemberGroupHeader() +{ + t << "{\\comment startMemberGroupHeader}" << endl; + t << "{" << endl; + incrementIndentLevel(); + t << Rtf_Style_Reset << Rtf_Style_GroupHeader; +} + +void RTFGenerator::endMemberGroupHeader() +{ + t << "{\\comment endMemberGroupHeader}" << endl; + newParagraph(); + t << Rtf_Style_Reset << Rtf_CList_DepthStyle(); +} + +void RTFGenerator::startMemberGroupDocs() +{ + t << "{\\comment startMemberGroupDocs}" << endl; + startEmphasis(); +} + +void RTFGenerator::endMemberGroupDocs() +{ + t << "{\\comment endMemberGroupDocs}" << endl; + endEmphasis(); + newParagraph(); +} + +void RTFGenerator::startMemberGroup() +{ + t << "{\\comment startMemberGroup}" << endl; + t << Rtf_Style_Reset << Rtf_BList_DepthStyle() << endl; +} + +void RTFGenerator::endMemberGroup(bool) +{ + t << "{\\comment endMemberGroup}" << endl; + decrementIndentLevel(); + t << "}"; +} + diff --git a/src/rtfgen.h b/src/rtfgen.h index 50aa302..f47da9b 100644 --- a/src/rtfgen.h +++ b/src/rtfgen.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -146,23 +147,15 @@ class RTFGenerator : public OutputGenerator void endTableRow() { }//t << "\\\\\\hline\n"; void nextTableColumn() { }//t << "&"; void endTableColumn() { } - void writeCopyright() { t << "\\copyright"; } + void writeCopyright() { t << "\251"; } void writeQuote() { t << "\""; } - void writeUmlaut(char c) { if (c=='i') t << "\\\"{\\i}"; else - t << "\\\"{" << c << "}"; - } - void writeAcute(char c) { if (c=='i') t << "\\'{\\i}"; else - t << "\\'{" << c << "}"; - } - void writeGrave(char c) { if (c=='i') t << "\\`{\\i}"; else - t << "\\`{" << c << "}"; - } - void writeCirc(char c) { if (c=='i') t << "\\^{\\i}"; else - t << "\\^{" << c << "}"; - } - void writeTilde(char c) { t << "\\~{" << c << "}"; } - void writeRing(char c) { t << "\\" << c << c; } - void writeSharpS() { t << "\"s"; } + void writeUmlaut(char c); + void writeAcute(char c); + void writeGrave(char c); + void writeCirc(char c); + void writeTilde(char c); + void writeRing(char c); + void writeSharpS() { t << "\337"; } void startMemberDescription(); void endMemberDescription(); @@ -204,6 +197,13 @@ class RTFGenerator : public OutputGenerator void endInclDepGraph(DotInclDepGraph &); void writeGraphicalHierarchy(DotGfxHierarchyTable &) {} + void startMemberGroupHeader(); + void endMemberGroupHeader(); + void startMemberGroupDocs(); + void endMemberGroupDocs(); + void startMemberGroup(); + void endMemberGroup(bool); + void startTextBlock(bool dense); void endTextBlock(); void lastIndexPage(); @@ -231,10 +231,10 @@ class RTFGenerator : public OutputGenerator void beginRTFDocument(); void beginRTFChapter(); void beginRTFSection(); - void RtfwriteRuler_doubleline() {t << "{\\pard\\widctlpar\\brdrb\\brdrdb\\brdrw15\\brsp20 \\adjustright \\par}" << endl; }; - void RtfwriteRuler_emboss() {t << "{\\pard\\widctlpar\\brdrb\\brdremboss\\brdrw15\\brsp20 \\adjustright \\par}" << endl; }; - void RtfwriteRuler_thick() {t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw75\\brsp20 \\adjustright \\par}" << endl; }; - void RtfwriteRuler_thin() {t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}" << endl; }; + void RtfwriteRuler_doubleline() { t << "{\\pard\\widctlpar\\brdrb\\brdrdb\\brdrw15\\brsp20 \\adjustright \\par}" << endl; }; + void RtfwriteRuler_emboss() { t << "{\\pard\\widctlpar\\brdrb\\brdremboss\\brdrw15\\brsp20 \\adjustright \\par}" << endl; }; + void RtfwriteRuler_thick() { t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw75\\brsp20 \\adjustright \\par}" << endl; }; + void RtfwriteRuler_thin() { t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}" << endl; }; void WriteRTFReference(const char *label); }; diff --git a/src/scanner.h b/src/scanner.h index f37aaba..ddb63c0 100644 --- a/src/scanner.h +++ b/src/scanner.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/scanner.l b/src/scanner.l index 97aa140..ff2e61a 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -862,7 +863,8 @@ SCOPEID {ID}({ID}*{BN}*"::"{BN}*)*({ID}?) SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID}) SCOPEMASK {ID}?(("::"|"#")?(~)?{ID})+ URLMASK [a-z_A-Z0-9\~\:\@\#\.\-\+\/]+ -WORD ([a-z_A-Z0-9]+([^\n ]*[a-z_A_Z0-9])?)|("\""[^\n\"]"\"") +NONTERM [\{\}\[\]\`\~\@\|\-\+\#\$\/\\\!\%\^\&\*()a-z_A-Z<>0-9] +WORD ({NONTERM}+([^\n ]*{NONTERM}?))|("\""[^\n\"]"\"") ATTR ({B}+[^>\n]*)? A [aA] BOLD [bB] @@ -1149,7 +1151,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"") <DocHtmlScan,DocLatexScan>"//"|"/*"|"*/" { outDoc->writeString(yytext); } -<DocHtmlScan,DocLatexScan>. { +<DocHtmlScan,DocLatexScan>.|\n { char c[2]; c[0]=*yytext;c[1]='\0'; outDoc->writeString(c); @@ -1201,7 +1203,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"") } <DocScan>{CMD}"link"/{BN} { BEGIN( DocLink ); } <DocSkipWord>[a-z_A-Z0-9.:()]+ { BEGIN( DocScan ); } -<DocLink>[a-z_A-Z0-9:#.~/()\-\+]+ { +<DocLink>[a-z_A-Z0-9:#.,~&*/<>()\-\+]+ { // TODO: support operators as well! linkRef = stripKnownExtensions(yytext); linkText = ""; BEGIN( DocLinkText ); @@ -3923,10 +3925,12 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"") BEGIN( tmpDocType ); } } + /* <JavaDoc>"@" { unput(*yytext); BEGIN(ClassDoc); } + */ <JavaDoc>^{B}*"*"+/[^/] { //printf("---> removing %s\n",yytext); } @@ -4439,7 +4443,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"") <PageDocTitle>\n { yyLineNr++; current->args+=" "; } <PageDocTitle>[^\n\<] { current->args+=yytext; } <PageDocTitle>"</"{TITLE}">" { BEGIN( PageDoc ); } -<ClassDoc,Doc,JavaDoc>{CMD}"ingroup"{B}+ { +<ClassDoc,LineDoc,Doc,JavaDoc>{CMD}"ingroup"{B}+ { lastGroupContext = YY_START; lineCount(); BEGIN( GroupName ); @@ -4592,6 +4596,14 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"") unput(afterDocTerminator); BEGIN(lastAfterDocContext); } +<AfterDocLine>\n{B}*("//!<"|"///<") { + yyLineNr++; + BEGIN(AfterDocLine); + } +<AfterDocLine>\n{B}*("/*!<"|"/**<") { + yyLineNr++; + BEGIN(AfterDoc); + } <AfterDocLine>. { current->brief+=yytext; } <AfterDocBrief>"/*"|"//" { current->brief+=yytext; } <AfterDocBrief>^{B}*"*"+/[^/\n] diff --git a/src/searchindex.cpp b/src/searchindex.cpp index 5d420d3..a482928 100644 --- a/src/searchindex.cpp +++ b/src/searchindex.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/searchindex.h b/src/searchindex.h index d8f343c..4fb2ba2 100644 --- a/src/searchindex.h +++ b/src/searchindex.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/section.h b/src/section.h index fd7ce60..30bf268 100644 --- a/src/section.h +++ b/src/section.h @@ -11,7 +11,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/suffixtree.cpp b/src/suffixtree.cpp index 3d7d8ec..1befe25 100644 --- a/src/suffixtree.cpp +++ b/src/suffixtree.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/suffixtree.h b/src/suffixtree.h index b7a0958..3e59193 100644 --- a/src/suffixtree.h +++ b/src/suffixtree.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/translator.h b/src/translator.h index 77d6bbd..8f4e03c 100644 --- a/src/translator.h +++ b/src/translator.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/translator_cz.h b/src/translator_cz.h index 43613cd..fbf45d4 100644 --- a/src/translator_cz.h +++ b/src/translator_cz.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/translator_de.h b/src/translator_de.h index 6142793..7ea3cf6 100644 --- a/src/translator_de.h +++ b/src/translator_de.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * * The translation into German was provided by * Jens Breitenstein (Jens.Breitenstein@tlc.de) diff --git a/src/translator_es.h b/src/translator_es.h index 43e8630..99b3327 100644 --- a/src/translator_es.h +++ b/src/translator_es.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/translator_fi.h b/src/translator_fi.h index 3e2ced4..9d5934c 100644 --- a/src/translator_fi.h +++ b/src/translator_fi.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ /* diff --git a/src/translator_fr.h b/src/translator_fr.h index ce4d0b3..89f1dc1 100644 --- a/src/translator_fr.h +++ b/src/translator_fr.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * * The translation into French was provided by * Christophe Bordeux (bordeux@lig.di.epfl.ch) diff --git a/src/translator_it.h b/src/translator_it.h index a533b0c..e80a4d6 100644 --- a/src/translator_it.h +++ b/src/translator_it.h @@ -7,11 +7,12 @@ * Initial Italian Translation by Ahmed Aldo Faisal * Revised and completed by Alessandro Falappa (June 1999) * Updates: - * 1999/09/10: corrected some small typos in the "new since 0.49-990425" section - * added the "new since 0.49-990728" section - * 1999/19/11: entirely rewritten the translation to correct small variations due - * to feature additions and to conform to the layout of the latest - * commented translator.h for the english language + * 2000/03: translated new items used since version 1.0 and 1.1.0 + * 1999/19: entirely rewritten the translation to correct small variations due + * to feature additions and to conform to the layout of the latest + * commented translator.h for the english language + * 1999/09: corrected some small typos in the "new since 0.49-990425" section + * added the "new since 0.49-990728" section * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby @@ -19,7 +20,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -749,6 +751,127 @@ class TranslatorItalian : public Translator { return "Definizione nel file @0."; } + +////////////////////////////////////////////////////////////////////////// +// new since 1.0.0 +////////////////////////////////////////////////////////////////////////// + + QCString trDeprecated() + { + return "Deprecato"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.1.0 +////////////////////////////////////////////////////////////////////////// + + /*! this text is put before a collaboration diagram */ + QCString trCollaborationDiagram(const char *clName) + { + return (QCString)"Diagramma di interrelazione per "+clName+":"; + } + /*! this text is put before an include dependency graph */ + QCString trInclDepGraph(const char *fName) + { + return (QCString)"Grafo delle dipendenze di inclusione per "+fName+":"; + } + /*! header that is put before the list of constructor/destructors. */ + QCString trConstructorDocumentation() + { + return "Documentazione dei costruttori e dei distruttori"; + } + /*! Used in the file documentation to point to the corresponding sources. */ + QCString trGotoSourceCode() + { + return "Vai al codice sorgente di questo file."; + } + /*! Used in the file sources to point to the corresponding documentation. */ + QCString trGotoDocumentation() + { + return "Vai alla documentazione di questo file."; + } + /*! Text for the \pre command */ + QCString trPrecondition() + { + return "Precondizione"; + } + /*! Text for the \post command */ + QCString trPostcondition() + { + return "Postcondizione"; + } + /*! Text for the \invariant command */ + QCString trInvariant() + { + return "Invariante"; + } + /*! Text shown before a multi-line variable/enum initialization */ + QCString trInitialValue() + { + return "Valore iniziale:"; + } + /*! Text used the source code in the file index */ + QCString trCode() + { + return "codice"; + } + QCString trGraphicalHierarchy() + { + return "Grafico della gerarchia delle classi"; + } + QCString trGotoGraphicalHierarchy() + { + return "Vai al grafico della gerarchia delle classi"; + } + QCString trGotoTextualHierarchy() + { + return "Vai alla gerarchia delle classi (testuale)"; + } + QCString trPageIndex() + { + return "Indice delle pagine"; + } + QCString trNote() + { + return "Nota"; + } + + QCString trPublicTypes() + { + return "Tipi pubblici"; + } + QCString trPublicAttribs() + { + return "Attributi pubblici"; + } + QCString trStaticPublicAttribs() + { + return "Attributi pubblici statici"; + } + QCString trProtectedTypes() + { + return "Tipi protetti"; + } + QCString trProtectedAttribs() + { + return "Attributi protetti"; + } + QCString trStaticProtectedAttribs() + { + return "Attributi protetti statici"; + } + QCString trPrivateTypes() + { + return "Tipi privati"; + } + QCString trPrivateAttribs() + { + return "Attributi privati"; + } + QCString trStaticPrivateAttribs() + { + return "Attributi privati statici"; + } }; #endif diff --git a/src/translator_jp.h b/src/translator_jp.h index a57e12f..05f29e7 100644 --- a/src/translator_jp.h +++ b/src/translator_jp.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/translator_nl.h b/src/translator_nl.h index 63fdade..5aae01f 100644 --- a/src/translator_nl.h +++ b/src/translator_nl.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/translator_ru.h b/src/translator_ru.h index 9273fc7..e6b33e8 100644 --- a/src/translator_ru.h +++ b/src/translator_ru.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/translator_se.h b/src/translator_se.h index 853febb..1c283a4 100644 --- a/src/translator_se.h +++ b/src/translator_se.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ diff --git a/src/util.cpp b/src/util.cpp index 786f872..4b0d369 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -1268,7 +1269,10 @@ bool getDefs(const QCString &scName,const QCString &memberName, QCString mName=memberName; QCString mScope; - if ((im=memberName.findRev("::"))!=-1) + if (memberName.left(9)!="operator " && // treat operator conversion methods + // as a special case + (im=memberName.findRev("::"))!=-1 + ) { mScope=memberName.left(im); mName=memberName.right(memberName.length()-im-2); @@ -2036,20 +2040,23 @@ QCString substituteKeywords(const QCString &s,const char *title) */ int getPrefixIndex(const QCString &name) { + int ni = name.findRev("::"); + if (ni==-1) ni=0; else ni+=2; + //printf("getPrefixIndex(%s) ni=%d\n",name.data(),ni); char *s = Config::ignorePrefixList.first(); while (s) { const char *ps=s; - const char *pd=name.data(); + const char *pd=name.data()+ni; int i=0; while (*ps!=0 && *pd!=0 && *ps==*pd) ps++,pd++,i++; if (*ps==0 && *pd!=0) { - return i; + return ni+i; } s = Config::ignorePrefixList.next(); } - return 0; + return ni; } //---------------------------------------------------------------------------- @@ -2123,3 +2130,41 @@ QCString convertNameToFile(const char *name) } return result; } + +/*! Input is a scopeName, output is the scopename split into a + * namespace part (as large as possible) and a classname part. + */ +void extractNamespaceName(const QCString &scopeName, + QCString &className,QCString &namespaceName) +{ + QCString clName=scopeName.copy(); + QCString nsName; + if (!clName.isEmpty() && namespaceDict[clName] && getClass(clName)==0) + { // the whole name is a namespace (and not a class) + namespaceName=clName.copy(); + className.resize(0); + //printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(), + // className.data(),namespaceName.data()); + return; + } + int i,p=clName.length()-2; + while (p>=0 && (i=clName.findRev("::",p))!=-1) + // see if the first part is a namespace (and not a class) + { + if (i>0 && namespaceDict[clName.left(i)] && getClass(clName.left(i))==0) + { + namespaceName=clName.left(i); + className=clName.right(clName.length()-i-2); + //printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(), + // className.data(),namespaceName.data()); + return; + } + p=i-2; // try a smaller piece of the scope + } + className=scopeName.copy(); + namespaceName.resize(0); + //printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(), + // className.data(),namespaceName.data()); + return; +} + @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ @@ -89,5 +90,7 @@ void initClassHierarchy(ClassList *cl); bool hasVisibleRoot(BaseClassList *bcl); int minClassDistance(ClassDef *cd,ClassDef *bcd,int level=0); QCString convertNameToFile(const char *name); +void extractNamespaceName(const QCString &scopeName, + QCString &className,QCString &namespaceName); #endif diff --git a/src/version.h b/src/version.h index 4047126..1e8a2f0 100644 --- a/src/version.h +++ b/src/version.h @@ -10,7 +10,8 @@ * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * - * All output generated with Doxygen is not covered by this license. + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. * */ |