Commit 143b39e7 authored by Dimitri van Heesch's avatar Dimitri van Heesch
Browse files

Release-1.4.4-20050817

parent 360bc253
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
DOXYGEN Version 1.4.4-20050815
DOXYGEN Version 1.4.4-20050817


Please read the installation section of the manual 
Please read the installation section of the manual 
(http://www.doxygen.org/install.html) for instructions.
(http://www.doxygen.org/install.html) for instructions.


--------
--------
Dimitri van Heesch (15 August 2005)
Dimitri van Heesch (17 August 2005)
+2 −3
Original line number Original line Diff line number Diff line
DOXYGEN Version 1.4.4_20050815
DOXYGEN Version 1.4.4_20050817


Please read INSTALL for compilation instructions.
Please read INSTALL for compilation instructions.


@@ -17,5 +17,4 @@ to subscribe to the lists or to visit the archives.


Enjoy,
Enjoy,


Dimitri van Heesch (dimitri@stack.nl) (15 August 2005)
Dimitri van Heesch (dimitri@stack.nl) (17 August 2005)
+1 −1
Original line number Original line Diff line number Diff line
1.4.4-20050815
1.4.4-20050817
+50 −111
Original line number Original line Diff line number Diff line
@@ -268,6 +268,21 @@ static STLInfo g_stlinfo[] =
  { "priority_queue",       0,                              0,                     "T",           "elements",    0,            0,             FALSE,              FALSE },
  { "priority_queue",       0,                              0,                     "T",           "elements",    0,            0,             FALSE,              FALSE },
  { "stack",                0,                              0,                     "T",           "elements",    0,            0,             FALSE,              FALSE },
  { "stack",                0,                              0,                     "T",           "elements",    0,            0,             FALSE,              FALSE },
  { "valarray",             0,                              0,                     "T",           "elements",    0,            0,             FALSE,              FALSE },
  { "valarray",             0,                              0,                     "T",           "elements",    0,            0,             FALSE,              FALSE },
  { "exception",            0,                              0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "bad_alloc",            "exception",                    0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "bad_cast",             "exception",                    0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "bad_typeid",           "exception",                    0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "logic_error",          "exception",                    0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "ios_base::failure",    "exception",                    0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "runtime_error",        "exception",                    0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "bad_exception",        "exception",                    0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "domain_error",         "logic_error",                  0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "invalid_argument",     "logic_error",                  0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "length_error",         "logic_error",                  0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "out_of_range",         "logic_error",                  0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "range_error",          "runtime_error",                0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "overflow_error",       "runtime_error",                0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { "underflow_error",      "runtime_error",                0,                     0,             0,             0,            0,             FALSE,              FALSE },
  { 0,                      0,                              0,                     0,             0,             0,            0,             FALSE,              FALSE }
  { 0,                      0,                              0,                     0,             0,             0,            0,             FALSE,              FALSE }
};
};


@@ -3162,119 +3177,22 @@ static QDict<int> *getTemplateArgumentsInName(ArgumentList *templateArguments,co
 */
 */
static ClassDef *findClassWithinClassContext(Definition *context,ClassDef *cd,const QCString &name)
static ClassDef *findClassWithinClassContext(Definition *context,ClassDef *cd,const QCString &name)
{
{
  
#if 0
  ClassDef *result=0;

  FileDef *fd=cd->getFileDef();
  // try using of namespaces in namespace scope
  NamespaceDef *nd=cd->getNamespaceDef();
  if (nd) // class is inside a namespace
  {
    QCString fName = nd->name()+"::"+name;
    result = getResolvedClass(cd,fd,fName); 
    if (result && result!=cd) 
    {
      return result;
    }
    NamespaceSDict *nl = nd->getUsedNamespaces();
    if (nl) // try to prepend any of the using namespace scopes.
    {
      NamespaceSDict::Iterator nli(*nl);
      NamespaceDef *nd;
      for (nli.toFirst() ; (nd=nli.current()) ; ++nli)
      {
        fName = nd->name()+"::"+name;
        result = getResolvedClass(cd,fd,fName);
        if (result && result!=cd) return result;
      }
    }
    SDict<Definition> *cl = nd->getUsedClasses();
    if (cl)
    {
      SDict<Definition>::Iterator cli(*cl);
      Definition *ucd;
      for (cli.toFirst(); (ucd=cli.current()) ; ++cli)
      {
        if (ucd->definitionType()==Definition::TypeClass && 
            rightScopeMatch(ucd->name(),name))
        {
          return (ClassDef *)ucd;
        }
      }
    }
    // TODO: check any inbetween namespaces as well!
    if (fd) // and in the global namespace
    {
      SDict<Definition> *cl = fd->getUsedClasses();
      if (cl)
      {
        SDict<Definition>::Iterator cli(*cl);
        Definition *ucd;
        for (cli.toFirst(); (ucd=cli.current()); ++cli)
        {
          if (ucd->definitionType()==Definition::TypeClass && 
              rightScopeMatch(ucd->name(),name))
          {
            return (ClassDef *)ucd;
          }
        }
      }
    }
  }

  // try using of namespaces in file scope
  if (fd)
  {
    // look for the using statement in this file in which the
    // class was found
    NamespaceSDict *nl = fd->getUsedNamespaces();
    if (nl) // try to prepend any of the using namespace scopes.
    {
      NamespaceSDict::Iterator nli(*nl);
      NamespaceDef *nd;
      for (nli.toFirst() ; (nd=nli.current()) ; ++nli)
      {
        QCString fName = nd->name()+"::"+name;
        result=getResolvedClass(cd,fd,fName);
        if (result && result!=cd)
        {
          return result;
        }
      }
    }
    SDict<Definition> *cl = fd->getUsedClasses();
    if (cl)
    {
      SDict<Definition>::Iterator cli(*cl);
      Definition *ucd;
      for (cli.toFirst(); (ucd=cli.current()) ; ++cli)
      {
        if (ucd->definitionType()==Definition::TypeClass && 
           rightScopeMatch(ucd->name(),name))
        {
          return (ClassDef *)ucd;
        }
      }
    }
  }
#endif

  FileDef *fd=cd->getFileDef();
  FileDef *fd=cd->getFileDef();
  ClassDef *result=0;
  ClassDef *result=0;
  if (context && cd!=context)
  if (context && cd!=context)
  {
  {
    result = getResolvedClass(context,0,name);
    result = getResolvedClass(context,0,name,0,0,FALSE,TRUE);
  }
  }
  if (result==0)
  if (result==0)
  {
  {
    result = getResolvedClass(cd,fd,name);
    result = getResolvedClass(cd,fd,name,0,0,FALSE,TRUE);
  }
  }
  //printf("** Trying to find %s within context %s class %s result=%s\n",
  //printf("** Trying to find %s within context %s class %s result=%s lookup=%p\n",
  //       name.data(),
  //       name.data(),
  //       context ? context->name().data() : "<none>",
  //       context ? context->name().data() : "<none>",
  //       cd      ? cd->name().data()      : "<none>",
  //       cd      ? cd->name().data()      : "<none>",
  //       result  ? result->name().data()  : "<none>"
  //       result  ? result->name().data()  : "<none>",
  //       Doxygen::classSDict.find(name)
  //      );
  //      );
  return result;
  return result;
}
}
@@ -3336,7 +3254,12 @@ static void findUsedClassesForClass(Entry *root,
        while (!found && extractClassNameFromType(type,pos,usedClassName,templSpec)!=-1)
        while (!found && extractClassNameFromType(type,pos,usedClassName,templSpec)!=-1)
        {
        {
          // find the type (if any) that matches usedClassName
          // find the type (if any) that matches usedClassName
          ClassDef *typeCd = getResolvedClass(masterCd,masterCd->getFileDef(),usedClassName);
          ClassDef *typeCd = getResolvedClass(masterCd,
                                              masterCd->getFileDef(),
                                              usedClassName,
                                              0,0,
                                              FALSE,TRUE
                                             );
          //printf("====>  usedClassName=%s -> typeCd=%s\n",
          //printf("====>  usedClassName=%s -> typeCd=%s\n",
          //     usedClassName.data(),typeCd?typeCd->name().data():"<none>");
          //     usedClassName.data(),typeCd?typeCd->name().data():"<none>");
          if (typeCd)
          if (typeCd)
@@ -3383,6 +3306,7 @@ static void findUsedClassesForClass(Entry *root,
                  usedCd = new ClassDef(
                  usedCd = new ClassDef(
                     masterCd->getDefFileName(),masterCd->getDefLine(),
                     masterCd->getDefFileName(),masterCd->getDefLine(),
                     usedName,ClassDef::Class);
                     usedName,ClassDef::Class);
                  usedCd->makeTemplateArgument();
                  Doxygen::hiddenClasses.append(usedName,usedCd);
                  Doxygen::hiddenClasses.append(usedName,usedCd);
                }
                }
                if (usedCd)
                if (usedCd)
@@ -3536,7 +3460,7 @@ static bool findTemplateInstanceRelation(Entry *root,


  if (freshInstance)
  if (freshInstance)
  {
  {
    Debug::print(Debug::Classes,0,"      found fresh instance!\n");
    Debug::print(Debug::Classes,0,"      found fresh instance '%s'!\n",instanceClass->name().data());
    Doxygen::classSDict.append(instanceClass->name(),instanceClass);
    Doxygen::classSDict.append(instanceClass->name(),instanceClass);
    instanceClass->setTemplateBaseClassNames(templateNames);
    instanceClass->setTemplateBaseClassNames(templateNames);


@@ -3638,11 +3562,12 @@ static bool findClassRelation(
      MemberDef *baseClassTypeDef=0;
      MemberDef *baseClassTypeDef=0;
      QCString templSpec;
      QCString templSpec;
      ClassDef *baseClass=getResolvedClass(explicitGlobalScope ? 0 : cd,
      ClassDef *baseClass=getResolvedClass(explicitGlobalScope ? 0 : cd,
                                           cd->getFileDef(), // todo: is this ok?
                                           cd->getFileDef(), 
                                           baseClassName,
                                           baseClassName,
                                           &baseClassTypeDef,
                                           &baseClassTypeDef,
                                           &templSpec,
                                           &templSpec,
                                           mode==Undocumented
                                           mode==Undocumented,
                                           TRUE
                                          );
                                          );
      //printf("baseClassName=%s baseClass=%p cd=%p explicitGlobalScope=%d\n",
      //printf("baseClassName=%s baseClass=%p cd=%p explicitGlobalScope=%d\n",
      //    baseClassName.data(),baseClass,cd,explicitGlobalScope);
      //    baseClassName.data(),baseClass,cd,explicitGlobalScope);
@@ -3695,7 +3620,14 @@ static bool findClassRelation(
          {
          {
            templSpec=baseClassName.mid(i,e-i);
            templSpec=baseClassName.mid(i,e-i);
            baseClassName=baseClassName.left(i)+baseClassName.right(baseClassName.length()-e);
            baseClassName=baseClassName.left(i)+baseClassName.right(baseClassName.length()-e);
            baseClass=getResolvedClass(cd,cd->getFileDef(),baseClassName);
            baseClass=getResolvedClass(cd,
                                       cd->getFileDef(),
                                       baseClassName,
                                       &baseClassTypeDef,
                                       0, //&templSpec,
                                       mode==Undocumented,
                                       TRUE
                                      );
            //printf("baseClass=%p -> baseClass=%s templSpec=%s\n",
            //printf("baseClass=%p -> baseClass=%s templSpec=%s\n",
            //      baseClass,baseClassName.data(),templSpec.data());
            //      baseClass,baseClassName.data(),templSpec.data());
          }
          }
@@ -3707,7 +3639,14 @@ static bool findClassRelation(
        {
        {
          // replace any namespace aliases
          // replace any namespace aliases
          replaceNamespaceAliases(baseClassName,si);
          replaceNamespaceAliases(baseClassName,si);
          baseClass=getResolvedClass(cd,cd->getFileDef(),baseClassName);
          baseClass=getResolvedClass(cd,
                                     cd->getFileDef(),
                                     baseClassName,
                                     &baseClassTypeDef,
                                     &templSpec,
                                     mode==Undocumented,
                                     TRUE
                                    );
          found=baseClass!=0 && baseClass!=cd;
          found=baseClass!=0 && baseClass!=cd;
        }
        }
        
        
@@ -4305,7 +4244,7 @@ static void addMemberDocs(Entry *root,
static ClassDef *findClassDefinition(FileDef *fd,NamespaceDef *nd,
static ClassDef *findClassDefinition(FileDef *fd,NamespaceDef *nd,
                         const char *scopeName)
                         const char *scopeName)
{
{
  ClassDef *tcd = getResolvedClass(nd,fd,scopeName,0,0,TRUE);
  ClassDef *tcd = getResolvedClass(nd,fd,scopeName,0,0,TRUE,TRUE);
  return tcd;
  return tcd;
}
}


src/doxygen.css

0 → 100644
+310 −0
Original line number Original line Diff line number Diff line
BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
	font-family: Geneva, Arial, Helvetica, sans-serif;
}
BODY,TD {
       font-size: 90%;
}
H1 {
	text-align: center;
       font-size: 160%;
}
H2 {
       font-size: 120%;
}
H3 {
       font-size: 100%;
}
CAPTION { font-weight: bold }
DIV.qindex {
	width: 100%;
	background-color: #e8eef2;
	border: 1px solid #84b0c7;
	text-align: center;
	margin: 2px;
	padding: 2px;
	line-height: 140%;
}
DIV.nav {
	width: 100%;
	background-color: #e8eef2;
	border: 1px solid #84b0c7;
	text-align: center;
	margin: 2px;
	padding: 2px;
	line-height: 140%;
}
DIV.navtab {
       background-color: #e8eef2;
       border: 1px solid #84b0c7;
       text-align: center;
       margin: 2px;
       margin-right: 15px;
       padding: 2px;
}
TD.navtab {
       font-size: 70%;
}
A.qindex {
       text-decoration: none;
       font-weight: bold;
       color: #1A419D;
}
A.qindex:visited {
       text-decoration: none;
       font-weight: bold;
       color: #1A419D
}
A.qindex:hover {
	text-decoration: none;
	background-color: #ddddff;
}
A.qindexHL {
	text-decoration: none;
	font-weight: bold;
	background-color: #6666cc;
	color: #ffffff;
	border: 1px double #9295C2;
}
A.qindexHL:hover {
	text-decoration: none;
	background-color: #6666cc;
	color: #ffffff;
}
A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
A.el { text-decoration: none; font-weight: bold }
A.elRef { font-weight: bold }
A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
A.codeRef:link { font-weight: normal; color: #0000FF}
A.codeRef:visited { font-weight: normal; color: #0000FF}
A:hover { text-decoration: none; background-color: #f2f2ff }
DL.el { margin-left: -1cm }
.fragment {
       font-family: Fixed, monospace;
       font-size: 95%;
}
PRE.fragment {
	border: 1px solid #CCCCCC;
	background-color: #f5f5f5;
	margin-top: 4px;
	margin-bottom: 4px;
	margin-left: 2px;
	margin-right: 8px;
	padding-left: 6px;
	padding-right: 6px;
	padding-top: 4px;
	padding-bottom: 4px;
}
DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
TD.md { background-color: #F4F4FB; font-weight: bold; }
TD.mdPrefix {
       background-color: #F4F4FB;
       color: #606060;
	font-size: 80%;
}
TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }
TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; }
DIV.groupHeader {
       margin-left: 16px;
       margin-top: 12px;
       margin-bottom: 6px;
       font-weight: bold;
}
DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
BODY {
	background: white;
	color: black;
	margin-right: 20px;
	margin-left: 20px;
}
TD.indexkey {
	background-color: #e8eef2;
	font-weight: bold;
	padding-right  : 10px;
	padding-top    : 2px;
	padding-left   : 10px;
	padding-bottom : 2px;
	margin-left    : 0px;
	margin-right   : 0px;
	margin-top     : 2px;
	margin-bottom  : 2px;
	border: 1px solid #CCCCCC;
}
TD.indexvalue {
	background-color: #e8eef2;
	font-style: italic;
	padding-right  : 10px;
	padding-top    : 2px;
	padding-left   : 10px;
	padding-bottom : 2px;
	margin-left    : 0px;
	margin-right   : 0px;
	margin-top     : 2px;
	margin-bottom  : 2px;
	border: 1px solid #CCCCCC;
}
TR.memlist {
   background-color: #f0f0f0; 
}
P.formulaDsp { text-align: center; }
IMG.formulaDsp { }
IMG.formulaInl { vertical-align: middle; }
SPAN.keyword       { color: #008000 }
SPAN.keywordtype   { color: #604020 }
SPAN.keywordflow   { color: #e08000 }
SPAN.comment       { color: #800000 }
SPAN.preprocessor  { color: #806020 }
SPAN.stringliteral { color: #002080 }
SPAN.charliteral   { color: #008080 }
.mdTable {
	border: 1px solid #868686;
	background-color: #F4F4FB;
}
.mdRow {
	padding: 8px 10px;
}
.mdescLeft {
       padding: 0px 8px 4px 8px;
	font-size: 80%;
	font-style: italic;
	background-color: #FAFAFA;
	border-top: 1px none #E0E0E0;
	border-right: 1px none #E0E0E0;
	border-bottom: 1px none #E0E0E0;
	border-left: 1px none #E0E0E0;
	margin: 0px;
}
.mdescRight {
       padding: 0px 8px 4px 8px;
	font-size: 80%;
	font-style: italic;
	background-color: #FAFAFA;
	border-top: 1px none #E0E0E0;
	border-right: 1px none #E0E0E0;
	border-bottom: 1px none #E0E0E0;
	border-left: 1px none #E0E0E0;
	margin: 0px;
}
.memItemLeft {
	padding: 1px 0px 0px 8px;
	margin: 4px;
	border-top-width: 1px;
	border-right-width: 1px;
	border-bottom-width: 1px;
	border-left-width: 1px;
	border-top-color: #E0E0E0;
	border-right-color: #E0E0E0;
	border-bottom-color: #E0E0E0;
	border-left-color: #E0E0E0;
	border-top-style: solid;
	border-right-style: none;
	border-bottom-style: none;
	border-left-style: none;
	background-color: #FAFAFA;
	font-size: 80%;
}
.memItemRight {
	padding: 1px 8px 0px 8px;
	margin: 4px;
	border-top-width: 1px;
	border-right-width: 1px;
	border-bottom-width: 1px;
	border-left-width: 1px;
	border-top-color: #E0E0E0;
	border-right-color: #E0E0E0;
	border-bottom-color: #E0E0E0;
	border-left-color: #E0E0E0;
	border-top-style: solid;
	border-right-style: none;
	border-bottom-style: none;
	border-left-style: none;
	background-color: #FAFAFA;
	font-size: 80%;
}
.memTemplItemLeft {
	padding: 1px 0px 0px 8px;
	margin: 4px;
	border-top-width: 1px;
	border-right-width: 1px;
	border-bottom-width: 1px;
	border-left-width: 1px;
	border-top-color: #E0E0E0;
	border-right-color: #E0E0E0;
	border-bottom-color: #E0E0E0;
	border-left-color: #E0E0E0;
	border-top-style: none;
	border-right-style: none;
	border-bottom-style: none;
	border-left-style: none;
	background-color: #FAFAFA;
	font-size: 80%;
}
.memTemplItemRight {
	padding: 1px 8px 0px 8px;
	margin: 4px;
	border-top-width: 1px;
	border-right-width: 1px;
	border-bottom-width: 1px;
	border-left-width: 1px;
	border-top-color: #E0E0E0;
	border-right-color: #E0E0E0;
	border-bottom-color: #E0E0E0;
	border-left-color: #E0E0E0;
	border-top-style: none;
	border-right-style: none;
	border-bottom-style: none;
	border-left-style: none;
	background-color: #FAFAFA;
	font-size: 80%;
}
.memTemplParams {
	padding: 1px 0px 0px 8px;
	margin: 4px;
	border-top-width: 1px;
	border-right-width: 1px;
	border-bottom-width: 1px;
	border-left-width: 1px;
	border-top-color: #E0E0E0;
	border-right-color: #E0E0E0;
	border-bottom-color: #E0E0E0;
	border-left-color: #E0E0E0;
	border-top-style: solid;
	border-right-style: none;
	border-bottom-style: none;
	border-left-style: none;
       color: #606060;
	background-color: #FAFAFA;
	font-size: 80%;
}
.search     { color: #003399;
              font-weight: bold;
}
FORM.search {
              margin-bottom: 0px;
              margin-top: 0px;
}
INPUT.search { font-size: 75%;
               color: #000080;
               font-weight: normal;
               background-color: #e8eef2;
}
TD.tiny      { font-size: 75%;
}
a {
	color: #1A41A8;
}
a:visited {
	color: #2A3798;
}
.dirtab { padding: 4px;
          border-collapse: collapse;
          border: 1px solid #84b0c7;
}
TH.dirtab { background: #e8eef2;
            font-weight: bold;
}
HR { height: 1px;
     border: none;
     border-top: 1px solid black;
}
Loading