/* * grX11Int.h -- * * Internal definitions for grX11su[1..5].c. * * NOTE: In order for the these defs to work correctly, this file * (grXInt.h) must be included after all the Magic .h files and before * the X .h files. */ #ifndef _MAGIC__GRAPHICS__GRX11INT_H #define _MAGIC__GRAPHICS__GRX11INT_H #include "utils/magic.h" /* Constants */ #define M_WIDTH 1023 #define M_HEIGHT 750 #define MAX_CURSORS 32 /* Maximum number of programmable cursors */ #define GR_DEFAULT_FONT "9x15" #define X11_BATCH_SIZE 10000 #define grMagicToX(y) ( grCurrent.mw->w_allArea.r_ytop - (y)) #define grXToMagic(y) ( grCurrent.mw->w_allArea.r_ytop - (y)) #ifdef OLD_R2_FONTS /* * Some machines still run release 2 of X. */ # define X_FONT_SMALL "vg-13" # define X_FONT_MEDIUM "fg-18" # define X_FONT_LARGE "vrb-25" # define X_FONT_XLARGE "vrb-37" #else /* * Our default fonts for X11. (Release 3 fonts.) */ # define X_FONT_SMALL "-*-helvetica-medium-r-normal--10-*-75-75-p-*-iso8859-*" # define X_FONT_MEDIUM "-*-helvetica-medium-r-normal--14-*-75-75-p-*-iso8859-*" # define X_FONT_LARGE "-*-helvetica-medium-r-normal--18-*-75-75-p-*-iso8859-*" # define X_FONT_XLARGE "-*-helvetica-medium-r-normal--24-*-75-75-p-*-iso8859-*" #endif /* Macro for conversion between X and Magic coordinates */ /* Current settings for X function parameters */ typedef struct { XFontStruct *font; Cursor cursor; int fontSize; int maskmod; Window window; MagWindow *mw; } GR_CURRENT; /* X11 Display settings determined by the visual */ typedef struct { unsigned long basepixel; unsigned long planes[32]; int depth; int planeCount; int colorCount; int realColors; int red_mask; int green_mask; int blue_mask; } GR_DISPLAY; extern Display *grXdpy; extern Colormap grXcmap; extern int grXscrn; extern unsigned int grClass; extern unsigned long grPixels[]; extern unsigned long grPlanes[]; extern GR_CURRENT grCurrent; extern GR_DISPLAY grDisplay; extern GC grGCFill, grGCText, grGCDraw, grGCCopy, grGCGlyph; extern bool grx11GetCursorRootPos(); extern bool grx11DrawGrid(); extern void GrX11EnableTablet(); extern void GrX11DisableTablet(); extern void GrX11SetCMap(); extern void grx11PutText(); extern void grx11FontText(); extern void grx11DefineCursor(); extern void GrX11SetCursor(); extern int GrX11TextSize(); extern void GrX11DrawGlyph(); extern void GrX11BitBlt(); extern void NullBitBlt(); extern int GrX11ReadPixel(); extern void grx11DrawLine(); extern void grx11SetLineStyle(); extern void grx11SetCharSize(); extern void grx11SetWMandC(); extern void grx11FillRect(); extern void grx11RectConvert(); extern void grx11FillPolygon(); extern void grx11FreeBackingStore(); extern void grx11CreateBackingStore(); extern bool grx11GetBackingStore(); extern bool grx11ScrollBackingStore(); extern void grx11PutBackingStore(); extern void grx11DrawLines(); extern XSegment grx11Lines[]; extern int grx11NbLines; extern void grx11FillRects(); extern XRectangle grx11Rects[]; extern int grx11NbRects; #define GR_X_FLUSH_LINES() {if (grx11NbLines>0) {grx11DrawLines(grx11Lines, grx11NbLines); grx11NbLines=0;}} #define GR_X_FLUSH_RECTS() {if (grx11NbRects>0) {grx11FillRects(grx11Rects, grx11NbRects); grx11NbRects=0;}} #define GR_X_FLUSH_BATCH() {GR_X_FLUSH_LINES(); GR_X_FLUSH_RECTS();} #endif /* _MAGIC__GRAPHICS__GRX11INT_H */