2 * $XConsortium: DviP.h,v 1.5 89/07/22 19:44:08 keith Exp $
6 * DviP.h - Private definitions for Dvi widget
16 /***********************************************************************
18 * Dvi Widget Private Data
20 ***********************************************************************/
22 /************************************
26 ***********************************/
28 /* Type for save method. */
30 typedef void (*DviSaveProc
)();
33 * New fields for the Dvi widget class record
37 typedef struct _DviClass
{
42 * Full class record declaration
45 typedef struct _DviClassRec
{
46 CoreClassPart core_class
;
47 DviClassPart command_class
;
50 extern DviClassRec dviClassRec
;
52 /***************************************
54 * Instance (widget) structure
56 **************************************/
59 * a list of fonts we've used for this widget
62 typedef struct _dviFontSizeList
{
63 struct _dviFontSizeList
*next
;
70 typedef struct _dviFontList
{
71 struct _dviFontList
*next
;
77 DviFontSizeList
*sizes
;
78 DviCharNameMap
*char_map
;
79 DeviceFont
*device_font
;
82 typedef struct _dviFontMap
{
83 struct _dviFontMap
*next
;
88 #define DVI_TEXT_CACHE_SIZE 256
89 #define DVI_CHAR_CACHE_SIZE 1024
91 typedef struct _dviCharCache
{
92 XTextItem cache
[DVI_TEXT_CACHE_SIZE
];
93 char adjustable
[DVI_TEXT_CACHE_SIZE
];
94 char char_cache
[DVI_CHAR_CACHE_SIZE
];
101 int start_x
, start_y
;
105 typedef struct _dviState
{
106 struct _dviState
*next
;
113 typedef struct _dviFileMap
{
114 struct _dviFileMap
*next
;
120 * New fields for the Dvi widget record
125 * resource specifiable items
127 char *font_map_string
;
128 unsigned long foreground
;
129 unsigned long background
;
132 XFontStruct
*default_font
;
135 Boolean seek
; /* file is "seekable" */
136 int default_resolution
;
140 FILE *tmpFile
; /* used when reading stdin */
141 char readingTmp
; /* reading now from tmp */
142 char ungot
; /* have ungetc'd a char */
145 DviFileMap
*file_map
;
147 DviFontMap
*font_map
;
151 DeviceFont
*device_font
;
152 int device_font_number
;
155 int device_resolution
;
156 int display_resolution
;
159 double scale_factor
; /* display res / device res */
164 #define DVI_FILL_MAX 1000
167 #define DVI_FILL_WHITE 0
168 #define DVI_FILL_GRAY 1
169 #define DVI_FILL_BLACK 2
175 struct ExposedExtents
{
181 int text_device_width
;
185 extern int DviGetAndPut();
186 #define DviGetIn(dw,cp)\
187 (dw->dvi.tmpFile ? (\
188 DviGetAndPut (dw, cp) \
190 (*cp = getc (dw->dvi.file))\
193 #define DviGetC(dw, cp)\
194 (dw->dvi.readingTmp ? (\
195 ((*cp = getc (dw->dvi.tmpFile)) == EOF) ? (\
196 fseek (dw->dvi.tmpFile, 0l, 2),\
197 (dw->dvi.readingTmp = 0),\
207 #define DviUngetC(dw, c)\
208 (dw->dvi.readingTmp ? (\
209 ungetc (c, dw->dvi.tmpFile)\
211 (dw->dvi.ungot = 1),\
212 ungetc (c, dw->dvi.file)))
215 * Full widget declaration
218 typedef struct _DviRec
{
223 #define InheritSaveToFile ((DviSaveProc)_XtInherit)
225 extern XFontStruct
*QueryFont ();
227 extern DviCharNameMap
*QueryFontMap ();
229 extern DeviceFont
*QueryDeviceFont ();
231 extern char *GetWord(), *GetLine();
232 #endif /* _XtDviP_h */