annotate oldXMenu/XLookAssoc.c @ 72550:666bd542be19

(get_window_cursor_type): Replace BOX cursor on images with a hollow box cursor if image is larger than 32x32 (or the default frame font if that is bigger). Replace any other cursor on images with hollow box cursor, as redisplay doesn't support bar and hbar cursors on images.
author Kim F. Storm <storm@cua.dk>
date Sun, 27 Aug 2006 22:23:07 +0000
parents e8a3fb527b77
children ce127a46b1ca c5406394f567
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
1 /* Copyright Massachusetts Institute of Technology 1985 */
68640
e8a3fb527b77 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 65000
diff changeset
2 /* Copyright (C) 2002, 2003, 2004, 2005,
e8a3fb527b77 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 65000
diff changeset
3 2006 Free Software Foundation, Inc. */
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
4
Dave Love <fx@gnu.org>
parents:
diff changeset
5 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
6 Permission to use, copy, modify, distribute, and sell this software and its
Dave Love <fx@gnu.org>
parents:
diff changeset
7 documentation for any purpose is hereby granted without fee, provided that
Dave Love <fx@gnu.org>
parents:
diff changeset
8 the above copyright notice appear in all copies and that both that
Dave Love <fx@gnu.org>
parents:
diff changeset
9 copyright notice and this permission notice appear in supporting
Dave Love <fx@gnu.org>
parents:
diff changeset
10 documentation, and that the name of M.I.T. not be used in advertising or
Dave Love <fx@gnu.org>
parents:
diff changeset
11 publicity pertaining to distribution of the software without specific,
Dave Love <fx@gnu.org>
parents:
diff changeset
12 written prior permission. M.I.T. makes no representations about the
Dave Love <fx@gnu.org>
parents:
diff changeset
13 suitability of this software for any purpose. It is provided "as is"
Dave Love <fx@gnu.org>
parents:
diff changeset
14 without express or implied warranty.
Dave Love <fx@gnu.org>
parents:
diff changeset
15 */
Dave Love <fx@gnu.org>
parents:
diff changeset
16
Dave Love <fx@gnu.org>
parents:
diff changeset
17 #include <X11/Xlib.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
18 #include <X11/Xresource.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
19 #include "X10.h"
Dave Love <fx@gnu.org>
parents:
diff changeset
20
Dave Love <fx@gnu.org>
parents:
diff changeset
21 #ifndef NULL
Dave Love <fx@gnu.org>
parents:
diff changeset
22 #define NULL 0
Dave Love <fx@gnu.org>
parents:
diff changeset
23 #endif
Dave Love <fx@gnu.org>
parents:
diff changeset
24
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
25 /*
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
26 * XLookUpAssoc - Retrieve the data stored in an XAssocTable by its XId.
Dave Love <fx@gnu.org>
parents:
diff changeset
27 * If an appropriately matching XId can be found in the table the routine will
Dave Love <fx@gnu.org>
parents:
diff changeset
28 * return apointer to the data associated with it. If the XId can not be found
Dave Love <fx@gnu.org>
parents:
diff changeset
29 * in the table the routine will return a NULL pointer. All XId's are relative
Dave Love <fx@gnu.org>
parents:
diff changeset
30 * to the currently active Display.
Dave Love <fx@gnu.org>
parents:
diff changeset
31 */
Dave Love <fx@gnu.org>
parents:
diff changeset
32 caddr_t XLookUpAssoc(dpy, table, x_id)
Dave Love <fx@gnu.org>
parents:
diff changeset
33 register Display *dpy;
Dave Love <fx@gnu.org>
parents:
diff changeset
34 register XAssocTable *table; /* XAssocTable to search in. */
Dave Love <fx@gnu.org>
parents:
diff changeset
35 register XID x_id; /* XId to search for. */
Dave Love <fx@gnu.org>
parents:
diff changeset
36 {
Dave Love <fx@gnu.org>
parents:
diff changeset
37 int hash;
Dave Love <fx@gnu.org>
parents:
diff changeset
38 register XAssoc *bucket;
Dave Love <fx@gnu.org>
parents:
diff changeset
39 register XAssoc *Entry;
Dave Love <fx@gnu.org>
parents:
diff changeset
40
Dave Love <fx@gnu.org>
parents:
diff changeset
41 /* Hash the XId to get the bucket number. */
Dave Love <fx@gnu.org>
parents:
diff changeset
42 hash = x_id & (table->size - 1);
Dave Love <fx@gnu.org>
parents:
diff changeset
43 /* Look up the bucket to get the entries in that bucket. */
Dave Love <fx@gnu.org>
parents:
diff changeset
44 bucket = &table->buckets[hash];
Dave Love <fx@gnu.org>
parents:
diff changeset
45 /* Get the first entry in the bucket. */
Dave Love <fx@gnu.org>
parents:
diff changeset
46 Entry = bucket->next;
Dave Love <fx@gnu.org>
parents:
diff changeset
47
Dave Love <fx@gnu.org>
parents:
diff changeset
48 /* Scan through the entries in the bucket for the right XId. */
Dave Love <fx@gnu.org>
parents:
diff changeset
49 for (; Entry != bucket; Entry = Entry->next) {
Dave Love <fx@gnu.org>
parents:
diff changeset
50 if (Entry->x_id == x_id) {
Dave Love <fx@gnu.org>
parents:
diff changeset
51 /* We have the right XId. */
Dave Love <fx@gnu.org>
parents:
diff changeset
52 if (Entry->display == dpy) {
Dave Love <fx@gnu.org>
parents:
diff changeset
53 /* We have the right display. */
Dave Love <fx@gnu.org>
parents:
diff changeset
54 /* We have the right entry! */
Dave Love <fx@gnu.org>
parents:
diff changeset
55 return(Entry->data);
Dave Love <fx@gnu.org>
parents:
diff changeset
56 }
Dave Love <fx@gnu.org>
parents:
diff changeset
57 /* Oops, identical XId's on different displays! */
Dave Love <fx@gnu.org>
parents:
diff changeset
58 continue;
Dave Love <fx@gnu.org>
parents:
diff changeset
59 }
Dave Love <fx@gnu.org>
parents:
diff changeset
60 if (Entry->x_id > x_id) {
Dave Love <fx@gnu.org>
parents:
diff changeset
61 /* We have gone past where it should be. */
Dave Love <fx@gnu.org>
parents:
diff changeset
62 /* It is apparently not in the table. */
Dave Love <fx@gnu.org>
parents:
diff changeset
63 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
64 }
Dave Love <fx@gnu.org>
parents:
diff changeset
65 }
Dave Love <fx@gnu.org>
parents:
diff changeset
66 /* It is apparently not in the table. */
Dave Love <fx@gnu.org>
parents:
diff changeset
67 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
68 }
Dave Love <fx@gnu.org>
parents:
diff changeset
69
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
70 /* arch-tag: d5075d0c-4b71-467d-b33c-3f5c4c4afcf2
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
71 (do not change this comment) */