⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xlib.h

📁 用于nano-x的xlib
💻 H
📖 第 1 页 / 共 5 页
字号:
/* $Xorg: Xlib.h,v 1.6 2001/02/09 02:03:38 xorgcvs Exp $ *//* Copyright 1985, 1986, 1987, 1991, 1998  The Open GroupPermission to use, copy, modify, distribute, and sell this software and itsdocumentation for any purpose is hereby granted without fee, provided thatthe above copyright notice appear in all copies and that both thatcopyright notice and this permission notice appear in supportingdocumentation.The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THEOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER INAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR INCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.Except as contained in this notice, the name of The Open Group shall not beused in advertising or otherwise to promote the sale, use or other dealingsin this Software without prior written authorization from The Open Group.*//* $XFree86: xc/lib/X11/Xlib.h,v 3.23 2002/05/31 18:45:42 dawes Exp $ *//* *	Xlib.h - Header definition and support file for the C subroutine *	interface library (Xlib) to the X Window System Protocol (V11). *	Structures and symbols starting with "_" are private to the library. */#ifndef _XLIB_H_#define _XLIB_H_#define XlibSpecificationRelease 6#ifdef USG#ifndef __TYPES__#include <sys/types.h>			/* forgot to protect it... */#define __TYPES__#endif /* __TYPES__ */#else#if defined(_POSIX_SOURCE) && defined(MOTOROLA)#undef _POSIX_SOURCE#include <sys/types.h>#define _POSIX_SOURCE#else#include <sys/types.h>#endif#endif /* USG */#include "X.h"/* applications should not depend on these two headers being included! */#include "Xfuncproto.h"#include "Xosdefs.h"#ifndef X_WCHAR#ifdef X_NOT_STDC_ENV#ifndef SCO324#ifndef ISC#define X_WCHAR#endif#endif#endif#endif#ifndef X_WCHAR#include <stddef.h>#else#ifdef __UNIXOS2__#include <stdlib.h>#else/* replace this with #include or typedef appropriate for your system */typedef unsigned long wchar_t;#endif#endif#if defined(ISC) && defined(USE_XMBTOWC)#define wctomb(a,b)	_Xwctomb(a,b)#define mblen(a,b)	_Xmblen(a,b) #ifndef USE_XWCHAR_STRING#define mbtowc(a,b,c)	_Xmbtowc(a,b,c)#endif#endif/* API mentioning "UTF8" or "utf8" is an XFree86 extension, introduced in   November 2000. Its presence is indicated through the following macro. */#define X_HAVE_UTF8_STRING 1typedef char *XPointer;#define Bool int#define Status int#define True 1#define False 0#define QueuedAlready 0#define QueuedAfterReading 1#define QueuedAfterFlush 2#define ConnectionNumber(dpy) 	(((_XPrivDisplay)dpy)->fd)#define RootWindow(dpy, scr) 	(ScreenOfDisplay(dpy,scr)->root)#define DefaultScreen(dpy) 	(((_XPrivDisplay)dpy)->default_screen)#define DefaultRootWindow(dpy) 	(ScreenOfDisplay(dpy,DefaultScreen(dpy))->root)#define DefaultVisual(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_visual)#define DefaultGC(dpy, scr) 	(ScreenOfDisplay(dpy,scr)->default_gc)#define BlackPixel(dpy, scr) 	(ScreenOfDisplay(dpy,scr)->black_pixel)#define WhitePixel(dpy, scr) 	(ScreenOfDisplay(dpy,scr)->white_pixel)#define AllPlanes 		((unsigned long)~0L)#define QLength(dpy) 		(((_XPrivDisplay)dpy)->qlen)#define DisplayWidth(dpy, scr) 	(ScreenOfDisplay(dpy,scr)->width)#define DisplayHeight(dpy, scr) (ScreenOfDisplay(dpy,scr)->height)#define DisplayWidthMM(dpy, scr)(ScreenOfDisplay(dpy,scr)->mwidth)#define DisplayHeightMM(dpy, scr)(ScreenOfDisplay(dpy,scr)->mheight)#define DisplayPlanes(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_depth)#define DisplayCells(dpy, scr) 	(DefaultVisual(dpy,scr)->map_entries)#define ScreenCount(dpy) 	(((_XPrivDisplay)dpy)->nscreens)#define ServerVendor(dpy) 	(((_XPrivDisplay)dpy)->vendor)#define ProtocolVersion(dpy) 	(((_XPrivDisplay)dpy)->proto_major_version)#define ProtocolRevision(dpy) 	(((_XPrivDisplay)dpy)->proto_minor_version)#define VendorRelease(dpy) 	(((_XPrivDisplay)dpy)->release)#define DisplayString(dpy) 	(((_XPrivDisplay)dpy)->display_name)#define DefaultDepth(dpy, scr) 	(ScreenOfDisplay(dpy,scr)->root_depth)#define DefaultColormap(dpy, scr)(ScreenOfDisplay(dpy,scr)->cmap)#define BitmapUnit(dpy) 	(((_XPrivDisplay)dpy)->bitmap_unit)#define BitmapBitOrder(dpy) 	(((_XPrivDisplay)dpy)->bitmap_bit_order)#define BitmapPad(dpy) 		(((_XPrivDisplay)dpy)->bitmap_pad)#define ImageByteOrder(dpy) 	(((_XPrivDisplay)dpy)->byte_order)#ifdef CRAY /* unable to get WORD64 without pulling in other symbols */#define NextRequest(dpy)	XNextRequest(dpy)#else#define NextRequest(dpy)	(((_XPrivDisplay)dpy)->request + 1)#endif#define LastKnownRequestProcessed(dpy)	(((_XPrivDisplay)dpy)->last_request_read)/* macros for screen oriented applications (toolkit) */#define ScreenOfDisplay(dpy, scr)(&((_XPrivDisplay)dpy)->screens[scr])#define DefaultScreenOfDisplay(dpy) ScreenOfDisplay(dpy,DefaultScreen(dpy))#define DisplayOfScreen(s)	((s)->display)#define RootWindowOfScreen(s)	((s)->root)#define BlackPixelOfScreen(s)	((s)->black_pixel)#define WhitePixelOfScreen(s)	((s)->white_pixel)#define DefaultColormapOfScreen(s)((s)->cmap)#define DefaultDepthOfScreen(s)	((s)->root_depth)#define DefaultGCOfScreen(s)	((s)->default_gc)#define DefaultVisualOfScreen(s)((s)->root_visual)#define WidthOfScreen(s)	((s)->width)#define HeightOfScreen(s)	((s)->height)#define WidthMMOfScreen(s)	((s)->mwidth)#define HeightMMOfScreen(s)	((s)->mheight)#define PlanesOfScreen(s)	((s)->root_depth)#define CellsOfScreen(s)	(DefaultVisualOfScreen((s))->map_entries)#define MinCmapsOfScreen(s)	((s)->min_maps)#define MaxCmapsOfScreen(s)	((s)->max_maps)#define DoesSaveUnders(s)	((s)->save_unders)#define DoesBackingStore(s)	((s)->backing_store)#define EventMaskOfScreen(s)	((s)->root_input_mask)/* * Extensions need a way to hang private data on some structures. */typedef struct _XExtData {	int number;		/* number returned by XRegisterExtension */	struct _XExtData *next;	/* next item on list of data for structure */	int (*free_private)(	/* called to free private storage */#if NeedFunctionPrototypes	struct _XExtData *extension#endif	);	XPointer private_data;	/* data private to this extension. */} XExtData;/* * This file contains structures used by the extension mechanism. */typedef struct {		/* public to extension, cannot be changed */	int extension;		/* extension number */	int major_opcode;	/* major op-code assigned by server */	int first_event;	/* first event number for the extension */	int first_error;	/* first error number for the extension */} XExtCodes;/* * Data structure for retrieving info about pixmap formats. */typedef struct {    int depth;    int bits_per_pixel;    int scanline_pad;} XPixmapFormatValues;/* * Data structure for setting graphics context. */typedef struct {	int function;		/* logical operation */	unsigned long plane_mask;/* plane mask */	unsigned long foreground;/* foreground pixel */	unsigned long background;/* background pixel */	int line_width;		/* line width */	int line_style;	 	/* LineSolid, LineOnOffDash, LineDoubleDash */	int cap_style;	  	/* CapNotLast, CapButt, 				   CapRound, CapProjecting */	int join_style;	 	/* JoinMiter, JoinRound, JoinBevel */	int fill_style;	 	/* FillSolid, FillTiled, 				   FillStippled, FillOpaeueStippled */	int fill_rule;	  	/* EvenOddRule, WindingRule */	int arc_mode;		/* ArcChord, ArcPieSlice */	Pixmap tile;		/* tile pixmap for tiling operations */	Pixmap stipple;		/* stipple 1 plane pixmap for stipping */	int ts_x_origin;	/* offset for tile or stipple operations */	int ts_y_origin;        Font font;	        /* default text font for text operations */	int subwindow_mode;     /* ClipByChildren, IncludeInferiors */	Bool graphics_exposures;/* boolean, should exposures be generated */	int clip_x_origin;	/* origin for clipping */	int clip_y_origin;	Pixmap clip_mask;	/* bitmap clipping; other calls for rects */	int dash_offset;	/* patterned/dashed line information */	char dashes;} XGCValues;/* * Graphics context.  The contents of this structure are implementation * dependent.  A GC should be treated as opaque by application code. */typedef struct _XGC#ifdef XLIB_ILLEGAL_ACCESS{    XExtData *ext_data;	/* hook for extension to hang data */    GContext gid;	/* protocol ID for graphics context */    /* there is more to this structure, but it is private to Xlib */}#endif*GC;/* * Visual structure; contains information about colormapping possible. */typedef struct {	XExtData *ext_data;	/* hook for extension to hang data */	VisualID visualid;	/* visual id of this visual */#if defined(__cplusplus) || defined(c_plusplus)	int c_class;		/* C++ class of screen (monochrome, etc.) */#else	int class;		/* class of screen (monochrome, etc.) */#endif	unsigned long red_mask, green_mask, blue_mask;	/* mask values */	int bits_per_rgb;	/* log base 2 of distinct color values */	int map_entries;	/* color map entries */} Visual;/* * Depth structure; contains information for each possible depth. */	typedef struct {	int depth;		/* this depth (Z) of the depth */	int nvisuals;		/* number of Visual types at this depth */	Visual *visuals;	/* list of visuals possible at this depth */} Depth;/* * Information about the screen.  The contents of this structure are * implementation dependent.  A Screen should be treated as opaque * by application code. */struct _XDisplay;		/* Forward declare before use for C++ */typedef struct {	XExtData *ext_data;	/* hook for extension to hang data */	struct _XDisplay *display;/* back pointer to display structure */	Window root;		/* Root window id. */	int width, height;	/* width and height of screen */	int mwidth, mheight;	/* width and height of  in millimeters */	int ndepths;		/* number of depths possible */	Depth *depths;		/* list of allowable depths on the screen */	int root_depth;		/* bits per pixel */	Visual *root_visual;	/* root visual */	GC default_gc;		/* GC for the root root visual */	Colormap cmap;		/* default color map */	unsigned long white_pixel;	unsigned long black_pixel;	/* White and Black pixel values */	int max_maps, min_maps;	/* max and min color maps */	int backing_store;	/* Never, WhenMapped, Always */	Bool save_unders;		long root_input_mask;	/* initial root input mask */} Screen;/* * Format structure; describes ZFormat data the screen will understand. */typedef struct {	XExtData *ext_data;	/* hook for extension to hang data */	int depth;		/* depth of this image format */	int bits_per_pixel;	/* bits/pixel at this depth */	int scanline_pad;	/* scanline must padded to this multiple */} ScreenFormat;/* * Data structure for setting window attributes. */typedef struct {    Pixmap background_pixmap;	/* background or None or ParentRelative */    unsigned long background_pixel;	/* background pixel */    Pixmap border_pixmap;	/* border of the window */    unsigned long border_pixel;	/* border pixel value */    int bit_gravity;		/* one of bit gravity values */    int win_gravity;		/* one of the window gravity values */    int backing_store;		/* NotUseful, WhenMapped, Always */    unsigned long backing_planes;/* planes to be preseved if possible */    unsigned long backing_pixel;/* value to use in restoring planes */    Bool save_under;		/* should bits under be saved? (popups) */    long event_mask;		/* set of events that should be saved */    long do_not_propagate_mask;	/* set of events that should not propagate */    Bool override_redirect;	/* boolean value for override-redirect */    Colormap colormap;		/* color map to be associated with window */    Cursor cursor;		/* cursor to be displayed (or None) */} XSetWindowAttributes;typedef struct {    int x, y;			/* location of window */    int width, height;		/* width and height of window */    int border_width;		/* border width of window */    int depth;          	/* depth of window */    Visual *visual;		/* the associated visual structure */    Window root;        	/* root of screen containing window */#if defined(__cplusplus) || defined(c_plusplus)    int c_class;		/* C++ InputOutput, InputOnly*/#else    int class;			/* InputOutput, InputOnly*/#endif    int bit_gravity;		/* one of bit gravity values */    int win_gravity;		/* one of the window gravity values */    int backing_store;		/* NotUseful, WhenMapped, Always */    unsigned long backing_planes;/* planes to be preserved if possible */    unsigned long backing_pixel;/* value to be used when restoring planes */    Bool save_under;		/* boolean, should bits under be saved? */    Colormap colormap;		/* color map to be associated with window */    Bool map_installed;		/* boolean, is color map currently installed*/    int map_state;		/* IsUnmapped, IsUnviewable, IsViewable */    long all_event_masks;	/* set of events all people have interest in*/    long your_event_mask;	/* my event mask */    long do_not_propagate_mask; /* set of events that should not propagate */    Bool override_redirect;	/* boolean value for override-redirect */    Screen *screen;		/* back pointer to correct screen */} XWindowAttributes;/* * Data structure for host setting; getting routines. * */typedef struct {	int family;		/* for example FamilyInternet */	int length;		/* length of address, in bytes */	char *address;		/* pointer to where to find the bytes */} XHostAddress;/* * Data structure for "image" data, used by image manipulation routines. */typedef struct _XImage {    int width, height;		/* size of image */    int xoffset;		/* number of pixels offset in X direction */    int format;			/* XYBitmap, XYPixmap, ZPixmap */    char *data;			/* pointer to image data */    int byte_order;		/* data byte order, LSBFirst, MSBFirst */    int bitmap_unit;		/* quant. of scanline 8, 16, 32 */    int bitmap_bit_order;	/* LSBFirst, MSBFirst */    int bitmap_pad;		/* 8, 16, 32 either XY or ZPixmap */    int depth;			/* depth of image */    int bytes_per_line;		/* accelarator to next line */    int bits_per_pixel;		/* bits per pixel (ZPixmap) */    unsigned long red_mask;	/* bits in z arrangment */    unsigned long green_mask;    unsigned long blue_mask;    XPointer obdata;		/* hook for the object routines to hang on */    struct funcs {		/* image manipulation routines */#if NeedFunctionPrototypes	struct _XImage *(*create_image)(		struct _XDisplay* /* display */,		Visual*		/* visual */,		unsigned int	/* depth */,		int		/* format */,		int		/* offset */,		char*		/* data */,		unsigned int	/* width */,		unsigned int	/* height */,		int		/* bitmap_pad */,		int		/* bytes_per_line */);	int (*destroy_image)        (struct _XImage *);	unsigned long (*get_pixel)  (struct _XImage *, int, int);	int (*put_pixel)            (struct _XImage *, int, int, unsigned long);	struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int);	int (*add_pixel)            (struct _XImage *, long);#else	struct _XImage *(*create_image)();	int (*destroy_image)();	unsigned long (*get_pixel)();	int (*put_pixel)();	struct _XImage *(*sub_image)();	int (*add_pixel)();#endif	} f;} XImage;/*  * Data structure for XReconfigureWindow */typedef struct {    int x, y;    int width, height;    int border_width;    Window sibling;    int stack_mode;} XWindowChanges;/* * Data structure used by color operations */typedef struct {	unsigned long pixel;	unsigned short red, green, blue;	char flags;  /* do_red, do_green, do_blue */	char pad;} XColor;/*  * Data structures for graphics operations.  On most machines, these are * congruent with the wire protocol structures, so reformatting the data * can be avoided on these architectures. */typedef struct {    short x1, y1, x2, y2;} XSegment;typedef struct {    short x, y;} XPoint;    typedef struct {    short x, y;    unsigned short width, height;} XRectangle;    typedef struct {    short x, y;    unsigned short width, height;    short angle1, angle2;} XArc;/* Data structure for XChangeKeyboardControl */typedef struct {        int key_click_percent;        int bell_percent;        int bell_pitch;        int bell_duration;        int led;        int led_mode;        int key;        int auto_repeat_mode;   /* On, Off, Default */} XKeyboardControl;/* Data structure for XGetKeyboardControl */typedef struct {        int key_click_percent;	int bell_percent;	unsigned int bell_pitch, bell_duration;	unsigned long led_mask;	int global_auto_repeat;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -