defs.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #ifndef __DEFS_H__
  2. #define __DEFS_H__
  3. #include <grass/gis.h>
  4. #include <curses.h>
  5. #include <grass/imagery.h>
  6. #include "point.h"
  7. /* this is a curses structure */
  8. typedef struct
  9. {
  10. int top, left, bottom, right;
  11. } Window;
  12. /* this is a graphics structure */
  13. typedef struct
  14. {
  15. int top, bottom, left, right;
  16. int nrows, ncols;
  17. struct
  18. {
  19. int configured;
  20. struct Cell_head head;
  21. char name[GNAME_MAX];
  22. char mapset[GMAPSET_MAX];
  23. int top, bottom, left, right;
  24. double ew_res, ns_res; /* original map resolution */
  25. } cell;
  26. } View;
  27. typedef struct
  28. {
  29. int type; /* object type */
  30. int (*handler) (); /* routine to handle the event */
  31. char *label; /* label to display if MENU or OPTION */
  32. int binding; /* OPTION bindings */
  33. int *status; /* MENU,OPTION status */
  34. int top, bottom, left, right;
  35. } Objects;
  36. #define MENU_OBJECT 1
  37. #define OPTION_OBJECT 2
  38. #define INFO_OBJECT 3
  39. #define OTHER_OBJECT 4
  40. #define MENU(label,handler,status) \
  41. {MENU_OBJECT,handler,label,0,status,0,0,0,0}
  42. #define OPTION(label,binding,status) \
  43. {OPTION_OBJECT,NULL,label,binding,status,0,0,0,0}
  44. #define INFO(label,status) \
  45. {INFO_OBJECT,NULL,label,0,status,0,0,0,0}
  46. #define OTHER(handler,status) \
  47. {OTHER_OBJECT,handler,NULL,0,status,0,0,0,0}
  48. struct signalflag
  49. {
  50. int interrupt;
  51. int alarm;
  52. };
  53. #define OVER_WRITE 1
  54. #define OVER_LAY 0
  55. #define MAX_VERTEX 100
  56. struct region
  57. {
  58. struct
  59. {
  60. int define;
  61. int completed;
  62. int filled;
  63. int saved;
  64. } area;
  65. int npoints;
  66. POINT point[MAX_VERTEX];
  67. View *view;
  68. int saved_npoints;
  69. POINT saved_point[MAX_VERTEX];
  70. View *saved_view;
  71. int vertex_npoints;
  72. POINT vertex[MAX_VERTEX];
  73. int perimeter_npoints;
  74. POINT *perimeter;
  75. };
  76. extern int edge_order(const void *, const void *);
  77. /* the mouse buttons and the numbers they return */
  78. #define LEFT_BUTTON 1
  79. #define MIDDLE_BUTTON 2
  80. #define RIGHT_BUTTON 3
  81. #define MAX_CATS 256
  82. #define NORMAL_FONT "romans"
  83. #define GREEK_FONT "greeks"
  84. #define NORMAL_TEXT_SIZE 15
  85. #define AFTER_STD 1
  86. #define BEFORE_STD 0
  87. #define MASK "MASK"
  88. #endif /* __DEFS_H__ */