Annotation of researchv9/X11/src/X.V11R1/lib/X/Xutil.h, revision 1.1

1.1     ! root        1: /* $Header: Xutil.h,v 11.39 87/09/12 02:32:45 rws Exp $ */
        !             2: 
        !             3: /***********************************************************
        !             4: Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
        !             5: and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
        !             6: 
        !             7:                         All Rights Reserved
        !             8: 
        !             9: Permission to use, copy, modify, and distribute this software and its 
        !            10: documentation for any purpose and without fee is hereby granted, 
        !            11: provided that the above copyright notice appear in all copies and that
        !            12: both that copyright notice and this permission notice appear in 
        !            13: supporting documentation, and that the names of Digital or MIT not be
        !            14: used in advertising or publicity pertaining to distribution of the
        !            15: software without specific, written prior permission.  
        !            16: 
        !            17: DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
        !            18: ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
        !            19: DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
        !            20: ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
        !            21: WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
        !            22: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
        !            23: SOFTWARE.
        !            24: 
        !            25: ******************************************************************/
        !            26: 
        !            27: #ifndef _XUTIL_H_
        !            28: #define _XUTIL_H_
        !            29: 
        !            30: /* 
        !            31:  * Bitmask returned by XParseGeometry().  Each bit tells if the corresponding
        !            32:  * value (x, y, width, height) was found in the parsed string.
        !            33:  */
        !            34: #define NoValue                0x0000
        !            35: #define XValue         0x0001
        !            36: #define YValue         0x0002
        !            37: #define WidthValue     0x0004
        !            38: #define HeightValue    0x0008
        !            39: #define AllValues      0x000F
        !            40: #define XNegative      0x0010
        !            41: #define YNegative      0x0020
        !            42: 
        !            43: typedef struct {
        !            44:        long flags;     /* marks which fields in this structure are defined */
        !            45:        int x, y;
        !            46:        int width, height;
        !            47:        int min_width, min_height;
        !            48:        int max_width, max_height;
        !            49:        int width_inc, height_inc;
        !            50:        struct {
        !            51:                int x;  /* numerator */
        !            52:                int y;  /* denominator */
        !            53:        } min_aspect, max_aspect;
        !            54: } XSizeHints;
        !            55: 
        !            56: /*
        !            57:  * The next block of definitions are for window manager properties that
        !            58:  * clients and applications use for communication.
        !            59:  */
        !            60: 
        !            61: /* flags argument in size hints */
        !            62: #define USPosition     (1L << 0) /* user specified x, y */
        !            63: #define USSize         (1L << 1) /* user specified width, height */
        !            64: 
        !            65: #define PPosition      (1L << 2) /* program specified position */
        !            66: #define PSize          (1L << 3) /* program specified size */
        !            67: #define PMinSize       (1L << 4) /* program specified minimum size */
        !            68: #define PMaxSize       (1L << 5) /* program specified maximum size */
        !            69: #define PResizeInc     (1L << 6) /* program specified resize increments */
        !            70: #define PAspect                (1L << 7) /* program specified min and max aspect ratios */
        !            71: #define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect)
        !            72: 
        !            73: typedef struct {
        !            74:        long flags;     /* marks which fields in this structure are defined */
        !            75:        Bool input;     /* does this application rely on the window manager to
        !            76:                        get keyboard input? */
        !            77:        int initial_state;      /* see below */
        !            78:        Pixmap icon_pixmap;     /* pixmap to be used as icon */
        !            79:        Window icon_window;     /* window to be used as icon */
        !            80:        int icon_x, icon_y;     /* initial position of icon */
        !            81:        Pixmap icon_mask;       /* icon mask bitmap */
        !            82:        XID window_group;       /* id of related window group */
        !            83:        /* this structure may be extended in the future */
        !            84: } XWMHints;
        !            85: 
        !            86: /* definition for flags of XWMHints */
        !            87: 
        !            88: #define InputHint              (1L << 0)
        !            89: #define StateHint              (1L << 1)
        !            90: #define IconPixmapHint         (1L << 2)
        !            91: #define IconWindowHint         (1L << 3)
        !            92: #define IconPositionHint       (1L << 4)
        !            93: #define IconMaskHint           (1L << 5)
        !            94: #define WindowGroupHint                (1L << 6)
        !            95: #define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \
        !            96: IconPositionHint|IconMaskHint|WindowGroupHint)
        !            97: 
        !            98: /* definitions for initial window state */
        !            99: 
        !           100: #define DontCareState 0        /* don't know or care */
        !           101: #define NormalState 1  /* most applications want to start this way */
        !           102: #define ZoomState 2    /* application wants to start zoomed */
        !           103: #define IconicState 3  /* application wants to start as an icon */
        !           104: #define InactiveState 4        /* application believes it is seldom used; some
        !           105:                           wm's may put it on inactive menu */
        !           106: 
        !           107: 
        !           108: typedef struct {
        !           109:        int min_width, min_height;
        !           110:        int max_width, max_height;
        !           111:        int width_inc, height_inc;
        !           112: } XIconSize;
        !           113: 
        !           114: typedef struct {
        !           115:        char *res_name;
        !           116:        char *res_class;
        !           117: } XClassHint;
        !           118: 
        !           119: /*
        !           120:  * These macros are used to give some sugar to the image routines so that
        !           121:  * naive people are more comfortable with them.
        !           122:  */
        !           123: #define XDestroyImage(ximage) \
        !           124:        ((*((ximage)->f.destroy_image))((ximage)))
        !           125: #define XGetPixel(ximage, x, y) \
        !           126:        ((*((ximage)->f.get_pixel))((ximage), (x), (y)))
        !           127: #define XPutPixel(ximage, x, y, pixel) \
        !           128:        ((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)))
        !           129: #define XSubImage(ximage, x, y, width, height)  \
        !           130:        ((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height)))
        !           131: #define XAddPixel(ximage, value) \
        !           132:        ((*((ximage)->f.add_pixel))((ximage), (value)))
        !           133: 
        !           134: /*
        !           135:  * Compose sequence status structure, used in calling XLookupString.
        !           136:  */
        !           137: typedef struct _XComposeStatus {
        !           138:     char *compose_ptr;         /* state table pointer */
        !           139:     int chars_matched;         /* match state */
        !           140: } XComposeStatus;
        !           141: 
        !           142: /*
        !           143:  * Keysym macros, used on Keysyms to test for classes of symbols
        !           144:  */
        !           145: #define IsKeypadKey(keysym) \
        !           146:   (((unsigned)(keysym) >= XK_KP_Space) && ((unsigned)(keysym) <= XK_KP_Equal))
        !           147: 
        !           148: #define IsCursorKey(keysym) \
        !           149:   (((unsigned)(keysym) >= XK_Home)     && ((unsigned)(keysym) <  XK_Select))
        !           150: 
        !           151: #define IsPFKey(keysym) \
        !           152:   (((unsigned)(keysym) >= XK_KP_F1)     && ((unsigned)(keysym) <= XK_KP_F4))
        !           153: 
        !           154: #define IsFunctionKey(keysym) \
        !           155:   (((unsigned)(keysym) >= XK_F1)       && ((unsigned)(keysym) <= XK_F35))
        !           156: 
        !           157: #define IsMiscFunctionKey(keysym) \
        !           158:   (((unsigned)(keysym) >= XK_Select)   && ((unsigned)(keysym) <  XK_KP_Space))
        !           159: 
        !           160: #define IsModifierKey(keysym) \
        !           161:   (((unsigned)(keysym) >= XK_Shift_L)  && ((unsigned)(keysym) <= XK_Hyper_R))
        !           162: 
        !           163: /*
        !           164:  * opaque reference to Region data type 
        !           165:  */
        !           166: typedef struct _XRegion *Region; 
        !           167: 
        !           168: /* Return values from XRectInRegion() */
        !           169:  
        !           170: #define RectangleOut 0
        !           171: #define RectangleIn  1
        !           172: #define RectanglePart 2
        !           173:  
        !           174: 
        !           175: /*
        !           176:  * Information used by the visual utility routines to find desired visual
        !           177:  * type from the many visuals a display may support.
        !           178:  */
        !           179: 
        !           180: typedef struct {
        !           181:   Visual *visual;
        !           182:   VisualID visualid;
        !           183:   int screen;
        !           184:   int depth;
        !           185:   int class;
        !           186:   unsigned long red_mask;
        !           187:   unsigned long green_mask;
        !           188:   unsigned long blue_mask;
        !           189:   int colormap_size;
        !           190:   int bits_per_rgb;
        !           191: } XVisualInfo;
        !           192: 
        !           193: #define VisualNoMask           0x0
        !           194: #define VisualIDMask           0x1
        !           195: #define VisualScreenMask       0x2
        !           196: #define VisualDepthMask                0x4
        !           197: #define VisualClassMask                0x8
        !           198: #define VisualRedMaskMask      0x10
        !           199: #define VisualGreenMaskMask    0x20
        !           200: #define VisualBlueMaskMask     0x40
        !           201: #define VisualColormapSizeMask 0x80
        !           202: #define VisualBitsPerRGBMask   0x100
        !           203: #define VisualAllMask          0x1FF
        !           204: 
        !           205: /*
        !           206:  * This defines a window manager property that clients may use to
        !           207:  * share standard color maps:
        !           208:  */
        !           209: 
        !           210: typedef struct {
        !           211:        Colormap colormap;
        !           212:        unsigned long red_max;
        !           213:        unsigned long red_mult;
        !           214:        unsigned long green_max;
        !           215:        unsigned long green_mult;
        !           216:        unsigned long blue_max;
        !           217:        unsigned long blue_mult;
        !           218:        unsigned long base_pixel;
        !           219: } XStandardColormap;
        !           220: 
        !           221: /*
        !           222:  * return codes for XReadBitmapFile and XWriteBitmapFile
        !           223:  */
        !           224: #define BitmapSuccess          0
        !           225: #define BitmapOpenFailed       1
        !           226: #define BitmapFileInvalid      2
        !           227: #define BitmapNoMemory         3
        !           228: /*
        !           229:  * Declare the routines that don't return int.
        !           230:  */
        !           231: 
        !           232: /****************************************************************
        !           233:  *
        !           234:  * Context Management
        !           235:  *
        !           236:  ****************************************************************/
        !           237: 
        !           238: 
        !           239: /* Associative lookup table return codes */
        !           240: 
        !           241: #define XCSUCCESS 0    /* No error. */
        !           242: #define XCNOMEM   1    /* Out of memory */
        !           243: #define XCNOENT   2    /* No entry in table */
        !           244: 
        !           245: typedef int XContext;
        !           246: 
        !           247: #define XUniqueContext()       ((XContext) XrmUniqueQuark())
        !           248: #define XAtomToContext(atom)   ((XContext) XrmAtomToQuark(atom))
        !           249: 
        !           250: extern int XSaveContext(); /* window, context, data */
        !           251:     /* Window       window;            */
        !           252:     /* XContext    context;            */
        !           253:     /* caddr_t      data;              */
        !           254: 
        !           255: extern int XFindContext(); /* display, window, context, data */
        !           256:     /* Display     *display;           */
        !           257:     /* Window       window;            */
        !           258:     /* XContext    context;            */
        !           259:     /* caddr_t      *data;    /* RETURN */
        !           260: 
        !           261: extern int XDeleteContext(); /* window, context */
        !           262:     /* Window       window;            */
        !           263:     /* XContext    context;            */
        !           264: 
        !           265: 
        !           266: XWMHints *XGetWMHints();
        !           267: Region XCreateRegion(), XPolygonRegion();
        !           268: XImage *XCreateImage();
        !           269: 
        !           270: XVisualInfo *XGetVisualInfo();
        !           271: #endif _XUTIL_H_

unix.superglobalmegacorp.com

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