1 //      Holds system header includes, prototypes of TK driver
2 //      utility functions, and definition of the state structure.
3 //
4 //      This file is set up so that the determined user can get access
5 //      to the tk driver data without too much hassle.  The only drawback
6 //      is that plplotP.h must be included to get all of the necessary
7 //      system header files and configuration settings.
8 //
9 
10 #ifndef __PLTKD_H__
11 #define __PLTKD_H__
12 
13 #include "plplotP.h"
14 #include "pltk.h"
15 #include "pdf.h"
16 
17 #include <tk.h>
18 #ifdef PLD_dp
19 #include <dp.h>
20 #endif
21 
22 // typedef the type pid_t - a dummy for the moment - for MS Windows
23 // platforms other than those (e.g., MinGW) that typedef it already.
24 #if defined ( _WIN32 ) && !defined ( __MINGW32__ )
25 typedef unsigned int   pid_t;
26 #endif
27 
28 // One of these holds the TK driver state information
29 
30 typedef struct
31 {
32     Tk_Window    w;                     // Main window
33     Tcl_Interp   *interp;               // Interpreter
34     PLINT        xold, yold;            // Coordinates of last point plotted
35     unsigned     width, height;         // Current window dimensions
36     int          exit_eventloop;        // Break out of event loop
37     int          pass_thru;             // Skip normal error termination
38     char         *cmdbuf;               // Command buffer
39     size_t       cmdbuf_len;            // and its length
40     PLiodev      *iodev;                // I/O device info
41     const char   *updatecmd;            // Name of update command
42     pid_t        child_pid;             // PID for child process
43     int          instr;                 // Instruction timer
44     int          max_instr;             // Limit before issuing an update
45     int          locate_mode;           // Set while in locate mode
46     PLGraphicsIn gin;                   // Graphics input structure
47 } TkDev;
48 
49 #endif  // __PLTKD_H__
50