1 /*------------------------------------------------------------\ 2 | | 3 | Tool : RDS | 4 | | 5 | File : rwi110.h | 6 | | 7 | Authors : Jacomme Ludovic | 8 | | 9 | Date : 27.06.95 | 10 | | 11 \------------------------------------------------------------*/ 12 13 # ifndef RWI_110_H 14 # define RWI_110_H 15 16 #ifndef __P 17 # if defined(__STDC__) || defined(__GNUC__) 18 # define __P(x) x 19 # else 20 # define __P(x) () 21 # endif 22 #endif 23 24 /*------------------------------------------------------------\ 25 | | 26 | Constants | 27 | | 28 \------------------------------------------------------------*/ 29 30 # define RWI_MAX_REC 8 31 # define RWI_MAX_LAYER RDS_ABOX 32 33 /*------------------------------------------------------------\ 34 | | 35 | Flags for window | 36 | | 37 \------------------------------------------------------------*/ 38 39 # define RDS_ONE_WINDOW (long)0x00010000 40 41 /*------------------------------------------------------------\ 42 | | 43 | Macros | 44 | | 45 \------------------------------------------------------------*/ 46 47 # define IsRdsOneWindow( Rectangle ) \ 48 \ 49 ( ( Rectangle )->FLAGS & RDS_ONE_WINDOW ) 50 51 # define SetRdsOneWindow( Rectangle ) \ 52 \ 53 ( ( Rectangle )->FLAGS |= RDS_ONE_WINDOW ) 54 55 # define ClearRdsOneWindow( Rectangle ) \ 56 \ 57 ( ( Rectangle )->FLAGS &= ~RDS_ONE_WINDOW ) 58 59 /*------------------------------------------------------------\ 60 | | 61 | Types | 62 | | 63 \------------------------------------------------------------*/ 64 /*------------------------------------------------------------\ 65 | | 66 | Rds Window, Rectangle List | 67 | | 68 \------------------------------------------------------------*/ 69 70 typedef struct rdswinrec_list 71 72 { 73 struct rdswinrec_list *NEXT; 74 rdsrec_list *RECTAB[ RWI_MAX_REC ]; 75 76 } rdswinrec_list; 77 78 /*------------------------------------------------------------\ 79 | | 80 | Rds Window list | 81 | | 82 \------------------------------------------------------------*/ 83 84 typedef struct rdswin_list 85 86 { 87 struct rdswinrec_list **LAYERTAB; 88 89 } rdswin_list; 90 91 /*------------------------------------------------------------\ 92 | | 93 | Rds rectangle, Window List | 94 | | 95 \------------------------------------------------------------*/ 96 97 typedef struct rdsrecwin_list 98 99 { 100 struct rdsrecwin_list *NEXT; 101 struct rdswin_list *WINDOW; 102 103 } rdsrecwin_list; 104 105 /*------------------------------------------------------------\ 106 | | 107 | Rds Window | 108 | | 109 \------------------------------------------------------------*/ 110 111 typedef struct rdswindow 112 113 { 114 long XMIN; 115 long YMIN; 116 long XMAX; 117 long YMAX; 118 long MASK; 119 long DX; 120 long DY; 121 long SIDE; 122 long SIZE; 123 rdswin_list *WINTAB; 124 125 } rdswindow; 126 127 /*------------------------------------------------------------\ 128 | | 129 | Variables | 130 | | 131 \------------------------------------------------------------*/ 132 /*------------------------------------------------------------\ 133 | | 134 | Functions | 135 | | 136 \------------------------------------------------------------*/ 137 /*------------------------------------------------------------\ 138 | | 139 | Alloc functions | 140 | | 141 \------------------------------------------------------------*/ 142 143 extern rdswinrec_list * allocrdswinrec __P(()); 144 extern rdsrecwin_list * allocrdsrecwin __P(()); 145 extern rdswin_list * allocrdswin __P((unsigned long Number)); 146 extern rdswin_list * allocrdswinlayer __P((rdswin_list *RdsWin)); 147 extern rdswindow * allocrdswindow __P(()); 148 149 /*------------------------------------------------------------\ 150 | | 151 | Free functions | 152 | | 153 \------------------------------------------------------------*/ 154 155 extern void freerdswinrec __P((rdswinrec_list *WinRec)); 156 extern void freerdsrecwin __P((rdsrecwin_list *RecWin)); 157 extern void freerdswin __P((rdswin_list *Win)); 158 extern void freerdswinlayer __P((rdswin_list *Win)); 159 extern void freerdswindow __P((rdswindow *RdsWindow)); 160 161 /*------------------------------------------------------------\ 162 | | 163 | Get functions | 164 | | 165 \------------------------------------------------------------*/ 166 167 extern chain_list * getrdswindow __P((long X, long Y, long Dx, long Dy, rdswindow *RdsWindow)); 168 169 /*------------------------------------------------------------\ 170 | | 171 | Build & Destroy functions | 172 | | 173 \------------------------------------------------------------*/ 174 175 extern void addrdsrecwindow __P((rdsrec_list *Rectangle, rdswindow *RdsWindow)); 176 extern void delrdsrecwindow __P((rdsrec_list *Rectangle, rdswindow *RdsWindow)); 177 extern rdswindow * buildrdswindow __P((rdsfig_list *Figure)); 178 extern void destroyrdswindow __P((rdsfig_list *Figure, rdswindow *RdsWindow)); 179 extern void viewrdswindow __P((rdswindow *RdsWindow)); 180 181 # endif 182