/[public]/psiconv/trunk/lib/psiconv/data.h
ViewVC logotype

Contents of /psiconv/trunk/lib/psiconv/data.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 134 - (show annotations)
Wed Jul 25 11:49:59 2001 UTC (22 years, 8 months ago) by frodo
File MIME type: text/plain
File size: 30116 byte(s)
(Frodo) Sheet grid section support

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

frodo@frodo.looijaard.name
ViewVC Help
Powered by ViewVC 1.1.26