Annotation of 43BSDTahoe/new/X/Xlib/Xlib.h, revision 1.1.1.1

1.1       root        1: 
                      2: #include <X/mit-copyright.h>
                      3: 
                      4: /* $Header: Xlib.h,v 10.20 86/12/16 17:17:31 tony Exp $ */
                      5: /* Copyright    Massachusetts Institute of Technology    1985  */
                      6: 
                      7: /*
                      8:  *     Xlib.h - Header definition and support file for the C subroutine
                      9:  *     interface library (Xlib) to the X Window System Protocol.
                     10:  *
                     11:  */
                     12: 
                     13: extern char *malloc(), *calloc(), *realloc(), *alloca();
                     14: #ifdef notdef
                     15: #include <sys/types.h>
                     16: #endif
                     17: #include <X/X.h>
                     18: 
                     19: #define Status int
                     20: #define XId long
                     21: #define XClearVertexFlag() (_XlibCurrentDisplay->lastdraw = NULL)
                     22: #define XMakePattern(pattern, patlen, patmul)\
                     23:        ((Pattern)(((patmul) << 20) | (((patlen) - 1) << 16) | (pattern) ))
                     24: #define dpyno() (_XlibCurrentDisplay->fd)
                     25: #define RootWindow (_XlibCurrentDisplay->root)
                     26: #define BlackPixmap (_XlibCurrentDisplay->black)
                     27: #define WhitePixmap (_XlibCurrentDisplay->white)
                     28: #define AllPlanes (~0)
                     29: #define QLength() (_XlibCurrentDisplay->qlen)
                     30: #define DisplayType() (_XlibCurrentDisplay->dtype)
                     31: #define DisplayPlanes() (_XlibCurrentDisplay->dplanes)
                     32: #define DisplayCells() (_XlibCurrentDisplay->dcells)
                     33: #define ProtocolVersion() (_XlibCurrentDisplay->vnumber)
                     34: #define DisplayName() (_XlibCurrentDisplay->displayname)
                     35: 
                     36: /* Bitmask returned by XParseGeometry().  Each bit tells if the corresponding
                     37:    value (x, y, width, height) was found in the parsed string. */
                     38: 
                     39: #define NoValue        0x0000
                     40: #define XValue  0x0001
                     41: #define YValue 0x0002
                     42: #define WidthValue  0x0004
                     43: #define HeightValue  0x0008
                     44: #define AllValues 0x000F
                     45: #define XNegative 0x0010
                     46: #define YNegative 0x0020
                     47: 
                     48: /* Definition of a generic event.  It must be cast to a specific event
                     49:  * type before one can read event-specific data */
                     50: 
                     51: typedef struct _XEvent {
                     52:        unsigned long type;   /* of event (KeyPressed, ExposeWindow, etc.) */
                     53:        Window window;        /* which selected this event */
                     54:        long pad_l1, pad_l2;  /* event-specific data */
                     55:        Window subwindow;     /* child window (if any) event actually happened in */
                     56:        long pad_l4;          /* event-specific data */
                     57: } XEvent;
                     58: 
                     59: 
                     60: /*
                     61:  * _QEvent datatype for use in input queueing.
                     62:  */
                     63: typedef struct _qevent {
                     64:        struct _qevent *next;
                     65:        XEvent event;
                     66: } _QEvent;
                     67: 
                     68: 
                     69: /*
                     70:  * Display datatype maintaining display specific data.
                     71:  */
                     72: typedef struct _display {
                     73:        int fd;                 /* Network socket. */
                     74:        Window root;            /* Root window id. */
                     75:        int vnumber;            /* X protocol version number. */
                     76:        int dtype;              /* X server display device type. */
                     77:        int dplanes;            /* Number of display bit planes. */
                     78:        int dcells;             /* Number of display color map cells. */
                     79:        _QEvent *head, *tail;   /* Input event queue. */
                     80:        int qlen;               /* Length of input event queue */
                     81:        int request;            /* Id of last request. */
                     82:        char * lastdraw;        /* Last draw request. */
                     83:        char *buffer;           /* Output buffer starting address. */
                     84:        char *bufptr;           /* Output buffer index pointer. */
                     85:        char *bufmax;           /* Output buffer maximum+1 address. */
                     86:        int squish;             /* Squish MouseMoved events? */
                     87:        Pixmap black, white;    /* Constant tile pixmaps */
                     88:        char *displayname;      /* "host:display" string used on this connect*/
                     89:        int width, height;      /* width and height of display */
                     90: } Display;
                     91: 
                     92: 
                     93: /*
                     94:  * XAssoc - Association elements used in the XAssocTable data structure.
                     95:  * XAssoc's are used as bucket entries in the association table.
                     96:  */
                     97: typedef struct _x_assoc {
                     98:     struct _x_assoc *next;     /* Next object in this bucket. */
                     99:     struct _x_assoc *prev;     /* Previous obejct in this bucket. */
                    100:     Display *display;          /* Display which ownes the id. */
                    101:     XId x_id;                  /* X Window System id. */
                    102:     char *data;                        /* Pointer to untyped memory. */
                    103: } XAssoc;
                    104: 
                    105: /* 
                    106:  * XAssocTable - X Window System id to data structure pointer association
                    107:  * table.  An XAssocTable is a hash table who's buckets are circular
                    108:  * queue's of XAssoc's.  The XAssocTable is constructed from an array of
                    109:  * XAssoc's which are the circular queue headers (bucket headers).  
                    110:  * An XAssocTable consists an XAssoc pointer that points to the first
                    111:  * bucket in the bucket array and an integer that indicates the number
                    112:  * of buckets in the array.
                    113:  */
                    114: typedef struct _x_assoc_table {
                    115:     struct _x_assoc *buckets;  /* Pointer to first bucket in bucket array.*/
                    116:     int size;                  /* Table size (number of buckets). */
                    117: } XAssocTable;
                    118: 
                    119: /*
                    120:  * Declare the XAssocTable routines that don't return int.
                    121:  */
                    122: extern char *XLookUpAssoc();
                    123: XAssocTable *XCreateAssocTable();
                    124: 
                    125: 
                    126: /* 
                    127:  * Data returned by XQueryWindow.
                    128:  */
                    129: typedef struct _WindowInfo {
                    130:        short width, height;    /* Width and height. */
                    131:        short x, y;             /* X and y coordinates. */
                    132:        short bdrwidth;         /* Border width. */
                    133:        short mapped;           /* IsUnmapped, IsMapped or IsInvisible.*/
                    134:        short type;             /* IsTransparent, IsOpaque or IsIcon. */
                    135:        Window assoc_wind;      /* Associated icon or opaque Window. */
                    136: } WindowInfo;
                    137: 
                    138: 
                    139: /* 
                    140:  * Data returned by XQueryFont.
                    141:  */
                    142: typedef struct _FontInfo {
                    143:        Font id;
                    144:        short height, width, baseline, fixedwidth;
                    145:        unsigned char firstchar, lastchar;
                    146:        short *widths;          /* pointer to width array in OpenFont */
                    147: } FontInfo;
                    148: 
                    149: 
                    150: /*
                    151:  * Data structure used by color operations; ints rather than shorts
                    152:  * to keep 16 bit protocol limitation out of the library.
                    153:  */
                    154: typedef struct _Color {
                    155:        int pixel;
                    156:        unsigned short red, green, blue;
                    157: } Color;
                    158: 
                    159: 
                    160: /*
                    161:  * Data structure use by XCreateTiles.
                    162:  */
                    163: typedef struct _TileFrame {
                    164:        int pixel;              /* Pixel color for constructing the tile. */
                    165:        Pixmap pixmap;          /* Pixmap id of the pixmap, filled in later. */
                    166: } TileFrame;
                    167: 
                    168: 
                    169: /*
                    170:  * Data structures used by XCreateWindows XCreateTransparencies and
                    171:  * XCreateWindowBatch.
                    172:  */
                    173: typedef struct _OpaqueFrame {
                    174:        Window self;            /* window id of the window, filled in later */
                    175:        short x, y;             /* where to create the window */
                    176:        short width, height;    /* width and height */
                    177:        short bdrwidth;         /* border width */
                    178:        Pixmap border;          /* border pixmap */
                    179:        Pixmap background;      /* background */
                    180: } OpaqueFrame;
                    181: 
                    182: typedef struct _TransparentFrame {
                    183:        Window self;            /* window id of the window, filled in later */
                    184:        short x, y;             /* where to create the window */
                    185:        short width, height;    /* width and height */
                    186: } TransparentFrame;
                    187: 
                    188: typedef struct _BatchFrame {
                    189:        short type;             /* One of (IsOpaque, IsTransparent). */
                    190:        Window parent;          /* Window if of the window's parent. */
                    191:        Window self;            /* Window id of the window, filled in later. */
                    192:        short x, y;             /* Where to create the window. */
                    193:        short width, height;    /* Window width and height. */
                    194:        short bdrwidth;         /* Window border width. */
                    195:        Pixmap border;          /* Window border pixmap */
                    196:        Pixmap background;      /* Window background pixmap. */
                    197: } BatchFrame;
                    198: 
                    199: 
                    200: /*
                    201:  * Definitions of specific events
                    202:  * In all of the following, fields whose names begin with "pad" contain
                    203:  * no meaningful value.
                    204:  */
                    205: 
                    206: struct _XKeyOrButtonEvent {
                    207:        unsigned long type;     /* of event (KeyPressed, ButtonReleased, etc.) */
                    208:        Window window;          /* which selected this event */
                    209:        unsigned short time B16;  /* in 10 millisecond ticks */
                    210:        short detail B16;       /* event-dependent data (key state, etc.) */
                    211:        short x B16;            /* mouse x coordinate within event window */
                    212:        short y B16;            /* mouse y coordinate within event window */
                    213:        Window subwindow;       /* child window (if any) mouse was in */
                    214:        Locator location;       /* absolute coordinates of mouse */
                    215: };
                    216: 
                    217: typedef struct _XKeyOrButtonEvent XKeyOrButtonEvent;
                    218: 
                    219: typedef struct _XKeyOrButtonEvent XKeyEvent;
                    220: typedef struct _XKeyOrButtonEvent XKeyPressedEvent;
                    221: typedef struct _XKeyOrButtonEvent XKeyReleasedEvent;
                    222: 
                    223: typedef struct _XKeyOrButtonEvent XButtonEvent;
                    224: typedef struct _XKeyOrButtonEvent XButtonPressedEvent;
                    225: typedef struct _XKeyOrButtonEvent XButtonReleasedEvent;
                    226: 
                    227: struct _XMouseOrCrossingEvent {
                    228:        unsigned long type;     /* EnterWindow, LeaveWindow, or MouseMoved */
                    229:        Window window;          /* which selected this event */
                    230:        short pad_s2 B16;             
                    231:        short detail B16;       /* event-dependent data (key state, etc. ) */
                    232:        short x B16;            /* mouse x coordinate within event window */
                    233:        short y B16;            /* mouse y coordinate within event window */
                    234:        Window subwindow;       /* child window (if any) mouse was in */
                    235:        Locator location;       /* absolute coordinates of mouse */
                    236: };
                    237: 
                    238: typedef struct _XMouseOrCrossingEvent XMouseOrCrossingEvent;
                    239: 
                    240: typedef struct _XMouseOrCrossingEvent XMouseEvent;
                    241: typedef struct _XMouseOrCrossingEvent XMouseMovedEvent;
                    242: 
                    243: typedef struct _XMouseOrCrossingEvent XCrossingEvent;
                    244: typedef struct _XMouseOrCrossingEvent XEnterWindowEvent;
                    245: typedef struct _XMouseOrCrossingEvent XLeaveWindowEvent;
                    246: 
                    247: struct _XExposeEvent {
                    248:        unsigned long type;     /* ExposeWindow or ExposeRegion */
                    249:        Window window;          /* that selected this event */
                    250:        short pad_s2 B16;             
                    251:        short detail B16;       /* 0 or ExposeCopy */
                    252:        short width B16;        /* width of exposed area */
                    253:        short height B16;       /* height of exposed area */
                    254:        Window subwindow;       /* child window (if any) actually exposed */
                    255:        short y B16;            /* top of exposed area (0 for ExposeWindow) */
                    256:        short x B16;            /* left edge of exposed area (0 for ExposeWindow) */
                    257: };
                    258: 
                    259: typedef struct _XExposeEvent XExposeEvent;
                    260: typedef struct _XExposeEvent XExposeWindowEvent;
                    261: typedef struct _XExposeEvent XExposeRegionEvent;
                    262: 
                    263: typedef struct _XExposeCopyEvent {
                    264:        unsigned long type;   /* ExposeCopy */
                    265:        Window window;        /* that selected this event */
                    266:        long pad_l1;
                    267:        long pad_l2;          
                    268:        Window subwindow;     /* child window (if any) actually exposed */
                    269:        long pad_l4;          
                    270: } XExposeCopyEvent;
                    271:        
                    272: typedef struct _XUnmapEvent {
                    273:        unsigned long type;   /* UnmapWindow */
                    274:        Window window;        /* that selected this event */
                    275:        long pad_l1;
                    276:        long pad_l2;          
                    277:        Window subwindow;     /* child window (if any) actually unmapped */
                    278:        long pad_l4;          
                    279: } XUnmapEvent;
                    280: 
                    281: typedef struct _XFocusChangeEvent {
                    282:        unsigned long type;   /* FocusChange */
                    283:        Window window;        /* that selected this event */
                    284:        short pad_s2 B16;
                    285:        short detail B16;     /* EnterWindow or LeaveWindow */
                    286:        long pad_l2;          
                    287:        Window subwindow;     /* child window (if any) of actual focus change*/
                    288:        long pad_l4;          
                    289: } XFocusChangeEvent;
                    290: 
                    291: typedef struct _XErrorEvent {
                    292:        long pad;
                    293:        long serial;            /* serial number of failed request */
                    294:        char error_code;        /* error code of failed request */
                    295:        char request_code;      /* request code of failed request */
                    296:        char func;              /* function field of failed request */
                    297:        char pad_b7;
                    298:        Window window;          /* Window of failed request */
                    299:        long pad_l3;
                    300:        long pad_l4;
                    301: } XErrorEvent;
                    302: 
                    303: /*
                    304:  * Line pattern related definitions for the library.
                    305:  */
                    306: typedef long Pattern;
                    307: 
                    308: #define DashedLine XMakePattern(0xf0f0, 16, 1)
                    309: #define DottedLine XMakePattern(0xaaaa, 16, 1)
                    310: #define DotDashLine XMakePattern(0xf4f4, 16, 1)
                    311: #define SolidLine  XMakePattern(1,1,1)
                    312: 
                    313: typedef short KeyMapEntry [8];
                    314: 
                    315: /* define values for keyboard map table */
                    316: /* these values will vanish in the next version; DO NOT USE THEM! */
                    317: #define SHFT   (short) -2
                    318: #define CNTL   (short) -3
                    319: #define LOCK   (short) -4
                    320: #define SYMBOL (short) -5
                    321: #define KEYPAD (short) -6
                    322: #define CURSOR (short) -7
                    323: #define PFX    (short) -8
                    324: #define FUNC1  (short) -9
                    325: #define FUNC2  (short) -10
                    326: #define FUNC3  (short) -11
                    327: #define FUNC4  (short) -12
                    328: #define FUNC5  (short) -13
                    329: #define FUNC6  (short) -14
                    330: #define FUNC7  (short) -15
                    331: #define FUNC8  (short) -16
                    332: #define FUNC9  (short) -17
                    333: #define FUNC10 (short) -18
                    334: #define FUNC11 (short) -19
                    335: #define FUNC12 (short) -20
                    336: #define FUNC13 (short) -21
                    337: #define FUNC14 (short) -22
                    338: #define FUNC15 (short) -23
                    339: #define FUNC16 (short) -24
                    340: #define FUNC17 (short) -25
                    341: #define FUNC18 (short) -26
                    342: #define FUNC19 (short) -27
                    343: #define FUNC20 (short) -28
                    344: #define E1     (short) -29
                    345: #define E2     (short) -30
                    346: #define E3     (short) -31
                    347: #define E4     (short) -32
                    348: #define E5     (short) -33
                    349: #define E6     (short) -34
                    350: 
                    351: 
                    352: /* 
                    353:  * X function declarations.
                    354:  */
                    355: Display *XOpenDisplay();
                    356: 
                    357: char *XFetchBytes();
                    358: char * XFetchBuffer();
                    359: 
                    360: char *XErrDescrip();
                    361: char *XLookupMapping();
                    362: 
                    363: short *XFontWidths();
                    364: FontInfo *XOpenFont();
                    365: extern Display *_XlibCurrentDisplay;
                    366: char *XGetDefault();
                    367: Bitmap XCharBitmap(), XStoreBitmap();
                    368: Pixmap XMakePixmap(), XMakeTile(), XStorePixmapXY(), XStorePixmapZ();
                    369: Pixmap XPixmapSave();
                    370: Cursor XCreateCursor(), XStoreCursor();
                    371: Window XCreate(), XCreateTerm(), XCreateTransparency(), XCreateWindow();
                    372: Window XGetIconWindow();
                    373: Font XGetFont();
                    374: Status XFetchName(), XGetColorCells(), XGetColor(), XGetHardwareColor();
                    375: Status XGetResizeHint(), XGrabButton(), XGrabMouse(), XInterpretLocator();
                    376: Status XParseColor(), XPixmapGetXY(), XPixmapGetZ(), XQueryMouseButtons();
                    377: Status XQueryFont(), XQueryMouse(), XQueryTree(), XQueryWindow();
                    378: Status XReadBitmapFile(), XUpdateMouse();
                    379: XAssocTable *XCreateAssocTable();

unix.superglobalmegacorp.com

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