Mapper
change_diff_legend.c
Go to the documentation of this file.
1 
2 #include "prototypes_new.h"
3 
4 void change_diff_legend(int win_x,int win_y)
5 
6 {
7 
8 extern int contour_pcp_flag;
9 extern int qlegend_save;
10 extern Window window;
11 extern Widget drawing_area;
12 extern unsigned long xmap[16];
13 extern unsigned long dmap[16];
14 extern int maxkscale;
15 extern int kscale;
16 extern int rs;
17 extern int legendysize;
18 extern int change_diff_flag;
19 int k,i;
20 Dimension width,height;
21 Arg args[10];
22 int legendystart;
23 int upper,lower;
24 
25 XtSetArg(args[0],XtNwidth,&width);
26 XtSetArg(args[1],XtNheight,&height);
27 XtGetValues(drawing_area,args,2);
28 
29 if(win_x < width - rs - 5)
30  return;
31 
32 /* restore filter*/
33 
35 
36 if(win_y >= (legendystart + 22*rs) &&
37  win_y < (legendystart + 23*rs)) {
38 
39  contour_pcp_flag=1;
40 
42 
43  write_screen();
44 
45  return;
46 
47  }
48 if(win_y >= (legendystart + 21*rs) &&
49  win_y < (legendystart + 22*rs)) {
50 
51  contour_pcp_flag=-1;
52 
54 
55  write_screen();
56 
57  return;
58 
59  }
60 
61 if(win_y >= (legendystart + 23*rs) &&
62  win_y < (legendystart + 24*rs)) {
63 
64  change_diff_flag=-1;
65 
67 
68  return;
69 
70  }
71 
72 if(win_y >= (legendystart + 20*rs) &&
73  win_y < (legendystart + 21*rs)) {
74 
75  for(i=0; i < 15;i++)
76  xmap[i]=dmap[i];
77  qlegend_save=-1;
78 
80 
81  write_screen();
82 
83  return;
84 
85  }
86 
87 /*change pallette */
88 
89 if(win_y >= (legendystart + 19*rs) &&
90  win_y < (legendystart + 20*rs)) {
91 
92  kscale++;
93  if(kscale >= maxkscale)
94  kscale=0;
95 
96 
98 
99  write_screen();
100 
101  return;
102 
103  }
104 
105 /*filter up*/
106 
107 if(win_y >= (legendystart + 18*rs) &&
108  win_y < (legendystart + 19*rs)) {
109 
110  if(qlegend_save >= 0) {
111 
112  for(i=0; i < 15;i++)
113  xmap[i]=dmap[i];
114 
115  if(qlegend_save > 7) {
116 
117  upper=qlegend_save;
118  lower=14-qlegend_save;
119 
120  }
121 
122  else if(qlegend_save <= 6) {
123 
124  lower=qlegend_save;
125  upper=14-qlegend_save;
126 
127  }
128 
129  else
130  return;
131 
132  for(i=0;i<=lower;i++)
133  xmap[i]=dmap[0];
134  for(i=upper;i<=15;i++)
135  xmap[i]=dmap[15];
137 
138  write_screen();
139 
140  }
141 
142  return;
143 
144  }
145 
146 /*filter down */
147 
148 if(win_y >= (legendystart + 17*rs) &&
149  win_y < (legendystart + 18*rs)) {
150 
151  if(qlegend_save >= 0) {
152 
153  for(i=0; i < 15;i++)
154  xmap[i]=dmap[i];
155 
156  if(qlegend_save > 7) {
157 
158  upper=qlegend_save;
159  lower=14-qlegend_save;
160 
161  }
162 
163  else if(qlegend_save <= 6) {
164 
165  lower=qlegend_save;
166  upper=14-qlegend_save;
167 
168  }
169 
170  else
171  return;
172 
173  for(i=8;i<=upper;i++)
174  xmap[i]=0;
175  for(i=lower;i<=7;i++)
176  xmap[i]=0;
178 
179  write_screen();
180 
181  }
182 
183  return;
184 
185  }
186 
187 /*filter levels */
188 
189 for(k=0;k<16;k++) {
190 
191  if(win_y >= (legendystart + (k+1) * rs) &&
192  win_y < (legendystart + (k+2) * rs)) {
193 
194  qlegend_save=k;
196 
197  return;
198 
199  }
200 
201 
202  }
203 
204 
205 
206 }
static int i
void change_diff_legend(int win_x, int win_y)
void write_screen(void)
Definition: mapper.c:1082
void clear_drawable(Drawable)
Definition: mapper.c:1067
void redraw_legend_display(Drawable)
int k
Definition: mapp2h.h:48
int rs
Definition: mapper.c:103
int legendysize
Definition: mapper.c:103
int maxkscale
Definition: mapper.c:102
Window window
Definition: mapper.c:190
int qlegend_save
Definition: mapper.c:95
int legendystart
Definition: mapper.c:103
unsigned long xmap[16]
Definition: mapper.c:116
Dimension height
Dimension width
Arg args[10]
Widget drawing_area
Definition: mapper.c:185
int kscale
Definition: mapper.c:101
void redraw_diff_legend(Drawable pixm)