summaryrefslogtreecommitdiff
path: root/xc/test/xsuite/xtest/include/XstDisplay.h
diff options
context:
space:
mode:
Diffstat (limited to 'xc/test/xsuite/xtest/include/XstDisplay.h')
-rw-r--r--xc/test/xsuite/xtest/include/XstDisplay.h225
1 files changed, 225 insertions, 0 deletions
diff --git a/xc/test/xsuite/xtest/include/XstDisplay.h b/xc/test/xsuite/xtest/include/XstDisplay.h
new file mode 100644
index 000000000..7f27a2fe5
--- /dev/null
+++ b/xc/test/xsuite/xtest/include/XstDisplay.h
@@ -0,0 +1,225 @@
+/*
+ * Copyright 1990, 1991 by the Massachusetts Institute of Technology and
+ * UniSoft Group Limited.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation, and that the names of MIT and UniSoft not be
+ * used in advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission. MIT and UniSoft
+ * make no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * $XConsortium$
+ */
+
+#define XstConnectionNumber(dpy) ((dpy)->fd)
+#define XstRootWindow(dpy, scr) (((dpy)->screens[(scr)]).root)
+#define XstDefaultScreen(dpy) ((dpy)->default_screen)
+#define XstDefaultRootWindow(dpy) (((dpy)->screens[(dpy)->default_screen]).root)
+#define XstDefaultVisual(dpy, scr) (((dpy)->screens[(scr)]).root_visual)
+#define XstDefaultGC(dpy, scr) (((dpy)->screens[(scr)]).default_gc)
+#define XstBlackPixel(dpy, scr) (((dpy)->screens[(scr)]).black_pixel)
+#define XstWhitePixel(dpy, scr) (((dpy)->screens[(scr)]).white_pixel)
+#define XstAllPlanes (~0)
+#define XstQLength(dpy) ((dpy)->qlen)
+#define XstDisplayWidth(dpy, scr) (((dpy)->screens[(scr)]).width)
+#define XstDisplayHeight(dpy, scr) (((dpy)->screens[(scr)]).height)
+#define XstDisplayWidthMM(dpy, scr)(((dpy)->screens[(scr)]).mwidth)
+#define XstDisplayHeightMM(dpy, scr)(((dpy)->screens[(scr)]).mheight)
+#define XstDisplayPlanes(dpy, scr) (((dpy)->screens[(scr)]).root_depth)
+#define XstDisplayCells(dpy, scr) (XstDefaultVisual((dpy), (scr))->map_entries)
+#define XstScreenCount(dpy) ((dpy)->nscreens)
+#define XstServerVendor(dpy) ((dpy)->vendor)
+#define XstProtocolVersion(dpy) ((dpy)->proto_major_version)
+#define XstProtocolRevision(dpy) ((dpy)->proto_minor_version)
+#define XstVendorRelease(dpy) ((dpy)->release)
+#define XstDisplayString(dpy) ((dpy)->display_name)
+#define XstDefaultDepth(dpy, scr) (((dpy)->screens[(scr)]).root_depth)
+#define XstDefaultColormap(dpy, scr)(((dpy)->screens[(scr)]).cmap)
+#define XstBitmapUnit(dpy) ((dpy)->bitmap_unit)
+#define XstBitmapBitOrder(dpy) ((dpy)->bitmap_bit_order)
+#define XstBitmapPad(dpy) ((dpy)->bitmap_pad)
+#define XstImageByteOrder(dpy) ((dpy)->byte_order)
+#define XstNextRequest(dpy) ((dpy)->request + 1)
+#define XstLastKnownRequestProcessed(dpy) ((dpy)->last_request_read)
+
+/* macros for screen oriented applications (toolkit) */
+#define XstScreenOfDisplay(dpy, scr)(&((dpy)->screens[(scr)]))
+#define XstDefaultScreenOfDisplay(dpy) (&((dpy)->screens[(dpy)->default_screen]))
+#define XstDisplayOfScreen(s) ((s)->display)
+#define XstRootWindowOfScreen(s) ((s)->root)
+#define XstBlackPixelOfScreen(s) ((s)->black_pixel)
+#define XstWhitePixelOfScreen(s) ((s)->white_pixel)
+#define XstDefaultColormapOfScreen(s)((s)->cmap)
+#define XstDefaultDepthOfScreen(s) ((s)->root_depth)
+#define XstDefaultGCOfScreen(s) ((s)->default_gc)
+#define XstDefaultVisualOfScreen(s)((s)->root_visual)
+#define XstWidthOfScreen(s) ((s)->width)
+#define XstHeightOfScreen(s) ((s)->height)
+#define XstWidthMMOfScreen(s) ((s)->mwidth)
+#define XstHeightMMOfScreen(s) ((s)->mheight)
+#define XstPlanesOfScreen(s) ((s)->root_depth)
+#define XstCellsOfScreen(s) (XstDefaultVisualOfScreen((s))->map_entries)
+#define XstMinCmapsOfScreen(s) ((s)->min_maps)
+#define XstMaxCmapsOfScreen(s) ((s)->max_maps)
+#define XstDoesSaveUnders(s) ((s)->save_unders)
+#define XstDoesBackingStore(s) ((s)->backing_store)
+#define XstEventMaskOfScreen(s) ((s)->root_input_mask)
+
+
+/*
+ * 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 */
+} XstVisual;
+
+/*
+ * 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 */
+ XstVisual *visuals; /* list of visuals possible at this depth */
+} XstDepth;
+
+/*
+ * Information about the screen.
+ */
+typedef struct {
+ XExtData *ext_data; /* hook for extension to hang data */
+ struct _XstDisplay *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 */
+ XstDepth *depths; /* list of allowable depths on the screen */
+ int root_depth; /* bits per pixel */
+ XstVisual *root_visual; /* root visual */
+#ifdef NotRequired
+ GC default_gc; /* GC for the root root visual */
+#endif /* NotRequired */
+ 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 */
+} XstScreen;
+
+/*
+ * 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 */
+} XstScreenFormat;
+
+/*
+ * Display datatype maintaining display specific data.
+ */
+typedef struct _XstDisplay {
+ XExtData *ext_data; /* hook for extension to hang data */
+ struct _XstDisplay *next; /* next open Display on list */
+ int fd; /* Network socket. */
+ int lock; /* is someone in critical section? */
+ int proto_major_version;/* maj. version of server's X protocol */
+ int proto_minor_version;/* minor version of servers X protocol */
+ char *vendor; /* vendor of the server hardware */
+ long resource_base; /* resource ID base */
+ long resource_mask; /* resource ID mask bits */
+ long resource_id; /* allocator current ID */
+ int resource_shift; /* allocator shift to correct bits */
+ XID (*resource_alloc)(); /* allocator function */
+ int byte_order; /* screen byte order, LSBFirst, MSBFirst */
+ int bitmap_unit; /* padding and data requirements */
+ int bitmap_pad; /* padding requirements on bitmaps */
+ int bitmap_bit_order; /* LeastSignificant or MostSignificant */
+ int nformats; /* number of pixmap formats in list */
+ XstScreenFormat *pixmap_format; /* pixmap format list */
+ int vnumber; /* Xlib's X protocol version number. */
+ int release; /* release of the server */
+#ifdef NotRequired
+ struct _XSQEvent *head, *tail; /* Input event queue. */
+#endif /* NotRequired */
+ int qlen; /* Length of input event queue */
+ unsigned long last_request_read; /* seq number of last event read */
+ unsigned long request; /* sequence number of last request. */
+ char *last_req; /* beginning of last request, or dummy */
+ char *buffer; /* Output buffer starting address. */
+ char *bufptr; /* Output buffer index pointer. */
+ char *bufmax; /* Output buffer maximum+1 address. */
+ unsigned max_request_size; /* maximum number 32 bit words in request*/
+#ifdef NotRequired
+ struct _XrmHashBucketRec *db;
+#endif /* NotRequired */
+ int (*synchandler)(); /* Synchronization handler */
+ char *display_name; /* "host:display" string used on this connect*/
+ int default_screen; /* default screen for operations */
+ int nscreens; /* number of screens on this server*/
+ XstScreen *screens; /* pointer to list of screens */
+ unsigned long motion_buffer; /* size of motion buffer */
+ Window current; /* for use internally for Keymap notify */
+ int min_keycode; /* minimum defined keycode */
+ int max_keycode; /* maximum defined keycode */
+ KeySym *keysyms; /* This server's keysyms */
+ XModifierKeymap *modifiermap; /* This server's modifier keymap */
+ int keysyms_per_keycode;/* number of rows */
+ char *xdefaults; /* contents of defaults from server */
+ char *scratch_buffer; /* place to hang scratch buffer */
+ unsigned long scratch_length; /* length of scratch buffer */
+#ifdef NotRequired
+ int ext_number; /* extension number on this display */
+ _XExtension *ext_procs; /* extensions initialized on this display */
+#endif /* NotRequired */
+ /*
+ * the following can be fixed size, as the protocol defines how
+ * much address space is available.
+ * While this could be done using the extension vector, there
+ * may be MANY events processed, so a search through the extension
+ * list to find the right procedure for each event might be
+ * expensive if many extensions are being used.
+ */
+ Bool (*event_vec[128])(); /* vector for wire to event */
+ Status (*wire_vec[128])(); /* vector for event to wire */
+#ifdef NotRequired
+ KeySym lock_meaning; /* for XLookupString */
+ struct XKeytrans *key_bindings; /* for XLookupString */
+#endif /* NotRequired */
+ Font cursor_font; /* for XCreateFontCursor */
+ /*
+ * ICCCM information, version 1
+ */
+ struct _DisplayAtoms *atoms;
+ struct { /* for XReconfigureWMWindow */
+ long sequence_number;
+ int (*old_handler)();
+ Bool succeeded;
+ } reconfigure_wm_window;
+ /*
+ * additional connection info
+ */
+ unsigned long flags; /* internal connection flags */
+ unsigned int mode_switch; /* keyboard group modifiers */
+ /*
+ * For X Protocol Testing use only. This is where we store
+ * the Xlib Display pointer, for subsequent closing, if we
+ * had to use XOpenDisplay to get at the fd. If not it's NULL.
+ */
+ Display *xlib_dpy;
+} XstDisplay;