home *** CD-ROM | disk | FTP | other *** search
- /*
- * $XConsortium: DviP.h,v 1.5 89/07/22 19:44:08 keith Exp $
- */
-
- /*
- * DviP.h - Private definitions for Dvi widget
- */
-
- #ifndef _XtDviP_h
- #define _XtDviP_h
-
- #include "Dvi.h"
- #include "DviChar.h"
- #include "device.h"
-
- /***********************************************************************
- *
- * Dvi Widget Private Data
- *
- ***********************************************************************/
-
- /************************************
- *
- * Class structure
- *
- ***********************************/
-
- /* Type for save method. */
-
- typedef void (*DviSaveProc)();
-
- /*
- * New fields for the Dvi widget class record
- */
-
-
- typedef struct _DviClass {
- DviSaveProc save;
- } DviClassPart;
-
- /*
- * Full class record declaration
- */
-
- typedef struct _DviClassRec {
- CoreClassPart core_class;
- DviClassPart command_class;
- } DviClassRec;
-
- extern DviClassRec dviClassRec;
-
- /***************************************
- *
- * Instance (widget) structure
- *
- **************************************/
-
- /*
- * a list of fonts we've used for this widget
- */
-
- typedef struct _dviFontSizeList {
- struct _dviFontSizeList *next;
- int size;
- char *x_name;
- XFontStruct *font;
- int doesnt_exist;
- } DviFontSizeList;
-
- typedef struct _dviFontList {
- struct _dviFontList *next;
- char *dvi_name;
- char *x_name;
- int dvi_number;
- Boolean initialized;
- Boolean scalable;
- DviFontSizeList *sizes;
- DviCharNameMap *char_map;
- DeviceFont *device_font;
- } DviFontList;
-
- typedef struct _dviFontMap {
- struct _dviFontMap *next;
- char *dvi_name;
- char *x_name;
- } DviFontMap;
-
- #define DVI_TEXT_CACHE_SIZE 256
- #define DVI_CHAR_CACHE_SIZE 1024
-
- typedef struct _dviCharCache {
- XTextItem cache[DVI_TEXT_CACHE_SIZE];
- char adjustable[DVI_TEXT_CACHE_SIZE];
- char char_cache[DVI_CHAR_CACHE_SIZE];
- int index;
- int max;
- int char_index;
- int font_size;
- int font_number;
- XFontStruct *font;
- int start_x, start_y;
- int x, y;
- } DviCharCache;
-
- typedef struct _dviState {
- struct _dviState *next;
- int font_size;
- int font_number;
- int x;
- int y;
- } DviState;
-
- typedef struct _dviFileMap {
- struct _dviFileMap *next;
- long position;
- int page_number;
- } DviFileMap;
-
- /*
- * New fields for the Dvi widget record
- */
-
- typedef struct {
- /*
- * resource specifiable items
- */
- char *font_map_string;
- unsigned long foreground;
- unsigned long background;
- int requested_page;
- int last_page;
- XFontStruct *default_font;
- FILE *file;
- Boolean noPolyText;
- Boolean seek; /* file is "seekable" */
- int default_resolution;
- /*
- * private state
- */
- FILE *tmpFile; /* used when reading stdin */
- char readingTmp; /* reading now from tmp */
- char ungot; /* have ungetc'd a char */
- GC normal_GC;
- GC fill_GC;
- DviFileMap *file_map;
- DviFontList *fonts;
- DviFontMap *font_map;
- int current_page;
- int font_size;
- int font_number;
- DeviceFont *device_font;
- int device_font_number;
- Device *device;
- int native;
- int device_resolution;
- int display_resolution;
- int paperlength;
- int paperwidth;
- double scale_factor; /* display res / device res */
- int sizescale;
- int line_thickness;
- int line_width;
-
- #define DVI_FILL_MAX 1000
-
- int fill;
- #define DVI_FILL_WHITE 0
- #define DVI_FILL_GRAY 1
- #define DVI_FILL_BLACK 2
- int fill_type;
- Pixmap gray;
- int backing_store;
- XFontStruct *font;
- int display_enable;
- struct ExposedExtents {
- int x1, y1, x2, y2;
- } extents;
- DviState *state;
- DviCharCache cache;
- int text_x_width;
- int text_device_width;
- int word_flag;
- } DviPart;
-
- #define DviGetIn(dw,cp)\
- (dw->dvi.tmpFile ? (\
- DviGetAndPut (dw, cp) \
- ) :\
- (*cp = getc (dw->dvi.file))\
- )
-
- #define DviGetC(dw, cp)\
- (dw->dvi.readingTmp ? (\
- ((*cp = getc (dw->dvi.tmpFile)) == EOF) ? (\
- fseek (dw->dvi.tmpFile, 0l, 2),\
- (dw->dvi.readingTmp = 0),\
- DviGetIn (dw,cp)\
- ) : (\
- *cp\
- )\
- ) : (\
- DviGetIn(dw,cp)\
- )\
- )
-
- #define DviUngetC(dw, c)\
- (dw->dvi.readingTmp ? (\
- ungetc (c, dw->dvi.tmpFile)\
- ) : ( \
- (dw->dvi.ungot = 1),\
- ungetc (c, dw->dvi.file)))
-
- /*
- * Full widget declaration
- */
-
- typedef struct _DviRec {
- CorePart core;
- DviPart dvi;
- } DviRec;
-
- #define InheritSaveToFile ((DviSaveProc)_XtInherit)
-
- extern XFontStruct *QueryFont ();
-
- extern DviCharNameMap *QueryFontMap ();
-
- extern DeviceFont *QueryDeviceFont ();
-
- extern char *GetWord(), *GetLine();
- #endif /* _XtDviP_h */
-
-
-