Annotation of 43BSDTahoe/new/X/Xlib/Xlib.h, revision 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.