1 #ifndef XWRAP_H_HEADER_INCLUDED 2 #define XWRAP_H_HEADER_INCLUDED 3 4 #if !defined(X_DISPLAY_MISSING) 5 # include <X11/Xlib.h> 6 # include <X11/Xutil.h> 7 # include <X11/Xmd.h> 8 # include <X11/Xatom.h> 9 # include <X11/Xproto.h> 10 # include <X11/Xresource.h> 11 12 #else 13 14 #ifdef __cplusplus 15 extern "C" { 16 #endif 17 18 # define Display void 19 # ifndef Bool 20 # define Bool int 21 # endif 22 # ifndef True 23 # define True 1 24 # endif 25 # ifndef False 26 # define False 0 27 # endif 28 29 #ifdef HAVE_STDINT_H 30 # include <stdint.h> 31 # ifndef CARD32 32 # define CARD32 uint32_t 33 # endif 34 # ifndef CARD16 35 # define CARD16 uint16_t 36 # endif 37 # ifndef CARD8 38 # define CARD8 uint8_t 39 # endif 40 #endif 41 42 # ifndef CARD32 43 # define CARD32 unsigned int 44 # endif 45 # ifndef CARD16 46 # define CARD16 unsigned short 47 # endif 48 # ifndef CARD8 49 # define CARD8 unsigned char 50 # endif 51 52 # ifndef XID 53 # define XID XID 54 typedef CARD32 XID; 55 # endif 56 57 # ifndef Drawable 58 # define Drawable Drawable 59 typedef XID Drawable; 60 # endif 61 # ifndef Atom 62 # define Atom Atom 63 typedef XID Atom; 64 # endif 65 # ifndef Window 66 # define Window Window 67 typedef XID Window; 68 # endif 69 # ifndef Pixmap 70 # define Pixmap Pixmap 71 typedef XID Pixmap; 72 # endif 73 # ifndef Font 74 # define Font Font 75 typedef XID Font; 76 # endif 77 # ifndef Colormap 78 # define Colormap Colormap 79 typedef XID Colormap; 80 # endif 81 # ifndef Cursor 82 # define Cursor Cursor 83 typedef XID Cursor; 84 # endif 85 # ifndef VisualID 86 # define VisualID VisualID 87 typedef XID VisualID; 88 # endif 89 90 # ifndef GC 91 # define GC GC 92 typedef void* GC; 93 # endif 94 95 # ifndef None 96 # define None 0 97 # endif 98 99 typedef struct { 100 int function; /* logical operation */ 101 unsigned long plane_mask;/* plane mask */ 102 unsigned long foreground;/* foreground pixel */ 103 unsigned long background;/* background pixel */ 104 int line_width; /* line width */ 105 int line_style; /* LineSolid, LineOnOffDash, LineDoubleDash */ 106 int cap_style; /* CapNotLast, CapButt, 107 CapRound, CapProjecting */ 108 int join_style; /* JoinMiter, JoinRound, JoinBevel */ 109 int fill_style; /* FillSolid, FillTiled, 110 FillStippled, FillOpaeueStippled */ 111 int fill_rule; /* EvenOddRule, WindingRule */ 112 int arc_mode; /* ArcChord, ArcPieSlice */ 113 Pixmap tile; /* tile pixmap for tiling operations */ 114 Pixmap stipple; /* stipple 1 plane pixmap for stipping */ 115 int ts_x_origin; /* offset for tile or stipple operations */ 116 int ts_y_origin; 117 Font font; /* default text font for text operations */ 118 int subwindow_mode; /* ClipByChildren, IncludeInferiors */ 119 Bool graphics_exposures;/* boolean, should exposures be generated */ 120 int clip_x_origin; /* origin for clipping */ 121 int clip_y_origin; 122 Pixmap clip_mask; /* bitmap clipping; other calls for rects */ 123 int dash_offset; /* patterned/dashed line information */ 124 char dashes; 125 } XGCValues; 126 127 typedef struct { 128 unsigned char *value; /* same as Property routines */ 129 Atom encoding; /* prop type */ 130 int format; /* prop data format: 8, 16, or 32 */ 131 unsigned long nitems; /* number of data items in value */ 132 } XTextProperty; 133 134 typedef struct { 135 void *ext_data; /* hook for extension to hang data */ 136 XID visualid; /* visual id of this visual */ 137 # if defined(__cplusplus) || defined(c_plusplus) 138 int c_class; /* C++ class of screen (monochrome, etc.) */ 139 # else 140 int class; /* class of screen (monochrome, etc.) */ 141 # endif 142 unsigned long red_mask, green_mask, blue_mask; /* mask values */ 143 int bits_per_rgb; /* log base 2 of distinct color values */ 144 int map_entries; /* color map entries */ 145 } Visual; 146 147 typedef struct { 148 Visual *visual; 149 VisualID visualid; 150 int screen; 151 int depth; 152 # if defined(__cplusplus) || defined(c_plusplus) 153 int c_class; /* C++ */ 154 # else 155 int class; 156 # endif 157 unsigned long red_mask; 158 unsigned long green_mask; 159 unsigned long blue_mask; 160 int colormap_size; 161 int bits_per_rgb; 162 } XVisualInfo; 163 164 typedef struct _XImage { 165 int width, height; /* size of image */ 166 int xoffset; /* number of pixels offset in X direction */ 167 int format; /* XYBitmap, XYPixmap, ZPixmap */ 168 char *data; /* pointer to image data */ 169 int byte_order; /* data byte order, LSBFirst, MSBFirst */ 170 int bitmap_unit; /* quant. of scanline 8, 16, 32 */ 171 int bitmap_bit_order; /* LSBFirst, MSBFirst */ 172 int bitmap_pad; /* 8, 16, 32 either XY or ZPixmap */ 173 int depth; /* depth of image */ 174 int bytes_per_line; /* accelarator to next line */ 175 int bits_per_pixel; /* bits per pixel (ZPixmap) */ 176 unsigned long red_mask; /* bits in z arrangment */ 177 unsigned long green_mask; 178 unsigned long blue_mask; 179 void *obdata; /* hook for the object routines to hang on */ 180 struct funcs { /* image manipulation routines */ 181 # if NeedFunctionPrototypes 182 struct _XImage *(*create_image)( 183 void* /* display */, 184 void* /* visual */, 185 unsigned int /* depth */, 186 int /* format */, 187 int /* offset */, 188 char* /* data */, 189 unsigned int /* width */, 190 unsigned int /* height */, 191 int /* bitmap_pad */, 192 int /* bytes_per_line */); 193 int (*destroy_image) (struct _XImage *); 194 unsigned long (*get_pixel) (struct _XImage *, int, int); 195 int (*put_pixel) (struct _XImage *, int, int, unsigned long); 196 struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int); 197 int (*add_pixel) (struct _XImage *, long); 198 # else 199 struct _XImage *(*create_image)(); 200 int (*destroy_image)(); 201 unsigned long (*get_pixel)(); 202 int (*put_pixel)(); 203 struct _XImage *(*sub_image)(); 204 int (*add_pixel)(); 205 # endif 206 } f; 207 } XImage; 208 209 typedef struct { 210 Pixmap background_pixmap; /* background or None or ParentRelative */ 211 unsigned long background_pixel; /* background pixel */ 212 Pixmap border_pixmap; /* border of the window */ 213 unsigned long border_pixel; /* border pixel value */ 214 int bit_gravity; /* one of bit gravity values */ 215 int win_gravity; /* one of the window gravity values */ 216 int backing_store; /* NotUseful, WhenMapped, Always */ 217 unsigned long backing_planes;/* planes to be preseved if possible */ 218 unsigned long backing_pixel;/* value to use in restoring planes */ 219 Bool save_under; /* should bits under be saved? (popups) */ 220 long event_mask; /* set of events that should be saved */ 221 long do_not_propagate_mask; /* set of events that should not propagate */ 222 Bool override_redirect; /* boolean value for override-redirect */ 223 Colormap colormap; /* color map to be associated with window */ 224 Cursor cursor; /* cursor to be displayed (or None) */ 225 } XSetWindowAttributes; 226 227 typedef struct { 228 unsigned long pixel; 229 unsigned short red, green, blue; 230 char flags; /* do_red, do_green, do_blue */ 231 char pad; 232 } XColor; 233 234 int XParseGeometry ( char *string,int *x,int *y, 235 unsigned int *width, /* RETURN */ 236 unsigned int *height); /* RETURN */ 237 238 /* needed by above function : */ 239 # define NoValue 0x0000 240 # define XValue 0x0001 241 # define YValue 0x0002 242 # define WidthValue 0x0004 243 # define HeightValue 0x0008 244 # define AllValues 0x000F 245 # define XNegative 0x0010 246 # define YNegative 0x0020 247 248 # ifdef __cplusplus 249 } 250 # endif 251 252 #endif /* X_DISPLAY_MISSING */ 253 254 # ifdef __cplusplus 255 extern "C" { 256 # endif 257 258 # if defined(ASIM_AFTERBASE_H_HEADER_INCLUDED) 259 260 int asim_get_drawable_size (Drawable d, unsigned int *ret_w, unsigned int *ret_h); 261 # define get_drawable_size(d,w,h) asim_get_drawable_size((d),(w),(h)) 262 263 # else 264 265 int grab_server(); 266 int ungrab_server(); 267 Bool is_server_grabbed(); 268 269 270 Bool get_drawable_size (Drawable d, unsigned int *ret_w, unsigned int *ret_h); 271 Drawable validate_drawable (Drawable d, unsigned int *pwidth, unsigned int *pheight); 272 void backtrace_window ( const char *file, int line, Window w ); 273 274 Window get_parent_window( Window w ); 275 Window get_topmost_parent( Window w, Window *desktop_w ); 276 277 # endif 278 279 # ifdef __cplusplus 280 } 281 # endif 282 283 #endif 284