summaryrefslogtreecommitdiffstats
path: root/src/util.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2000-03-05 18:16:47 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2000-03-05 18:16:47 (GMT)
commit69124e6ce7f023848920d2a18bc317ae92d355a2 (patch)
treefea55c7f521b9b8d4c7cdecc6579109f17cae89a /src/util.cpp
parentf4f3f1676896e6fd0c0044f001eda9829d9b3f60 (diff)
downloadDoxygen-69124e6ce7f023848920d2a18bc317ae92d355a2.zip
Doxygen-69124e6ce7f023848920d2a18bc317ae92d355a2.tar.gz
Doxygen-69124e6ce7f023848920d2a18bc317ae92d355a2.tar.bz2
Release_1.1.0-20000305
Diffstat (limited to 'src/util.cpp')
-rw-r--r--src/util.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/util.cpp b/src/util.cpp
index b70e3a5..70b8ebc 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -1968,3 +1968,47 @@ int getPrefixIndex(const QCString &name)
}
return 0;
}
+
+//----------------------------------------------------------------------------
+
+static void initBaseClassHierarchy(BaseClassList *bcl)
+{
+ BaseClassListIterator bcli(*bcl);
+ for ( ; bcli.current(); ++bcli)
+ {
+ ClassDef *cd=bcli.current()->classDef;
+ if (cd->baseClasses()->count()==0) // no base classes => new root
+ {
+ initBaseClassHierarchy(cd->baseClasses());
+ }
+ cd->visited=FALSE;
+ }
+}
+
+//----------------------------------------------------------------------------
+
+void initClassHierarchy(ClassList *cl)
+{
+ ClassListIterator cli(*cl);
+ ClassDef *cd;
+ for ( ; (cd=cli.current()); ++cli)
+ {
+ cd->visited=FALSE;
+ initBaseClassHierarchy(cd->baseClasses());
+ }
+}
+
+//----------------------------------------------------------------------------
+
+bool hasVisibleRoot(BaseClassList *bcl)
+{
+ BaseClassListIterator bcli(*bcl);
+ for ( ; bcli.current(); ++bcli)
+ {
+ ClassDef *cd=bcli.current()->classDef;
+ if (cd->isVisibleInHierarchy()) return TRUE;
+ hasVisibleRoot(cd->baseClasses());
+ }
+ return FALSE;
+}
+