… | |
… | |
31 | to structs */ |
31 | to structs */ |
32 | |
32 | |
33 | #ifdef __cplusplus |
33 | #ifdef __cplusplus |
34 | extern "C" { |
34 | extern "C" { |
35 | #endif /* __cplusplus */ |
35 | #endif /* __cplusplus */ |
|
|
36 | |
|
|
37 | /* Forward declaration (for psiconv_embedded_object_section) */ |
|
|
38 | typedef struct psiconv_file_s *psiconv_file; |
36 | |
39 | |
37 | typedef double psiconv_float_t; |
40 | typedef double psiconv_float_t; |
38 | |
41 | |
39 | typedef enum psiconv_file_type { |
42 | typedef enum psiconv_file_type { |
40 | psiconv_unknown_file, |
43 | psiconv_unknown_file, |
… | |
… | |
225 | { |
228 | { |
226 | psiconv_u32 id; |
229 | psiconv_u32 id; |
227 | psiconv_string_t name; |
230 | psiconv_string_t name; |
228 | } *psiconv_application_id_section; |
231 | } *psiconv_application_id_section; |
229 | |
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 | |
230 | typedef struct psiconv_in_line_layout_s |
254 | typedef struct psiconv_in_line_layout_s |
231 | { |
255 | { |
232 | psiconv_character_layout layout; |
256 | psiconv_character_layout layout; |
233 | 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; |
234 | } *psiconv_in_line_layout; |
262 | } *psiconv_in_line_layout; |
235 | |
263 | |
236 | 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 */ |
237 | |
265 | |
238 | typedef enum psiconv_replacement_type |
266 | typedef enum psiconv_replacement_type |
… | |
… | |
364 | typedef struct psiconv_mbm_f_s |
392 | typedef struct psiconv_mbm_f_s |
365 | { |
393 | { |
366 | psiconv_pictures sections; |
394 | psiconv_pictures sections; |
367 | } *psiconv_mbm_f; |
395 | } *psiconv_mbm_f; |
368 | |
396 | |
369 | /* 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. |
370 | 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 |
371 | 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. |
372 | picture itself has size picture_{x,y}size. |
400 | The first eight values are before magnification and cuts. |
373 | 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 |
374 | cuts everything away. */ |
402 | cuts everything away. */ |
375 | typedef struct psiconv_sketch_section_s |
403 | typedef struct psiconv_sketch_section_s |
376 | { |
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; |
377 | psiconv_u16 form_xsize; |
409 | psiconv_u16 form_xsize; |
378 | psiconv_u16 form_ysize; |
410 | psiconv_u16 form_ysize; |
379 | psiconv_u16 picture_x_offset; |
411 | psiconv_u16 displayed_size_x_offset; |
380 | psiconv_u16 picture_y_offset; |
412 | psiconv_u16 displayed_size_y_offset; |
381 | psiconv_u16 picture_xsize; |
|
|
382 | psiconv_u16 picture_ysize; |
|
|
383 | float magnification_x; /* computed relative to first six values */ |
413 | float magnification_x; /* computed relative to first eight values */ |
384 | float magnification_y; /* computed relative to first six values */ |
414 | float magnification_y; /* computed relative to first eight values */ |
385 | float cut_left; /* computed relative to first six values */ |
415 | float cut_left; /* computed relative to first eight values */ |
386 | float cut_right; /* computed relative to first six values */ |
416 | float cut_right; /* computed relative to first eight values */ |
387 | float cut_top; /* computed relative to first six values */ |
417 | float cut_top; /* computed relative to first eight values */ |
388 | float cut_bottom; /* computed relative to first six values */ |
418 | float cut_bottom; /* computed relative to first eight values */ |
389 | psiconv_paint_data_section picture; |
419 | psiconv_paint_data_section picture; |
390 | } *psiconv_sketch_section; |
420 | } *psiconv_sketch_section; |
391 | |
421 | |
392 | typedef struct psiconv_sketch_f_s |
422 | typedef struct psiconv_sketch_f_s |
393 | { |
423 | { |
… | |
… | |
690 | } *psiconv_sheet_line; |
720 | } *psiconv_sheet_line; |
691 | |
721 | |
692 | typedef psiconv_list psiconv_sheet_line_list; |
722 | typedef psiconv_list psiconv_sheet_line_list; |
693 | /* Of struct psiconv_sheet_line_s */ |
723 | /* Of struct psiconv_sheet_line_s */ |
694 | |
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 | |
695 | typedef struct psiconv_sheet_worksheet_s |
761 | typedef struct psiconv_sheet_worksheet_s |
696 | { |
762 | { |
697 | psiconv_sheet_cell_layout default_layout; |
763 | psiconv_sheet_cell_layout default_layout; |
698 | psiconv_sheet_cell_list cells; |
764 | psiconv_sheet_cell_list cells; |
699 | psiconv_bool_t show_zeros; |
765 | psiconv_bool_t show_zeros; |
700 | psiconv_sheet_line_list row_default_layouts; |
766 | psiconv_sheet_line_list row_default_layouts; |
701 | psiconv_sheet_line_list col_default_layouts; |
767 | psiconv_sheet_line_list col_default_layouts; |
|
|
768 | psiconv_sheet_grid_section grid; |
702 | } *psiconv_sheet_worksheet; |
769 | } *psiconv_sheet_worksheet; |
703 | |
770 | |
704 | typedef psiconv_list psiconv_sheet_worksheet_list; |
771 | typedef psiconv_list psiconv_sheet_worksheet_list; |
705 | /* of struct psiconv_sheet_worksheet_s */ |
772 | /* of struct psiconv_sheet_worksheet_s */ |
706 | |
773 | |
… | |
… | |
754 | psiconv_page_layout_section page_sec; |
821 | psiconv_page_layout_section page_sec; |
755 | psiconv_sheet_status_section status_sec; |
822 | psiconv_sheet_status_section status_sec; |
756 | psiconv_sheet_workbook_section workbook_sec; |
823 | psiconv_sheet_workbook_section workbook_sec; |
757 | } *psiconv_sheet_f; |
824 | } *psiconv_sheet_f; |
758 | |
825 | |
|
|
826 | /* NB: psiconv_file is already defined above */ |
759 | typedef struct psiconv_file_s |
827 | struct psiconv_file_s |
760 | { |
828 | { |
761 | psiconv_file_type_t type; |
829 | psiconv_file_type_t type; |
762 | void *file; |
830 | void *file; |
763 | } *psiconv_file; |
831 | }; |
764 | |
832 | |
765 | |
833 | |
766 | /* UID1 */ |
834 | /* UID1 */ |
767 | #define PSICONV_ID_PSION5 0x10000037 |
835 | #define PSICONV_ID_PSION5 0x10000037 |
768 | #define PSICONV_ID_CLIPART 0x10000041 |
836 | #define PSICONV_ID_CLIPART 0x10000041 |
… | |
… | |
797 | #define PSICONV_ID_TEXTED_LAYOUT 0x10000066 |
865 | #define PSICONV_ID_TEXTED_LAYOUT 0x10000066 |
798 | #define PSICONV_ID_TEXTED_TEXT 0x10000064 |
866 | #define PSICONV_ID_TEXTED_TEXT 0x10000064 |
799 | #define PSICONV_ID_STYLE_REMOVABLE 0x1000004F |
867 | #define PSICONV_ID_STYLE_REMOVABLE 0x1000004F |
800 | #define PSICONV_ID_STYLE_BUILT_IN 0x1000004C |
868 | #define PSICONV_ID_STYLE_BUILT_IN 0x1000004C |
801 | #define PSICONV_ID_CLIPART_ITEM 0x10000040 |
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 |
802 | |
874 | |
803 | |
875 | |
804 | /* Return a clean layout_status. You can modify it at will. Returns NULL |
876 | /* Return a clean layout_status. You can modify it at will. Returns NULL |
805 | if there is not enough memory. */ |
877 | if there is not enough memory. */ |
806 | extern psiconv_character_layout psiconv_basic_character_layout(void); |
878 | extern psiconv_character_layout psiconv_basic_character_layout(void); |
… | |
… | |
843 | extern void psiconv_free_formula(psiconv_formula formula); |
915 | extern void psiconv_free_formula(psiconv_formula formula); |
844 | extern void psiconv_free_formula_list(psiconv_formula_list list); |
916 | extern void psiconv_free_formula_list(psiconv_formula_list list); |
845 | extern void psiconv_free_sheet_status_section |
917 | extern void psiconv_free_sheet_status_section |
846 | (psiconv_sheet_status_section section); |
918 | (psiconv_sheet_status_section section); |
847 | extern void psiconv_free_sheet_cell_layout(psiconv_sheet_cell_layout layout); |
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); |
848 | extern void psiconv_free_sheet_worksheet(psiconv_sheet_worksheet sheet); |
926 | extern void psiconv_free_sheet_worksheet(psiconv_sheet_worksheet sheet); |
849 | extern void psiconv_free_sheet_worksheet_list |
927 | extern void psiconv_free_sheet_worksheet_list |
850 | (psiconv_sheet_worksheet_list list); |
928 | (psiconv_sheet_worksheet_list list); |
851 | |
929 | |
852 | extern void psiconv_free_sheet_f(psiconv_sheet_f file); |
930 | extern void psiconv_free_sheet_f(psiconv_sheet_f file); |
… | |
… | |
858 | extern void psiconv_free_sheet_line(psiconv_sheet_line line); |
936 | extern void psiconv_free_sheet_line(psiconv_sheet_line line); |
859 | extern void psiconv_free_sheet_name_section(psiconv_sheet_name_section section); |
937 | extern void psiconv_free_sheet_name_section(psiconv_sheet_name_section section); |
860 | extern void psiconv_free_sheet_variable(psiconv_sheet_variable list); |
938 | extern void psiconv_free_sheet_variable(psiconv_sheet_variable list); |
861 | extern void psiconv_free_sheet_variable_list(psiconv_sheet_variable_list list); |
939 | extern void psiconv_free_sheet_variable_list(psiconv_sheet_variable_list list); |
862 | extern void psiconv_free_sheet_info_section(psiconv_sheet_info_section section); |
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); |
863 | extern void psiconv_free_header_section(psiconv_header_section header); |
943 | extern void psiconv_free_header_section(psiconv_header_section header); |
864 | 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); |
865 | extern void psiconv_free_section_table_section |
945 | extern void psiconv_free_section_table_section |
866 | (psiconv_section_table_section section); |
946 | (psiconv_section_table_section section); |
867 | extern void psiconv_free_application_id_section |
947 | extern void psiconv_free_application_id_section |
868 | (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); |
869 | 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); |
870 | 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); |
871 | extern void psiconv_free_replacement(psiconv_replacement replacement); |
957 | extern void psiconv_free_replacement(psiconv_replacement replacement); |
872 | extern void psiconv_free_replacements(psiconv_replacements replacements); |
958 | extern void psiconv_free_replacements(psiconv_replacements replacements); |
873 | extern void psiconv_free_paragraph(psiconv_paragraph paragraph); |
959 | extern void psiconv_free_paragraph(psiconv_paragraph paragraph); |