1 /**********
2 Copyright 1990 Regents of the University of California.  All rights reserved.
3 Author: 1987 Jeffrey M. Hsu
4 **********/
5 
6 /*
7     The display device structure.
8 */
9 
10 #ifndef ngspice_FTEDEV_H
11 #define ngspice_FTEDEV_H
12 
13 #include "ngspice/bool.h"
14 #include "ngspice/typedefs.h"
15 
16 struct graph;
17 struct request;
18 struct response;
19 
20 typedef int  disp_fn_Init_t (void);
21 typedef int  disp_fn_NewViewport_t (struct graph *);
22 typedef int  disp_fn_Close_t (void);
23 typedef int  disp_fn_Clear_t (void);
24 typedef int  disp_fn_DrawLine_t (int x1, int y1, int x2, int y2, bool isgrid);
25 typedef int  disp_fn_Arc_t (int x0, int y0, int radius, double theta, double delta_theta);
26 typedef int  disp_fn_Text_t (const char *text, int x, int y, int angle);
27 typedef int  disp_fn_DefineColor_t (int colorid, double red, double green, double blue);
28 typedef int  disp_fn_DefineLinestyle_t (int linestyleid, int mask);
29 typedef int  disp_fn_SetLinestyle_t (int linestyleid);
30 typedef int  disp_fn_SetColor_t (int colorid);
31 typedef int  disp_fn_Update_t (void);
32 typedef int  disp_fn_Finalize_t (void);
33 typedef int  disp_fn_Track_t (void);
34 typedef int  disp_fn_MakeMenu_t (void);
35 typedef int  disp_fn_MakeDialog_t (void);
36 typedef int  disp_fn_Input_t (struct request *request, struct response *response);
37 typedef void disp_fn_DatatoScreen_t (struct graph *graph, double x, double y, int *screenx, int *screeny);
38 
39 typedef struct {
40     char *name;
41     int minx, miny;
42     int width, height;      /* in screen coordinate system */
43     int numlinestyles, numcolors;   /* number supported */
44 
45     disp_fn_Init_t             *Init;
46     disp_fn_NewViewport_t      *NewViewport;
47     disp_fn_Close_t            *Close;
48     disp_fn_Clear_t            *Clear;
49     disp_fn_DrawLine_t         *DrawLine;
50     disp_fn_Arc_t              *DrawArc;
51     disp_fn_Text_t             *DrawText;
52     disp_fn_DefineColor_t      *DefineColor;
53     disp_fn_DefineLinestyle_t  *DefineLinestyle;
54     disp_fn_SetLinestyle_t     *SetLinestyle;
55     disp_fn_SetColor_t         *SetColor;
56     disp_fn_Update_t           *Update;
57     disp_fn_Finalize_t         *Finalize;
58     disp_fn_Track_t            *Track;
59     disp_fn_MakeMenu_t         *MakeMenu;
60     disp_fn_MakeDialog_t       *MakeDialog;
61     disp_fn_Input_t            *Input;
62     disp_fn_DatatoScreen_t     *DatatoScreen;
63 } DISPDEVICE;
64 
65 extern DISPDEVICE *dispdev;
66 
67 
68 #endif
69