1 /************************************************************************ 2 * * 3 * Printing from BCC2GRX * 4 * * 5 * Author: Andris Pavenis (pavenis@latnet.lv) * 6 * * 7 ************************************************************************/ 8 9 10 #include <stdio.h> 11 #include <string.h> 12 #include <grx20.h> 13 #include <grxprint.h> 14 #include <libbcc.h> 15 #include "bccgrx00.h" 16 17 18 19 int __gr_print_mode = -1; 20 char * __gr_print_dest = NULL; 21 22 23 static int bgiprint_init (void); 24 static int bgiprint_close (void); 25 26 set_BGI_print_mode(int mode,char * dest)27int set_BGI_print_mode ( int mode , char * dest ) 28 { 29 if (dest) 30 if (*dest==0) 31 dest = 0; 32 __gr_print_mode = mode; 33 if (__gr_print_dest) free(__gr_print_dest); 34 __gr_print_dest = dest ? strdup(dest) : NULL; 35 __gr_set_libbcc_init_hooks (bgiprint_init,bgiprint_close); 36 return 0; 37 } 38 39 40 bgiprint_init(void)41static int bgiprint_init (void) 42 { 43 int ret; 44 ret = GrPrintSetMode (__gr_print_mode); 45 if (ret!=TRUE) { ERR=grInvalidMode; return -1; } 46 __gr_Mode = 1; 47 __gr_INIT = 1; 48 graphdefaults(); 49 return 0; 50 } 51 52 bgiprint_close(void)53static int bgiprint_close (void) 54 { 55 if (__gr_print_dest) 56 { 57 GrPrintToFile (__gr_print_dest); 58 free (__gr_print_dest); 59 __gr_print_dest = 0; 60 } 61 else 62 { 63 GrDoPrinting (); 64 } 65 return 0; 66 } 67 68 69 70