Annotation of 43BSD/contrib/X/Xlib/Xlib.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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