Added options to make Robodoc more customizable.
[robodoc.git] / Source / html_generator.h
1 #ifndef ROBODOC_HTML_GENERATOR_H
2 #define ROBODOC_HTML_GENERATOR_H
3 /*
4 Copyright (C) 1994-2007  Frans Slothouber, Jacco van Weert, Petteri Kettunen,
5 Bernd Koesling, Thomas Aglassinger, Anthon Pang, Stefan Kost, David Druffner,
6 Sasha Vasko, Kai Hofmann, Thierry Pierron, Friedrich Haase, and Gergely Budai.
7
8 This file is part of ROBODoc
9
10 ROBODoc is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 3 of the License, or
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program.  If not, see <http://www.gnu.org/licenses/>.
22
23 */
24
25
26 #include "headers.h"
27 #include "items.h"
28 #include "document.h"
29
30 #define MAX_SECTION_DEPTH 7
31
32 void                RB_HTML_Generate_Label(
33     FILE *dest_doc,
34     char *name );
35 void                RB_HTML_Generate_Item_Begin(
36     FILE *dest_doc,
37     char *name );
38 void                RB_HTML_Generate_Item_End(
39     FILE *dest_doc,
40     char *name );
41 void                RB_HTML_Generate_TOC_Entries(
42     FILE *dest_doc,
43     struct RB_header **headers,
44     int count,
45     struct RB_Part *owner,
46     char *dest_name );
47 void                RB_HTML_Generate_TOC_2(
48     FILE *dest_doc,
49     struct RB_header **headers,
50     int count,
51     struct RB_Part *owner,
52     char *dest_name );
53 void                RB_HTML_Generate_BeginSection(
54     FILE *dest_doc,
55     int depth,
56     char *name,
57     struct RB_header *header );
58 void                RB_HTML_Generate_EndSection(
59     FILE *dest_doc,
60     int depth,
61     char *name );
62 char               *RB_HTML_Get_Default_Extension(
63     void );
64 void                RB_HTML_Generate_Doc_Start(
65     FILE *dest_doc,
66     char *src_name,
67     char *name,
68     char *dest_name,
69     char *charset );
70 void                RB_HTML_Generate_Doc_End(
71     FILE *dest_doc,
72     char *name,
73     char *src_name );
74 void                RB_HTML_Generate_Header_Start(
75     FILE *dest_doc,
76     struct RB_header *cur_header );
77 void                RB_HTML_Generate_Header_End(
78     FILE *dest_doc,
79     struct RB_header *cur_header );
80
81 void                RB_HTML_Generate_Index(
82     struct RB_Document *document );
83
84 void                RB_HTML_Generate_Index_Table(
85     FILE *dest,
86     char *dest_name,
87     struct RB_HeaderType *type,
88     char *title );
89
90 void                RB_HTML_Generate_Empty_Item(
91     FILE *dest );
92 void                RB_HTML_Generate_Link(
93     FILE *cur_doc,
94     char *cur_name,
95     char *filename,
96     char *labelname,
97     char *linkname,
98     char *classname );
99 void                RB_HTML_Generate_Char(
100     FILE *dest_doc,
101     int c );
102 void                RB_HTML_Generate_Item_Name(
103     FILE *dest_doc,
104     char *name );
105 char               *RB_HTML_RelativeAddress(
106     char *thisname,
107     char *thatname );
108
109 int                 RB_HTML_Generate_Extra(
110     FILE *dest_doc,
111     enum ItemType item_type,
112     char *cur_char,
113     char prev_char );
114
115 void                RB_HTML_Generate_False_Link(
116     FILE *dest_doc,
117     char *name );
118 void                RB_Create_CSS(
119     struct RB_Document *document );
120 void                RB_InsertCSS(
121     FILE *dest_doc,
122     char *filename );
123 void                RB_HTML_Generate_Nav_Bar(
124     struct RB_Document *document,
125     FILE *current_doc,
126     struct RB_header *current_header );
127
128 void                RB_HTML_Generate_Nav_Bar_One_File_Per_Header(
129     struct RB_Document *document,
130     FILE *current_doc,
131     struct RB_header *current_header );
132
133 void                HTML_Generate_Begin_Paragraph(
134     FILE *dest_doc );
135 void                HTML_Generate_End_Paragraph(
136     FILE *dest_doc );
137
138 void                HTML_Generate_Begin_Preformatted(
139     FILE *dest_doc,
140     int source );
141 void                HTML_Generate_End_Preformatted(
142     FILE *dest_doc );
143
144 void                HTML_Generate_Begin_List(
145     FILE *dest_doc );
146 void                HTML_Generate_End_List(
147     FILE *dest_doc );
148 void                HTML_Generate_Begin_List_Item(
149     FILE *dest_doc );
150 void                HTML_Generate_End_List_Item(
151     FILE *dest_doc );
152
153 void                HTML_Generate_Begin_Content(
154     FILE *dest_doc );
155 void                HTML_Generate_End_Content(
156     FILE *dest_doc );
157 void                HTML_Generate_Begin_Navigation(
158     FILE *dest_doc );
159 void                HTML_Generate_End_Navigation(
160     FILE *dest_doc );
161 void                HTML_Generate_Begin_Extra(
162     FILE *dest_doc );
163 void                HTML_Generate_End_Extra(
164     FILE *dest_doc );
165 void                RB_HTML_Generate_Line_Comment_End(
166     FILE *dest_doc );
167 void                RB_HTML_Generate_IndexMenu(
168     FILE *dest_doc,
169     char *filename,
170     struct RB_Document *document,
171     struct RB_HeaderType *cur_type );
172 void                RB_HTML_Generate_Header_IndexMenu(
173     FILE *dest_doc,
174     char *filename,
175     struct RB_Document *document,
176     struct RB_Part *owner,
177     struct RB_HeaderType *cur_type );
178 void                RB_HTML_Generate_Module_IndexMenu(
179     FILE *dest_doc,
180     char *filename,
181     struct RB_Document *document,
182     struct RB_HeaderType *cur_type );
183
184 #endif /* ROBODOC_HTML_GENERATOR_H */