00001 /****************************************************************************** 00002 * 00003 * $Id: htmlhelp.h,v 1.7 2001/03/19 19:27:40 root Exp $ 00004 * 00005 * Copyright (C) 1997-2008 by Dimitri van Heesch. 00006 * 00007 * Permission to use, copy, modify, and distribute this software and its 00008 * documentation under the terms of the GNU General Public License is hereby 00009 * granted. No representations are made about the suitability of this software 00010 * for any purpose. It is provided "as is" without express or implied warranty. 00011 * See the GNU General Public License for more details. 00012 * 00013 * Documents produced by Doxygen are derivative works derived from the 00014 * input used in their production; they are not affected by this license. 00015 * 00016 * The code is this file is largely based on a contribution from 00017 * Harm van der Heijden <H.v.d.Heijden@phys.tue.nl> 00018 * Please send thanks to him and bug reports to me :-) 00019 */ 00020 00021 #ifndef HTMLHELP_H 00022 #define HTMLHELP_H 00023 00024 #include "qtbc.h" 00025 #include <qtextstream.h> 00026 #include <qstrlist.h> 00027 #include "index.h" 00028 00029 class QFile; 00030 class HtmlHelpIndex; 00031 00036 class HtmlHelp : public IndexIntf 00037 { 00041 enum ImageNumber { 00042 BOOK_CLOSED=1, BOOK_OPEN, 00043 BOOK_CLOSED_NEW, BOOK_OPEN_NEW, 00044 FOLDER_CLOSED, FOLDER_OPEN, 00045 FOLDER_CLOSED_NEW,FOLDER_OPEN_NEW, 00046 QUERY, QUERY_NEW, 00047 TEXT, TEXT_NEW, 00048 WEB_DOC, WEB_DOC_NEW, 00049 WEB_LINK, WEB_LINK_NEW, 00050 INFO, INFO_NEW, 00051 LINK, LINK_NEW, 00052 BOOKLET, BOOKLET_NEW, 00053 EMAIL, EMAIL_NEW, 00054 EMAIL2, EMAIL2_NEW, 00055 IMAGE, IMAGE_NEW, 00056 AUDIO, AUDIO_NEW, 00057 MUSIC, MUSIC_NEW, 00058 VIDEO, VIDEO_NEW, 00059 INDEX, INDEX_NEW, 00060 IDEA, IDEA_NEW, 00061 NOTE, NOTE_NEW, 00062 TOOL, TOOL_NEW 00063 }; 00064 public: 00065 //static HtmlHelp *getInstance(); 00066 HtmlHelp(); 00067 void initialize(); 00068 void finalize(); 00069 void incContentsDepth(); 00070 void decContentsDepth(); 00071 void addContentsItem(bool isDir, 00072 const char *name, 00073 const char *ref = 0, 00074 const char *file = 0, 00075 const char *anchor = 0); 00076 void addIndexItem(const char *level1, const char *level2, 00077 const char *contRef, const char *memRef, 00078 const char *anchor,const MemberDef *md); 00079 void addIndexFile(const char *name); 00080 00081 private: 00082 void createProjectFile(); 00083 00084 QFile *cf,*kf; 00085 QTextStream cts,kts; 00086 HtmlHelpIndex *index; 00087 int dc; 00088 QStrList indexFiles; 00089 QDict<void> indexFileDict; 00090 static HtmlHelp *theInstance; 00091 }; 00092 00093 #endif /* HTMLHELP_H */ 00094