annotate pkg-src/tree-x/dissolve.c @ 167:85ec50267440 r20-3b10

Import from CVS: tag r20-3b10
author cvs
date Mon, 13 Aug 2007 09:45:46 +0200
parents 0132846995bd
children 15872534500d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1 /* ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
2 * Animated display of collapse and expansion of nodes in a tree.
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
3 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
4 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
5
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
6 #ifdef HAVE_CONFIG_H
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
7 #include <config.h>
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
8 #endif
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
9
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
10 #ifdef HAVE_USLEEP
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
11 #ifdef HAVE_UNISTD_H
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
12 #include <unistd.h>
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
13 #endif /* HAVE_UNISTD_H */
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
14 #else
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
15 int usleep(unsigned long microSeconds);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
16 #endif /* HAVE_USLEEP */
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
17
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
18 #include <X11/Xlib.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
19
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
20 #include "dissolve.h"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
21
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
22 static Pixmap DissolvePixmaps[NUM_DISSOLVE_STEPS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
23 static GC DissolveInGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
24 static GC DissolveOutGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
25 static GC DissolveInLineGC[NUM_LINE_STEPS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
26 static GC DissolveOutLineGC[NUM_LINE_STEPS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
27
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
28 static char first_dash[] = {1, 3};
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
29 static char second_dash[] = {1, 1};
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
30
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
31 void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
32 InitializeDissolveEffect(Display *dpy,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
33 Drawable drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
34 int fg_pixel,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
35 int bg_pixel)
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
36 {
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
37 unsigned long gcvaluemask;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
38 XGCValues gcvalues;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
39 int i;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
40
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
41 /* make DissolveOutGC */
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
42 gcvalues.background = bg_pixel;
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
43 gcvalues.foreground = bg_pixel;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
44 gcvalues.function = GXcopy;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
45 gcvalues.fill_style = FillStippled;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
46 gcvalues.line_width = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
47 gcvaluemask = GCFunction | GCForeground | GCBackground | GCFillStyle |
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
48 GCLineWidth;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
49 DissolveOutGC = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
50 XSetTSOrigin(dpy, DissolveOutGC, 0, 0);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
51
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
52 /* make DissolveInGC */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
53 gcvalues.foreground = fg_pixel;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
54 DissolveInGC = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
55 XSetTSOrigin(dpy, DissolveInGC, 0, 0);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
56
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
57 /* make DissolveOutLineGC */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
58 i = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
59 gcvalues.foreground = bg_pixel;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
60 gcvalues.fill_style = FillSolid;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
61 gcvalues.line_style = LineOnOffDash;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
62 gcvalues.line_width = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
63 gcvaluemask = GCFunction | GCForeground | GCBackground |
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
64 GCFillStyle | GCLineStyle | GCLineWidth ;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
65 DissolveOutLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
66 XSetDashes(dpy, DissolveOutLineGC[i], 0, first_dash, 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
67 i++;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
68 DissolveOutLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
69 XSetDashes(dpy, DissolveOutLineGC[i], 0, second_dash, 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
70 i++;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
71 DissolveOutLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
72 XSetDashes(dpy, DissolveOutLineGC[i], 3, first_dash, 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
73 i++;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
74 gcvalues.line_style = LineSolid;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
75 DissolveOutLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
76
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
77 /* make DissolveInLineGC */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
78 i = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
79 gcvalues.foreground = fg_pixel;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
80 gcvalues.fill_style = FillSolid;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
81 gcvalues.line_style = LineOnOffDash;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
82 gcvalues.line_width = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
83 gcvaluemask = GCFunction | GCForeground | GCBackground |
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
84 GCFillStyle | GCLineStyle | GCLineWidth;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
85 DissolveInLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
86 XSetDashes(dpy, DissolveInLineGC[i], 0, first_dash, 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
87 i++;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
88 DissolveInLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
89 XSetDashes(dpy, DissolveInLineGC[i], 0, second_dash, 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
90 i++;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
91 DissolveInLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
92 XSetDashes(dpy, DissolveInLineGC[i], 3, first_dash, 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
93 i++;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
94 gcvalues.line_style = LineSolid;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
95 DissolveInLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
96
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
97 i = 0;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
98 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
99 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
100 (char *) first_bits, first_width, first_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
101 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
102 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
103 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
104 (char *) second_bits, second_width, second_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
105 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
106 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
107 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
108 (char *) third_bits, third_width, third_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
109 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
110 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
111 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
112 (char *) fourth_bits, fourth_width, fourth_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
113 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
114 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
115 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
116 (char *) fifth_bits, fifth_width, fifth_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
117 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
118 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
119 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
120 (char *) sixth_bits, sixth_width, sixth_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
121 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
122 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
123 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
124 (char *) seventh_bits, seventh_width, seventh_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
125 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
126 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
127 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
128 (char *) eighth_bits, eighth_width, eighth_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
129 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
130
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
131 #if 0 /* Currently Unused */
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
132 void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
133 DissolveRectangle(Display *dpy, Window drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
134 int x, int y, int width, int height, int mode)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
135 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
136 int i;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
137 GC gc;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
138
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
139 gc = mode ? DissolveOutGC : DissolveInGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
140
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
141 for (i = 0 ; i < NUM_DISSOLVE_STEPS ; i++) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
142 XSetStipple(dpy, gc, DissolvePixmaps[i]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
143 if (mode)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
144 XFillRectangle(dpy, drawable, gc, x, y, width, height);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
145 else
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
146 XDrawRectangle(dpy, drawable, gc, x, y, width, height);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
147 XFlush(dpy);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
148 usleep(50000);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
149 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
150 }
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
151
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
152 void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
153 DissolveRectangles(Display *dpy,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
154 Window drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
155 XRectangle rectangles[],
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
156 int nrectangles,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
157 int mode)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
158 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
159 int i;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
160 GC gc;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
161
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
162 gc = mode ? DissolveOutGC : DissolveInGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
164 for (i = 0 ; i < NUM_DISSOLVE_STEPS ; i++) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
165 XSetStipple(dpy, gc, DissolvePixmaps[i]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
166 if (mode)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
167 XFillRectangles(dpy, drawable, gc, rectangles, nrectangles);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
168 else
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
169 XDrawRectangles(dpy, drawable, gc, rectangles, nrectangles);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
170 XFlush(dpy);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
171 usleep(50000);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
172 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
173 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
174
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
175 void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
176 DissolveSegments(Display *dpy, Window drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
177 XSegment segments[], int nsegments, int mode)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
178 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
179 int i;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
180 GC *gc;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
181
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
182 gc = mode ? DissolveOutLineGC : DissolveInLineGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
183
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
184 for (i = 0 ; i < NUM_LINE_STEPS ; i++) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
185 XDrawSegments(dpy, drawable, gc[i], segments, nsegments);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
186 XFlush(dpy);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
187 usleep(50000);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
188 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
189 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
190
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
191 #endif /* 0 - Unused */
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
192
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
193 void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
194 DissolveTree(Display *dpy,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
195 Window drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
196 XRectangle rectangles[],
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
197 int nrectangles,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
198 XSegment segments[],
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
199 int nsegments,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
200 int mode)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
201 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
202 int i;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
203 int j = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
204 int idle;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
205 GC gc;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
206 GC *lineGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
207
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
208 gc = mode ? DissolveOutGC : DissolveInGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
209 lineGC = mode ? DissolveOutLineGC : DissolveInLineGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
210
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
211 /* speed up if there are lots of nodes */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
212 idle = nrectangles > 50 ? 0 : 25000;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
213
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
214 for (i = 0 ; i < NUM_DISSOLVE_STEPS ; i++) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
215 XSetStipple(dpy, gc, DissolvePixmaps[i]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
216 if (mode)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
217 XFillRectangles(dpy, drawable, gc, rectangles, nrectangles);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
218 else
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
219 XDrawRectangles(dpy, drawable, gc, rectangles, nrectangles);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
220 if (i % 2)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
221 XDrawSegments(dpy, drawable, lineGC[j++], segments, nsegments);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
222 XFlush(dpy);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
223 usleep(idle);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
224 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
225 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
226
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
227 #if 0 /* Currently Unused */
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
228 void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
229 DissolvePolygon(Display *dpy,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
230 Window drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
231 XPoint *pts,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
232 int num_pts,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
233 int mode)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
234 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
235 int i;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
236 GC gc;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
237
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
238 gc = mode ? DissolveOutGC : DissolveInGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
239
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
240 for (i = 0 ; i < NUM_DISSOLVE_STEPS ; i++) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
241 XSetStipple(dpy, gc, DissolvePixmaps[i]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
242 XFillPolygon(dpy, drawable, gc, pts, num_pts,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
243 Nonconvex, CoordModeOrigin);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
244 XFlush(dpy);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
245 usleep(50000);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
246 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
247 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
248
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
249 #endif /* Currently Unused */