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