1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
/******************************************************************************
*
* Copyright (C) 1997-2008 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
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
/******************************************************************************
* ftvhelp.h,v 1.0 2000/09/06 16:09:00
*
* Kenney Wong <kwong@ea.com>
*
* Folder Tree View for offline help on browsers that do not support HTML Help.
*/
#ifndef FTVHELP_H
#define FTVHELP_H
#include "qtbc.h"
#include <qtextstream.h>
#include <qlist.h>
#include "index.h"
class QFile;
struct FTVNode;
struct FTVImageInfo
{
const char *alt;
const char *name;
const unsigned char *data;
unsigned int len;
unsigned short width, height;
};
extern FTVImageInfo image_info[];
#define FTVIMG_blank 0
#define FTVIMG_doc 1
#define FTVIMG_folderclosed 2
#define FTVIMG_folderopen 3
#define FTVIMG_lastnode 4
#define FTVIMG_link 5
#define FTVIMG_mlastnode 6
#define FTVIMG_mnode 7
#define FTVIMG_node 8
#define FTVIMG_plastnode 9
#define FTVIMG_pnode 10
#define FTVIMG_vertline 11
#define FTV_S(name) #name
#define FTV_ICON_FILE(name) "ftv2" FTV_S(name) ".png"
#define FTVIMG_INDEX(name) FTVIMG_ ## name
#define FTV_INFO(name) ( image_info[FTVIMG_INDEX(name)] )
#define FTV_IMGATTRIBS(name) \
"src=\"" FTV_ICON_FILE(name) "\" " \
"alt=\"" << FTV_INFO(name).alt << "\" " \
"width=" << FTV_INFO(name).width << " " \
"height=" << FTV_INFO(name).height << " "
/*! A class that generates a dynamic tree view side panel.
*/
class FTVHelp : public IndexIntf
{
public:
FTVHelp(bool topLevelIndex = true);
~FTVHelp();
void initialize();
void finalize();
void incContentsDepth();
void decContentsDepth();
void addContentsItem(bool isDir,
const char *name,
const char *ref,
const char *file,
const char *anchor);
void addIndexItem(const char *, const char *,
const char *, const char *,
const char *, const MemberDef *) {}
void addIndexFile(const char *) {}
void generateTreeView(QString* = NULL);
private:
void generateTreeViewImages();
void generateTree(QTextStream &t,const QList<FTVNode> &nl,int level);
void generateIndent(QTextStream &t,FTVNode *n,int level);
void generateLink(QTextStream &t,FTVNode *n);
QList<FTVNode> *m_indentNodes;
int m_indent;
bool m_topLevelIndex;
};
#endif /* FTVHELP_H */
|