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 | |
|
|
33 | #ifdef __cplusplus |
|
|
34 | extern "C" { |
|
|
35 | #endif /* __cplusplus */ |
|
|
36 | |
|
|
37 | /* Forward declaration (for psiconv_embedded_object_section) */ |
|
|
38 | typedef struct psiconv_file_s *psiconv_file; |
|
|
39 | |
|
|
40 | typedef double psiconv_float_t; |
32 | |
41 | |
33 | typedef enum psiconv_file_type { |
42 | typedef enum psiconv_file_type { |
34 | psiconv_unknown_file, |
43 | psiconv_unknown_file, |
35 | psiconv_word_file, |
44 | psiconv_word_file, |
36 | psiconv_texted_file, |
45 | psiconv_texted_file, |
37 | psiconv_mbm_file, |
46 | psiconv_mbm_file, |
38 | psiconv_sketch_file, |
47 | psiconv_sketch_file, |
39 | psiconv_clipart_file |
48 | psiconv_clipart_file, |
|
|
49 | psiconv_sheet_file |
40 | } psiconv_file_type_t; |
50 | } psiconv_file_type_t; |
41 | |
51 | |
42 | /* Length indicators */ |
52 | /* Length indicators */ |
43 | typedef psiconv_u32 psiconv_S_t; |
53 | typedef psiconv_u32 psiconv_S_t; |
44 | typedef psiconv_u32 psiconv_X_t; |
54 | typedef psiconv_u32 psiconv_X_t; |
… | |
… | |
55 | typedef enum psiconv_bool |
65 | typedef enum psiconv_bool |
56 | { |
66 | { |
57 | psiconv_bool_false, |
67 | psiconv_bool_false, |
58 | psiconv_bool_true |
68 | psiconv_bool_true |
59 | } psiconv_bool_t; |
69 | } psiconv_bool_t; |
|
|
70 | |
|
|
71 | typedef enum psiconv_triple |
|
|
72 | { |
|
|
73 | psiconv_triple_on, |
|
|
74 | psiconv_triple_off, |
|
|
75 | psiconv_triple_auto |
|
|
76 | } psiconv_triple_t; |
60 | |
77 | |
61 | typedef enum psiconv_super_sub |
78 | typedef enum psiconv_super_sub |
62 | { psiconv_normalscript, |
79 | { psiconv_normalscript, |
63 | psiconv_superscript, |
80 | psiconv_superscript, |
64 | psiconv_subscript |
81 | psiconv_subscript |
… | |
… | |
80 | typedef enum psiconv_border_kind |
97 | typedef enum psiconv_border_kind |
81 | { psiconv_border_none, |
98 | { psiconv_border_none, |
82 | psiconv_border_solid, |
99 | psiconv_border_solid, |
83 | psiconv_border_double, |
100 | psiconv_border_double, |
84 | psiconv_border_dotted, |
101 | psiconv_border_dotted, |
85 | psiconv_border_striped, |
102 | psiconv_border_dashed, |
86 | psiconv_border_dotstripe, |
103 | psiconv_border_dotdashed, |
87 | psiconv_border_dotdotstripe |
104 | psiconv_border_dotdotdashed |
88 | } psiconv_border_kind_t; |
105 | } psiconv_border_kind_t; |
|
|
106 | |
|
|
107 | typedef enum psiconv_screenfont |
|
|
108 | { |
|
|
109 | psiconv_font_misc, |
|
|
110 | psiconv_font_sansserif, |
|
|
111 | psiconv_font_nonprop, |
|
|
112 | psiconv_font_serif |
|
|
113 | } psiconv_screenfont_t; |
89 | |
114 | |
90 | /* Colors. |
115 | /* Colors. |
91 | black: 0x00 0x00 0x00 |
116 | black: 0x00 0x00 0x00 |
92 | white: 0xff 0xff 0xff */ |
117 | white: 0xff 0xff 0xff */ |
93 | typedef struct psiconv_color |
118 | typedef struct psiconv_color_s |
94 | { |
119 | { |
95 | psiconv_u8 red; |
120 | psiconv_u8 red; |
96 | psiconv_u8 green; |
121 | psiconv_u8 green; |
97 | psiconv_u8 blue; |
122 | psiconv_u8 blue; |
98 | } * psiconv_color; |
123 | } * psiconv_color; |
99 | |
124 | |
100 | typedef struct psiconv_font |
125 | typedef struct psiconv_font_s |
101 | { |
126 | { |
102 | char *name; |
127 | char *name; |
103 | psiconv_u8 screenfont; |
128 | psiconv_screenfont_t screenfont; |
104 | } *psiconv_font; |
129 | } *psiconv_font; |
105 | |
130 | |
106 | typedef struct psiconv_border |
131 | typedef struct psiconv_border_s |
107 | { |
132 | { |
108 | psiconv_border_kind_t kind; |
133 | psiconv_border_kind_t kind; |
109 | psiconv_size_t thickness; /* Set to 1/20 for non-solid lines */ |
134 | psiconv_size_t thickness; /* Set to 1/20 for non-solid lines */ |
110 | psiconv_color color; |
135 | psiconv_color color; |
111 | } *psiconv_border; |
136 | } *psiconv_border; |
112 | |
137 | |
113 | typedef struct psiconv_bullet |
138 | typedef struct psiconv_bullet_s |
114 | { |
139 | { |
115 | psiconv_bool_t on; |
140 | psiconv_bool_t on; |
116 | psiconv_size_t font_size; |
141 | psiconv_size_t font_size; |
117 | psiconv_u8 character; |
142 | psiconv_u8 character; |
118 | psiconv_bool_t indent; |
143 | psiconv_bool_t indent; |
… | |
… | |
125 | psiconv_tab_left, |
150 | psiconv_tab_left, |
126 | psiconv_tab_centre, |
151 | psiconv_tab_centre, |
127 | psiconv_tab_right |
152 | psiconv_tab_right |
128 | } psiconv_tab_kind_t; |
153 | } psiconv_tab_kind_t; |
129 | |
154 | |
130 | typedef struct psiconv_tab |
155 | typedef struct psiconv_tab_s |
131 | { |
156 | { |
132 | psiconv_length_t location; |
157 | psiconv_length_t location; |
133 | psiconv_tab_kind_t kind; |
158 | psiconv_tab_kind_t kind; |
134 | } *psiconv_tab; |
159 | } *psiconv_tab; |
135 | |
160 | |
136 | |
161 | |
137 | typedef psiconv_list psiconv_tab_list; /* of struct psiconv_tab */ |
162 | typedef psiconv_list psiconv_tab_list; /* of struct psiconv_tab */ |
138 | |
163 | |
139 | typedef struct psiconv_all_tabs |
164 | typedef struct psiconv_all_tabs_s |
140 | { |
165 | { |
141 | psiconv_length_t normal; |
166 | psiconv_length_t normal; |
142 | psiconv_tab_list extras; |
167 | psiconv_tab_list extras; |
143 | } *psiconv_all_tabs; |
168 | } *psiconv_all_tabs; |
144 | |
169 | |
145 | typedef struct psiconv_character_layout |
170 | typedef struct psiconv_character_layout_s |
146 | { |
171 | { |
147 | psiconv_color color; |
172 | psiconv_color color; |
148 | psiconv_color back_color; |
173 | psiconv_color back_color; |
149 | psiconv_size_t font_size; |
174 | psiconv_size_t font_size; |
150 | psiconv_bool_t italic; |
175 | psiconv_bool_t italic; |
151 | psiconv_bool_t bold; |
176 | psiconv_bool_t bold; |
152 | psiconv_super_sub_t super_sub; |
177 | psiconv_super_sub_t super_sub; |
153 | psiconv_bool_t underline; |
178 | psiconv_bool_t underline; |
154 | psiconv_bool_t strike_out; |
179 | psiconv_bool_t strikethrough; |
155 | psiconv_font font; |
180 | psiconv_font font; |
156 | } *psiconv_character_layout; |
181 | } *psiconv_character_layout; |
157 | |
182 | |
158 | typedef struct psiconv_paragraph_layout |
183 | typedef struct psiconv_paragraph_layout_s |
159 | { |
184 | { |
160 | psiconv_color back_color; |
185 | psiconv_color back_color; |
161 | psiconv_length_t indent_left; |
186 | psiconv_length_t indent_left; |
162 | psiconv_length_t indent_right; |
187 | psiconv_length_t indent_right; |
163 | psiconv_length_t indent_first; |
188 | psiconv_length_t indent_first; |
164 | psiconv_justify_hor_t justify_hor; |
189 | psiconv_justify_hor_t justify_hor; |
165 | psiconv_justify_ver_t justify_ver; |
190 | psiconv_justify_ver_t justify_ver; |
166 | psiconv_size_t interline; |
191 | psiconv_size_t linespacing; |
167 | psiconv_bool_t interline_exact; |
192 | psiconv_bool_t linespacing_exact; |
168 | psiconv_size_t top_space; |
193 | psiconv_size_t space_above; |
169 | psiconv_size_t bottom_space; |
194 | psiconv_size_t space_below; |
170 | psiconv_bool_t on_one_page; |
195 | psiconv_bool_t keep_together; |
171 | psiconv_bool_t together_with; /* What the heck is this? */ |
196 | psiconv_bool_t keep_with_next; |
172 | psiconv_bool_t on_next_page; |
197 | psiconv_bool_t on_next_page; |
173 | psiconv_bool_t no_widow_protection; |
198 | psiconv_bool_t no_widow_protection; |
|
|
199 | psiconv_bool_t wrap_to_fit_cell; |
174 | psiconv_length_t border_distance; |
200 | psiconv_length_t border_distance; |
175 | psiconv_bullet bullet; |
201 | psiconv_bullet bullet; |
176 | psiconv_border left_border; |
202 | psiconv_border left_border; |
177 | psiconv_border right_border; |
203 | psiconv_border right_border; |
178 | psiconv_border top_border; |
204 | psiconv_border top_border; |
179 | psiconv_border bottom_border; |
205 | psiconv_border bottom_border; |
180 | psiconv_all_tabs tabs; |
206 | psiconv_all_tabs tabs; |
181 | } *psiconv_paragraph_layout; |
207 | } *psiconv_paragraph_layout; |
182 | |
208 | |
183 | typedef struct psiconv_header_section |
209 | typedef struct psiconv_header_section_s |
184 | { |
210 | { |
185 | psiconv_u32 uid1; |
211 | psiconv_u32 uid1; |
186 | psiconv_u32 uid2; |
212 | psiconv_u32 uid2; |
187 | psiconv_u32 uid3; |
213 | psiconv_u32 uid3; |
188 | psiconv_u32 checksum; |
214 | psiconv_u32 checksum; |
189 | psiconv_file_type_t file; |
215 | psiconv_file_type_t file; |
190 | } *psiconv_header_section; |
216 | } *psiconv_header_section; |
191 | |
217 | |
192 | typedef struct psiconv_section_table_entry |
218 | typedef struct psiconv_section_table_entry_s |
193 | { |
219 | { |
194 | psiconv_u32 id; |
220 | psiconv_u32 id; |
195 | psiconv_u32 offset; |
221 | psiconv_u32 offset; |
196 | } *psiconv_section_table_entry; |
222 | } *psiconv_section_table_entry; |
197 | |
223 | |
198 | typedef psiconv_list psiconv_section_table_section; |
224 | typedef psiconv_list psiconv_section_table_section; |
199 | /* Of struct sectiontable_entry */ |
225 | /* Of struct sectiontable_entry */ |
200 | |
226 | |
201 | typedef struct psiconv_application_id_section |
227 | typedef struct psiconv_application_id_section_s |
202 | { |
228 | { |
203 | psiconv_u32 id; |
229 | psiconv_u32 id; |
204 | psiconv_string_t name; |
230 | psiconv_string_t name; |
205 | } *psiconv_application_id_section; |
231 | } *psiconv_application_id_section; |
206 | |
232 | |
|
|
233 | typedef struct psiconv_object_icon_section_s |
|
|
234 | { |
|
|
235 | psiconv_length_t icon_width; |
|
|
236 | psiconv_length_t icon_height; |
|
|
237 | psiconv_string_t icon_name; |
|
|
238 | } *psiconv_object_icon_section; |
|
|
239 | |
|
|
240 | typedef struct psiconv_object_display_section_s |
|
|
241 | { |
|
|
242 | psiconv_bool_t show_icon; |
|
|
243 | psiconv_length_t width; |
|
|
244 | psiconv_length_t height; |
|
|
245 | } *psiconv_object_display_section; |
|
|
246 | |
|
|
247 | typedef struct psiconv_embedded_object_section_s |
|
|
248 | { |
|
|
249 | psiconv_object_icon_section icon; |
|
|
250 | psiconv_object_display_section display; |
|
|
251 | psiconv_file object; |
|
|
252 | } *psiconv_embedded_object_section; |
|
|
253 | |
207 | typedef struct psiconv_in_line_layout |
254 | typedef struct psiconv_in_line_layout_s |
208 | { |
255 | { |
209 | psiconv_character_layout layout; |
256 | psiconv_character_layout layout; |
210 | int length; |
257 | int length; |
|
|
258 | /* If object is NULL, this does not apply to an object */ |
|
|
259 | psiconv_embedded_object_section object; |
|
|
260 | psiconv_length_t object_width; |
|
|
261 | psiconv_length_t object_height; |
211 | } *psiconv_in_line_layout; |
262 | } *psiconv_in_line_layout; |
212 | |
263 | |
213 | typedef psiconv_list psiconv_in_line_layouts; /* of struct in_line_layout */ |
264 | typedef psiconv_list psiconv_in_line_layouts; /* of struct in_line_layout */ |
214 | |
265 | |
215 | typedef enum psiconv_replacement_type |
266 | typedef enum psiconv_replacement_type |
… | |
… | |
219 | psiconv_replace_pagenr, |
270 | psiconv_replace_pagenr, |
220 | psiconv_replace_nr_of_pages, |
271 | psiconv_replace_nr_of_pages, |
221 | psiconv_replace_filename |
272 | psiconv_replace_filename |
222 | } psiconv_replacement_type_t; |
273 | } psiconv_replacement_type_t; |
223 | |
274 | |
224 | typedef struct psiconv_replacement |
275 | typedef struct psiconv_replacement_s |
225 | { |
276 | { |
226 | int offset; |
277 | int offset; |
227 | int cur_len; |
278 | int cur_len; |
228 | psiconv_replacement_type_t type; |
279 | psiconv_replacement_type_t type; |
229 | } *psiconv_replacement; |
280 | } *psiconv_replacement; |
230 | |
281 | |
231 | typedef psiconv_list psiconv_replacements; /* of struct replacement */ |
282 | typedef psiconv_list psiconv_replacements; /* of struct replacement */ |
232 | |
283 | |
233 | typedef struct psiconv_paragraph |
284 | typedef struct psiconv_paragraph_s |
234 | { |
285 | { |
235 | char *text; |
286 | char *text; |
236 | psiconv_character_layout base_character; |
287 | psiconv_character_layout base_character; |
237 | psiconv_paragraph_layout base_paragraph; |
288 | psiconv_paragraph_layout base_paragraph; |
238 | psiconv_s16 base_style; |
289 | psiconv_s16 base_style; |
… | |
… | |
240 | psiconv_replacements replacements; |
291 | psiconv_replacements replacements; |
241 | } *psiconv_paragraph; |
292 | } *psiconv_paragraph; |
242 | |
293 | |
243 | typedef psiconv_list psiconv_text_and_layout; /* Of struct paragraphs */ |
294 | typedef psiconv_list psiconv_text_and_layout; /* Of struct paragraphs */ |
244 | |
295 | |
245 | typedef struct psiconv_texted_section |
296 | typedef struct psiconv_texted_section_s |
246 | { |
297 | { |
247 | psiconv_text_and_layout paragraphs; |
298 | psiconv_text_and_layout paragraphs; |
248 | } *psiconv_texted_section; |
299 | } *psiconv_texted_section; |
249 | |
300 | |
250 | typedef struct psiconv_page_header |
301 | typedef struct psiconv_page_header_s |
251 | { |
302 | { |
252 | psiconv_bool_t on_first_page; |
303 | psiconv_bool_t on_first_page; |
253 | psiconv_paragraph_layout base_paragraph_layout; |
304 | psiconv_paragraph_layout base_paragraph_layout; |
254 | psiconv_character_layout base_character_layout; |
305 | psiconv_character_layout base_character_layout; |
255 | psiconv_texted_section text; |
306 | psiconv_texted_section text; |
256 | } *psiconv_page_header; |
307 | } *psiconv_page_header; |
257 | |
308 | |
258 | typedef struct psiconv_page_layout_section |
309 | typedef struct psiconv_page_layout_section_s |
259 | { |
310 | { |
260 | psiconv_u32 first_page_nr; |
311 | psiconv_u32 first_page_nr; |
261 | psiconv_length_t header_dist; |
312 | psiconv_length_t header_dist; |
262 | psiconv_length_t footer_dist; |
313 | psiconv_length_t footer_dist; |
263 | psiconv_length_t left_margin; |
314 | psiconv_length_t left_margin; |
… | |
… | |
266 | psiconv_length_t bottom_margin; |
317 | psiconv_length_t bottom_margin; |
267 | psiconv_length_t page_width; |
318 | psiconv_length_t page_width; |
268 | psiconv_length_t page_height; |
319 | psiconv_length_t page_height; |
269 | psiconv_page_header header; |
320 | psiconv_page_header header; |
270 | psiconv_page_header footer; |
321 | psiconv_page_header footer; |
|
|
322 | psiconv_bool_t landscape; |
271 | } * psiconv_page_layout_section; |
323 | } * psiconv_page_layout_section; |
272 | |
324 | |
273 | typedef struct psiconv_word_status_section |
325 | typedef struct psiconv_word_status_section_s |
274 | { |
326 | { |
275 | psiconv_bool_t show_tabs; |
327 | psiconv_bool_t show_tabs; |
276 | psiconv_bool_t show_spaces; |
328 | psiconv_bool_t show_spaces; |
277 | psiconv_bool_t show_paragraph_ends; |
329 | psiconv_bool_t show_paragraph_ends; |
278 | psiconv_bool_t show_line_breaks; |
330 | psiconv_bool_t show_line_breaks; |
… | |
… | |
285 | psiconv_bool_t fit_lines_to_screen; |
337 | psiconv_bool_t fit_lines_to_screen; |
286 | psiconv_u32 cursor_position; |
338 | psiconv_u32 cursor_position; |
287 | psiconv_u32 display_size; |
339 | psiconv_u32 display_size; |
288 | } *psiconv_word_status_section; |
340 | } *psiconv_word_status_section; |
289 | |
341 | |
290 | typedef struct psiconv_word_style |
342 | typedef struct psiconv_word_style_s |
291 | { |
343 | { |
292 | psiconv_character_layout character; |
344 | psiconv_character_layout character; |
293 | psiconv_paragraph_layout paragraph; |
345 | psiconv_paragraph_layout paragraph; |
294 | psiconv_u8 hotkey; |
346 | psiconv_u8 hotkey; |
295 | psiconv_string_t name; |
347 | psiconv_string_t name; |
… | |
… | |
297 | psiconv_u32 outline_level; |
349 | psiconv_u32 outline_level; |
298 | } *psiconv_word_style; |
350 | } *psiconv_word_style; |
299 | |
351 | |
300 | typedef psiconv_list psiconv_word_style_list; /* Of style */ |
352 | typedef psiconv_list psiconv_word_style_list; /* Of style */ |
301 | |
353 | |
302 | typedef struct psiconv_word_styles_section |
354 | typedef struct psiconv_word_styles_section_s |
303 | { |
355 | { |
304 | psiconv_word_style normal; |
356 | psiconv_word_style normal; |
305 | psiconv_word_style_list styles; |
357 | psiconv_word_style_list styles; |
306 | } *psiconv_word_styles_section; |
358 | } *psiconv_word_styles_section; |
307 | |
359 | |
308 | typedef struct psiconv_word_f { |
360 | typedef struct psiconv_word_f_s |
|
|
361 | { |
309 | psiconv_page_layout_section page_sec; |
362 | psiconv_page_layout_section page_sec; |
310 | psiconv_text_and_layout paragraphs; |
363 | psiconv_text_and_layout paragraphs; |
311 | psiconv_word_status_section status_sec; |
364 | psiconv_word_status_section status_sec; |
312 | psiconv_word_styles_section styles_sec; |
365 | psiconv_word_styles_section styles_sec; |
313 | } *psiconv_word_f; |
366 | } *psiconv_word_f; |
314 | |
367 | |
315 | typedef struct psiconv_texted_f { |
368 | typedef struct psiconv_texted_f_s |
|
|
369 | { |
316 | psiconv_page_layout_section page_sec; |
370 | psiconv_page_layout_section page_sec; |
317 | psiconv_texted_section texted_sec; |
371 | psiconv_texted_section texted_sec; |
318 | } *psiconv_texted_f; |
372 | } *psiconv_texted_f; |
319 | |
373 | |
320 | typedef psiconv_list psiconv_jumptable_section; /* of psiconv_u32 */ |
374 | typedef psiconv_list psiconv_jumptable_section; /* of psiconv_u32 */ |
321 | |
375 | |
322 | /* Normalized values [0..1] for each component |
376 | /* Normalized values [0..1] for each component |
323 | Origin is (x,y)=(0,0), to get pixel at (X,Y) use index [Y*xsize+X] */ |
377 | Origin is (x,y)=(0,0), to get pixel at (X,Y) use index [Y*xsize+X] */ |
324 | typedef struct psiconv_paint_data_section { |
378 | typedef struct psiconv_paint_data_section_s |
|
|
379 | { |
325 | psiconv_u32 xsize; |
380 | psiconv_u32 xsize; |
326 | psiconv_u32 ysize; |
381 | psiconv_u32 ysize; |
327 | psiconv_length_t pic_xsize; /* 0 if not specified */ |
382 | psiconv_length_t pic_xsize; /* 0 if not specified */ |
328 | psiconv_length_t pic_ysize; /* 0 if not specified */ |
383 | psiconv_length_t pic_ysize; /* 0 if not specified */ |
329 | float *red; |
384 | float *red; |
… | |
… | |
332 | } *psiconv_paint_data_section; |
387 | } *psiconv_paint_data_section; |
333 | |
388 | |
334 | typedef psiconv_list psiconv_pictures; |
389 | typedef psiconv_list psiconv_pictures; |
335 | /* of struct psiconv_paint_data_section */ |
390 | /* of struct psiconv_paint_data_section */ |
336 | |
391 | |
337 | typedef struct psiconv_mbm_f { |
392 | typedef struct psiconv_mbm_f_s |
|
|
393 | { |
338 | psiconv_pictures sections; |
394 | psiconv_pictures sections; |
339 | } *psiconv_mbm_f; |
395 | } *psiconv_mbm_f; |
340 | |
396 | |
341 | /* This is a little intricated. A picture may be embedded in a larger form. |
397 | /* Read the Psiconv file format documentation for a complete discription. |
342 | A form is empty, except for the picture. The form has size form_{x,y}size, |
398 | Basic idea: a picture has a certain display size. Within it, the pixel |
343 | and the picture is at offset picture_{x,y}_offset within the form. The |
399 | data begins at a certain offset. Around it, there is an empty form. |
344 | picture itself has size picture_{x,y}size. |
400 | The first eight values are before magnification and cuts. |
345 | Cuts are always <= 1.0; a cut of 0.0 cuts nothing away, a cut of 1.0 |
401 | Cuts are always <= 1.0; a cut of 0.0 cuts nothing away, a cut of 1.0 |
346 | cuts everything away. */ |
402 | cuts everything away. */ |
347 | typedef struct psiconv_sketch_section { |
403 | typedef struct psiconv_sketch_section_s |
|
|
404 | { |
|
|
405 | psiconv_u16 displayed_xsize; |
|
|
406 | psiconv_u16 displayed_ysize; |
|
|
407 | psiconv_u16 picture_data_x_offset; |
|
|
408 | psiconv_u16 picture_data_y_offset; |
348 | psiconv_u16 form_xsize; |
409 | psiconv_u16 form_xsize; |
349 | psiconv_u16 form_ysize; |
410 | psiconv_u16 form_ysize; |
350 | psiconv_u16 picture_x_offset; |
411 | psiconv_u16 displayed_size_x_offset; |
351 | psiconv_u16 picture_y_offset; |
412 | psiconv_u16 displayed_size_y_offset; |
352 | psiconv_u16 picture_xsize; |
|
|
353 | psiconv_u16 picture_ysize; |
|
|
354 | float magnification_x; /* computed relative to first six values */ |
413 | float magnification_x; /* computed relative to first eight values */ |
355 | float magnification_y; /* computed relative to first six values */ |
414 | float magnification_y; /* computed relative to first eight values */ |
356 | float cut_left; /* computed relative to first six values */ |
415 | float cut_left; /* computed relative to first eight values */ |
357 | float cut_right; /* computed relative to first six values */ |
416 | float cut_right; /* computed relative to first eight values */ |
358 | float cut_top; /* computed relative to first six values */ |
417 | float cut_top; /* computed relative to first eight values */ |
359 | float cut_bottom; /* computed relative to first six values */ |
418 | float cut_bottom; /* computed relative to first eight values */ |
360 | psiconv_paint_data_section picture; |
419 | psiconv_paint_data_section picture; |
361 | } *psiconv_sketch_section; |
420 | } *psiconv_sketch_section; |
362 | |
421 | |
363 | typedef struct psiconv_sketch_f { |
422 | typedef struct psiconv_sketch_f_s |
|
|
423 | { |
364 | psiconv_sketch_section sketch_sec; |
424 | psiconv_sketch_section sketch_sec; |
365 | } *psiconv_sketch_f; |
425 | } *psiconv_sketch_f; |
366 | |
426 | |
367 | typedef struct psiconv_clipart_section { |
427 | typedef struct psiconv_clipart_section_s |
|
|
428 | { |
368 | /* Perhaps later on some currently unknown stuff. */ |
429 | /* Perhaps later on some currently unknown stuff. */ |
369 | psiconv_paint_data_section picture; |
430 | psiconv_paint_data_section picture; |
370 | } * psiconv_clipart_section; |
431 | } * psiconv_clipart_section; |
371 | |
432 | |
372 | typedef psiconv_list psiconv_cliparts; /* of struct psiconv_clipart_section */ |
433 | typedef psiconv_list psiconv_cliparts; /* of struct psiconv_clipart_section */ |
373 | |
434 | |
374 | typedef struct psiconv_clipart_f { |
435 | typedef struct psiconv_clipart_f_s |
|
|
436 | { |
375 | psiconv_cliparts sections; |
437 | psiconv_cliparts sections; |
376 | } *psiconv_clipart_f; |
438 | } *psiconv_clipart_f; |
377 | |
439 | |
|
|
440 | typedef struct psiconv_sheet_ref_s |
|
|
441 | { |
|
|
442 | psiconv_s16 offset; |
|
|
443 | psiconv_bool_t absolute; |
|
|
444 | } psiconv_sheet_ref_t; |
|
|
445 | |
|
|
446 | typedef struct psiconv_sheet_cell_reference_s |
|
|
447 | { |
|
|
448 | psiconv_sheet_ref_t row; |
|
|
449 | psiconv_sheet_ref_t column; |
|
|
450 | } psiconv_sheet_cell_reference_t; |
|
|
451 | |
|
|
452 | typedef struct psiconv_sheet_cell_block_s |
|
|
453 | { |
|
|
454 | psiconv_sheet_cell_reference_t first; |
|
|
455 | psiconv_sheet_cell_reference_t last; |
|
|
456 | } psiconv_sheet_cell_block_t; |
|
|
457 | |
|
|
458 | typedef enum psiconv_cell_type |
|
|
459 | { |
|
|
460 | psiconv_cell_blank, |
|
|
461 | psiconv_cell_int, |
|
|
462 | psiconv_cell_bool, |
|
|
463 | psiconv_cell_error, |
|
|
464 | psiconv_cell_float, |
|
|
465 | psiconv_cell_string |
|
|
466 | } psiconv_cell_type_t; |
|
|
467 | |
|
|
468 | typedef enum psiconv_sheet_errorcode |
|
|
469 | { |
|
|
470 | psiconv_sheet_error_none, |
|
|
471 | psiconv_sheet_error_null, |
|
|
472 | psiconv_sheet_error_divzero, |
|
|
473 | psiconv_sheet_error_value, |
|
|
474 | psiconv_sheet_error_reference, |
|
|
475 | psiconv_sheet_error_name, |
|
|
476 | psiconv_sheet_error_number, |
|
|
477 | psiconv_sheet_error_notavail |
|
|
478 | } psiconv_sheet_errorcode_t; |
|
|
479 | |
|
|
480 | typedef enum psiconv_sheet_numberformat_code |
|
|
481 | { |
|
|
482 | psiconv_numberformat_general, |
|
|
483 | psiconv_numberformat_fixeddecimal, |
|
|
484 | psiconv_numberformat_scientific, |
|
|
485 | psiconv_numberformat_currency, |
|
|
486 | psiconv_numberformat_percent, |
|
|
487 | psiconv_numberformat_triads, |
|
|
488 | psiconv_numberformat_boolean, |
|
|
489 | psiconv_numberformat_text, |
|
|
490 | psiconv_numberformat_date_dmm, |
|
|
491 | psiconv_numberformat_date_mmd, |
|
|
492 | psiconv_numberformat_date_ddmmyy, |
|
|
493 | psiconv_numberformat_date_mmddyy, |
|
|
494 | psiconv_numberformat_date_yymmdd, |
|
|
495 | psiconv_numberformat_date_dmmm, |
|
|
496 | psiconv_numberformat_date_dmmmyy, |
|
|
497 | psiconv_numberformat_date_ddmmmyy, |
|
|
498 | psiconv_numberformat_date_mmm, |
|
|
499 | psiconv_numberformat_date_monthname, |
|
|
500 | psiconv_numberformat_date_mmmyy, |
|
|
501 | psiconv_numberformat_date_monthnameyy, |
|
|
502 | psiconv_numberformat_date_monthnamedyyyy, |
|
|
503 | psiconv_numberformat_datetime_ddmmyyyyhhii, |
|
|
504 | psiconv_numberformat_datetime_ddmmyyyyHHii, |
|
|
505 | psiconv_numberformat_datetime_mmddyyyyhhii, |
|
|
506 | psiconv_numberformat_datetime_mmddyyyyHHii, |
|
|
507 | psiconv_numberformat_datetime_yyyymmddhhii, |
|
|
508 | psiconv_numberformat_datetime_yyyymmddHHii, |
|
|
509 | psiconv_numberformat_time_hhii, |
|
|
510 | psiconv_numberformat_time_hhiiss, |
|
|
511 | psiconv_numberformat_time_HHii, |
|
|
512 | psiconv_numberformat_time_HHiiss |
|
|
513 | } psiconv_sheet_numberformat_code_t; |
|
|
514 | |
|
|
515 | typedef struct psiconv_sheet_numberformat_s |
|
|
516 | { |
|
|
517 | psiconv_sheet_numberformat_code_t code; |
|
|
518 | psiconv_u8 decimal; |
|
|
519 | } *psiconv_sheet_numberformat; |
|
|
520 | |
|
|
521 | typedef struct psiconv_sheet_cell_layout_s |
|
|
522 | { |
|
|
523 | psiconv_character_layout character; |
|
|
524 | psiconv_paragraph_layout paragraph; |
|
|
525 | psiconv_sheet_numberformat numberformat; |
|
|
526 | } * psiconv_sheet_cell_layout; |
|
|
527 | |
|
|
528 | typedef struct psiconv_sheet_cell_s |
|
|
529 | { |
|
|
530 | psiconv_u16 column; |
|
|
531 | psiconv_u16 row; |
|
|
532 | psiconv_cell_type_t type; |
|
|
533 | union { |
|
|
534 | psiconv_u32 dat_int; |
|
|
535 | double dat_float; |
|
|
536 | char *dat_string; |
|
|
537 | psiconv_bool_t dat_bool; |
|
|
538 | psiconv_sheet_errorcode_t dat_error; |
|
|
539 | } data; |
|
|
540 | psiconv_sheet_cell_layout layout; |
|
|
541 | psiconv_bool_t calculated; |
|
|
542 | psiconv_u32 ref_formula; |
|
|
543 | } *psiconv_sheet_cell; |
|
|
544 | |
|
|
545 | typedef psiconv_list psiconv_sheet_cell_list; |
|
|
546 | |
|
|
547 | typedef struct psiconv_sheet_status_section_s |
|
|
548 | { |
|
|
549 | psiconv_bool_t show_graph; |
|
|
550 | psiconv_u32 cursor_row; |
|
|
551 | psiconv_u32 cursor_column; |
|
|
552 | psiconv_bool_t show_top_sheet_toolbar; |
|
|
553 | psiconv_bool_t show_side_sheet_toolbar; |
|
|
554 | psiconv_bool_t show_top_graph_toolbar; |
|
|
555 | psiconv_bool_t show_side_graph_toolbar; |
|
|
556 | psiconv_u32 sheet_display_size; |
|
|
557 | psiconv_u32 graph_display_size; |
|
|
558 | psiconv_triple_t show_horizontal_scrollbar; |
|
|
559 | psiconv_triple_t show_vertical_scrollbar; |
|
|
560 | } *psiconv_sheet_status_section; |
|
|
561 | |
|
|
562 | typedef enum psiconv_formula_type |
|
|
563 | { |
|
|
564 | psiconv_formula_unknown, |
|
|
565 | psiconv_formula_op_lt, |
|
|
566 | psiconv_formula_op_le, |
|
|
567 | psiconv_formula_op_gt, |
|
|
568 | psiconv_formula_op_ge, |
|
|
569 | psiconv_formula_op_ne, |
|
|
570 | psiconv_formula_op_eq, |
|
|
571 | psiconv_formula_op_add, |
|
|
572 | psiconv_formula_op_sub, |
|
|
573 | psiconv_formula_op_mul, |
|
|
574 | psiconv_formula_op_div, |
|
|
575 | psiconv_formula_op_pow, |
|
|
576 | psiconv_formula_op_pos, |
|
|
577 | psiconv_formula_op_neg, |
|
|
578 | psiconv_formula_op_not, |
|
|
579 | psiconv_formula_op_and, |
|
|
580 | psiconv_formula_op_or, |
|
|
581 | psiconv_formula_op_con, |
|
|
582 | psiconv_formula_op_bra, |
|
|
583 | psiconv_formula_mark_eof, |
|
|
584 | psiconv_formula_dat_float, |
|
|
585 | psiconv_formula_dat_int, |
|
|
586 | psiconv_formula_dat_var, |
|
|
587 | psiconv_formula_dat_string, |
|
|
588 | psiconv_formula_dat_cellref, |
|
|
589 | psiconv_formula_dat_cellblock, |
|
|
590 | psiconv_formula_dat_vcellblock, |
|
|
591 | psiconv_formula_mark_opsep, |
|
|
592 | psiconv_formula_mark_opend, |
|
|
593 | psiconv_formula_fun_false, |
|
|
594 | psiconv_formula_fun_if, |
|
|
595 | psiconv_formula_fun_true, |
|
|
596 | psiconv_formula_fun_cell, |
|
|
597 | psiconv_formula_fun_errortype, |
|
|
598 | psiconv_formula_fun_isblank, |
|
|
599 | psiconv_formula_fun_iserr, |
|
|
600 | psiconv_formula_fun_iserror, |
|
|
601 | psiconv_formula_fun_islogical, |
|
|
602 | psiconv_formula_fun_isna, |
|
|
603 | psiconv_formula_fun_isnontext, |
|
|
604 | psiconv_formula_fun_isnumber, |
|
|
605 | psiconv_formula_fun_istext, |
|
|
606 | psiconv_formula_fun_n, |
|
|
607 | psiconv_formula_fun_type, |
|
|
608 | psiconv_formula_fun_address, |
|
|
609 | psiconv_formula_fun_column, |
|
|
610 | psiconv_formula_fun_columns, |
|
|
611 | psiconv_formula_fun_hlookup, |
|
|
612 | psiconv_formula_fun_index, |
|
|
613 | psiconv_formula_fun_indirect, |
|
|
614 | psiconv_formula_fun_lookup, |
|
|
615 | psiconv_formula_fun_offset, |
|
|
616 | psiconv_formula_fun_row, |
|
|
617 | psiconv_formula_fun_rows, |
|
|
618 | psiconv_formula_fun_vlookup, |
|
|
619 | psiconv_formula_fun_char, |
|
|
620 | psiconv_formula_fun_code, |
|
|
621 | psiconv_formula_fun_exact, |
|
|
622 | psiconv_formula_fun_find, |
|
|
623 | psiconv_formula_fun_left, |
|
|
624 | psiconv_formula_fun_len, |
|
|
625 | psiconv_formula_fun_lower, |
|
|
626 | psiconv_formula_fun_mid, |
|
|
627 | psiconv_formula_fun_proper, |
|
|
628 | psiconv_formula_fun_replace, |
|
|
629 | psiconv_formula_fun_rept, |
|
|
630 | psiconv_formula_fun_right, |
|
|
631 | psiconv_formula_fun_string, |
|
|
632 | psiconv_formula_fun_t, |
|
|
633 | psiconv_formula_fun_trim, |
|
|
634 | psiconv_formula_fun_upper, |
|
|
635 | psiconv_formula_fun_value, |
|
|
636 | psiconv_formula_fun_date, |
|
|
637 | psiconv_formula_fun_datevalue, |
|
|
638 | psiconv_formula_fun_day, |
|
|
639 | psiconv_formula_fun_hour, |
|
|
640 | psiconv_formula_fun_minute, |
|
|
641 | psiconv_formula_fun_month, |
|
|
642 | psiconv_formula_fun_now, |
|
|
643 | psiconv_formula_fun_second, |
|
|
644 | psiconv_formula_fun_today, |
|
|
645 | psiconv_formula_fun_time, |
|
|
646 | psiconv_formula_fun_timevalue, |
|
|
647 | psiconv_formula_fun_year, |
|
|
648 | psiconv_formula_fun_abs, |
|
|
649 | psiconv_formula_fun_acos, |
|
|
650 | psiconv_formula_fun_asin, |
|
|
651 | psiconv_formula_fun_atan, |
|
|
652 | psiconv_formula_fun_atan2, |
|
|
653 | psiconv_formula_fun_cos, |
|
|
654 | psiconv_formula_fun_degrees, |
|
|
655 | psiconv_formula_fun_exp, |
|
|
656 | psiconv_formula_fun_fact, |
|
|
657 | psiconv_formula_fun_int, |
|
|
658 | psiconv_formula_fun_ln, |
|
|
659 | psiconv_formula_fun_log10, |
|
|
660 | psiconv_formula_fun_mod, |
|
|
661 | psiconv_formula_fun_pi, |
|
|
662 | psiconv_formula_fun_radians, |
|
|
663 | psiconv_formula_fun_rand, |
|
|
664 | psiconv_formula_fun_round, |
|
|
665 | psiconv_formula_fun_sign, |
|
|
666 | psiconv_formula_fun_sin, |
|
|
667 | psiconv_formula_fun_sqrt, |
|
|
668 | psiconv_formula_fun_sumproduct, |
|
|
669 | psiconv_formula_fun_tan, |
|
|
670 | psiconv_formula_fun_trunc, |
|
|
671 | psiconv_formula_fun_cterm, |
|
|
672 | psiconv_formula_fun_ddb, |
|
|
673 | psiconv_formula_fun_fv, |
|
|
674 | psiconv_formula_fun_irr, |
|
|
675 | psiconv_formula_fun_npv, |
|
|
676 | psiconv_formula_fun_pmt, |
|
|
677 | psiconv_formula_fun_pv, |
|
|
678 | psiconv_formula_fun_rate, |
|
|
679 | psiconv_formula_fun_sln, |
|
|
680 | psiconv_formula_fun_syd, |
|
|
681 | psiconv_formula_fun_term, |
|
|
682 | psiconv_formula_fun_combin, |
|
|
683 | psiconv_formula_fun_permut, |
|
|
684 | psiconv_formula_vfn_average, |
|
|
685 | psiconv_formula_vfn_choose, |
|
|
686 | psiconv_formula_vfn_count, |
|
|
687 | psiconv_formula_vfn_counta, |
|
|
688 | psiconv_formula_vfn_countblank, |
|
|
689 | psiconv_formula_vfn_max, |
|
|
690 | psiconv_formula_vfn_min, |
|
|
691 | psiconv_formula_vfn_product, |
|
|
692 | psiconv_formula_vfn_stdevp, |
|
|
693 | psiconv_formula_vfn_stdev, |
|
|
694 | psiconv_formula_vfn_sum, |
|
|
695 | psiconv_formula_vfn_sumsq, |
|
|
696 | psiconv_formula_vfn_varp, |
|
|
697 | psiconv_formula_vfn_var |
|
|
698 | } psiconv_formula_type_t; |
|
|
699 | |
|
|
700 | typedef psiconv_list psiconv_formula_list; /* Of struct psiconv_formula_s */ |
|
|
701 | |
378 | typedef struct psiconv_file { |
702 | typedef struct psiconv_formula_s |
|
|
703 | { |
|
|
704 | psiconv_formula_type_t type; |
|
|
705 | union { |
|
|
706 | psiconv_u32 dat_int; |
|
|
707 | double dat_float; |
|
|
708 | char *dat_string; |
|
|
709 | psiconv_sheet_cell_reference_t dat_cellref; |
|
|
710 | psiconv_sheet_cell_block_t dat_cellblock; |
|
|
711 | psiconv_formula_list fun_operands; |
|
|
712 | psiconv_u32 dat_variable; |
|
|
713 | } data; |
|
|
714 | } *psiconv_formula; |
|
|
715 | |
|
|
716 | typedef struct psiconv_sheet_line_s |
|
|
717 | { |
|
|
718 | psiconv_u32 position; |
|
|
719 | psiconv_sheet_cell_layout layout; |
|
|
720 | } *psiconv_sheet_line; |
|
|
721 | |
|
|
722 | typedef psiconv_list psiconv_sheet_line_list; |
|
|
723 | /* Of struct psiconv_sheet_line_s */ |
|
|
724 | |
|
|
725 | typedef struct psiconv_sheet_grid_size_s |
|
|
726 | { |
|
|
727 | psiconv_u32 line_number; |
|
|
728 | psiconv_length_t size; |
|
|
729 | } *psiconv_sheet_grid_size; |
|
|
730 | |
|
|
731 | typedef psiconv_list psiconv_sheet_grid_size_list; |
|
|
732 | /* Of struct psiconv_sheet_grid_size_s */ |
|
|
733 | |
|
|
734 | typedef psiconv_list psiconv_sheet_grid_break_list; /* of psiconv_u32 */ |
|
|
735 | |
|
|
736 | typedef struct psiconv_sheet_grid_section_s |
|
|
737 | { |
|
|
738 | psiconv_bool_t show_column_titles; |
|
|
739 | psiconv_bool_t show_row_titles; |
|
|
740 | psiconv_bool_t show_vertical_grid; |
|
|
741 | psiconv_bool_t show_horizontal_grid; |
|
|
742 | psiconv_bool_t freeze_rows; |
|
|
743 | psiconv_bool_t freeze_columns; |
|
|
744 | psiconv_u32 frozen_rows; |
|
|
745 | psiconv_u32 frozen_columns; |
|
|
746 | psiconv_u32 first_unfrozen_row_displayed; |
|
|
747 | psiconv_u32 first_unfrozen_column_displayed; |
|
|
748 | psiconv_bool_t show_page_breaks; |
|
|
749 | psiconv_u32 first_row; |
|
|
750 | psiconv_u32 first_column; |
|
|
751 | psiconv_u32 last_row; |
|
|
752 | psiconv_u32 last_column; |
|
|
753 | psiconv_length_t default_row_height; |
|
|
754 | psiconv_length_t default_column_width; |
|
|
755 | psiconv_sheet_grid_size_list row_heights; |
|
|
756 | psiconv_sheet_grid_size_list column_heights; |
|
|
757 | psiconv_sheet_grid_break_list row_page_breaks; |
|
|
758 | psiconv_sheet_grid_break_list column_page_breaks; |
|
|
759 | } *psiconv_sheet_grid_section; |
|
|
760 | |
|
|
761 | typedef struct psiconv_sheet_worksheet_s |
|
|
762 | { |
|
|
763 | psiconv_sheet_cell_layout default_layout; |
|
|
764 | psiconv_sheet_cell_list cells; |
|
|
765 | psiconv_bool_t show_zeros; |
|
|
766 | psiconv_sheet_line_list row_default_layouts; |
|
|
767 | psiconv_sheet_line_list col_default_layouts; |
|
|
768 | psiconv_sheet_grid_section grid; |
|
|
769 | } *psiconv_sheet_worksheet; |
|
|
770 | |
|
|
771 | typedef psiconv_list psiconv_sheet_worksheet_list; |
|
|
772 | /* of struct psiconv_sheet_worksheet_s */ |
|
|
773 | |
|
|
774 | typedef enum psiconv_variable_type |
|
|
775 | { |
|
|
776 | psiconv_var_int, |
|
|
777 | psiconv_var_float, |
|
|
778 | psiconv_var_string, |
|
|
779 | psiconv_var_cellref, |
|
|
780 | psiconv_var_cellblock |
|
|
781 | } psiconv_variable_type_t; |
|
|
782 | |
|
|
783 | typedef struct psiconv_sheet_variable_s |
|
|
784 | { |
|
|
785 | psiconv_u32 number; |
|
|
786 | char *name; |
|
|
787 | psiconv_variable_type_t type; |
|
|
788 | union { |
|
|
789 | psiconv_s32 dat_int; |
|
|
790 | double dat_float; |
|
|
791 | char *dat_string; |
|
|
792 | psiconv_sheet_cell_reference_t dat_cellref; |
|
|
793 | psiconv_sheet_cell_block_t dat_cellblock; |
|
|
794 | } data; |
|
|
795 | } *psiconv_sheet_variable; |
|
|
796 | |
|
|
797 | typedef psiconv_list psiconv_sheet_variable_list; |
|
|
798 | /* of struct psiconv_sheet_variable_s */ |
|
|
799 | |
|
|
800 | typedef struct psiconv_sheet_name_section_s |
|
|
801 | { |
|
|
802 | char *name; |
|
|
803 | } *psiconv_sheet_name_section; |
|
|
804 | |
|
|
805 | typedef struct psiconv_sheet_info_section_s |
|
|
806 | { |
|
|
807 | psiconv_bool_t auto_recalc; |
|
|
808 | } *psiconv_sheet_info_section; |
|
|
809 | |
|
|
810 | typedef struct psiconv_sheet_workbook_section_s |
|
|
811 | { |
|
|
812 | psiconv_formula_list formulas; |
|
|
813 | psiconv_sheet_worksheet_list worksheets; |
|
|
814 | psiconv_sheet_variable_list variables; |
|
|
815 | psiconv_sheet_info_section info; |
|
|
816 | psiconv_sheet_name_section name; |
|
|
817 | } *psiconv_sheet_workbook_section; |
|
|
818 | |
|
|
819 | typedef struct psiconv_sheet_f_s |
|
|
820 | { |
|
|
821 | psiconv_page_layout_section page_sec; |
|
|
822 | psiconv_sheet_status_section status_sec; |
|
|
823 | psiconv_sheet_workbook_section workbook_sec; |
|
|
824 | } *psiconv_sheet_f; |
|
|
825 | |
|
|
826 | /* NB: psiconv_file is already defined above */ |
|
|
827 | struct psiconv_file_s |
|
|
828 | { |
379 | psiconv_file_type_t type; |
829 | psiconv_file_type_t type; |
380 | void *file; |
830 | void *file; |
381 | } *psiconv_file; |
831 | }; |
382 | |
832 | |
383 | |
833 | |
384 | /* UID1 */ |
834 | /* UID1 */ |
385 | #define PSICONV_ID_PSION5 0x10000037 |
835 | #define PSICONV_ID_PSION5 0x10000037 |
386 | #define PSICONV_ID_CLIPART 0x10000041 |
836 | #define PSICONV_ID_CLIPART 0x10000041 |
… | |
… | |
389 | #define PSICONV_ID_MBM_FILE 0x10000042 |
839 | #define PSICONV_ID_MBM_FILE 0x10000042 |
390 | /* UID3 */ |
840 | /* UID3 */ |
391 | #define PSICONV_ID_WORD 0x1000007F |
841 | #define PSICONV_ID_WORD 0x1000007F |
392 | #define PSICONV_ID_TEXTED 0x10000085 |
842 | #define PSICONV_ID_TEXTED 0x10000085 |
393 | #define PSICONV_ID_SKETCH 0x1000007D |
843 | #define PSICONV_ID_SKETCH 0x1000007D |
|
|
844 | #define PSICONV_ID_SHEET 0x10000088 |
394 | |
845 | |
395 | /* Section table ids */ |
846 | /* Section table ids */ |
396 | #define PSICONV_ID_WORD_STATUS_SECTION 0x10000243 |
847 | #define PSICONV_ID_WORD_STATUS_SECTION 0x10000243 |
397 | #define PSICONV_ID_APPL_ID_SECTION 0x10000089 |
848 | #define PSICONV_ID_APPL_ID_SECTION 0x10000089 |
398 | #define PSICONV_ID_TEXT_SECTION 0x10000106 |
849 | #define PSICONV_ID_TEXT_SECTION 0x10000106 |
399 | #define PSICONV_ID_LAYOUT_SECTION 0x10000143 |
850 | #define PSICONV_ID_LAYOUT_SECTION 0x10000143 |
400 | #define PSICONV_ID_WORD_STYLES_SECTION 0x10000104 |
851 | #define PSICONV_ID_WORD_STYLES_SECTION 0x10000104 |
401 | #define PSICONV_ID_PAGE_LAYOUT_SECTION 0x10000105 |
852 | #define PSICONV_ID_PAGE_LAYOUT_SECTION 0x10000105 |
402 | #define PSICONV_ID_PASSWORD_SECTION 0x100000CD |
853 | #define PSICONV_ID_PASSWORD_SECTION 0x100000CD |
403 | #define PSICONV_ID_SKETCH_SECTION 0x1000007D |
854 | #define PSICONV_ID_SKETCH_SECTION 0x1000007D |
|
|
855 | #define PSICONV_ID_SHEET_STATUS_SECTION 0x1000011F |
|
|
856 | #define PSICONV_ID_SHEET_WORKBOOK_SECTION 0x1000011D |
|
|
857 | #define PSICONV_ID_SHEET_GRAPH_SECTION 0x10000121 |
404 | |
858 | |
405 | /* Other ids */ |
859 | /* Other ids */ |
406 | #define PSICONV_ID_PAGE_DIMENSIONS 0x100000fd |
860 | #define PSICONV_ID_PAGE_DIMENSIONS1 0x100000fd |
|
|
861 | #define PSICONV_ID_PAGE_DIMENSIONS2 0x1000010e |
407 | #define PSICONV_ID_TEXTED_BODY 0x1000005c |
862 | #define PSICONV_ID_TEXTED_BODY 0x1000005c |
408 | #define PSICONV_ID_TEXTED_REPLACEMENT 0x10000063 |
863 | #define PSICONV_ID_TEXTED_REPLACEMENT 0x10000063 |
409 | #define PSICONV_ID_TEXTED_UNKNOWN 0x10000065 |
864 | #define PSICONV_ID_TEXTED_UNKNOWN 0x10000065 |
410 | #define PSICONV_ID_TEXTED_LAYOUT 0x10000066 |
865 | #define PSICONV_ID_TEXTED_LAYOUT 0x10000066 |
411 | #define PSICONV_ID_TEXTED_TEXT 0x10000064 |
866 | #define PSICONV_ID_TEXTED_TEXT 0x10000064 |
412 | #define PSICONV_ID_STYLE_REMOVABLE 0x1000004F |
867 | #define PSICONV_ID_STYLE_REMOVABLE 0x1000004F |
413 | #define PSICONV_ID_STYLE_BUILT_IN 0x1000004C |
868 | #define PSICONV_ID_STYLE_BUILT_IN 0x1000004C |
|
|
869 | #define PSICONV_ID_CLIPART_ITEM 0x10000040 |
|
|
870 | #define PSICONV_ID_OBJECT 0x10000051 |
|
|
871 | #define PSICONV_ID_OBJECT_DISPLAY_SECTION 0x10000146 |
|
|
872 | #define PSICONV_ID_OBJECT_ICON_SECTION 0x1000012A |
|
|
873 | #define PSICONV_ID_OBJECT_SECTION_TABLE_SECTION 0x10000144 |
414 | |
874 | |
415 | |
875 | |
416 | /* Return a clean layout_status. You can modify it at will */ |
876 | /* Return a clean layout_status. You can modify it at will. Returns NULL |
|
|
877 | if there is not enough memory. */ |
417 | extern psiconv_character_layout psiconv_basic_character_layout(void); |
878 | extern psiconv_character_layout psiconv_basic_character_layout(void); |
418 | |
879 | |
419 | /* Return a clean layout_status. You can modify it at will */ |
880 | /* Return a clean layout_status. You can modify it at will. Returns NULL |
|
|
881 | if there is not enough memory. */ |
420 | extern psiconv_paragraph_layout psiconv_basic_paragraph_layout(void); |
882 | extern psiconv_paragraph_layout psiconv_basic_paragraph_layout(void); |
421 | |
883 | |
422 | /* Clone a layout_status: the new copy is completely independent of the |
884 | /* Clone a layout_status: the new copy is completely independent of the |
423 | original one */ |
885 | original one. Returns NULL if there is not enough memory. */ |
424 | extern psiconv_paragraph_layout psiconv_clone_paragraph_layout |
886 | extern psiconv_paragraph_layout psiconv_clone_paragraph_layout |
425 | (psiconv_paragraph_layout ls); |
887 | (psiconv_paragraph_layout ls); |
426 | |
888 | |
427 | extern psiconv_character_layout psiconv_clone_character_layout |
889 | extern psiconv_character_layout psiconv_clone_character_layout |
428 | (psiconv_character_layout ls); |
890 | (psiconv_character_layout ls); |
429 | |
891 | |
430 | /* Get a numbered style */ |
892 | /* Get a numbered style. Returns NULL if the style is unknown. */ |
431 | extern psiconv_word_style psiconv_get_style (psiconv_word_styles_section ss, int nr); |
893 | extern psiconv_word_style psiconv_get_style (psiconv_word_styles_section ss, int nr); |
|
|
894 | /* Get a numbered formula. Returns NULL if the style is unknown. */ |
|
|
895 | extern psiconv_formula psiconv_get_formula (psiconv_formula_list ss, int nr); |
|
|
896 | |
|
|
897 | /* Return the default layout */ |
|
|
898 | extern psiconv_sheet_cell_layout psiconv_get_default_layout |
|
|
899 | (psiconv_sheet_line_list row_defaults, |
|
|
900 | psiconv_sheet_line_list col_defaults, |
|
|
901 | psiconv_sheet_cell_layout cell_default, |
|
|
902 | int row,int col); |
432 | |
903 | |
433 | extern void psiconv_free_color(psiconv_color color); |
904 | extern void psiconv_free_color(psiconv_color color); |
434 | extern void psiconv_free_border(psiconv_border border); |
905 | extern void psiconv_free_border(psiconv_border border); |
435 | extern void psiconv_free_bullet(psiconv_bullet bullet); |
906 | extern void psiconv_free_bullet(psiconv_bullet bullet); |
436 | extern void psiconv_free_font(psiconv_font font); |
907 | extern void psiconv_free_font(psiconv_font font); |
… | |
… | |
439 | extern void psiconv_free_paragraph_layout(psiconv_paragraph_layout layout); |
910 | extern void psiconv_free_paragraph_layout(psiconv_paragraph_layout layout); |
440 | extern void psiconv_free_character_layout(psiconv_character_layout layout); |
911 | extern void psiconv_free_character_layout(psiconv_character_layout layout); |
441 | extern void psiconv_free_word_style(psiconv_word_style style); |
912 | extern void psiconv_free_word_style(psiconv_word_style style); |
442 | extern void psiconv_free_word_styles_section |
913 | extern void psiconv_free_word_styles_section |
443 | (psiconv_word_styles_section styles); |
914 | (psiconv_word_styles_section styles); |
|
|
915 | extern void psiconv_free_formula(psiconv_formula formula); |
|
|
916 | extern void psiconv_free_formula_list(psiconv_formula_list list); |
|
|
917 | extern void psiconv_free_sheet_status_section |
|
|
918 | (psiconv_sheet_status_section section); |
|
|
919 | extern void psiconv_free_sheet_cell_layout(psiconv_sheet_cell_layout layout); |
|
|
920 | extern void psiconv_free_sheet_grid_break_list |
|
|
921 | (psiconv_sheet_grid_break_list list); |
|
|
922 | extern void psiconv_free_sheet_grid_size(psiconv_sheet_grid_size s); |
|
|
923 | extern void psiconv_free_sheet_grid_size_list |
|
|
924 | (psiconv_sheet_grid_size_list list); |
|
|
925 | extern void psiconv_free_sheet_grid_section(psiconv_sheet_grid_section sec); |
|
|
926 | extern void psiconv_free_sheet_worksheet(psiconv_sheet_worksheet sheet); |
|
|
927 | extern void psiconv_free_sheet_worksheet_list |
|
|
928 | (psiconv_sheet_worksheet_list list); |
|
|
929 | |
|
|
930 | extern void psiconv_free_sheet_f(psiconv_sheet_f file); |
|
|
931 | extern void psiconv_free_sheet_cell(psiconv_sheet_cell cell); |
|
|
932 | extern void psiconv_free_sheet_cell_list(psiconv_sheet_cell_list list); |
|
|
933 | extern void psiconv_free_sheet_numberformat |
|
|
934 | (psiconv_sheet_numberformat numberformat); |
|
|
935 | extern void psiconv_free_sheet_line_list(psiconv_sheet_line_list list); |
|
|
936 | extern void psiconv_free_sheet_line(psiconv_sheet_line line); |
|
|
937 | extern void psiconv_free_sheet_name_section(psiconv_sheet_name_section section); |
|
|
938 | extern void psiconv_free_sheet_variable(psiconv_sheet_variable list); |
|
|
939 | extern void psiconv_free_sheet_variable_list(psiconv_sheet_variable_list list); |
|
|
940 | extern void psiconv_free_sheet_info_section(psiconv_sheet_info_section section); |
|
|
941 | extern void psiconv_free_sheet_workbook_section |
|
|
942 | (psiconv_sheet_workbook_section section); |
444 | extern void psiconv_free_header_section(psiconv_header_section header); |
943 | extern void psiconv_free_header_section(psiconv_header_section header); |
445 | extern void psiconv_free_section_table_entry(psiconv_section_table_entry entry); |
944 | extern void psiconv_free_section_table_entry(psiconv_section_table_entry entry); |
446 | extern void psiconv_free_section_table_section |
945 | extern void psiconv_free_section_table_section |
447 | (psiconv_section_table_section section); |
946 | (psiconv_section_table_section section); |
448 | extern void psiconv_free_application_id_section |
947 | extern void psiconv_free_application_id_section |
449 | (psiconv_application_id_section section); |
948 | (psiconv_application_id_section section); |
|
|
949 | extern void psiconv_free_object_display_section |
|
|
950 | (psiconv_object_display_section section); |
|
|
951 | extern void psiconv_free_object_icon_section |
|
|
952 | (psiconv_object_icon_section section); |
|
|
953 | extern void psiconv_free_embedded_object_section |
|
|
954 | (psiconv_embedded_object_section object); |
450 | extern void psiconv_free_in_line_layout(psiconv_in_line_layout layout); |
955 | extern void psiconv_free_in_line_layout(psiconv_in_line_layout layout); |
451 | extern void psiconv_free_in_line_layouts(psiconv_in_line_layouts layouts); |
956 | extern void psiconv_free_in_line_layouts(psiconv_in_line_layouts layouts); |
452 | extern void psiconv_free_replacement(psiconv_replacement replacement); |
957 | extern void psiconv_free_replacement(psiconv_replacement replacement); |
453 | extern void psiconv_free_replacements(psiconv_replacements replacements); |
958 | extern void psiconv_free_replacements(psiconv_replacements replacements); |
454 | extern void psiconv_free_paragraph(psiconv_paragraph paragraph); |
959 | extern void psiconv_free_paragraph(psiconv_paragraph paragraph); |
… | |
… | |
470 | extern void psiconv_free_sketch_f(psiconv_sketch_f file); |
975 | extern void psiconv_free_sketch_f(psiconv_sketch_f file); |
471 | extern void psiconv_free_clipart_section(psiconv_clipart_section section); |
976 | extern void psiconv_free_clipart_section(psiconv_clipart_section section); |
472 | extern void psiconv_free_cliparts(psiconv_cliparts section); |
977 | extern void psiconv_free_cliparts(psiconv_cliparts section); |
473 | extern void psiconv_free_clipart_f(psiconv_clipart_f file); |
978 | extern void psiconv_free_clipart_f(psiconv_clipart_f file); |
474 | |
979 | |
475 | |
|
|
476 | extern void psiconv_free_file(psiconv_file file); |
980 | extern void psiconv_free_file(psiconv_file file); |
477 | |
981 | |
|
|
982 | extern int psiconv_compare_color(const psiconv_color value1, |
|
|
983 | const psiconv_color value2); |
|
|
984 | extern int psiconv_compare_font(const psiconv_font value1, |
|
|
985 | const psiconv_font value2); |
|
|
986 | extern int psiconv_compare_border(const psiconv_border value1, |
|
|
987 | const psiconv_border value2); |
|
|
988 | extern int psiconv_compare_bullet(const psiconv_bullet value1, |
|
|
989 | const psiconv_bullet value2); |
|
|
990 | extern int psiconv_compare_tab(const psiconv_tab value1, |
|
|
991 | const psiconv_tab value2); |
|
|
992 | extern int psiconv_compare_all_tabs(const psiconv_all_tabs value1, |
|
|
993 | const psiconv_all_tabs value2); |
|
|
994 | extern int psiconv_compare_paragraph_layout |
|
|
995 | (const psiconv_paragraph_layout value1, |
|
|
996 | const psiconv_paragraph_layout value2); |
|
|
997 | |
|
|
998 | extern int psiconv_compare_character_layout |
|
|
999 | (const psiconv_character_layout value1, |
|
|
1000 | const psiconv_character_layout value2); |
|
|
1001 | |
|
|
1002 | /* Get a newly allocated file with sensible defaults, ready to generate. */ |
|
|
1003 | extern psiconv_file psiconv_empty_file(psiconv_file_type_t type); |
|
|
1004 | |
|
|
1005 | |
|
|
1006 | #ifdef __cplusplus |
|
|
1007 | } |
|
|
1008 | #endif /* __cplusplus */ |
478 | |
1009 | |
479 | #endif /* def PSICONV_DATA_H */ |
1010 | #endif /* def PSICONV_DATA_H */ |