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