Orb/Doxygen/src/classlist.cpp
changeset 4 468f4c8d3d5b
parent 0 42188c7ea2d9
--- a/Orb/Doxygen/src/classlist.cpp	Fri Apr 23 20:47:58 2010 +0100
+++ b/Orb/Doxygen/src/classlist.cpp	Wed Aug 11 14:49:30 2010 +0100
@@ -2,7 +2,7 @@
  *
  * 
  *
- * Copyright (C) 1997-2008 by Dimitri van Heesch.
+ * Copyright (C) 1997-2010 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
  * documentation under the terms of the GNU General Public License is hereby 
@@ -64,11 +64,42 @@
 {
 }
 
+bool ClassSDict::declVisible(const ClassDef::CompoundType *filter) const
+{
+  static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES");
+  static bool extractLocalClasses = Config_getBool("EXTRACT_LOCAL_CLASSES");
+  if (count()>0)
+  {
+    ClassSDict::Iterator sdi(*this);
+    ClassDef *cd=0;
+    for (sdi.toFirst();(cd=sdi.current());++sdi)
+    {
+      if (cd->name().find('@')==-1 && 
+          (filter==0 || *filter==cd->compoundType())
+         )
+      {
+        bool isLink = cd->isLinkable();
+        if (isLink || 
+             (!hideUndocClasses && 
+              (!cd->isLocal() || extractLocalClasses)
+             )
+           )
+        {
+          return TRUE;
+        }
+      }
+    }
+  }
+  return FALSE;
+}
+
 void ClassSDict::writeDeclaration(OutputList &ol,const ClassDef::CompoundType *filter,
                                   const char *header,bool localNames)
 {
   static bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN");
   static bool vhdlOpt    = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
+  static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES");
+  static bool extractLocalClasses = Config_getBool("EXTRACT_LOCAL_CLASSES");
   if (count()>0)
   {
     ClassSDict::Iterator sdi(*this);
@@ -82,14 +113,14 @@
       {
         bool isLink = cd->isLinkable();
         if (isLink || 
-             (!Config_getBool("HIDE_UNDOC_CLASSES") && 
-              (!cd->isLocal() || Config_getBool("EXTRACT_LOCAL_CLASSES"))
+             (!hideUndocClasses && 
+              (!cd->isLocal() || extractLocalClasses)
              )
            )
         {
           if (!found)
           {
-            ol.startMemberHeader();
+            ol.startMemberHeader("nested-classes");
             if (header)
             {
               ol.parseText(header);