REF XConstants                                    A.Schoter, August 1991

        COPYRIGHT University of Sussex 1991. All Rights Reserved.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<                             >>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<       REF X CONSTANTS       >>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<                             >>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

This REF  file  contains details  of  various constants  and  structures
defined by Xlib and used by various libraries.



---------------------
1  List of procedures
---------------------

The procedures below are made available by doing:

         uses xlib, XConstants;

                     Xlib - C Language X Interface,
                       MIT X Consortium Standard,
                         X Version 11, Release 4

        Copyright (C) 1985, 1986, 1987, 1988, 1989 Massachusetts
        Institute of Technology,  Cambridge, Massachusetts,  and
        Digital Equipment Corporation, Maynard, Massachusetts.


Display                                                        [typedef]
        This structure contains display specific data.

            typedef struct _XDisplay {
                XExtData *ext_data;
                struct _XDisplay *next;
                int fd;
                int lock;
                int proto_major_version;
                int proto_minor_version;
                char *vendor;
                long resource_base;
                long resource_mask;
                long resource_id;
                int resource_shift;
                XID (*resource_alloc)();
                int byte_order;
                int bitmap_unit;
                int bitmap_pad;
                int bitmap_bit_order;
                int nformats;
                ScreenFormat *pixmap_format;
                int vnumber;
                int release;
                struct _XSQEvent *head, *tail;
                int qlen;
                unsigned long last_request_read;
                unsigned long request;
                char *last_req;
                char *buffer;
                char *bufptr;
                char *bufmax;
                unsigned max_request_size;
                struct _XrmHashBucketRec *db;
                int (*synchandler)();
                char *display_name;
                int default_screen;
                int nscreens;
                Screen *screens;
                int motion_buffer;
                Window current;
                int min_keycode;
                int max_keycode;
                KeySym *keysyms;
                XModifierKeymap *modifiermap;
                int keysyms_per_keycode;
                char *xdefaults;
                char *scratch_buffer;
                unsigned long scratch_length;
                int ext_number;
                _XExtension *ext_procs;
                Bool (*event_vec[128])();
                Status (*wire_vec[128])();
            } Display;

        ext_data is a hook for extensions  to hang on; next is the  next
        open Display in the list; fd is a network socket; lock is a flag
        for determining  whether  someone  is  in  a  critical  section;
        proto_major_version and  proto_minor_version are  the major  and
        minor versions of the  server's X protocal respectively;  vendor
        is the name of  the vendor of  the hardware; resource_mask  is a
        bit mask for resource ID;  resource_id is the allocator  current
        ID; resource_shift  is  the  allocator shift  to  correct  bits;
        resource_alloc is  the  allocator function;  byte_order  is  the
        screen byte order (LSBFirst or MSBFirst); bitmap_unit  specifies
        the padding  and  data requirements;  bitmap_pad  specifies  the
        padding  requiremnts  for  bitmaps;  bitmap_bit_order  specifies
        LeastSignificant  of  MostSignificant;  nformats  specifies  the
        number of pixmap formats in the list; pixmap_format is the  list
        of pixmap formats; vnumber is Xlib's X protocal version  number;
        release is  the release  version of  the server;  head and  tail
        specify the input event queue  and qlen specifies the length  of
        the queue; last_request_read is the sequence number of the  last
        request read  and request  is the  sequence number  of the  last
        request; last_req is either the beginning of the last request or
        a dummy;  buffer is  the  start address  of the  output  buffer,
        bufptr  is  the index pointer into the output buffer, and bufmax
        is the maximum address of the output buffer+1;

        max_request_size is the  maximuum number  of 32  bit words  in a
        request;   synchandler   is    the   synchronization    handler;
        display_name  is  the   "host:display"  string   used  on   this
        connection; default_screen is the defaut screen for  operations,
        nscreen is the numerb of screen on this server, and screens is a
        pointer to the list of screen; motion_buffer is the size of  the
        motion buffer;  current  is a  window  XID used  internally  for
        Keymap notify; min_keycode and  max_keycode are the minimum  and
        maximum defined keycodes; keysyms are the keysyms of the server;
        modifiermap   is   the   modifier   keymap   for   the   server;
        keysyms_per_keycode is the  number of  rows; xdefaults  contains
        the defaults of the server; scratch_buffer is a place to  hang a
        scratch buffer, and scratch_length is the length of the  scratch
        buffer; ext_number  is  the  extension number  of  the  display;
        ext_procs are the extensions initialized on the display.

        event_vec is  a vector  for  wire to  event; and  wire_vec  is a
        vector fpr  event  to wire.  These  can  be fixed  size  as  the
        protocol defines how much address space is available.


