1 /* 2 * grX11Int.h -- 3 * 4 * Internal definitions for grX11su[1..5].c. 5 * 6 * NOTE: In order for the these defs to work correctly, this file 7 * (grXInt.h) must be included after all the Magic .h files and before 8 * the X .h files. 9 */ 10 11 #include "utils/magic.h" 12 13 /* Constants 14 */ 15 #define M_WIDTH 1023 16 #define M_HEIGHT 750 17 18 #define MAX_CURSORS 32 /* Maximum number of programmable cursors */ 19 20 #define GR_DEFAULT_FONT "9x15" 21 #define X11_BATCH_SIZE 10000 22 23 #define grMagicToX(y) ( grCurrent.mw->w_allArea.r_ytop - (y)) 24 #define grXToMagic(y) ( grCurrent.mw->w_allArea.r_ytop - (y)) 25 26 #ifdef OLD_R2_FONTS 27 /* 28 * Some machines still run release 2 of X. 29 */ 30 # define X_FONT_SMALL "vg-13" 31 # define X_FONT_MEDIUM "fg-18" 32 # define X_FONT_LARGE "vrb-25" 33 # define X_FONT_XLARGE "vrb-37" 34 #else 35 /* 36 * Our default fonts for X11. (Release 3 fonts.) 37 */ 38 39 # define X_FONT_SMALL "-*-helvetica-medium-r-normal--10-*-75-75-p-*-iso8859-*" 40 # define X_FONT_MEDIUM "-*-helvetica-medium-r-normal--14-*-75-75-p-*-iso8859-*" 41 # define X_FONT_LARGE "-*-helvetica-medium-r-normal--18-*-75-75-p-*-iso8859-*" 42 # define X_FONT_XLARGE "-*-helvetica-medium-r-normal--24-*-75-75-p-*-iso8859-*" 43 #endif 44 45 /* Macro for conversion between X and Magic coordinates 46 */ 47 48 /* Current settings for X function parameters */ 49 typedef struct { 50 XFontStruct *font; 51 Cursor cursor; 52 int fontSize; 53 int maskmod; 54 Window window; 55 MagWindow *mw; 56 } GR_CURRENT; 57 58 /* X11 Display settings determined by the visual */ 59 typedef struct { 60 unsigned long basepixel; 61 unsigned long planes[32]; 62 int depth; 63 int planeCount; 64 int colorCount; 65 int realColors; 66 int red_mask; 67 int green_mask; 68 int blue_mask; 69 } GR_DISPLAY; 70 71 extern Display *grXdpy; 72 extern Colormap grXcmap; 73 extern int grXscrn; 74 extern unsigned int grClass; 75 extern unsigned long grPixels[]; 76 extern unsigned long grPlanes[]; 77 extern GR_CURRENT grCurrent; 78 extern GR_DISPLAY grDisplay; 79 extern GC grGCFill, grGCText, grGCDraw, grGCCopy, grGCGlyph; 80 81 extern bool grx11GetCursorRootPos(); 82 extern bool grx11DrawGrid(); 83 extern void GrX11EnableTablet(); 84 extern void GrX11DisableTablet(); 85 extern void GrX11SetCMap(); 86 extern void grx11PutText(); 87 extern void grx11FontText(); 88 extern void grx11DefineCursor(); 89 extern void GrX11SetCursor(); 90 extern void GrX11TextSize(); 91 extern void GrX11DrawGlyph(); 92 extern void GrX11BitBlt(); 93 extern void NullBitBlt(); 94 extern int GrX11ReadPixel(); 95 extern void grx11DrawLine(); 96 extern void grx11SetLineStyle(); 97 extern void grx11SetCharSize(); 98 extern void grx11SetWMandC(); 99 extern void grx11FillRect(); 100 extern void grx11RectConvert(); 101 extern void grx11FillPolygon(); 102 103 extern void grx11FreeBackingStore(); 104 extern void grx11CreateBackingStore(); 105 extern bool grx11GetBackingStore(); 106 extern bool grx11ScrollBackingStore(); 107 extern void grx11PutBackingStore(); 108 109 extern void grx11DrawLines(); 110 extern XSegment grx11Lines[]; 111 extern int grx11NbLines; 112 extern void grx11FillRects(); 113 extern XRectangle grx11Rects[]; 114 extern int grx11NbRects; 115 116 #define GR_X_FLUSH_LINES() {if (grx11NbLines>0) {grx11DrawLines(grx11Lines, grx11NbLines); grx11NbLines=0;}} 117 #define GR_X_FLUSH_RECTS() {if (grx11NbRects>0) {grx11FillRects(grx11Rects, grx11NbRects); grx11NbRects=0;}} 118 #define GR_X_FLUSH_BATCH() {GR_X_FLUSH_LINES(); GR_X_FLUSH_RECTS();} 119