Mapper
change_legend.c
Go to the documentation of this file.
1 
2 #include "prototypes.h"
3 
4 void change_legend(int win_x,int win_y)
5 
6 {
7 extern float delim[16];
8 extern int data_type;
9 extern int legend_flag;
10 extern int change_map_flag;
11 extern int qlegend_save;
12 extern Window window;
13 extern Widget drawing_area;
14 extern unsigned long xmap[16];
15 extern unsigned long qmap[16];
16 extern int kscale;
17 extern int maxkscale;
18 extern int rs;
19 extern int legendysize;
20 int k,i;
21 Dimension width,height;
22 Arg args[10];
23 int legendystart;
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 + (20+maxkscale)*rs) &&
37  win_y < (legendystart + (21+maxkscale)*rs)) {
38 
39  legend_flag=-1;
41 
42  return;
43 
44  }
45 
46 
47 /*change pallette */
48 
49 if(win_y >= (legendystart + (20)*rs) &&
50  win_y < (legendystart + (20+maxkscale)*rs)) {
51 
52  kscale=(win_y-(legendystart+20*rs))/rs;
53  printf("kscale is %d\n",kscale);
54 
56 
57 
59 
61 
62  write_screen();
63 
64  return;
65 
66  }
67 
68 if(win_y >= (legendystart + 19*rs) &&
69  win_y < (legendystart + 20*rs)) {
70 
71  for(i=0; i < 15;i++)
72  xmap[i]=qmap[i];
73  qlegend_save=-1;
74 
76 
77  write_screen();
78 
79  return;
80 
81  }
82 
83 /*filter up*/
84 
85 if(win_y >= (legendystart + 18*rs) &&
86  win_y < (legendystart + 19*rs)) {
87 
88  if(qlegend_save >= 0) {
89 
90  for(i=0; i < 15;i++)
91  xmap[i]=qmap[i];
92 
93  for(i=qlegend_save; i < 15;i++)
95 
97 
98  write_screen();
99 
100  }
101 
102  return;
103 
104  }
105 
106 /*filter down */
107 
108 if(win_y >= (legendystart + 17*rs) &&
109  win_y < (legendystart + 18*rs)) {
110 
111  if(qlegend_save >= 0) {
112 
113  for(i=0; i < 15;i++)
114  xmap[i]=qmap[i];
115 
116  for(i=0;i<=qlegend_save;i++)
117  xmap[i]=0;
119 
120  write_screen();
121 
122  }
123 
124  return;
125 
126  }
127 
128 /*filter levels */
129 
130 for(k=0;k<16;k++) {
131 
132  if(win_y >= (legendystart + (k+1) * rs) &&
133  win_y < (legendystart + (k+2) * rs)) {
134 
135  qlegend_save=k;
137  return;
138 
139  }
140 
141 
142  }
143 
144 
145 
146 }
static int i
void change_legend(int win_x, int win_y)
Definition: change_legend.c:4
void get_legend(int type, int kscale, float *delim)
Definition: get_legend.c:3
void write_screen(void)
Definition: mapper.c:1082
void clear_drawable(Drawable)
Definition: mapper.c:1067
void redraw_legend_display(Drawable)
printf("fbuf is %s\n", fbuf)
int k
Definition: mapp2h.h:48
int rs
Definition: mapper.c:103
int legendysize
Definition: mapper.c:103
int maxkscale
Definition: mapper.c:102
int data_type
Definition: mapper.c:63
unsigned long qmap[16]
Definition: mapper.c:116
int legend_flag
Definition: mapper.c:54
Window window
Definition: mapper.c:190
int change_map_flag
Definition: mapper.c:86
int qlegend_save
Definition: mapper.c:95
int legendystart
Definition: mapper.c:103
void redraw_legend(Drawable)
Definition: redraw_legend.c:3
unsigned long xmap[16]
Definition: mapper.c:116
Dimension height
Dimension width
Arg args[10]
float delim[][16]
Definition: mapper.c:30
Widget drawing_area
Definition: mapper.c:185
int kscale
Definition: mapper.c:101