1 | /* |
1 | /* |
2 | data.h - Part of psiconv, a PSION 5 file formats converter |
2 | data.h - Part of psiconv, a PSION 5 file formats converter |
3 | Copyright (c) 1999 Frodo Looijaard <frodol@dds.nl> |
3 | Copyright (c) 1999, 2000 Frodo Looijaard <frodol@dds.nl> |
4 | |
4 | |
5 | This program is free software; you can redistribute it and/or modify |
5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by |
6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or |
7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. |
8 | (at your option) any later version. |
… | |
… | |
22 | parse routines, and read by the generation routines. */ |
22 | parse routines, and read by the generation routines. */ |
23 | |
23 | |
24 | #ifndef PSICONV_DATA_H |
24 | #ifndef PSICONV_DATA_H |
25 | #define PSICONV_DATA_H |
25 | #define PSICONV_DATA_H |
26 | |
26 | |
27 | #include "general.h" |
27 | #include <psiconv/general.h> |
28 | #include "list.h" |
28 | #include <psiconv/list.h> |
29 | |
29 | |
30 | /* All types which end on _t are plain types; all other types are pointers |
30 | /* All types which end on _t are plain types; all other types are pointers |
31 | to structs */ |
31 | to structs */ |
32 | |
32 | |
33 | #ifdef __cplusplus |
33 | #ifdef __cplusplus |
… | |
… | |
39 | psiconv_unknown_file, |
39 | psiconv_unknown_file, |
40 | psiconv_word_file, |
40 | psiconv_word_file, |
41 | psiconv_texted_file, |
41 | psiconv_texted_file, |
42 | psiconv_mbm_file, |
42 | psiconv_mbm_file, |
43 | psiconv_sketch_file, |
43 | psiconv_sketch_file, |
44 | psiconv_clipart_file |
44 | psiconv_clipart_file, |
|
|
45 | psiconv_sheet_file |
45 | } psiconv_file_type_t; |
46 | } psiconv_file_type_t; |
46 | |
47 | |
47 | /* Length indicators */ |
48 | /* Length indicators */ |
48 | typedef psiconv_u32 psiconv_S_t; |
49 | typedef psiconv_u32 psiconv_S_t; |
49 | typedef psiconv_u32 psiconv_X_t; |
50 | typedef psiconv_u32 psiconv_X_t; |
… | |
… | |
60 | typedef enum psiconv_bool |
61 | typedef enum psiconv_bool |
61 | { |
62 | { |
62 | psiconv_bool_false, |
63 | psiconv_bool_false, |
63 | psiconv_bool_true |
64 | psiconv_bool_true |
64 | } psiconv_bool_t; |
65 | } psiconv_bool_t; |
|
|
66 | |
|
|
67 | typedef enum psiconv_triple |
|
|
68 | { |
|
|
69 | psiconv_triple_on, |
|
|
70 | psiconv_triple_off, |
|
|
71 | psiconv_triple_auto |
|
|
72 | } psiconv_triple_t; |
65 | |
73 | |
66 | typedef enum psiconv_super_sub |
74 | typedef enum psiconv_super_sub |
67 | { psiconv_normalscript, |
75 | { psiconv_normalscript, |
68 | psiconv_superscript, |
76 | psiconv_superscript, |
69 | psiconv_subscript |
77 | psiconv_subscript |
… | |
… | |
85 | typedef enum psiconv_border_kind |
93 | typedef enum psiconv_border_kind |
86 | { psiconv_border_none, |
94 | { psiconv_border_none, |
87 | psiconv_border_solid, |
95 | psiconv_border_solid, |
88 | psiconv_border_double, |
96 | psiconv_border_double, |
89 | psiconv_border_dotted, |
97 | psiconv_border_dotted, |
90 | psiconv_border_striped, |
98 | psiconv_border_dashed, |
91 | psiconv_border_dotstripe, |
99 | psiconv_border_dotdashed, |
92 | psiconv_border_dotdotstripe |
100 | psiconv_border_dotdotdashed |
93 | } psiconv_border_kind_t; |
101 | } psiconv_border_kind_t; |
|
|
102 | |
|
|
103 | typedef enum psiconv_screenfont |
|
|
104 | { |
|
|
105 | psiconv_font_misc, |
|
|
106 | psiconv_font_sansserif, |
|
|
107 | psiconv_font_nonprop, |
|
|
108 | psiconv_font_serif |
|
|
109 | } psiconv_screenfont_t; |
94 | |
110 | |
95 | /* Colors. |
111 | /* Colors. |
96 | black: 0x00 0x00 0x00 |
112 | black: 0x00 0x00 0x00 |
97 | white: 0xff 0xff 0xff */ |
113 | white: 0xff 0xff 0xff */ |
98 | typedef struct psiconv_color |
114 | typedef struct psiconv_color_s |
99 | { |
115 | { |
100 | psiconv_u8 red; |
116 | psiconv_u8 red; |
101 | psiconv_u8 green; |
117 | psiconv_u8 green; |
102 | psiconv_u8 blue; |
118 | psiconv_u8 blue; |
103 | } * psiconv_color; |
119 | } * psiconv_color; |
104 | |
120 | |
105 | typedef struct psiconv_font |
121 | typedef struct psiconv_font_s |
106 | { |
122 | { |
107 | char *name; |
123 | char *name; |
108 | psiconv_u8 screenfont; |
124 | psiconv_screenfont_t screenfont; |
109 | } *psiconv_font; |
125 | } *psiconv_font; |
110 | |
126 | |
111 | typedef struct psiconv_border |
127 | typedef struct psiconv_border_s |
112 | { |
128 | { |
113 | psiconv_border_kind_t kind; |
129 | psiconv_border_kind_t kind; |
114 | psiconv_size_t thickness; /* Set to 1/20 for non-solid lines */ |
130 | psiconv_size_t thickness; /* Set to 1/20 for non-solid lines */ |
115 | psiconv_color color; |
131 | psiconv_color color; |
116 | } *psiconv_border; |
132 | } *psiconv_border; |
117 | |
133 | |
118 | typedef struct psiconv_bullet |
134 | typedef struct psiconv_bullet_s |
119 | { |
135 | { |
120 | psiconv_bool_t on; |
136 | psiconv_bool_t on; |
121 | psiconv_size_t font_size; |
137 | psiconv_size_t font_size; |
122 | psiconv_u8 character; |
138 | psiconv_u8 character; |
123 | psiconv_bool_t indent; |
139 | psiconv_bool_t indent; |
… | |
… | |
130 | psiconv_tab_left, |
146 | psiconv_tab_left, |
131 | psiconv_tab_centre, |
147 | psiconv_tab_centre, |
132 | psiconv_tab_right |
148 | psiconv_tab_right |
133 | } psiconv_tab_kind_t; |
149 | } psiconv_tab_kind_t; |
134 | |
150 | |
135 | typedef struct psiconv_tab |
151 | typedef struct psiconv_tab_s |
136 | { |
152 | { |
137 | psiconv_length_t location; |
153 | psiconv_length_t location; |
138 | psiconv_tab_kind_t kind; |
154 | psiconv_tab_kind_t kind; |
139 | } *psiconv_tab; |
155 | } *psiconv_tab; |
140 | |
156 | |
141 | |
157 | |
142 | typedef psiconv_list psiconv_tab_list; /* of struct psiconv_tab */ |
158 | typedef psiconv_list psiconv_tab_list; /* of struct psiconv_tab */ |
143 | |
159 | |
144 | typedef struct psiconv_all_tabs |
160 | typedef struct psiconv_all_tabs_s |
145 | { |
161 | { |
146 | psiconv_length_t normal; |
162 | psiconv_length_t normal; |
147 | psiconv_tab_list extras; |
163 | psiconv_tab_list extras; |
148 | } *psiconv_all_tabs; |
164 | } *psiconv_all_tabs; |
149 | |
165 | |
150 | typedef struct psiconv_character_layout |
166 | typedef struct psiconv_character_layout_s |
151 | { |
167 | { |
152 | psiconv_color color; |
168 | psiconv_color color; |
153 | psiconv_color back_color; |
169 | psiconv_color back_color; |
154 | psiconv_size_t font_size; |
170 | psiconv_size_t font_size; |
155 | psiconv_bool_t italic; |
171 | psiconv_bool_t italic; |
156 | psiconv_bool_t bold; |
172 | psiconv_bool_t bold; |
157 | psiconv_super_sub_t super_sub; |
173 | psiconv_super_sub_t super_sub; |
158 | psiconv_bool_t underline; |
174 | psiconv_bool_t underline; |
159 | psiconv_bool_t strike_out; |
175 | psiconv_bool_t strikethrough; |
160 | psiconv_font font; |
176 | psiconv_font font; |
161 | } *psiconv_character_layout; |
177 | } *psiconv_character_layout; |
162 | |
178 | |
163 | typedef struct psiconv_paragraph_layout |
179 | typedef struct psiconv_paragraph_layout_s |
164 | { |
180 | { |
165 | psiconv_color back_color; |
181 | psiconv_color back_color; |
166 | psiconv_length_t indent_left; |
182 | psiconv_length_t indent_left; |
167 | psiconv_length_t indent_right; |
183 | psiconv_length_t indent_right; |
168 | psiconv_length_t indent_first; |
184 | psiconv_length_t indent_first; |
169 | psiconv_justify_hor_t justify_hor; |
185 | psiconv_justify_hor_t justify_hor; |
170 | psiconv_justify_ver_t justify_ver; |
186 | psiconv_justify_ver_t justify_ver; |
171 | psiconv_size_t interline; |
187 | psiconv_size_t linespacing; |
172 | psiconv_bool_t interline_exact; |
188 | psiconv_bool_t linespacing_exact; |
173 | psiconv_size_t top_space; |
189 | psiconv_size_t space_above; |
174 | psiconv_size_t bottom_space; |
190 | psiconv_size_t space_below; |
175 | psiconv_bool_t on_one_page; |
191 | psiconv_bool_t keep_together; |
176 | psiconv_bool_t together_with; /* What the heck is this? */ |
192 | psiconv_bool_t keep_with_next; |
177 | psiconv_bool_t on_next_page; |
193 | psiconv_bool_t on_next_page; |
178 | psiconv_bool_t no_widow_protection; |
194 | psiconv_bool_t no_widow_protection; |
179 | psiconv_length_t border_distance; |
195 | psiconv_length_t border_distance; |
180 | psiconv_bullet bullet; |
196 | psiconv_bullet bullet; |
181 | psiconv_border left_border; |
197 | psiconv_border left_border; |
… | |
… | |
183 | psiconv_border top_border; |
199 | psiconv_border top_border; |
184 | psiconv_border bottom_border; |
200 | psiconv_border bottom_border; |
185 | psiconv_all_tabs tabs; |
201 | psiconv_all_tabs tabs; |
186 | } *psiconv_paragraph_layout; |
202 | } *psiconv_paragraph_layout; |
187 | |
203 | |
188 | typedef struct psiconv_header_section |
204 | typedef struct psiconv_header_section_s |
189 | { |
205 | { |
190 | psiconv_u32 uid1; |
206 | psiconv_u32 uid1; |
191 | psiconv_u32 uid2; |
207 | psiconv_u32 uid2; |
192 | psiconv_u32 uid3; |
208 | psiconv_u32 uid3; |
193 | psiconv_u32 checksum; |
209 | psiconv_u32 checksum; |
194 | psiconv_file_type_t file; |
210 | psiconv_file_type_t file; |
195 | } *psiconv_header_section; |
211 | } *psiconv_header_section; |
196 | |
212 | |
197 | typedef struct psiconv_section_table_entry |
213 | typedef struct psiconv_section_table_entry_s |
198 | { |
214 | { |
199 | psiconv_u32 id; |
215 | psiconv_u32 id; |
200 | psiconv_u32 offset; |
216 | psiconv_u32 offset; |
201 | } *psiconv_section_table_entry; |
217 | } *psiconv_section_table_entry; |
202 | |
218 | |
203 | typedef psiconv_list psiconv_section_table_section; |
219 | typedef psiconv_list psiconv_section_table_section; |
204 | /* Of struct sectiontable_entry */ |
220 | /* Of struct sectiontable_entry */ |
205 | |
221 | |
206 | typedef struct psiconv_application_id_section |
222 | typedef struct psiconv_application_id_section_s |
207 | { |
223 | { |
208 | psiconv_u32 id; |
224 | psiconv_u32 id; |
209 | psiconv_string_t name; |
225 | psiconv_string_t name; |
210 | } *psiconv_application_id_section; |
226 | } *psiconv_application_id_section; |
211 | |
227 | |
212 | typedef struct psiconv_in_line_layout |
228 | typedef struct psiconv_in_line_layout_s |
213 | { |
229 | { |
214 | psiconv_character_layout layout; |
230 | psiconv_character_layout layout; |
215 | int length; |
231 | int length; |
216 | } *psiconv_in_line_layout; |
232 | } *psiconv_in_line_layout; |
217 | |
233 | |
… | |
… | |
224 | psiconv_replace_pagenr, |
240 | psiconv_replace_pagenr, |
225 | psiconv_replace_nr_of_pages, |
241 | psiconv_replace_nr_of_pages, |
226 | psiconv_replace_filename |
242 | psiconv_replace_filename |
227 | } psiconv_replacement_type_t; |
243 | } psiconv_replacement_type_t; |
228 | |
244 | |
229 | typedef struct psiconv_replacement |
245 | typedef struct psiconv_replacement_s |
230 | { |
246 | { |
231 | int offset; |
247 | int offset; |
232 | int cur_len; |
248 | int cur_len; |
233 | psiconv_replacement_type_t type; |
249 | psiconv_replacement_type_t type; |
234 | } *psiconv_replacement; |
250 | } *psiconv_replacement; |
235 | |
251 | |
236 | typedef psiconv_list psiconv_replacements; /* of struct replacement */ |
252 | typedef psiconv_list psiconv_replacements; /* of struct replacement */ |
237 | |
253 | |
238 | typedef struct psiconv_paragraph |
254 | typedef struct psiconv_paragraph_s |
239 | { |
255 | { |
240 | char *text; |
256 | char *text; |
241 | psiconv_character_layout base_character; |
257 | psiconv_character_layout base_character; |
242 | psiconv_paragraph_layout base_paragraph; |
258 | psiconv_paragraph_layout base_paragraph; |
243 | psiconv_s16 base_style; |
259 | psiconv_s16 base_style; |
… | |
… | |
245 | psiconv_replacements replacements; |
261 | psiconv_replacements replacements; |
246 | } *psiconv_paragraph; |
262 | } *psiconv_paragraph; |
247 | |
263 | |
248 | typedef psiconv_list psiconv_text_and_layout; /* Of struct paragraphs */ |
264 | typedef psiconv_list psiconv_text_and_layout; /* Of struct paragraphs */ |
249 | |
265 | |
250 | typedef struct psiconv_texted_section |
266 | typedef struct psiconv_texted_section_s |
251 | { |
267 | { |
252 | psiconv_text_and_layout paragraphs; |
268 | psiconv_text_and_layout paragraphs; |
253 | } *psiconv_texted_section; |
269 | } *psiconv_texted_section; |
254 | |
270 | |
255 | typedef struct psiconv_page_header |
271 | typedef struct psiconv_page_header_s |
256 | { |
272 | { |
257 | psiconv_bool_t on_first_page; |
273 | psiconv_bool_t on_first_page; |
258 | psiconv_paragraph_layout base_paragraph_layout; |
274 | psiconv_paragraph_layout base_paragraph_layout; |
259 | psiconv_character_layout base_character_layout; |
275 | psiconv_character_layout base_character_layout; |
260 | psiconv_texted_section text; |
276 | psiconv_texted_section text; |
261 | } *psiconv_page_header; |
277 | } *psiconv_page_header; |
262 | |
278 | |
263 | typedef struct psiconv_page_layout_section |
279 | typedef struct psiconv_page_layout_section_s |
264 | { |
280 | { |
265 | psiconv_u32 first_page_nr; |
281 | psiconv_u32 first_page_nr; |
266 | psiconv_length_t header_dist; |
282 | psiconv_length_t header_dist; |
267 | psiconv_length_t footer_dist; |
283 | psiconv_length_t footer_dist; |
268 | psiconv_length_t left_margin; |
284 | psiconv_length_t left_margin; |
… | |
… | |
271 | psiconv_length_t bottom_margin; |
287 | psiconv_length_t bottom_margin; |
272 | psiconv_length_t page_width; |
288 | psiconv_length_t page_width; |
273 | psiconv_length_t page_height; |
289 | psiconv_length_t page_height; |
274 | psiconv_page_header header; |
290 | psiconv_page_header header; |
275 | psiconv_page_header footer; |
291 | psiconv_page_header footer; |
|
|
292 | psiconv_bool_t landscape; |
276 | } * psiconv_page_layout_section; |
293 | } * psiconv_page_layout_section; |
277 | |
294 | |
278 | typedef struct psiconv_word_status_section |
295 | typedef struct psiconv_word_status_section_s |
279 | { |
296 | { |
280 | psiconv_bool_t show_tabs; |
297 | psiconv_bool_t show_tabs; |
281 | psiconv_bool_t show_spaces; |
298 | psiconv_bool_t show_spaces; |
282 | psiconv_bool_t show_paragraph_ends; |
299 | psiconv_bool_t show_paragraph_ends; |
283 | psiconv_bool_t show_line_breaks; |
300 | psiconv_bool_t show_line_breaks; |
… | |
… | |
290 | psiconv_bool_t fit_lines_to_screen; |
307 | psiconv_bool_t fit_lines_to_screen; |
291 | psiconv_u32 cursor_position; |
308 | psiconv_u32 cursor_position; |
292 | psiconv_u32 display_size; |
309 | psiconv_u32 display_size; |
293 | } *psiconv_word_status_section; |
310 | } *psiconv_word_status_section; |
294 | |
311 | |
295 | typedef struct psiconv_word_style |
312 | typedef struct psiconv_word_style_s |
296 | { |
313 | { |
297 | psiconv_character_layout character; |
314 | psiconv_character_layout character; |
298 | psiconv_paragraph_layout paragraph; |
315 | psiconv_paragraph_layout paragraph; |
299 | psiconv_u8 hotkey; |
316 | psiconv_u8 hotkey; |
300 | psiconv_string_t name; |
317 | psiconv_string_t name; |
… | |
… | |
302 | psiconv_u32 outline_level; |
319 | psiconv_u32 outline_level; |
303 | } *psiconv_word_style; |
320 | } *psiconv_word_style; |
304 | |
321 | |
305 | typedef psiconv_list psiconv_word_style_list; /* Of style */ |
322 | typedef psiconv_list psiconv_word_style_list; /* Of style */ |
306 | |
323 | |
307 | typedef struct psiconv_word_styles_section |
324 | typedef struct psiconv_word_styles_section_s |
308 | { |
325 | { |
309 | psiconv_word_style normal; |
326 | psiconv_word_style normal; |
310 | psiconv_word_style_list styles; |
327 | psiconv_word_style_list styles; |
311 | } *psiconv_word_styles_section; |
328 | } *psiconv_word_styles_section; |
312 | |
329 | |
313 | typedef struct psiconv_word_f { |
330 | typedef struct psiconv_word_f_s |
|
|
331 | { |
314 | psiconv_page_layout_section page_sec; |
332 | psiconv_page_layout_section page_sec; |
315 | psiconv_text_and_layout paragraphs; |
333 | psiconv_text_and_layout paragraphs; |
316 | psiconv_word_status_section status_sec; |
334 | psiconv_word_status_section status_sec; |
317 | psiconv_word_styles_section styles_sec; |
335 | psiconv_word_styles_section styles_sec; |
318 | } *psiconv_word_f; |
336 | } *psiconv_word_f; |
319 | |
337 | |
320 | typedef struct psiconv_texted_f { |
338 | typedef struct psiconv_texted_f_s |
|
|
339 | { |
321 | psiconv_page_layout_section page_sec; |
340 | psiconv_page_layout_section page_sec; |
322 | psiconv_texted_section texted_sec; |
341 | psiconv_texted_section texted_sec; |
323 | } *psiconv_texted_f; |
342 | } *psiconv_texted_f; |
324 | |
343 | |
325 | typedef psiconv_list psiconv_jumptable_section; /* of psiconv_u32 */ |
344 | typedef psiconv_list psiconv_jumptable_section; /* of psiconv_u32 */ |
326 | |
345 | |
327 | /* Normalized values [0..1] for each component |
346 | /* Normalized values [0..1] for each component |
328 | Origin is (x,y)=(0,0), to get pixel at (X,Y) use index [Y*xsize+X] */ |
347 | Origin is (x,y)=(0,0), to get pixel at (X,Y) use index [Y*xsize+X] */ |
329 | typedef struct psiconv_paint_data_section { |
348 | typedef struct psiconv_paint_data_section_s |
|
|
349 | { |
330 | psiconv_u32 xsize; |
350 | psiconv_u32 xsize; |
331 | psiconv_u32 ysize; |
351 | psiconv_u32 ysize; |
332 | psiconv_length_t pic_xsize; /* 0 if not specified */ |
352 | psiconv_length_t pic_xsize; /* 0 if not specified */ |
333 | psiconv_length_t pic_ysize; /* 0 if not specified */ |
353 | psiconv_length_t pic_ysize; /* 0 if not specified */ |
334 | float *red; |
354 | float *red; |
… | |
… | |
337 | } *psiconv_paint_data_section; |
357 | } *psiconv_paint_data_section; |
338 | |
358 | |
339 | typedef psiconv_list psiconv_pictures; |
359 | typedef psiconv_list psiconv_pictures; |
340 | /* of struct psiconv_paint_data_section */ |
360 | /* of struct psiconv_paint_data_section */ |
341 | |
361 | |
342 | typedef struct psiconv_mbm_f { |
362 | typedef struct psiconv_mbm_f_s |
|
|
363 | { |
343 | psiconv_pictures sections; |
364 | psiconv_pictures sections; |
344 | } *psiconv_mbm_f; |
365 | } *psiconv_mbm_f; |
345 | |
366 | |
346 | /* This is a little intricated. A picture may be embedded in a larger form. |
367 | /* This is a little intricated. A picture may be embedded in a larger form. |
347 | A form is empty, except for the picture. The form has size form_{x,y}size, |
368 | A form is empty, except for the picture. The form has size form_{x,y}size, |
348 | and the picture is at offset picture_{x,y}_offset within the form. The |
369 | and the picture is at offset picture_{x,y}_offset within the form. The |
349 | picture itself has size picture_{x,y}size. |
370 | picture itself has size picture_{x,y}size. |
350 | Cuts are always <= 1.0; a cut of 0.0 cuts nothing away, a cut of 1.0 |
371 | Cuts are always <= 1.0; a cut of 0.0 cuts nothing away, a cut of 1.0 |
351 | cuts everything away. */ |
372 | cuts everything away. */ |
352 | typedef struct psiconv_sketch_section { |
373 | typedef struct psiconv_sketch_section_s |
|
|
374 | { |
353 | psiconv_u16 form_xsize; |
375 | psiconv_u16 form_xsize; |
354 | psiconv_u16 form_ysize; |
376 | psiconv_u16 form_ysize; |
355 | psiconv_u16 picture_x_offset; |
377 | psiconv_u16 picture_x_offset; |
356 | psiconv_u16 picture_y_offset; |
378 | psiconv_u16 picture_y_offset; |
357 | psiconv_u16 picture_xsize; |
379 | psiconv_u16 picture_xsize; |
… | |
… | |
363 | float cut_top; /* computed relative to first six values */ |
385 | float cut_top; /* computed relative to first six values */ |
364 | float cut_bottom; /* computed relative to first six values */ |
386 | float cut_bottom; /* computed relative to first six values */ |
365 | psiconv_paint_data_section picture; |
387 | psiconv_paint_data_section picture; |
366 | } *psiconv_sketch_section; |
388 | } *psiconv_sketch_section; |
367 | |
389 | |
368 | typedef struct psiconv_sketch_f { |
390 | typedef struct psiconv_sketch_f_s |
|
|
391 | { |
369 | psiconv_sketch_section sketch_sec; |
392 | psiconv_sketch_section sketch_sec; |
370 | } *psiconv_sketch_f; |
393 | } *psiconv_sketch_f; |
371 | |
394 | |
372 | typedef struct psiconv_clipart_section { |
395 | typedef struct psiconv_clipart_section_s |
|
|
396 | { |
373 | /* Perhaps later on some currently unknown stuff. */ |
397 | /* Perhaps later on some currently unknown stuff. */ |
374 | psiconv_paint_data_section picture; |
398 | psiconv_paint_data_section picture; |
375 | } * psiconv_clipart_section; |
399 | } * psiconv_clipart_section; |
376 | |
400 | |
377 | typedef psiconv_list psiconv_cliparts; /* of struct psiconv_clipart_section */ |
401 | typedef psiconv_list psiconv_cliparts; /* of struct psiconv_clipart_section */ |
378 | |
402 | |
379 | typedef struct psiconv_clipart_f { |
403 | typedef struct psiconv_clipart_f_s |
|
|
404 | { |
380 | psiconv_cliparts sections; |
405 | psiconv_cliparts sections; |
381 | } *psiconv_clipart_f; |
406 | } *psiconv_clipart_f; |
382 | |
407 | |
|
|
408 | typedef struct psiconv_sheet_status_section_s |
|
|
409 | { |
|
|
410 | psiconv_bool_t show_graph; |
|
|
411 | psiconv_u32 cursor_row; |
|
|
412 | psiconv_u32 cursor_column; |
|
|
413 | psiconv_bool_t show_top_sheet_toolbar; |
|
|
414 | psiconv_bool_t show_side_sheet_toolbar; |
|
|
415 | psiconv_bool_t show_top_graph_toolbar; |
|
|
416 | psiconv_bool_t show_side_graph_toolbar; |
|
|
417 | psiconv_u32 sheet_display_size; |
|
|
418 | psiconv_u32 graph_display_size; |
|
|
419 | psiconv_triple_t show_horizontal_scrollbar; |
|
|
420 | psiconv_triple_t show_vertical_scrollbar; |
|
|
421 | } *psiconv_sheet_status_section; |
|
|
422 | |
|
|
423 | typedef struct psiconv_sheet_f_s |
|
|
424 | { |
|
|
425 | psiconv_page_layout_section page_sec; |
|
|
426 | psiconv_sheet_status_section status_sec; |
|
|
427 | } *psiconv_sheet_f; |
|
|
428 | |
383 | typedef struct psiconv_file { |
429 | typedef struct psiconv_file_s |
|
|
430 | { |
384 | psiconv_file_type_t type; |
431 | psiconv_file_type_t type; |
385 | void *file; |
432 | void *file; |
386 | } *psiconv_file; |
433 | } *psiconv_file; |
387 | |
434 | |
388 | |
435 | |
… | |
… | |
394 | #define PSICONV_ID_MBM_FILE 0x10000042 |
441 | #define PSICONV_ID_MBM_FILE 0x10000042 |
395 | /* UID3 */ |
442 | /* UID3 */ |
396 | #define PSICONV_ID_WORD 0x1000007F |
443 | #define PSICONV_ID_WORD 0x1000007F |
397 | #define PSICONV_ID_TEXTED 0x10000085 |
444 | #define PSICONV_ID_TEXTED 0x10000085 |
398 | #define PSICONV_ID_SKETCH 0x1000007D |
445 | #define PSICONV_ID_SKETCH 0x1000007D |
|
|
446 | #define PSICONV_ID_SHEET 0x10000088 |
399 | |
447 | |
400 | /* Section table ids */ |
448 | /* Section table ids */ |
401 | #define PSICONV_ID_WORD_STATUS_SECTION 0x10000243 |
449 | #define PSICONV_ID_WORD_STATUS_SECTION 0x10000243 |
402 | #define PSICONV_ID_APPL_ID_SECTION 0x10000089 |
450 | #define PSICONV_ID_APPL_ID_SECTION 0x10000089 |
403 | #define PSICONV_ID_TEXT_SECTION 0x10000106 |
451 | #define PSICONV_ID_TEXT_SECTION 0x10000106 |
404 | #define PSICONV_ID_LAYOUT_SECTION 0x10000143 |
452 | #define PSICONV_ID_LAYOUT_SECTION 0x10000143 |
405 | #define PSICONV_ID_WORD_STYLES_SECTION 0x10000104 |
453 | #define PSICONV_ID_WORD_STYLES_SECTION 0x10000104 |
406 | #define PSICONV_ID_PAGE_LAYOUT_SECTION 0x10000105 |
454 | #define PSICONV_ID_PAGE_LAYOUT_SECTION 0x10000105 |
407 | #define PSICONV_ID_PASSWORD_SECTION 0x100000CD |
455 | #define PSICONV_ID_PASSWORD_SECTION 0x100000CD |
408 | #define PSICONV_ID_SKETCH_SECTION 0x1000007D |
456 | #define PSICONV_ID_SKETCH_SECTION 0x1000007D |
|
|
457 | #define PSICONV_ID_SHEET_STATUS_SECTION 0x1000011F |
409 | |
458 | |
410 | /* Other ids */ |
459 | /* Other ids */ |
411 | #define PSICONV_ID_PAGE_DIMENSIONS 0x100000fd |
460 | #define PSICONV_ID_PAGE_DIMENSIONS1 0x100000fd |
|
|
461 | #define PSICONV_ID_PAGE_DIMENSIONS2 0x1000010e |
412 | #define PSICONV_ID_TEXTED_BODY 0x1000005c |
462 | #define PSICONV_ID_TEXTED_BODY 0x1000005c |
413 | #define PSICONV_ID_TEXTED_REPLACEMENT 0x10000063 |
463 | #define PSICONV_ID_TEXTED_REPLACEMENT 0x10000063 |
414 | #define PSICONV_ID_TEXTED_UNKNOWN 0x10000065 |
464 | #define PSICONV_ID_TEXTED_UNKNOWN 0x10000065 |
415 | #define PSICONV_ID_TEXTED_LAYOUT 0x10000066 |
465 | #define PSICONV_ID_TEXTED_LAYOUT 0x10000066 |
416 | #define PSICONV_ID_TEXTED_TEXT 0x10000064 |
466 | #define PSICONV_ID_TEXTED_TEXT 0x10000064 |
417 | #define PSICONV_ID_STYLE_REMOVABLE 0x1000004F |
467 | #define PSICONV_ID_STYLE_REMOVABLE 0x1000004F |
418 | #define PSICONV_ID_STYLE_BUILT_IN 0x1000004C |
468 | #define PSICONV_ID_STYLE_BUILT_IN 0x1000004C |
419 | #define PSICONV_ID_CLIPART_ITEM 0x10000040 |
469 | #define PSICONV_ID_CLIPART_ITEM 0x10000040 |
420 | |
470 | |
421 | |
471 | |
422 | /* Return a clean layout_status. You can modify it at will */ |
472 | /* Return a clean layout_status. You can modify it at will. Returns NULL |
|
|
473 | if there is not enough memory. */ |
423 | extern psiconv_character_layout psiconv_basic_character_layout(void); |
474 | extern psiconv_character_layout psiconv_basic_character_layout(void); |
424 | |
475 | |
425 | /* Return a clean layout_status. You can modify it at will */ |
476 | /* Return a clean layout_status. You can modify it at will. Returns NULL |
|
|
477 | if there is not enough memory. */ |
426 | extern psiconv_paragraph_layout psiconv_basic_paragraph_layout(void); |
478 | extern psiconv_paragraph_layout psiconv_basic_paragraph_layout(void); |
427 | |
479 | |
428 | /* Clone a layout_status: the new copy is completely independent of the |
480 | /* Clone a layout_status: the new copy is completely independent of the |
429 | original one */ |
481 | original one. Returns NULL if there is not enough memory. */ |
430 | extern psiconv_paragraph_layout psiconv_clone_paragraph_layout |
482 | extern psiconv_paragraph_layout psiconv_clone_paragraph_layout |
431 | (psiconv_paragraph_layout ls); |
483 | (psiconv_paragraph_layout ls); |
432 | |
484 | |
433 | extern psiconv_character_layout psiconv_clone_character_layout |
485 | extern psiconv_character_layout psiconv_clone_character_layout |
434 | (psiconv_character_layout ls); |
486 | (psiconv_character_layout ls); |
435 | |
487 | |
436 | /* Get a numbered style */ |
488 | /* Get a numbered style. Returns NULL if the style is unknown. */ |
437 | extern psiconv_word_style psiconv_get_style (psiconv_word_styles_section ss, int nr); |
489 | extern psiconv_word_style psiconv_get_style (psiconv_word_styles_section ss, int nr); |
438 | |
490 | |
439 | extern void psiconv_free_color(psiconv_color color); |
491 | extern void psiconv_free_color(psiconv_color color); |
440 | extern void psiconv_free_border(psiconv_border border); |
492 | extern void psiconv_free_border(psiconv_border border); |
441 | extern void psiconv_free_bullet(psiconv_bullet bullet); |
493 | extern void psiconv_free_bullet(psiconv_bullet bullet); |
… | |
… | |
445 | extern void psiconv_free_paragraph_layout(psiconv_paragraph_layout layout); |
497 | extern void psiconv_free_paragraph_layout(psiconv_paragraph_layout layout); |
446 | extern void psiconv_free_character_layout(psiconv_character_layout layout); |
498 | extern void psiconv_free_character_layout(psiconv_character_layout layout); |
447 | extern void psiconv_free_word_style(psiconv_word_style style); |
499 | extern void psiconv_free_word_style(psiconv_word_style style); |
448 | extern void psiconv_free_word_styles_section |
500 | extern void psiconv_free_word_styles_section |
449 | (psiconv_word_styles_section styles); |
501 | (psiconv_word_styles_section styles); |
|
|
502 | extern void psiconv_free_sheet_status_section |
|
|
503 | (psiconv_sheet_status_section section); |
|
|
504 | extern void psiconv_free_sheet_f(psiconv_sheet_f file); |
450 | extern void psiconv_free_header_section(psiconv_header_section header); |
505 | extern void psiconv_free_header_section(psiconv_header_section header); |
451 | extern void psiconv_free_section_table_entry(psiconv_section_table_entry entry); |
506 | extern void psiconv_free_section_table_entry(psiconv_section_table_entry entry); |
452 | extern void psiconv_free_section_table_section |
507 | extern void psiconv_free_section_table_section |
453 | (psiconv_section_table_section section); |
508 | (psiconv_section_table_section section); |
454 | extern void psiconv_free_application_id_section |
509 | extern void psiconv_free_application_id_section |
… | |
… | |
476 | extern void psiconv_free_sketch_f(psiconv_sketch_f file); |
531 | extern void psiconv_free_sketch_f(psiconv_sketch_f file); |
477 | extern void psiconv_free_clipart_section(psiconv_clipart_section section); |
532 | extern void psiconv_free_clipart_section(psiconv_clipart_section section); |
478 | extern void psiconv_free_cliparts(psiconv_cliparts section); |
533 | extern void psiconv_free_cliparts(psiconv_cliparts section); |
479 | extern void psiconv_free_clipart_f(psiconv_clipart_f file); |
534 | extern void psiconv_free_clipart_f(psiconv_clipart_f file); |
480 | |
535 | |
481 | |
|
|
482 | extern void psiconv_free_file(psiconv_file file); |
536 | extern void psiconv_free_file(psiconv_file file); |
|
|
537 | |
|
|
538 | extern int psiconv_compare_color(const psiconv_color value1, |
|
|
539 | const psiconv_color value2); |
|
|
540 | extern int psiconv_compare_font(const psiconv_font value1, |
|
|
541 | const psiconv_font value2); |
|
|
542 | extern int psiconv_compare_border(const psiconv_border value1, |
|
|
543 | const psiconv_border value2); |
|
|
544 | extern int psiconv_compare_bullet(const psiconv_bullet value1, |
|
|
545 | const psiconv_bullet value2); |
|
|
546 | extern int psiconv_compare_tab(const psiconv_tab value1, |
|
|
547 | const psiconv_tab value2); |
|
|
548 | extern int psiconv_compare_all_tabs(const psiconv_all_tabs value1, |
|
|
549 | const psiconv_all_tabs value2); |
|
|
550 | extern int psiconv_compare_paragraph_layout |
|
|
551 | (const psiconv_paragraph_layout value1, |
|
|
552 | const psiconv_paragraph_layout value2); |
|
|
553 | |
|
|
554 | extern int psiconv_compare_character_layout |
|
|
555 | (const psiconv_character_layout value1, |
|
|
556 | const psiconv_character_layout value2); |
|
|
557 | |
|
|
558 | /* Get a newly allocated file with sensible defaults, ready to generate. */ |
|
|
559 | extern psiconv_file psiconv_empty_file(psiconv_file_type_t type); |
|
|
560 | |
483 | |
561 | |
484 | #ifdef __cplusplus |
562 | #ifdef __cplusplus |
485 | } |
563 | } |
486 | #endif /* __cplusplus */ |
564 | #endif /* __cplusplus */ |
487 | |
565 | |