annotate pkg-src/tree-x/dissolve.c @ 172:a38aed19690b

Added tag r20-3b12 for changeset 929b76928fce
author cvs
date Mon, 13 Aug 2007 09:47:55 +0200
parents 15872534500d
children
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
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
22 #define NUM_DISSOLVE_STEPS 8
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
23 #define NUM_LINE_STEPS 4
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
24
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
25 #define first_width 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
26 #define first_height 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
27 static unsigned char first_bits[] = {
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
28 0x88, 0x04, 0x00, 0x80, 0x20, 0x10, 0x00, 0x81, 0x12, 0x00, 0x00, 0x00,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
29 0x00, 0x02, 0x82, 0x40, 0x00, 0x00, 0x12, 0x14, 0x00, 0x00, 0x0a, 0x28,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
30 0x40, 0x01, 0x05, 0x00, 0xa0, 0x92, 0x08, 0x00 };
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
31
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
32 #define second_width 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
33 #define second_height 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
34 static unsigned char second_bits[] = {
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
35 0x51, 0x20, 0x04, 0x02, 0x00, 0x88, 0x02, 0x00, 0x08, 0x09, 0x40, 0x00,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
36 0x04, 0x04, 0x00, 0xa0, 0x80, 0x08, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
37 0x28, 0x28, 0x00, 0x80, 0x01, 0x00, 0x10, 0x82 };
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
38
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
39 #define third_width 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
40 #define third_height 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
41 static unsigned char third_bits[] = {
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
42 0x00, 0x01, 0x12, 0x44, 0x00, 0x01, 0x00, 0x08, 0x00, 0x42, 0x2a, 0x08,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
43 0x80, 0x00, 0x04, 0x10, 0x01, 0x04, 0x00, 0x80, 0xa9, 0x04, 0x00, 0x00,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
44 0x00, 0x10, 0x0a, 0x05, 0x40, 0x00, 0x00, 0x50 };
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
45
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
46 #define fourth_width 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
47 #define fourth_height 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
48 static unsigned char fourth_bits[] = {
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
49 0x02, 0x88, 0x80, 0x00, 0x04, 0x40, 0x11, 0x02, 0x40, 0x90, 0x05, 0x00,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
50 0x00, 0x08, 0x11, 0x01, 0x40, 0x00, 0x00, 0x41, 0x14, 0x00, 0x00, 0x12,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
51 0x10, 0x00, 0x40, 0x40, 0x08, 0x00, 0xa0, 0x04 };
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
52
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
53 #define fifth_width 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
54 #define fifth_height 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
55 static unsigned char fifth_bits[] = {
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
56 0x24, 0x00, 0x00, 0x08, 0x09, 0x20, 0x20, 0x04, 0x00, 0x00, 0x00, 0x85,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
57 0x10, 0x20, 0x40, 0x02, 0x14, 0x40, 0x00, 0x08, 0x02, 0x01, 0x10, 0x40,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
58 0x04, 0x04, 0x20, 0x20, 0x00, 0x00, 0x42, 0x29 };
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
59
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
60 #define sixth_width 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
61 #define sixth_height 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
62 static unsigned char sixth_bits[] = {
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
63 0x00, 0x12, 0x28, 0x00, 0x02, 0x00, 0x88, 0x00, 0x01, 0x20, 0x90, 0x02,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
64 0x01, 0x50, 0x20, 0x04, 0x08, 0xa0, 0x41, 0x00, 0x00, 0x00, 0x24, 0x05,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
65 0x00, 0x80, 0x00, 0x10, 0x10, 0x40, 0x05, 0x00 };
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
66
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
67 #define seventh_width 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
68 #define seventh_height 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
69 static unsigned char seventh_bits[] = {
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
70 0x00, 0x40, 0x01, 0x10, 0x90, 0x02, 0x00, 0x50, 0xa4, 0x04, 0x00, 0x20,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
71 0x20, 0x80, 0x08, 0x08, 0x00, 0x01, 0x04, 0x00, 0x40, 0x52, 0x00, 0x00,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
72 0x81, 0x42, 0x10, 0x00, 0x04, 0x25, 0x00, 0x00 };
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
73
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
74 #define eighth_width 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
75 #define eighth_height 16
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
76 static unsigned char eighth_bits[] = {
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
77 0x00, 0x00, 0x40, 0x21, 0x40, 0x04, 0x44, 0x20, 0x00, 0x00, 0x00, 0x50,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
78 0x4a, 0x01, 0x00, 0x00, 0x22, 0x12, 0xa0, 0x22, 0x00, 0x00, 0xc1, 0x80,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
79 0x02, 0x00, 0x80, 0x0a, 0x02, 0x08, 0x00, 0x00 };
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
80
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
81 static Pixmap DissolvePixmaps[NUM_DISSOLVE_STEPS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
82 static GC DissolveInGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
83 static GC DissolveOutGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
84 static GC DissolveInLineGC[NUM_LINE_STEPS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
85 static GC DissolveOutLineGC[NUM_LINE_STEPS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
86
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
87 static char first_dash[] = {1, 3};
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
88 static char second_dash[] = {1, 1};
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
89
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
90 void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
91 InitializeDissolveEffect(Display *dpy,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
92 Drawable drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
93 int fg_pixel,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
94 int bg_pixel)
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
95 {
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
96 unsigned long gcvaluemask;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
97 XGCValues gcvalues;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
98 int i;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
99
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
100 /* make DissolveOutGC */
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
101 gcvalues.background = bg_pixel;
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
102 gcvalues.foreground = bg_pixel;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
103 gcvalues.function = GXcopy;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
104 gcvalues.fill_style = FillStippled;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
105 gcvalues.line_width = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
106 gcvaluemask = GCFunction | GCForeground | GCBackground | GCFillStyle |
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
107 GCLineWidth;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
108 DissolveOutGC = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
109 XSetTSOrigin(dpy, DissolveOutGC, 0, 0);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
110
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
111 /* make DissolveInGC */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
112 gcvalues.foreground = fg_pixel;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
113 DissolveInGC = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
114 XSetTSOrigin(dpy, DissolveInGC, 0, 0);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
115
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
116 /* make DissolveOutLineGC */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
117 i = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
118 gcvalues.foreground = bg_pixel;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
119 gcvalues.fill_style = FillSolid;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
120 gcvalues.line_style = LineOnOffDash;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
121 gcvalues.line_width = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
122 gcvaluemask = GCFunction | GCForeground | GCBackground |
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
123 GCFillStyle | GCLineStyle | GCLineWidth ;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
124 DissolveOutLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
125 XSetDashes(dpy, DissolveOutLineGC[i], 0, first_dash, 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
126 i++;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
127 DissolveOutLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
128 XSetDashes(dpy, DissolveOutLineGC[i], 0, second_dash, 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
129 i++;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
130 DissolveOutLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
131 XSetDashes(dpy, DissolveOutLineGC[i], 3, first_dash, 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
132 i++;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
133 gcvalues.line_style = LineSolid;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
134 DissolveOutLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
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 /* make DissolveInLineGC */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
137 i = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
138 gcvalues.foreground = fg_pixel;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
139 gcvalues.fill_style = FillSolid;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
140 gcvalues.line_style = LineOnOffDash;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
141 gcvalues.line_width = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
142 gcvaluemask = GCFunction | GCForeground | GCBackground |
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
143 GCFillStyle | GCLineStyle | GCLineWidth;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
144 DissolveInLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
145 XSetDashes(dpy, DissolveInLineGC[i], 0, first_dash, 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
146 i++;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
147 DissolveInLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
148 XSetDashes(dpy, DissolveInLineGC[i], 0, second_dash, 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
149 i++;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
150 DissolveInLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
151 XSetDashes(dpy, DissolveInLineGC[i], 3, first_dash, 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
152 i++;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
153 gcvalues.line_style = LineSolid;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
154 DissolveInLineGC[i] = XCreateGC(dpy, drawable, gcvaluemask, &gcvalues);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
155
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
156 i = 0;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
157 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
158 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
159 (char *) first_bits, first_width, first_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
160 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
161 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
162 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
163 (char *) second_bits, second_width, second_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
164 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
165 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
166 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
167 (char *) third_bits, third_width, third_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
168 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
169 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
170 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
171 (char *) fourth_bits, fourth_width, fourth_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
172 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
173 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
174 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
175 (char *) fifth_bits, fifth_width, fifth_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
176 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
177 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
178 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
179 (char *) sixth_bits, sixth_width, sixth_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
180 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
181 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
182 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
183 (char *) seventh_bits, seventh_width, seventh_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
184 i++;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
185 DissolvePixmaps[i] =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
186 XCreateBitmapFromData(dpy, drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
187 (char *) eighth_bits, eighth_width, eighth_height);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
188 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
189
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
190 #if 0 /* Currently Unused */
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
191 void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
192 DissolveRectangle(Display *dpy, Window drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
193 int x, int y, int width, int height, int mode)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
194 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
195 int i;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
196 GC gc;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
197
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
198 gc = mode ? DissolveOutGC : DissolveInGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
199
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
200 for (i = 0 ; i < NUM_DISSOLVE_STEPS ; i++) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
201 XSetStipple(dpy, gc, DissolvePixmaps[i]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
202 if (mode)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
203 XFillRectangle(dpy, drawable, gc, x, y, width, height);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
204 else
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
205 XDrawRectangle(dpy, drawable, gc, x, y, width, height);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
206 XFlush(dpy);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
207 usleep(50000);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
208 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
209 }
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
210
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
211 void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
212 DissolveRectangles(Display *dpy,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
213 Window drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
214 XRectangle rectangles[],
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
215 int nrectangles,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
216 int mode)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
217 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
218 int i;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
219 GC gc;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
220
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
221 gc = mode ? DissolveOutGC : DissolveInGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
222
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
223 for (i = 0 ; i < NUM_DISSOLVE_STEPS ; i++) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
224 XSetStipple(dpy, gc, DissolvePixmaps[i]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
225 if (mode)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
226 XFillRectangles(dpy, drawable, gc, rectangles, nrectangles);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
227 else
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
228 XDrawRectangles(dpy, drawable, gc, rectangles, nrectangles);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
229 XFlush(dpy);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
230 usleep(50000);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
231 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
232 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
233
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
234 void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
235 DissolveSegments(Display *dpy, Window drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
236 XSegment segments[], int nsegments, int mode)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
237 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
238 int i;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
239 GC *gc;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
240
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
241 gc = mode ? DissolveOutLineGC : DissolveInLineGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
242
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
243 for (i = 0 ; i < NUM_LINE_STEPS ; i++) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
244 XDrawSegments(dpy, drawable, gc[i], segments, nsegments);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
245 XFlush(dpy);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
246 usleep(50000);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
247 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
248 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
249
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
250 #endif /* 0 - Unused */
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
251
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
252 void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
253 DissolveTree(Display *dpy,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
254 Window drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
255 XRectangle rectangles[],
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
256 int nrectangles,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
257 XSegment segments[],
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
258 int nsegments,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
259 int mode)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
260 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
261 int i;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
262 int j = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
263 int idle;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
264 GC gc;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
265 GC *lineGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
266
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
267 gc = mode ? DissolveOutGC : DissolveInGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
268 lineGC = mode ? DissolveOutLineGC : DissolveInLineGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
269
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
270 /* speed up if there are lots of nodes */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
271 idle = nrectangles > 50 ? 0 : 25000;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
272
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
273 for (i = 0 ; i < NUM_DISSOLVE_STEPS ; i++) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
274 XSetStipple(dpy, gc, DissolvePixmaps[i]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
275 if (mode)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
276 XFillRectangles(dpy, drawable, gc, rectangles, nrectangles);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
277 else
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
278 XDrawRectangles(dpy, drawable, gc, rectangles, nrectangles);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
279 if (i % 2)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
280 XDrawSegments(dpy, drawable, lineGC[j++], segments, nsegments);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
281 XFlush(dpy);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
282 usleep(idle);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
283 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
284 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
285
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
286 #if 0 /* Currently Unused */
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
287 void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
288 DissolvePolygon(Display *dpy,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
289 Window drawable,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
290 XPoint *pts,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
291 int num_pts,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
292 int mode)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
293 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
294 int i;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
295 GC gc;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
296
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
297 gc = mode ? DissolveOutGC : DissolveInGC;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
298
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
299 for (i = 0 ; i < NUM_DISSOLVE_STEPS ; i++) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
300 XSetStipple(dpy, gc, DissolvePixmaps[i]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
301 XFillPolygon(dpy, drawable, gc, pts, num_pts,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
302 Nonconvex, CoordModeOrigin);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
303 XFlush(dpy);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
304 usleep(50000);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
305 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
306 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
307
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
308 #endif /* Currently Unused */