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. |
… | |
… | |
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_s |
114 | typedef struct psiconv_color_s |
… | |
… | |
103 | } * psiconv_color; |
119 | } * psiconv_color; |
104 | |
120 | |
105 | typedef struct psiconv_font_s |
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_s |
127 | typedef struct psiconv_border_s |
112 | { |
128 | { |
113 | psiconv_border_kind_t kind; |
129 | psiconv_border_kind_t kind; |
… | |
… | |
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_s |
179 | typedef struct psiconv_paragraph_layout_s |
164 | { |
180 | { |
… | |
… | |
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; |
… | |
… | |
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_s |
295 | typedef struct psiconv_word_status_section_s |
279 | { |
296 | { |
280 | psiconv_bool_t show_tabs; |
297 | psiconv_bool_t show_tabs; |
… | |
… | |
386 | typedef struct psiconv_clipart_f_s |
403 | typedef struct psiconv_clipart_f_s |
387 | { |
404 | { |
388 | psiconv_cliparts sections; |
405 | psiconv_cliparts sections; |
389 | } *psiconv_clipart_f; |
406 | } *psiconv_clipart_f; |
390 | |
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_workbook_section_s |
|
|
424 | { |
|
|
425 | int dummy; |
|
|
426 | } *psiconv_sheet_workbook_section; |
|
|
427 | |
|
|
428 | typedef struct psiconv_sheet_f_s |
|
|
429 | { |
|
|
430 | psiconv_page_layout_section page_sec; |
|
|
431 | psiconv_sheet_status_section status_sec; |
|
|
432 | psiconv_sheet_workbook_section workbook_sec; |
|
|
433 | } *psiconv_sheet_f; |
|
|
434 | |
391 | typedef struct psiconv_file_s |
435 | typedef struct psiconv_file_s |
392 | { |
436 | { |
393 | psiconv_file_type_t type; |
437 | psiconv_file_type_t type; |
394 | void *file; |
438 | void *file; |
395 | } *psiconv_file; |
439 | } *psiconv_file; |
… | |
… | |
403 | #define PSICONV_ID_MBM_FILE 0x10000042 |
447 | #define PSICONV_ID_MBM_FILE 0x10000042 |
404 | /* UID3 */ |
448 | /* UID3 */ |
405 | #define PSICONV_ID_WORD 0x1000007F |
449 | #define PSICONV_ID_WORD 0x1000007F |
406 | #define PSICONV_ID_TEXTED 0x10000085 |
450 | #define PSICONV_ID_TEXTED 0x10000085 |
407 | #define PSICONV_ID_SKETCH 0x1000007D |
451 | #define PSICONV_ID_SKETCH 0x1000007D |
|
|
452 | #define PSICONV_ID_SHEET 0x10000088 |
408 | |
453 | |
409 | /* Section table ids */ |
454 | /* Section table ids */ |
410 | #define PSICONV_ID_WORD_STATUS_SECTION 0x10000243 |
455 | #define PSICONV_ID_WORD_STATUS_SECTION 0x10000243 |
411 | #define PSICONV_ID_APPL_ID_SECTION 0x10000089 |
456 | #define PSICONV_ID_APPL_ID_SECTION 0x10000089 |
412 | #define PSICONV_ID_TEXT_SECTION 0x10000106 |
457 | #define PSICONV_ID_TEXT_SECTION 0x10000106 |
413 | #define PSICONV_ID_LAYOUT_SECTION 0x10000143 |
458 | #define PSICONV_ID_LAYOUT_SECTION 0x10000143 |
414 | #define PSICONV_ID_WORD_STYLES_SECTION 0x10000104 |
459 | #define PSICONV_ID_WORD_STYLES_SECTION 0x10000104 |
415 | #define PSICONV_ID_PAGE_LAYOUT_SECTION 0x10000105 |
460 | #define PSICONV_ID_PAGE_LAYOUT_SECTION 0x10000105 |
416 | #define PSICONV_ID_PASSWORD_SECTION 0x100000CD |
461 | #define PSICONV_ID_PASSWORD_SECTION 0x100000CD |
417 | #define PSICONV_ID_SKETCH_SECTION 0x1000007D |
462 | #define PSICONV_ID_SKETCH_SECTION 0x1000007D |
|
|
463 | #define PSICONV_ID_SHEET_STATUS_SECTION 0x1000011F |
|
|
464 | #define PSICONV_ID_SHEET_WORKBOOK_SECTION 0x1000011D |
418 | |
465 | |
419 | /* Other ids */ |
466 | /* Other ids */ |
420 | #define PSICONV_ID_PAGE_DIMENSIONS 0x100000fd |
467 | #define PSICONV_ID_PAGE_DIMENSIONS1 0x100000fd |
|
|
468 | #define PSICONV_ID_PAGE_DIMENSIONS2 0x1000010e |
421 | #define PSICONV_ID_TEXTED_BODY 0x1000005c |
469 | #define PSICONV_ID_TEXTED_BODY 0x1000005c |
422 | #define PSICONV_ID_TEXTED_REPLACEMENT 0x10000063 |
470 | #define PSICONV_ID_TEXTED_REPLACEMENT 0x10000063 |
423 | #define PSICONV_ID_TEXTED_UNKNOWN 0x10000065 |
471 | #define PSICONV_ID_TEXTED_UNKNOWN 0x10000065 |
424 | #define PSICONV_ID_TEXTED_LAYOUT 0x10000066 |
472 | #define PSICONV_ID_TEXTED_LAYOUT 0x10000066 |
425 | #define PSICONV_ID_TEXTED_TEXT 0x10000064 |
473 | #define PSICONV_ID_TEXTED_TEXT 0x10000064 |
… | |
… | |
456 | extern void psiconv_free_paragraph_layout(psiconv_paragraph_layout layout); |
504 | extern void psiconv_free_paragraph_layout(psiconv_paragraph_layout layout); |
457 | extern void psiconv_free_character_layout(psiconv_character_layout layout); |
505 | extern void psiconv_free_character_layout(psiconv_character_layout layout); |
458 | extern void psiconv_free_word_style(psiconv_word_style style); |
506 | extern void psiconv_free_word_style(psiconv_word_style style); |
459 | extern void psiconv_free_word_styles_section |
507 | extern void psiconv_free_word_styles_section |
460 | (psiconv_word_styles_section styles); |
508 | (psiconv_word_styles_section styles); |
|
|
509 | extern void psiconv_free_sheet_status_section |
|
|
510 | (psiconv_sheet_status_section section); |
|
|
511 | extern void psiconv_free_sheet_status_section |
|
|
512 | (psiconv_sheet_status_section section); |
|
|
513 | extern void psiconv_free_sheet_f(psiconv_sheet_f file); |
461 | extern void psiconv_free_header_section(psiconv_header_section header); |
514 | extern void psiconv_free_header_section(psiconv_header_section header); |
462 | extern void psiconv_free_section_table_entry(psiconv_section_table_entry entry); |
515 | extern void psiconv_free_section_table_entry(psiconv_section_table_entry entry); |
463 | extern void psiconv_free_section_table_section |
516 | extern void psiconv_free_section_table_section |
464 | (psiconv_section_table_section section); |
517 | (psiconv_section_table_section section); |
465 | extern void psiconv_free_application_id_section |
518 | extern void psiconv_free_application_id_section |
… | |
… | |
487 | extern void psiconv_free_sketch_f(psiconv_sketch_f file); |
540 | extern void psiconv_free_sketch_f(psiconv_sketch_f file); |
488 | extern void psiconv_free_clipart_section(psiconv_clipart_section section); |
541 | extern void psiconv_free_clipart_section(psiconv_clipart_section section); |
489 | extern void psiconv_free_cliparts(psiconv_cliparts section); |
542 | extern void psiconv_free_cliparts(psiconv_cliparts section); |
490 | extern void psiconv_free_clipart_f(psiconv_clipart_f file); |
543 | extern void psiconv_free_clipart_f(psiconv_clipart_f file); |
491 | |
544 | |
492 | |
|
|
493 | extern void psiconv_free_file(psiconv_file file); |
545 | extern void psiconv_free_file(psiconv_file file); |
|
|
546 | |
|
|
547 | extern int psiconv_compare_color(const psiconv_color value1, |
|
|
548 | const psiconv_color value2); |
|
|
549 | extern int psiconv_compare_font(const psiconv_font value1, |
|
|
550 | const psiconv_font value2); |
|
|
551 | extern int psiconv_compare_border(const psiconv_border value1, |
|
|
552 | const psiconv_border value2); |
|
|
553 | extern int psiconv_compare_bullet(const psiconv_bullet value1, |
|
|
554 | const psiconv_bullet value2); |
|
|
555 | extern int psiconv_compare_tab(const psiconv_tab value1, |
|
|
556 | const psiconv_tab value2); |
|
|
557 | extern int psiconv_compare_all_tabs(const psiconv_all_tabs value1, |
|
|
558 | const psiconv_all_tabs value2); |
|
|
559 | extern int psiconv_compare_paragraph_layout |
|
|
560 | (const psiconv_paragraph_layout value1, |
|
|
561 | const psiconv_paragraph_layout value2); |
|
|
562 | |
|
|
563 | extern int psiconv_compare_character_layout |
|
|
564 | (const psiconv_character_layout value1, |
|
|
565 | const psiconv_character_layout value2); |
|
|
566 | |
|
|
567 | /* Get a newly allocated file with sensible defaults, ready to generate. */ |
|
|
568 | extern psiconv_file psiconv_empty_file(psiconv_file_type_t type); |
|
|
569 | |
494 | |
570 | |
495 | #ifdef __cplusplus |
571 | #ifdef __cplusplus |
496 | } |
572 | } |
497 | #endif /* __cplusplus */ |
573 | #endif /* __cplusplus */ |
498 | |
574 | |