home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / emacs-18.59-src.tgz / emacs-18.59-src.tar / fsf / emacs18 / oldXMenu / X10.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  3KB  |  79 lines

  1. /* $Header: X10.h,v 8.1 89/07/27 14:16:10 merge Exp $ */
  2. /* 
  3.  * Copyright 1985, 1986, 1987 by the Massachusetts Institute of Technology
  4.  *
  5.  * Permission to use, copy, modify, and distribute this software and its
  6.  * documentation for any purpose and without fee is hereby granted, provided 
  7.  * that the above copyright notice appear in all copies and that both that 
  8.  * copyright notice and this permission notice appear in supporting 
  9.  * documentation, and that the name of M.I.T. not be used in advertising
  10.  * or publicity pertaining to distribution of the software without specific, 
  11.  * written prior permission. M.I.T. makes no representations about the 
  12.  * suitability of this software for any purpose.  It is provided "as is"
  13.  * without express or implied warranty.
  14.  *
  15.  * The X Window System is a Trademark of MIT.
  16.  *
  17.  */
  18.  
  19.  
  20. /*
  21.  *    X10.h - Header definition and support file for the C subroutine
  22.  *    interface library for V10 support routines.
  23.  */
  24. #ifndef _X10_H_
  25. #define _X10_H_
  26.  
  27. /* Used in XDraw and XDrawFilled */
  28.  
  29. typedef struct {
  30.     short x, y;
  31.     unsigned short flags;
  32. } Vertex;
  33.  
  34. /* The meanings of the flag bits.  If the bit is 1 the predicate is true */
  35.  
  36. #define VertexRelative        0x0001        /* else absolute */
  37. #define VertexDontDraw        0x0002        /* else draw */
  38. #define VertexCurved        0x0004        /* else straight */
  39. #define VertexStartClosed    0x0008        /* else not */
  40. #define VertexEndClosed        0x0010        /* else not */
  41. /*#define VertexDrawLastPoint    0x0020     */      /* else don't */    
  42.  
  43. /*
  44. The VertexDrawLastPoint option has not been implemented in XDraw and 
  45. XDrawFilled so it shouldn't be defined. 
  46. */
  47.  
  48. /*
  49.  * XAssoc - Associations used in the XAssocTable data structure.  The 
  50.  * associations are used as circular queue entries in the association table
  51.  * which is contains an array of circular queues (buckets).
  52.  */
  53. typedef struct _XAssoc {
  54.     struct _XAssoc *next;    /* Next object in this bucket. */
  55.     struct _XAssoc *prev;    /* Previous obejct in this bucket. */
  56.     Display *display;    /* Display which ownes the id. */
  57.     XID x_id;        /* X Window System id. */
  58.     char *data;        /* Pointer to untyped memory. */
  59. } XAssoc;
  60.  
  61. /* 
  62.  * XAssocTable - X Window System id to data structure pointer association
  63.  * table.  An XAssocTable is a hash table whose buckets are circular
  64.  * queues of XAssoc's.  The XAssocTable is constructed from an array of
  65.  * XAssoc's which are the circular queue headers (bucket headers).  
  66.  * An XAssocTable consists an XAssoc pointer that points to the first
  67.  * bucket in the bucket array and an integer that indicates the number
  68.  * of buckets in the array.
  69.  */
  70. typedef struct {
  71.     XAssoc *buckets;        /* Pointer to first bucket in bucket array.*/
  72.     int size;            /* Table size (number of buckets). */
  73. } XAssocTable;
  74.  
  75. XAssocTable *XCreateAssocTable();
  76. char *XLookUpAssoc();
  77.  
  78. #endif /* _X10_H_ */
  79.