Annotation of researchv9/X11/src/X.V11R1/lib/X/Xlib.h, revision 1.1

1.1     ! root        1: /* $Header: Xlib.h,v 11.133 87/09/12 02:35:11 rws Exp $ */
        !             2: /* 
        !             3:  * Copyright 1985, 1986, 1987 by the Massachusetts Institute of Technology
        !             4:  *
        !             5:  * Permission to use, copy, modify, and distribute this software and its
        !             6:  * documentation for any purpose and without fee is hereby granted, provided 
        !             7:  * that the above copyright notice appear in all copies and that both that 
        !             8:  * copyright notice and this permission notice appear in supporting 
        !             9:  * documentation, and that the name of M.I.T. not be used in advertising
        !            10:  * or publicity pertaining to distribution of the software without specific, 
        !            11:  * written prior permission. M.I.T. makes no representations about the 
        !            12:  * suitability of this software for any purpose.  It is provided "as is"
        !            13:  * without express or implied warranty.
        !            14:  *
        !            15:  * The X Window System is a Trademark of MIT.
        !            16:  *
        !            17:  */
        !            18: 
        !            19: 
        !            20: /*
        !            21:  *     Xlib.h - Header definition and support file for the C subroutine
        !            22:  *     interface library (Xlib) to the X Window System Protocol (V11).
        !            23:  *     Corresponds to the Beta test release.  Structures and symbols
        !            24:  *     starting with "_" are private to the library.
        !            25:  */
        !            26: #ifndef _XLIB_H_
        !            27: #define _XLIB_H_
        !            28: 
        !            29: #include <sys/types.h>
        !            30: #include <X11/X.h>
        !            31: 
        !            32: #define Bool int
        !            33: #define Status int
        !            34: #define True 1
        !            35: #define False 0
        !            36: 
        !            37: #define ConnectionNumber(dpy)  ((dpy)->fd)
        !            38: #define RootWindow(dpy, scr)   (((dpy)->screens[(scr)]).root)
        !            39: #define DefaultScreen(dpy)     ((dpy)->default_screen)
        !            40: #define DefaultRootWindow(dpy)         (((dpy)->screens[(dpy)->default_screen]).root)
        !            41: #define DefaultVisual(dpy, scr) (((dpy)->screens[(scr)]).root_visual)
        !            42: #define DefaultGC(dpy, scr)    (((dpy)->screens[(scr)]).default_gc)
        !            43: #define BlackPixel(dpy, scr)   (((dpy)->screens[(scr)]).black_pixel)
        !            44: #define WhitePixel(dpy, scr)   (((dpy)->screens[(scr)]).white_pixel)
        !            45: #define AllPlanes              (~0)
        !            46: #define QLength(dpy)           ((dpy)->qlen)
        !            47: #define DisplayWidth(dpy, scr)         (((dpy)->screens[(scr)]).width)
        !            48: #define DisplayHeight(dpy, scr) (((dpy)->screens[(scr)]).height)
        !            49: #define DisplayWidthMM(dpy, scr)(((dpy)->screens[(scr)]).mwidth)
        !            50: #define DisplayHeightMM(dpy, scr)(((dpy)->screens[(scr)]).mheight)
        !            51: #define DisplayPlanes(dpy, scr) (((dpy)->screens[(scr)]).root_depth)
        !            52: #define DisplayCells(dpy, scr)         (DefaultVisual((dpy), (scr))->map_entries)
        !            53: #define ScreenCount(dpy)       ((dpy)->nscreens)
        !            54: #define ServerVendor(dpy)      ((dpy)->vendor)
        !            55: #define ProtocolVersion(dpy)   ((dpy)->proto_major_version)
        !            56: #define ProtocolRevision(dpy)  ((dpy)->proto_minor_version)
        !            57: #define VendorRelease(dpy)     ((dpy)->release)
        !            58: #define DisplayString(dpy)     ((dpy)->display_name)
        !            59: #define DefaultDepth(dpy, scr)         (((dpy)->screens[(scr)]).root_depth)
        !            60: #define DefaultColormap(dpy, scr)(((dpy)->screens[(scr)]).cmap)
        !            61: #define BitmapUnit(dpy)        ((dpy)->bitmap_unit)
        !            62: #define BitmapBitOrder(dpy)    ((dpy)->bitmap_bit_order)
        !            63: #define BitmapPad(dpy)                 ((dpy)->bitmap_pad)
        !            64: #define ImageByteOrder(dpy)    ((dpy)->byte_order)
        !            65: 
        !            66: /* macros for screen oriented applications (toolkit) */
        !            67: #define ScreenOfDisplay(dpy, scr)(&((dpy)->screens[(scr)]))
        !            68: #define DefaultScreenOfDisplay(dpy) (&((dpy)->screens[(dpy)->default_screen]))
        !            69: #define DisplayOfScreen(s)     ((s)->display)
        !            70: #define RootWindowOfScreen(s)  ((s)->root)
        !            71: #define BlackPixelOfScreen(s)  ((s)->black_pixel)
        !            72: #define WhitePixelOfScreen(s)  ((s)->white_pixel)
        !            73: #define DefaultColormapOfScreen(s)((s)->cmap)
        !            74: #define DefaultDepthOfScreen(s)        ((s)->root_depth)
        !            75: #define DefaultGCOfScreen(s)   ((s)->default_gc)
        !            76: #define DefaultVisualOfScreen(s)((s)->root_visual)
        !            77: #define WidthOfScreen(s)       ((s)->width)
        !            78: #define HeightOfScreen(s)      ((s)->height)
        !            79: #define WidthMMOfScreen(s)     ((s)->mwidth)
        !            80: #define HeightMMOfScreen(s)    ((s)->mheight)
        !            81: #define PlanesOfScreen(s)      ((s)->root_depth)
        !            82: #define CellsOfScreen(s)       (DefaultVisualOfScreen((s))->map_entries)
        !            83: #define MinCmapsOfScreen(s)    ((s)->min_maps)
        !            84: #define MaxCmapsOfScreen(s)    ((s)->max_maps)
        !            85: #define DoesSaveUnders(s)      ((s)->save_unders)
        !            86: #define DoesBackingStore(s)    ((s)->backing_store)
        !            87: #define EventMaskOfScreen(s)   ((s)->root_input_mask)
        !            88: 
        !            89: /*
        !            90:  * Extensions need a way to hang private data on some structures.
        !            91:  */
        !            92: typedef struct _XExtData {
        !            93:        int number;             /* number returned by XRegisterExtension */
        !            94:        struct _XExtData *next; /* next item on list of data for structure */
        !            95:        int (*free_private)();  /* called to free private storage */
        !            96:        char *private_data;     /* data private to this extension. */
        !            97: } XExtData;
        !            98: 
        !            99: /*
        !           100:  * This file contains structures used by the extension mechanism.
        !           101:  */
        !           102: typedef struct {               /* public to extension, cannot be changed */
        !           103:        int extension;          /* extension number */
        !           104:        int major_opcode;       /* major op-code assigned by server */
        !           105:        int first_event;        /* first event number for the extension */
        !           106:        int first_error;        /* first error number for the extension */
        !           107: } XExtCodes;
        !           108: 
        !           109: /*
        !           110:  * This structure is private to the library.
        !           111:  */
        !           112: typedef struct _XExten {       /* private to extension mechanism */
        !           113:        struct _XExten *next;   /* next in list */
        !           114:        XExtCodes codes;        /* public information, all extension told */
        !           115:        int (*create_GC)();     /* routine to call when GC created */
        !           116:        int (*copy_GC)();       /* routine to call when GC copied */
        !           117:        int (*flush_GC)();      /* routine to call when GC flushed */
        !           118:        int (*free_GC)();       /* routine to call when GC freed */
        !           119:        int (*create_Font)();   /* routine to call when Font created */
        !           120:        int (*free_Font)();     /* routine to call when Font freed */
        !           121:        int (*close_display)(); /* routine to call when connection closed */
        !           122:        int (*error)();         /* who to call when an error occurs */
        !           123:        int (*error_string)();  /* routine to supply error string */
        !           124: } _XExtension;
        !           125: 
        !           126: /*
        !           127:  * Data structure for setting graphics context.
        !           128:  */
        !           129: typedef struct {
        !           130:        int function;           /* logical operation */
        !           131:        unsigned long plane_mask;/* plane mask */
        !           132:        unsigned long foreground;/* foreground pixel */
        !           133:        unsigned long background;/* background pixel */
        !           134:        int line_width;         /* line width */
        !           135:        int line_style;         /* LineSolid, LineOnOffDash, LineDoubleDash */
        !           136:        int cap_style;          /* CapNotLast, CapButt, 
        !           137:                                   CapRound, CapProjecting */
        !           138:        int join_style;         /* JoinMiter, JoinRound, JoinBevel */
        !           139:        int fill_style;         /* FillSolid, FillTiled, 
        !           140:                                   FillStippled, FillOpaeueStippled */
        !           141:        int fill_rule;          /* EvenOddRule, WindingRule */
        !           142:        int arc_mode;           /* ArcChord, ArcPieSlice */
        !           143:        Pixmap tile;            /* tile pixmap for tiling operations */
        !           144:        Pixmap stipple;         /* stipple 1 plane pixmap for stipping */
        !           145:        int ts_x_origin;        /* offset for tile or stipple operations */
        !           146:        int ts_y_origin;
        !           147:         Font font;             /* default text font for text operations */
        !           148:        int subwindow_mode;     /* ClipByChildren, IncludeInferiors */
        !           149:        Bool graphics_exposures;/* boolean, should exposures be generated */
        !           150:        int clip_x_origin;      /* origin for clipping */
        !           151:        int clip_y_origin;
        !           152:        Pixmap clip_mask;       /* bitmap clipping; other calls for rects */
        !           153:        int dash_offset;        /* patterned/dashed line information */
        !           154:        char dashes;
        !           155: } XGCValues;
        !           156: 
        !           157: /*
        !           158:  * Graphics context.  All Xlib routines deal in this rather than
        !           159:  * in raw protocol GContext ID's.  This is so that the library can keep
        !           160:  * a "shadow" set of values, and thus avoid passing values over the
        !           161:  * wire which are not in fact changing. 
        !           162:  */
        !           163: 
        !           164: typedef struct _XGC {
        !           165:     XExtData *ext_data;        /* hook for extension to hang data */
        !           166:     GContext gid;      /* protocol ID for graphics context */
        !           167:     Bool rects;                /* boolean: TRUE if clipmask is list of rectangles */
        !           168:     Bool dashes;       /* boolean: TRUE if dash-list is really a list */
        !           169:     unsigned long dirty;/* cache dirty bits */
        !           170:     XGCValues values;  /* shadow structure of values */
        !           171: } *GC;
        !           172: 
        !           173: 
        !           174: /*
        !           175:  * Visual structure; contains information about colormapping possible.
        !           176:  */
        !           177: typedef struct {
        !           178:        XExtData *ext_data;     /* hook for extension to hang data */
        !           179:        VisualID visualid;      /* visual id of this visual */
        !           180:        int class;              /* class of screen (monochrome, etc.) */
        !           181:        unsigned long red_mask, green_mask, blue_mask;  /* mask values */
        !           182:        int bits_per_rgb;       /* log base 2 of distinct color values */
        !           183:        int map_entries;        /* color map entries */
        !           184: } Visual;
        !           185: 
        !           186: /*
        !           187:  * Depth structure; contains information for each possible depth.
        !           188:  */    
        !           189: typedef struct {
        !           190:        int depth;              /* this depth (Z) of the depth */
        !           191:        int nvisuals;           /* number of Visual types at this depth */
        !           192:        Visual *visuals;        /* list of visuals possible at this depth */
        !           193: } Depth;
        !           194: 
        !           195: /*
        !           196:  * Information about the screen.
        !           197:  */
        !           198: typedef struct {
        !           199:        XExtData *ext_data;     /* hook for extension to hang data */
        !           200:        struct _XDisplay *display;/* back pointer to display structure */
        !           201:        Window root;            /* Root window id. */
        !           202:        int width, height;      /* width and height of screen */
        !           203:        int mwidth, mheight;    /* width and height of  in millimeters */
        !           204:        int ndepths;            /* number of depths possible */
        !           205:        Depth *depths;          /* list of allowable depths on the screen */
        !           206:        int root_depth;         /* bits per pixel */
        !           207:        Visual *root_visual;    /* root visual */
        !           208:        GC default_gc;          /* GC for the root root visual */
        !           209:        Colormap cmap;          /* default color map */
        !           210:        unsigned long white_pixel;
        !           211:        unsigned long black_pixel;      /* White and Black pixel values */
        !           212:        int max_maps, min_maps; /* max and min color maps */
        !           213:        int backing_store;      /* Never, WhenMapped, Always */
        !           214:        Bool save_unders;       
        !           215:        long root_input_mask;   /* initial root input mask */
        !           216: } Screen;
        !           217: 
        !           218: /*
        !           219:  * Format structure; describes ZFormat data the screen will understand.
        !           220:  */
        !           221: typedef struct {
        !           222:        XExtData *ext_data;     /* hook for extension to hang data */
        !           223:        int depth;              /* depth of this image format */
        !           224:        int bits_per_pixel;     /* bits/pixel at this depth */
        !           225:        int scanline_pad;       /* scanline must padded to this multiple */
        !           226: } ScreenFormat;
        !           227: 
        !           228: #ifndef _XSTRUCT_      /* hack to reduce symbol load in Xlib routines */
        !           229: /*
        !           230:  * Data structure for setting window attributes.
        !           231:  */
        !           232: typedef struct {
        !           233:     Pixmap background_pixmap;  /* background or None or ParentRelative */
        !           234:     unsigned long background_pixel;    /* background pixel */
        !           235:     Pixmap border_pixmap;      /* border of the window */
        !           236:     unsigned long border_pixel;        /* border pixel value */
        !           237:     int bit_gravity;           /* one of bit gravity values */
        !           238:     int win_gravity;           /* one of the window gravity values */
        !           239:     int backing_store;         /* NotUseful, WhenMapped, Always */
        !           240:     unsigned long backing_planes;/* planes to be preseved if possible */
        !           241:     unsigned long backing_pixel;/* value to use in restoring planes */
        !           242:     Bool save_under;           /* should bits under be saved? (popups) */
        !           243:     long event_mask;           /* set of events that should be saved */
        !           244:     long do_not_propagate_mask;        /* set of events that should not propagate */
        !           245:     Bool override_redirect;    /* boolean value for override-redirect */
        !           246:     Colormap colormap;         /* color map to be associated with window */
        !           247:     Cursor cursor;             /* cursor to be displayed (or None) */
        !           248: } XSetWindowAttributes;
        !           249: 
        !           250: typedef struct {
        !           251:     int x, y;                  /* location of window */
        !           252:     int width, height;         /* width and height of window */
        !           253:     int border_width;          /* border width of window */
        !           254:     int depth;                 /* depth of window */
        !           255:     Visual *visual;            /* the associated visual structure */
        !           256:     Window root;               /* root of screen containing window */
        !           257:     int class;                 /* InputOutput, InputOnly*/
        !           258:     int bit_gravity;           /* one of bit gravity values */
        !           259:     int win_gravity;           /* one of the window gravity values */
        !           260:     int backing_store;         /* NotUseful, WhenMapped, Always */
        !           261:     unsigned long backing_planes;/* planes to be preserved if possible */
        !           262:     unsigned long backing_pixel;/* value to be used when restoring planes */
        !           263:     Bool save_under;           /* boolean, should bits under be saved? */
        !           264:     Colormap colormap;         /* color map to be associated with window */
        !           265:     Bool map_installed;                /* boolean, is color map currently installed*/
        !           266:     int map_state;             /* IsUnmapped, IsUnviewable, IsViewable */
        !           267:     long all_event_masks;      /* set of events all people have interest in*/
        !           268:     long your_event_mask;      /* my event mask */
        !           269:     long do_not_propagate_mask; /* set of events that should not propagate */
        !           270:     Bool override_redirect;    /* boolean value for override-redirect */
        !           271:     Screen *screen;            /* back pointer to correct screen */
        !           272: } XWindowAttributes;
        !           273: 
        !           274: /*
        !           275:  * Data structure for host setting; getting routines.
        !           276:  *
        !           277:  */
        !           278: 
        !           279: typedef struct {
        !           280:        int family;             /* for example AF_DNET */
        !           281:        int length;             /* length of address, in bytes */
        !           282:        char *address;          /* pointer to where to find the bytes */
        !           283: } XHostAddress;
        !           284: 
        !           285: /*
        !           286:  * Data structure for "image" data, used by image manipulation routines.
        !           287:  */
        !           288: typedef struct _XImage {
        !           289:     int width, height;         /* size of image */
        !           290:     int xoffset;               /* number of pixels offset in X direction */
        !           291:     int format;                        /* XYBitmap, XYPixmap, ZPixmap */
        !           292:     char *data;                        /* pointer to image data */
        !           293:     int byte_order;            /* data byte order, LSBFirst, MSBFirst */
        !           294:     int bitmap_unit;           /* quant. of scanline 8, 16, 32 */
        !           295:     int bitmap_bit_order;      /* LSBFirst, MSBFirst */
        !           296:     int bitmap_pad;            /* 8, 16, 32 either XY or ZPixmap */
        !           297:     int depth;                 /* depth of image */
        !           298:     int bytes_per_line;                /* accelarator to next line */
        !           299:     int bits_per_pixel;                /* bits per pixel (ZPixmap) */
        !           300:     unsigned long red_mask;    /* bits in z arrangment */
        !           301:     unsigned long green_mask;
        !           302:     unsigned long blue_mask;
        !           303:     char *obdata;              /* hook for the object routines to hang on */
        !           304:     struct funcs {             /* image manipulation routines */
        !           305:        struct _XImage *(*create_image)();
        !           306:        int (*destroy_image)();
        !           307:        unsigned long (*get_pixel)();
        !           308:        int (*put_pixel)();
        !           309:        struct _XImage *(*sub_image)();
        !           310:        int (*add_pixel)();
        !           311:        } f;
        !           312: } XImage;
        !           313: 
        !           314: /* 
        !           315:  * Data structure for XReconfigureWindow
        !           316:  */
        !           317: typedef struct {
        !           318:     int x, y;
        !           319:     int width, height;
        !           320:     int border_width;
        !           321:     Window sibling;
        !           322:     int stack_mode;
        !           323: } XWindowChanges;
        !           324: 
        !           325: /*
        !           326:  * Data structure used by color operations
        !           327:  */
        !           328: typedef struct {
        !           329:        unsigned long pixel;
        !           330:        unsigned short red, green, blue;
        !           331:        char flags;  /* do_red, do_green, do_blue */
        !           332:        char pad;
        !           333: } XColor;
        !           334: 
        !           335: /* 
        !           336:  * Data structures for graphics operations.  On most machines, these are
        !           337:  * congruent with the wire protocol structures, so reformatting the data
        !           338:  * can be avoided on these architectures.
        !           339:  */
        !           340: typedef struct {
        !           341:     short x1, y1, x2, y2;
        !           342: } XSegment;
        !           343: 
        !           344: typedef struct {
        !           345:     short x, y;
        !           346: } XPoint;
        !           347:     
        !           348: typedef struct {
        !           349:     short x, y;
        !           350:     unsigned short width, height;
        !           351: } XRectangle;
        !           352:     
        !           353: typedef struct {
        !           354:     short x, y;
        !           355:     unsigned short width, height;
        !           356:     short angle1, angle2;
        !           357: } XArc;
        !           358: 
        !           359: 
        !           360: /* Data structure for XChangeKeyboardControl */
        !           361: 
        !           362: typedef struct {
        !           363:         int key_click_percent;
        !           364:         int bell_percent;
        !           365:         int bell_pitch;
        !           366:         int bell_duration;
        !           367:         int led;
        !           368:         int led_mode;
        !           369:         int key;
        !           370:         int auto_repeat_mode;   /* On, Off, Default */
        !           371: } XKeyboardControl;
        !           372: 
        !           373: /* Data structure for XGetKeyboardControl */
        !           374: 
        !           375: typedef struct {
        !           376:         int key_click_percent;
        !           377:        int bell_percent;
        !           378:        unsigned int bell_pitch, bell_duration;
        !           379:        unsigned long led_mask;
        !           380:        int global_auto_repeat;
        !           381:        char auto_repeats[32];
        !           382: } XKeyboardState;
        !           383: 
        !           384: /* Data structure for XGetMotionEvents.  */
        !           385: 
        !           386: typedef struct {
        !           387:         Time time;
        !           388:        unsigned short x, y;
        !           389: } XTimeCoord;
        !           390: 
        !           391: /* Data structure for X{Set,Get}ModifierMapping */
        !           392: 
        !           393: typedef struct {
        !           394:        int max_keypermod;      /* The server's max # of keys per modifier */
        !           395:        KeyCode *modifiermap;   /* An 8 by max_keypermod array of modifiers */
        !           396: } XModifierKeymap;
        !           397: 
        !           398: XModifierKeymap *XNewModifiermap(),
        !           399:                *XGetModifierMapping(),
        !           400:                *XDeleteModifiermapEntry(),
        !           401:                *XInsertModifiermapEntry();
        !           402: #endif /* _XSTRUCT_ */
        !           403: 
        !           404: /*
        !           405:  * Display datatype maintaining display specific data.
        !           406:  */
        !           407: typedef struct _XDisplay {
        !           408:        XExtData *ext_data;     /* hook for extension to hang data */
        !           409:        struct _XDisplay *next; /* next open Display on list */
        !           410:        int fd;                 /* Network socket. */
        !           411:        int lock;               /* is someone in critical section? */
        !           412:        int proto_major_version;/* maj. version of server's X protocol */
        !           413:        int proto_minor_version;/* minor version of servers X protocol */
        !           414:        char *vendor;           /* vendor of the server hardware */
        !           415:         long resource_base;    /* resource ID base */
        !           416:        long resource_mask;     /* resource ID mask bits */
        !           417:        long resource_id;       /* allocator current ID */
        !           418:        int resource_shift;     /* allocator shift to correct bits */
        !           419:        XID (*resource_alloc)(); /* allocator function */
        !           420:        int byte_order;         /* screen byte order, LSBFirst, MSBFirst */
        !           421:        int bitmap_unit;        /* padding and data requirements */
        !           422:        int bitmap_pad;         /* padding requirements on bitmaps */
        !           423:        int bitmap_bit_order;   /* LeastSignificant or MostSignificant */
        !           424:        int nformats;           /* number of pixmap formats in list */
        !           425:        ScreenFormat *pixmap_format;    /* pixmap format list */
        !           426:        int vnumber;            /* Xlib's X protocol version number. */
        !           427:        int release;            /* release of the server */
        !           428:        struct _XSQEvent *head, *tail;  /* Input event queue. */
        !           429:        int qlen;               /* Length of input event queue */
        !           430:        int last_request_read;  /* sequence number of last event read NI */
        !           431:        int request;            /* sequence number of last request. */
        !           432:        char *last_req;         /* beginning of last request, or dummy */
        !           433:        char *buffer;           /* Output buffer starting address. */
        !           434:        char *bufptr;           /* Output buffer index pointer. */
        !           435:        char *bufmax;           /* Output buffer maximum+1 address. */
        !           436:        unsigned max_request_size; /* maximum number 32 bit words in request*/
        !           437:        struct _XrmResourceDataBase *db;
        !           438:        int (*synchandler)();   /* Synchronization handler */
        !           439:        char *display_name;     /* "host:display" string used on this connect*/
        !           440:        int default_screen;     /* default screen for operations */
        !           441:        int nscreens;           /* number of screens on this server*/
        !           442:        Screen *screens;        /* pointer to list of screens */
        !           443:        int motion_buffer;      /* size of motion buffer */
        !           444:        Window current;         /* for use internally for Keymap notify */
        !           445:        int min_keycode;        /* minimum defined keycode */
        !           446:        int max_keycode;        /* maximum defined keycode */
        !           447:        KeySym *keysyms;        /* This server's keysyms */
        !           448:        XModifierKeymap *modifiermap;   /* This server's modifier keymap */
        !           449:        int keysyms_per_keycode;/* number of rows */
        !           450:        char *xdefaults;        /* contents of defaults from server */
        !           451:        char *scratch_buffer;   /* place to hang scratch buffer */
        !           452:        unsigned long scratch_length;   /* length of scratch buffer */
        !           453:        int ext_number;         /* extension number on this display */
        !           454:        _XExtension *ext_procs; /* extensions initialized on this display */
        !           455:        /*
        !           456:         * the following can be fixed size, as the protocol defines how
        !           457:         * much address space is available. 
        !           458:         * While this could be done using the extension vector, there
        !           459:         * may be MANY events processed, so a search through the extension
        !           460:         * list to find the right procedure for each event might be
        !           461:         * expensive if many extensions are being used.
        !           462:         */
        !           463:        int (*event_vec[128])();/* vector for wire to event */
        !           464:        int (*wire_vec[128])(); /* vector for event to wire */
        !           465: } Display;
        !           466: 
        !           467: #ifndef _XEVENT_
        !           468: /*
        !           469:  * A "XEvent" structure always  has type as the first entry.  This 
        !           470:  * uniquely identifies what  kind of event it is.  The second entry
        !           471:  * is always a pointer to the display the event was read from.
        !           472:  * The third entry is always a window of one type or another,
        !           473:  * carefully selected to be useful to toolkit dispatchers.  (Except
        !           474:  * for keymap events, which have no window.) You
        !           475:  * must not change the order of the three elements or toolkits will
        !           476:  * break! The pointer to the generic event must be cast before use to 
        !           477:  * access any other information in the structure.
        !           478:  */
        !           479: 
        !           480: /*
        !           481:  * Definitions of specific events.  If new event types are defined here in
        !           482:  * the future, the Xlibint.h file union for XBiggestEvent should also have
        !           483:  * the event type added, to make sure that Xlib maintains enough space for
        !           484:  * the largest event.  We are trying to avoid fragmentation of the malloc
        !           485:  * pool by keeping the space allocated the same size for all events, even
        !           486:  * if the actual information is much smaller.
        !           487:  */
        !           488: typedef struct {
        !           489:        int type;               /* of event */
        !           490:        Display *display;       /* Display the event was read from */
        !           491:        Window window;          /* "event" window it is reported relative to */
        !           492:        Window root;            /* root window that the event occured on */
        !           493:        Window subwindow;       /* child window */
        !           494:        Time time;              /* milliseconds */
        !           495:        int x, y;               /* pointer x, y coordinates in event window */
        !           496:        int x_root, y_root;     /* coordinates relative to root */
        !           497:        unsigned int state;     /* key or button mask */
        !           498:        unsigned int keycode;   /* detail */
        !           499:        Bool same_screen;       /* same screen flag */
        !           500: } XKeyEvent;
        !           501: typedef XKeyEvent XKeyPressedEvent;
        !           502: typedef XKeyEvent XKeyReleasedEvent;
        !           503: 
        !           504: typedef struct {
        !           505:        int type;               /* of event */
        !           506:        Display *display;       /* Display the event was read from */
        !           507:        Window window;          /* "event" window it is reported relative to */
        !           508:        Window root;            /* root window that the event occured on */
        !           509:        Window subwindow;       /* child window */
        !           510:        Time time;              /* milliseconds */
        !           511:        int x, y;               /* pointer x, y coordinates in event window */
        !           512:        int x_root, y_root;     /* coordinates relative to root */
        !           513:        unsigned int state;     /* key or button mask */
        !           514:        unsigned int button;    /* detail */
        !           515:        Bool same_screen;       /* same screen flag */
        !           516: } XButtonEvent;
        !           517: typedef XButtonEvent XButtonPressedEvent;
        !           518: typedef XButtonEvent XButtonReleasedEvent;
        !           519: 
        !           520: typedef struct {
        !           521:        int type;               /* of event */
        !           522:        Display *display;       /* Display the event was read from */
        !           523:        Window window;          /* "event" window reported relative to */
        !           524:        Window root;            /* root window that the event occured on */
        !           525:        Window subwindow;       /* child window */
        !           526:        Time time;              /* milliseconds */
        !           527:        int x, y;               /* pointer x, y coordinates in event window */
        !           528:        int x_root, y_root;     /* coordinates relative to root */
        !           529:        unsigned int state;     /* key or button mask */
        !           530:        char is_hint;           /* detail */
        !           531:        Bool same_screen;       /* same screen flag */
        !           532: } XMotionEvent;
        !           533: typedef XMotionEvent XPointerMovedEvent;
        !           534: 
        !           535: typedef struct {
        !           536:        int type;               /* of event */
        !           537:        Display *display;       /* Display the event was read from */
        !           538:        Window window;          /* "event" window reported relative to */
        !           539:        Window root;            /* root window that the event occured on */
        !           540:        Window subwindow;       /* child window */
        !           541:        Time time;              /* milliseconds */
        !           542:        int x, y;               /* pointer x, y coordinates in event window */
        !           543:        int x_root, y_root;     /* coordinates relative to root */
        !           544:        int mode;               /* NotifyNormal, NotifyGrab, NotifyUngrab */
        !           545:        int detail;
        !           546:        /*
        !           547:         * NotifyAncestor, NotifyVirtual, NotifyInferior, 
        !           548:         * NotifyNonLinear,NotifyNonLinearVirtual
        !           549:         */
        !           550:        Bool same_screen;       /* same screen flag */
        !           551:        Bool focus;             /* boolean focus */
        !           552:        unsigned int state;     /* key or button mask */
        !           553: } XCrossingEvent;
        !           554: typedef XCrossingEvent XEnterWindowEvent;
        !           555: typedef XCrossingEvent XLeaveWindowEvent;
        !           556: 
        !           557: typedef struct {
        !           558:        int type;               /* FocusIn or FocusOut */
        !           559:        Display *display;       /* Display the event was read from */
        !           560:        Window window;          /* window of event */
        !           561:        int mode;               /* NotifyNormal, NotifyGrab, NotifyUngrab */
        !           562:        int detail;
        !           563:        /*
        !           564:         * NotifyAncestor, NotifyVirtual, NotifyInferior, 
        !           565:         * NotifyNonLinear,NotifyNonLinearVirtual, NotifyPointer,
        !           566:         * NotifyPointerRoot, NotifyDetailNone 
        !           567:         */
        !           568: } XFocusChangeEvent;
        !           569: typedef XFocusChangeEvent XFocusInEvent;
        !           570: typedef XFocusChangeEvent XFocusOutEvent;
        !           571: 
        !           572: /* generated on EnterWindow and FocusIn  when KeyMapState selected */
        !           573: typedef struct {
        !           574:        int type;
        !           575:        Display *display;       /* Display the event was read from */
        !           576:        Window window;
        !           577:        char key_vector[32];
        !           578: } XKeymapEvent;        
        !           579: 
        !           580: typedef struct {
        !           581:        int type;
        !           582:        Display *display;       /* Display the event was read from */
        !           583:        Window window;
        !           584:        int x, y;
        !           585:        int width, height;
        !           586:        int count;              /* if non-zero, at least this many more */
        !           587: } XExposeEvent;
        !           588: 
        !           589: typedef struct {
        !           590:        int type;
        !           591:        Display *display;       /* Display the event was read from */
        !           592:        Drawable drawable;
        !           593:        int x, y;
        !           594:        int width, height;
        !           595:        int count;              /* if non-zero, at least this many more */
        !           596:        int major_code;         /* core is CopyArea or CopyPlane */
        !           597:        int minor_code;         /* not defined in the core */
        !           598: } XGraphicsExposeEvent;
        !           599: 
        !           600: typedef struct {
        !           601:        int type;
        !           602:        Display *display;       /* Display the event was read from */
        !           603:        Drawable drawable;
        !           604:        int major_code;         /* core is CopyArea or CopyPlane */
        !           605:        int minor_code;         /* not defined in the core */
        !           606: } XNoExposeEvent;
        !           607: 
        !           608: typedef struct {
        !           609:        int type;
        !           610:        Display *display;       /* Display the event was read from */
        !           611:        Window window;
        !           612:        int state;              /* either Obscured or UnObscured */
        !           613: } XVisibilityEvent;
        !           614: 
        !           615: typedef struct {
        !           616:        int type;
        !           617:        Display *display;       /* Display the event was read from */
        !           618:        Window parent;          /* parent of the window */
        !           619:        Window window;          /* window id of window created */
        !           620:        int x, y;               /* window location */
        !           621:        int width, height;      /* size of window */
        !           622:        int border_width;       /* border width */
        !           623:        Bool override_redirect; /* creation should be overridden */
        !           624: } XCreateWindowEvent;
        !           625: 
        !           626: typedef struct {
        !           627:        int type;
        !           628:        Display *display;       /* Display the event was read from */
        !           629:        Window event;
        !           630:        Window window;
        !           631: } XDestroyWindowEvent;
        !           632: 
        !           633: typedef struct {
        !           634:        int type;
        !           635:        Display *display;       /* Display the event was read from */
        !           636:        Window event;
        !           637:        Window window;
        !           638:        Bool from_configure;
        !           639: } XUnmapEvent;
        !           640: 
        !           641: typedef struct {
        !           642:        int type;
        !           643:        Display *display;       /* Display the event was read from */
        !           644:        Window event;
        !           645:        Window window;
        !           646:        Bool override_redirect; /* boolean, is override set... */
        !           647: } XMapEvent;
        !           648: 
        !           649: typedef struct {
        !           650:        int type;
        !           651:        Display *display;       /* Display the event was read from */
        !           652:        Window parent;
        !           653:        Window window;
        !           654: } XMapRequestEvent;
        !           655: 
        !           656: typedef struct {
        !           657:        int type;
        !           658:        Display *display;       /* Display the event was read from */
        !           659:        Window event;
        !           660:        Window window;
        !           661:        Window parent;
        !           662:        int x, y;
        !           663:        Bool override_redirect;
        !           664: } XReparentEvent;
        !           665: 
        !           666: typedef struct {
        !           667:        int type;
        !           668:        Display *display;       /* Display the event was read from */
        !           669:        Window event;
        !           670:        Window window;
        !           671:        int x, y;
        !           672:        int width, height;
        !           673:        int border_width;
        !           674:        Window above;
        !           675:        Bool override_redirect;
        !           676: } XConfigureEvent;
        !           677: 
        !           678: typedef struct {
        !           679:        int type;
        !           680:        Display *display;       /* Display the event was read from */
        !           681:        Window event;
        !           682:        Window window;
        !           683:        int x, y;
        !           684: } XGravityEvent;
        !           685: 
        !           686: typedef struct {
        !           687:        int type;
        !           688:        Display *display;       /* Display the event was read from */
        !           689:        Window window;
        !           690:        int width, height;
        !           691: } XResizeRequestEvent;
        !           692: 
        !           693: typedef struct {
        !           694:        int type;
        !           695:        Display *display;       /* Display the event was read from */
        !           696:        Window parent;
        !           697:        Window window;
        !           698:        int x, y;
        !           699:        int width, height;
        !           700:        int border_width;
        !           701:        Window above;
        !           702:        int detail;             /* Above, Below, TopIf, BottomIf, Opposite */
        !           703:        unsigned long value_mask;
        !           704: } XConfigureRequestEvent;
        !           705: 
        !           706: typedef struct {
        !           707:        int type;
        !           708:        Display *display;       /* Display the event was read from */
        !           709:        Window event;
        !           710:        Window window;
        !           711:        int place;              /* PlaceOnTop, PlaceOnBottom */
        !           712: } XCirculateEvent;
        !           713: 
        !           714: typedef struct {
        !           715:        int type;
        !           716:        Display *display;       /* Display the event was read from */
        !           717:        Window parent;
        !           718:        Window window;
        !           719:        int place;              /* PlaceOnTop, PlaceOnBottom */
        !           720: } XCirculateRequestEvent;
        !           721: 
        !           722: typedef struct {
        !           723:        int type;
        !           724:        Display *display;       /* Display the event was read from */
        !           725:        Window window;
        !           726:        Atom atom;
        !           727:        Time time;
        !           728:        int state;              /* NewValue, Deleted */
        !           729: } XPropertyEvent;
        !           730: 
        !           731: typedef struct {
        !           732:        int type;
        !           733:        Display *display;       /* Display the event was read from */
        !           734:        Window window;
        !           735:        Atom selection;
        !           736:        Time time;
        !           737: } XSelectionClearEvent;
        !           738: 
        !           739: typedef struct {
        !           740:        int type;
        !           741:        Display *display;       /* Display the event was read from */
        !           742:        Window owner;           /* must be next after type */
        !           743:        Window requestor;
        !           744:        Atom selection;
        !           745:        Atom target;
        !           746:        Atom property;
        !           747:        Time time;
        !           748: } XSelectionRequestEvent;
        !           749: 
        !           750: typedef struct {
        !           751:        int type;
        !           752:        Display *display;       /* Display the event was read from */
        !           753:        Window requestor;       /* must be next after type */
        !           754:        Atom selection;
        !           755:        Atom target;
        !           756:        Atom property;          /* ATOM or None */
        !           757:        Time time;
        !           758: } XSelectionEvent;
        !           759: 
        !           760: typedef struct {
        !           761:        int type;
        !           762:        Display *display;       /* Display the event was read from */
        !           763:        Window window;
        !           764:        Colormap colormap;      /* COLORMAP or None */
        !           765:        Bool new;
        !           766:        int state;              /* ColormapInstalled, ColormapUninstalled */
        !           767: } XColormapEvent;
        !           768: 
        !           769: typedef struct {
        !           770:        int type;
        !           771:        Display *display;       /* Display the event was read from */
        !           772:        Window window;
        !           773:        Atom message_type;
        !           774:        int format;
        !           775:        union {
        !           776:                char b[20];
        !           777:                short s[10];
        !           778:                int l[5];
        !           779:                } data;
        !           780: } XClientMessageEvent;
        !           781: 
        !           782: typedef struct {
        !           783:        int type;
        !           784:        Display *display;       /* Display the event was read from */
        !           785:        Window window;          /* unused */
        !           786:        int request;            /* one of MappingModifier, MappingKeyboard,
        !           787:                                   MappingPointer */
        !           788:        int first_keycode;      /* first keycode */
        !           789:        int count;              /* defines range of change w. first_keycode*/
        !           790: } XMappingEvent;
        !           791: 
        !           792: typedef struct {
        !           793:        int type;
        !           794:        Display *display;       /* Display the event was read from */
        !           795:        XID resourceid;         /* resource id */
        !           796:        int serial;             /* serial number of failed request */
        !           797:        char error_code;        /* error code of failed request */
        !           798:        char request_code;      /* Major op-code of failed request */
        !           799:        char minor_code;        /* Minor op-code of failed request */
        !           800: } XErrorEvent;
        !           801: 
        !           802: typedef struct {
        !           803:        int type;
        !           804:        Display *display;/* Display the event was read from */
        !           805:        Window window;  /* window on which event was requested in event mask */
        !           806: } XAnyEvent;
        !           807: 
        !           808: /*
        !           809:  * this union is defined so Xlib can always use the same sized
        !           810:  * event structure internally, to avoid memory fragmentation.
        !           811:  */
        !           812: typedef union _XEvent {
        !           813:         int type;              /* must not be changed; first element */
        !           814:        XAnyEvent xany;
        !           815:        XKeyEvent xkey;
        !           816:        XButtonEvent xbutton;
        !           817:        XMotionEvent xmotion;
        !           818:        XCrossingEvent xcrossing;
        !           819:        XFocusChangeEvent xfocus;
        !           820:        XExposeEvent xexpose;
        !           821:        XGraphicsExposeEvent xgraphicsexpose;
        !           822:        XNoExposeEvent xnoexpose;
        !           823:        XVisibilityEvent xvisibility;
        !           824:        XCreateWindowEvent xcreatewindow;
        !           825:        XDestroyWindowEvent xdestroywindow;
        !           826:        XUnmapEvent xunmap;
        !           827:        XMapEvent xmap;
        !           828:        XMapRequestEvent xmaprequest;
        !           829:        XReparentEvent xreparent;
        !           830:        XConfigureEvent xconfigure;
        !           831:        XGravityEvent xgravity;
        !           832:        XResizeRequestEvent xresizerequest;
        !           833:        XConfigureRequestEvent xconfigurerequest;
        !           834:        XCirculateEvent xcirculate;
        !           835:        XCirculateRequestEvent xcirculaterequest;
        !           836:        XPropertyEvent xproperty;
        !           837:        XSelectionClearEvent xselectionclear;
        !           838:        XSelectionRequestEvent xselectionrequest;
        !           839:        XSelectionEvent xselection;
        !           840:        XColormapEvent xcolormap;
        !           841:        XClientMessageEvent xclient;
        !           842:        XMappingEvent xmapping;
        !           843:        XErrorEvent xerror;
        !           844:        XKeymapEvent xkeymap;
        !           845: } XEvent;
        !           846: /*
        !           847:  * _QEvent datatype for use in input queueing.
        !           848:  */
        !           849: typedef struct _XSQEvent {
        !           850:     struct _XSQEvent *next;
        !           851:     XEvent event;
        !           852: } _XQEvent;
        !           853: #endif
        !           854: #define XAllocID(dpy) ((*(dpy)->resource_alloc)((dpy)))
        !           855: #ifndef _XSTRUCT_
        !           856: 
        !           857: /*
        !           858:  * per character font metric information.
        !           859:  */
        !           860: typedef struct {
        !           861:     short      lbearing;       /* origin to left edge of raster */
        !           862:     short      rbearing;       /* origin to right edge of raster */
        !           863:     short      width;          /* advance to next char's origin */
        !           864:     short      ascent;         /* baseline to top edge of raster */
        !           865:     short      descent;        /* baseline to bottom edge of raster */
        !           866:     unsigned short attributes; /* per char flags (not predefined) */
        !           867: } XCharStruct;
        !           868: 
        !           869: /*
        !           870:  * To allow arbitrary information with fonts, there are additional properties
        !           871:  * returned.
        !           872:  */
        !           873: typedef struct {
        !           874:     Atom name;
        !           875:     unsigned long card32;
        !           876: } XFontProp;
        !           877: 
        !           878: typedef struct {
        !           879:     XExtData   *ext_data;      /* hook for extension to hang data */
        !           880:     Font        fid;            /* Font id for this font */
        !           881:     unsigned   direction;      /* hint about direction the font is painted */
        !           882:     unsigned   min_char_or_byte2;/* first character */
        !           883:     unsigned   max_char_or_byte2;/* last character */
        !           884:     unsigned   min_byte1;      /* first row that exists */
        !           885:     unsigned   max_byte1;      /* last row that exists */
        !           886:     Bool       all_chars_exist;/* flag if all characters have non-zero size*/
        !           887:     unsigned   default_char;   /* char to print for undefined character */
        !           888:     int         n_properties;   /* how many properties there are */
        !           889:     XFontProp  *properties;    /* pointer to array of additional properties*/
        !           890:     XCharStruct        min_bounds;     /* minimum bounds over all existing char*/
        !           891:     XCharStruct        max_bounds;     /* minimum bounds over all existing char*/
        !           892:     XCharStruct        *per_char;      /* first_char to last_char information */
        !           893:     int                ascent;         /* log. extent above baseline for spacing */
        !           894:     int                descent;        /* log. descent below baseline for spacing */
        !           895: } XFontStruct;
        !           896: 
        !           897: /*
        !           898:  * PolyText routines take these as arguments.
        !           899:  */
        !           900: typedef struct {
        !           901:     char *chars;               /* pointer to string */
        !           902:     int nchars;                        /* number of characters */
        !           903:     int delta;                 /* delta between strings */
        !           904:     Font font;                 /* font to print it in, None don't change */
        !           905: } XTextItem;
        !           906: 
        !           907: typedef struct {               /* normal 16 bit characters are two bytes */
        !           908:     unsigned char byte1;
        !           909:     unsigned char byte2;
        !           910: } XChar2b;
        !           911: 
        !           912: typedef struct {
        !           913:     XChar2b *chars;            /* two byte characters */
        !           914:     int nchars;                        /* number of characters */
        !           915:     int delta;                 /* delta between strings */
        !           916:     Font font;                 /* font to print it in, None don't change */
        !           917: } XTextItem16;
        !           918: 
        !           919: 
        !           920: XFontStruct *XLoadQueryFont(), *XQueryFont();
        !           921: 
        !           922: XTimeCoord *XGetMotionEvents();
        !           923: #endif
        !           924: /* 
        !           925:  * X function declarations.
        !           926:  */
        !           927: Display *XOpenDisplay();
        !           928: 
        !           929: char *XFetchBytes();
        !           930: char *XFetchBuffer();
        !           931: char *XGetAtomName();
        !           932: char *XGetDefault();
        !           933: char *XDisplayName();
        !           934: char *XKeysymToString();
        !           935: 
        !           936: int (*XSynchronize())();
        !           937: int (*XSetAfterFunction())();
        !           938: Atom XInternAtom();
        !           939: Colormap XCopyColormapAndFree(), XCreateColormap();
        !           940: Cursor XCreatePixmapCursor(), XCreateGlyphCursor(), XCreateFontCursor();
        !           941: Font XLoadFont();
        !           942: GC XCreateGC();
        !           943: GContext XGContextFromGC();
        !           944: Pixmap XCreatePixmap();
        !           945: Pixmap XCreateBitmapFromData();
        !           946: Window XCreateSimpleWindow(), XGetSelectionOwner(), XGetIconWindow();
        !           947: Window XCreateWindow(); 
        !           948: Colormap *XListInstalledColormaps();
        !           949: char **XListFonts(), **XListFontsWithInfo(), **XGetFontPath();
        !           950: char **XListExtensions();
        !           951: Atom *XListProperties();
        !           952: XImage *XCreateImage(), *XGetImage();
        !           953: XHostAddress *XListHosts();
        !           954: KeySym XKeycodeToKeysym(), XLookupKeysym(), *XGetKeyboardMapping();
        !           955: KeySym XStringToKeysym();
        !           956: 
        !           957: /* routines for dealing with extensions */
        !           958: XExtCodes *XInitExtension();
        !           959: int (*XESetCreateGC())(), (*XESetCopyGC())(), (*XESetFlushGC())(),
        !           960:     (*XESetFreeGC())(), (*XESetCreateFont())(), (*XESetFreeFont())(), 
        !           961:     (*XESetCloseDisplay())(), (*XESetWireToEvent())(), (*XESetEventToWire())(),
        !           962:     (*XESetError())(), (*XESetErrorString())();
        !           963: 
        !           964: /* these are routines for which there are also macros */
        !           965: Window XRootWindow(), XDefaultRootWindow(), XRootWindowOfScreen();
        !           966: Visual *XDefaultVisual(), *XDefaultVisualOfScreen();
        !           967: GC XDefaultGC(), XDefaultGCofScreen();
        !           968: unsigned long XBlackPixel(), XWhitePixel(), XAllPlanes();
        !           969: unsigned long XBlackPixelOfScreen(), XWhitePixelOfScreen();
        !           970: char *XServerVendor(), *XDisplayString();
        !           971: Colormap XDefaultColormap(), XDefaultColormapOfScreen();
        !           972: Display *XDisplayOfScreen();
        !           973: Screen *XScreenOfDisplay(), *XDefaultScreenOfDisplay();
        !           974: long XEventMaskOfScreen();
        !           975: #endif /* _XLIB_H_ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.