xgraph.h
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:5k
源码类别:

通讯编程

开发平台:

Visual C++

  1. /*
  2.  * Globally accessible information from xgraph
  3.  */
  4. #ifndef _XGRAPH_H_
  5. #define _XGRAPH_H_
  6. #include "autoconf.h"
  7. #include <X11/Xos.h>
  8. #include <X11/Xlib.h>
  9. #include <X11/Xutil.h>
  10. #include <X11/cursorfont.h>
  11. /*
  12.  * Get definitions from headers.
  13.  */
  14. #include <stdio.h>   /* sprintf */
  15. #ifdef HAVE_STRING_H
  16. #include <string.h>  /* str* */
  17. #else
  18. #ifdef HAVE_STRINGS_H
  19. #include <strings.h>  /* str* */
  20. #else
  21. extern char *strcpy();
  22. extern char *strcat();
  23. extern char *rindex();
  24. extern char *index();
  25. #endif /* HAVE_STRINGS_H */
  26. #endif /* HAVE_STRING_H */
  27. #ifdef HAVE_UNISTD_H
  28. #include <unistd.h>  /* exit, abort */
  29. #endif /* HAVE_UNISTD_H */
  30. #ifdef HAVE_STDLIB_H
  31. #include <stdlib.h>  /* atof */
  32. #endif /* HAVE_STDLIB_H */
  33. #include "xgout.h"
  34. #define VERSION_STRING "12.1 December 1999 "
  35. #define MAXKEYS 50
  36. #define MAXATTR  8
  37. #define MAXSETS 112
  38. #define MAXBUFSIZE  120
  39. #define MAXLS 50
  40. #define STRDUP(xx) (strcpy(Malloc((unsigned) (strlen(xx)+1)), (xx)))
  41. #define SCREENX(ws, userX) 
  42.     (((int) (((userX) - ws->UsrOrgX)/ws->XUnitsPerPixel + 0.5)) + ws->XOrgX)
  43. #define SCREENY(ws, userY) 
  44.     (ws->XOppY - ((int) (((userY) - ws->UsrOrgY)/ws->YUnitsPerPixel + 0.5)))
  45. #define HARDCOPY_IN_PROGRESS 0x01
  46. /* Portability */
  47. /* try to get those constants */
  48. #include <math.h>
  49. #ifdef HAVE_LIMITS_H
  50. #include <limits.h>
  51. #endif /* HAVE_LIMITS */
  52. #ifdef HAVE_FLOAT_H
  53. #include <float.h>
  54. #endif /* HAVE_FLOAT_H */
  55. #ifdef  CRAY
  56. #undef  MAXFLOAT
  57. #define MAXFLOAT 10.e300
  58. #endif /* CRAY */
  59. #ifndef MAXFLOAT
  60. #if defined(FLT_MAX)
  61. #define MAXFLOAT FLT_MAX
  62. #elif defined(HUGE)
  63. #define MAXFLOAT HUGE
  64. #endif
  65. #endif
  66. #ifndef BIGINT
  67. #if defined(INT_MAX)
  68. #define BIGINT INT_MAX
  69. #elif defined(MAXINT)
  70. #define BIGINT MAXINT
  71. #else
  72. #define BIGINT 0xffffffff
  73. #endif
  74. #endif
  75. #define GRIDPOWER  10
  76. #define INITSIZE  128
  77. #define CONTROL_D '04'
  78. #define CONTROL_C '03'
  79. #define TILDE '~'
  80. #define BTNPAD 1
  81. #define BTNINTER 3
  82. #ifndef MAX
  83. #define MAX(a,b) ((a) > (b) ? (a) : (b))
  84. #endif
  85. #ifndef MIN
  86. #define MIN(a,b) ((a) < (b) ? (a) : (b))
  87. #endif
  88. #ifndef ABS
  89. #define ABS(x) ((x) < 0 ? -(x) : (x))
  90. #endif
  91. #define ZERO_THRES 1.0E-07
  92. /* To get around an inaccurate log */
  93. #define nlog10(x) (x == 0.0 ? 0.0 : log10(x) + 1e-15)
  94. #define ISCOLOR (wi->dev_info.dev_flags & D_COLOR)
  95. #define PIXVALUE(set)  ((set) % MAXATTR)
  96. #define LINESTYLE(set) 
  97. (ISCOLOR ?  ((set)/MAXATTR) : ((set) % MAXATTR))
  98. #define MARKSTYLE(set) 
  99. (colorMark ? COLMARK(set) : BWMARK(set))
  100. #define COLMARK(set) 
  101. ((set) / MAXATTR)
  102. #define BWMARK(set) 
  103. ((set) % MAXATTR)
  104. #define LOG_X 0x01
  105. #define LOG_Y 0x02
  106. #define STK 0x04
  107. #define FITX 0x08
  108. #define FITY 0x10
  109. typedef unsigned long Pixel;
  110. /* Globally accessible values */
  111. extern Display *disp; /* Open display            */
  112. extern Visual *vis; /* Standard visual         */
  113. extern Colormap cmap; /* Standard colormap       */
  114. extern int screen; /* Screen number           */
  115. extern int depth; /* Depth of screen         */
  116. extern void do_hardcopy(); /* Carries out hardcopy    */
  117. extern void ho_dialog(); /* Hardcopy dialog         */
  118. extern void set_X(); /* Initializes X device    */
  119. typedef struct point_list {
  120.     int     numPoints; /* Number of points in group */
  121.     int     allocSize; /* Allocated size            */
  122.     double *xvec; /* X values                  */
  123.     double *yvec; /* Y values                  */
  124.     struct point_list *next; /* Next set of points        */
  125. }       PointList;
  126. typedef struct new_data_set {
  127.     char   *setName; /* Name of data set     */
  128.     PointList *list; /* List of point arrays */
  129. }       NewDataSet;
  130. typedef struct local_win {
  131.     double  loX,
  132.             loY,
  133.             hiX,
  134.             hiY; /* Local bounding box of window         */
  135.     int     XOrgX,
  136.             XOrgY; /* Origin of bounding box on screen     */
  137.     int     XOppX,
  138.             XOppY; /* Other point defining bounding box    */
  139.     double  UsrOrgX,
  140.             UsrOrgY; /* Origin of bounding box in user space */
  141.     double  UsrOppX,
  142.             UsrOppY; /* Other point of bounding box          */
  143.     double  XUnitsPerPixel; /* X Axis scale factor                  */
  144.     double  YUnitsPerPixel; /* Y Axis scale factor                  */
  145.     struct xg_out   dev_info; /* Device information                   */
  146.     Window  close,
  147.             hardcopy; /* Buttons for closing and hardcopy     */
  148.     Window  about; /* Version information                  */
  149.     Window  rewind;             /* PW Added this, for animation.        */
  150.     Window  replot;             /* PW Added this, for animation.        */
  151.     Window  deriv;             /* PW Added this, for animation.        */
  152.     int     flags; /* Window flags                         */
  153.     int     DOrder;             /* Which order of Derivative is being set? */
  154. }       LocalWin;
  155. extern NewDataSet PlotData[MAXSETS], DataD1[MAXSETS], DataD2[MAXSETS];
  156. extern  XSegment *Xsegs[2]; /* Point space for X */
  157. extern double llx, lly, urx, ury; /* Bounding box of all data */
  158. extern int numFiles; /* Number of input files   */
  159. extern char *inFileNames[MAXSETS]; /* File names              */
  160. /* Total number of active windows */
  161. extern int Num_Windows;
  162. extern char *Prog_Name;
  163. extern char *disp_name;
  164. /* To make lint happy */
  165. extern char *Malloc();
  166. extern char *Realloc();
  167. extern void Free();
  168. #ifndef _POSIX_SOURCE
  169. /* extern int sprintf(); ---conflicts with sunos */
  170. extern void exit();
  171. extern double atof();
  172. extern void abort();
  173. #endif /* _POSIX_SOURCE */
  174. #endif /* _XGRAPH_H_ */