delay a few things on startup, such as setting the visibility mode, which ensures...
[personal-kdebase.git] / runtime / khelpcenter / docentrytraverser.h
blob0d350a0813150daca7c8ab27ddc7da0cd8133582
1 /* This file is part of the KDE project
2 Copyright 2002 Cornelius Schumacher <schumacher@kde.org>
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public
6 License version 2 or at your option version 3 as published
7 by the Free Software Foundation.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; see the file COPYING. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
20 #ifndef DOCENTRYTRAVERSER_H
21 #define DOCENTRYTRAVERSER_H
23 namespace KHC {
25 class DocEntry;
26 class DocMetaInfo;
28 class DocEntryTraverser
30 public:
31 DocEntryTraverser() : mNotifyee( 0 ), mParent( 0 ), mParentEntry( 0 ) {}
32 virtual ~DocEntryTraverser() {}
34 void setNotifyee( DocMetaInfo * );
36 virtual void process( DocEntry * ) = 0;
38 virtual void startProcess( DocEntry * );
40 virtual DocEntryTraverser *createChild( DocEntry *parentEntry ) = 0;
42 virtual void deleteTraverser();
44 virtual void finishTraversal() {}
46 DocEntryTraverser *childTraverser( DocEntry *parentEntry );
47 virtual DocEntryTraverser *parentTraverser();
49 void setParentEntry( DocEntry * );
50 DocEntry *parentEntry();
52 protected:
53 DocMetaInfo *mNotifyee;
54 DocEntryTraverser *mParent;
56 private:
57 DocEntry *mParentEntry;
62 #endif
63 // vim:ts=2:sw=2:et