ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/x11findwind.c
Revision: 2.6
Committed: Sun Jul 4 12:08:47 2004 UTC (20 years, 4 months ago) by schorsch
Content type: text/plain
Branch: MAIN
CVS Tags: rad5R4, rad5R2, rad4R2P2, rad5R0, rad5R1, rad3R7P2, rad3R7P1, rad4R2, rad4R1, rad4R0, rad3R6, rad3R6P1, rad3R8, rad3R9, rad4R2P1, rad5R3, HEAD
Changes since 2.5: +9 -6 lines
Log Message:
Updated SCons build environment to work with a fresh download and on OS X, as suggested by Randolph Fritz.

File Contents

# Content
1 #ifndef lint
2 static const char RCSid[] = "$Id: x11findwind.c,v 2.5 2003/02/25 02:47:22 greg Exp $";
3 #endif
4 /*
5 * find a window by its name under X
6 */
7
8 #include "copyright.h"
9
10 #include <stdio.h>
11 #include <string.h>
12 #include <stdlib.h>
13 #include <X11/Xlib.h>
14
15
16 Window
17 xfindwind(
18 Display *dpy,
19 Window win,
20 char *name,
21 int depth
22 )
23 {
24 char *nr;
25 Window rr, pr, *cl;
26 Window wr;
27 unsigned int nc;
28 register int i;
29
30 if (depth == 0) /* negative depths search all */
31 return(None);
32 if (!XQueryTree(dpy, win, &rr, &pr, &cl, &nc) || nc == 0)
33 return(None);
34 wr = None; /* breadth first search */
35 for (i = 0; wr == None && i < nc; i++)
36 if (XFetchName(dpy, cl[i], &nr)) {
37 if (!strcmp(nr, name))
38 wr = cl[i];
39 free(nr);
40 }
41 for (i = 0; wr == None && i < nc; i++)
42 wr = xfindwind(dpy, cl[i], name, depth-1);
43 XFree((char *)cl);
44 return(wr);
45 }