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)27 int     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)41 static  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)53 static  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