_XGC                                                           [typedef]
        All the  Xlib routines  use  this data  structure  to  refer  to
        graphics contexts.

            typedef struct _XGC {
                XExtData * ext_data;
                GContext gid;
                Bool rects;
                Bool dashes;
                unsigned long dirty;
                XGCValues values;
            } * GC;

        ext_data is  a hook  to hang  extension data  onto; gid  is  the
        protocal ID for the graphics context; rects is TRUE if  clipmask
        is a list of rectangles; dashes is TRUE is dash-list is really a
        list; dirty  is a  cashe  for dirty  bits;  values is  a  shadow
        structure of values - see REF * XGCValues.


Screen                                                         [typedef]
        This structure contains information about the screen.

            typedef struct {
                XExtData *ext_data;
                struct _XDisplay *display;
                Window root;
                int width, height;
                int mwidth, mheight;
                int ndepths;
                Depth *depths;
                int root_depth;
                Visual *root_visual;
                GC default_gc;
                Colormap cmap;
                unsigned long white_pixel;
                unsigned long black_pixel;
                int max_maps, min_maps;
                int backing_store;
                Bool save_unders;
                long root_input_mask;
            } Screen;

        ext_data is a  hook to  hang extension data  on; _XDisplay  is a
        back pointer to  the display structure,  root is the  ID of  the
        root window; width and height  are the dimensions of the  screen
        in pixels,  and mwidth  and mheight  are the  dimensions of  the
        screen in millimeters; ndepths are the number of possible depths
        and depths  is  a  list  of allowable  depths  for  the  screen;
        root_depth is the number  of bits per  pixel; default_gc is  the
        graphics context  for  the  root visual;  cmap  is  the  default
        colormap; white_pixel and black_pixel  are the pixel values  for
        black and  white;  max_maps and  min_maps  are the  maximum  and
        minimum color maps; backing_store is a flag determining 'Never',
        'WhenMapped' and 'Aways' modes;  root_input_mask is the  initial
        root input mask.


Visual                                                         [typedef]
        This  structure   contains   information  about   the   possible
        colormappings.

            typedef struct {
                XExtData *ext_data;
                VisualID visualid;
                int class;
                unsigned long red_mask, green_mask, blue_mask;
                int bits_per_rgb;
                int map_entries;
            } Visual;

        ext_data is a hook for extension data to be hung on, VisualID is
        the ID of  the given visual,  class is the  class of the  screen
        (whether monochrome  etc), bits_per_rgb  is log  base 2  of  the
        number of distinct color values,  and map_entires is the  number
        of colormap entries.


XGCValues                                                      [typedef]
        This data  structure  specifies  the  settings  for  a  graphics
        context.

            typedef struct {
                int function;
                unsigned long plane_mask;
                unsigned long foreground;
                unsigned long background;
                int line_width;
                int line_style;
                int cap_style;
                int join_style;
                int fill_style;
                int fill_rule;
                int arc_mode;
                Pixmap tile;
                Pixmap stipple;
                int ts_x_origin;
                int ts_y_origin;
                Font font;
                int subwindow_mode;
                Bool graphics_exposures;
                int clip_x_origin;
                int clip_y_origin;
                Pixmap clip_mask;
                int dash_offset;
                char dashes;
            } XGCValues;

        function is the logical operation to be performed when  drawing;
        plane_mask is  the mask  applied to  the plane;  foreground  and
        background are the pixel values of the foreground and background
        respectively; line_width is the width that a line will be drawn;
        line_style  specifies   one  of   LineSolid,  LineOnOffDash   or
        LineDoubleDash; cap_style specifies one of CapNotLast,  CapButt,
        CapRound,  or   CapProjecting;  join_style   specifies  one   of
        JoinMiter, JoinRound or JoinBevel;  fill_style specifies one  of
        FillSolid,   FillTiled,   FillStipled   or   FillOpaqueStippled;
        fill_rule specifies one of EvenOddRule or WindingRule;  arc_mode
        specifies one  of ArcChord  or ArcPieSlice;  tile specifies  the
        tile pixmap for  tiling operations; stpple  specifies a 1  plane
        pixmap  for  stipple  operations;  ts_x_origin  and  ts_y_origin
        specify  the  offset  for  tile  or  stipple  operations;   font
        specifies the default font  for test operations;  subwindow_mode
        is one of ClipByChildren or IncludeInferiors;  graphics_exposure
        specifies whether exposures  should be generated;  clip_x_origin
        and clip_y_origin specify the origin for clipping; clip_mask  is
        used for bitmap clipping; dash_offset specifies patterned/dashed
        line information.


XModifierKeymap                                                [typedef]
        This   data    structure    is   used    by    the    procedures
        XSetModifierMapping and XGetModifierMapping. See REF * XKeyboard
        for details.

            typedef struct {
                int max_keypermod;
                KeyCode *modifiermap;
            } XModifierKeymap;

        max_keypermod  is  the  server's  maximum  number  of  keys  per
        modifier;  modifiermap  is  an  8  by  max_keypermod  array   of
        modifiers.




--- C.x/x/pop/ref/XConstants
--- Copyright University of Sussex 1991. All rights reserved.
