annotate oldXMenu/X10.h @ 107777:13c077500eb3

2010-04-04 John Wiegley <jwiegley@gmail.com> * ido.el (ido-use-virtual-buffers): New variable to indicate whether "virtual buffer" support is enabled for IDO. Essentially it works as follows: Say you are visiting a file and the buffer gets cleaned up by mignight.el. Later, you want to switch to that buffer, but find it's no longer open. With virtual buffers enabled, the buffer name stays in the buffer list (using the ido-virtual face, and always at the end), and if you select it, it opens the file back up again. This allows you to think less about whether recently opened files are still open or not. Most of the time you can quit Emacs, restart, and then switch to a file buffer that was previously open as if it still were. NOTE: This feature has been present in iswitchb for several years now, and I'm porting the same logic to IDO. (ido-virtual): Face used to indicate virtual buffers in the list. (ido-buffer-internal): If a buffer is chosen, and no such buffer exists, but a virtual buffer of that name does (which would be why it was in the list), recreate the buffer by reopening the file. (ido-make-buffer-list): If virtual buffers are being used, call `ido-add-virtual-buffers-to-list' before the make list hook. (ido-virtual-buffers): New variable which contains a copy of the current contents of the `recentf-list', albeit pared down for the sake of speed, and with proper faces applied. (ido-add-virtual-buffers-to-list): Using the `recentf-list', create a list of "virtual buffers" to present to the user in addition to the currently open set. Note that this logic could get rather slow if that list is too large. With the default `recentf-max-saved-items' of 200, there is little speed penalty.
author jwiegley@gmail.com
date Sun, 04 Apr 2010 02:55:19 -0400
parents fec5e03aaf59
children edf631bdbb7a ec58e5c426ef 5cc91198ffb2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
1 /*
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
2 * Copyright 1985, 1986, 1987 by the Massachusetts Institute of Technology
Dave Love <fx@gnu.org>
parents:
diff changeset
3 *
Dave Love <fx@gnu.org>
parents:
diff changeset
4 * Permission to use, copy, modify, and distribute this software and its
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
5 * documentation for any purpose and without fee is hereby granted, provided
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
6 * that the above copyright notice appear in all copies and that both that
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
7 * copyright notice and this permission notice appear in supporting
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
8 * documentation, and that the name of M.I.T. not be used in advertising
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
9 * or publicity pertaining to distribution of the software without specific,
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
10 * written prior permission. M.I.T. makes no representations about the
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
11 * suitability of this software for any purpose. It is provided "as is"
Dave Love <fx@gnu.org>
parents:
diff changeset
12 * without express or implied warranty.
Dave Love <fx@gnu.org>
parents:
diff changeset
13 *
Dave Love <fx@gnu.org>
parents:
diff changeset
14 * The X Window System is a Trademark of MIT.
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
Dave Love <fx@gnu.org>
parents:
diff changeset
18
Dave Love <fx@gnu.org>
parents:
diff changeset
19 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
20 * X10.h - Header definition and support file for the C subroutine
Dave Love <fx@gnu.org>
parents:
diff changeset
21 * interface library for V10 support routines.
Dave Love <fx@gnu.org>
parents:
diff changeset
22 */
Dave Love <fx@gnu.org>
parents:
diff changeset
23 #ifndef _X10_H_
Dave Love <fx@gnu.org>
parents:
diff changeset
24 #define _X10_H_
Dave Love <fx@gnu.org>
parents:
diff changeset
25
Dave Love <fx@gnu.org>
parents:
diff changeset
26 /* Used in XDraw and XDrawFilled */
Dave Love <fx@gnu.org>
parents:
diff changeset
27
Dave Love <fx@gnu.org>
parents:
diff changeset
28 typedef struct {
Dave Love <fx@gnu.org>
parents:
diff changeset
29 short x, y;
Dave Love <fx@gnu.org>
parents:
diff changeset
30 unsigned short flags;
Dave Love <fx@gnu.org>
parents:
diff changeset
31 } Vertex;
Dave Love <fx@gnu.org>
parents:
diff changeset
32
Dave Love <fx@gnu.org>
parents:
diff changeset
33 /* The meanings of the flag bits. If the bit is 1 the predicate is true */
Dave Love <fx@gnu.org>
parents:
diff changeset
34
Dave Love <fx@gnu.org>
parents:
diff changeset
35 #define VertexRelative 0x0001 /* else absolute */
Dave Love <fx@gnu.org>
parents:
diff changeset
36 #define VertexDontDraw 0x0002 /* else draw */
Dave Love <fx@gnu.org>
parents:
diff changeset
37 #define VertexCurved 0x0004 /* else straight */
Dave Love <fx@gnu.org>
parents:
diff changeset
38 #define VertexStartClosed 0x0008 /* else not */
Dave Love <fx@gnu.org>
parents:
diff changeset
39 #define VertexEndClosed 0x0010 /* else not */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
40 /*#define VertexDrawLastPoint 0x0020 */ /* else don't */
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
41
Dave Love <fx@gnu.org>
parents:
diff changeset
42 /*
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
43 The VertexDrawLastPoint option has not been implemented in XDraw and
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
44 XDrawFilled so it shouldn't be defined.
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
45 */
Dave Love <fx@gnu.org>
parents:
diff changeset
46
Dave Love <fx@gnu.org>
parents:
diff changeset
47 /*
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
48 * XAssoc - Associations used in the XAssocTable data structure. The
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
49 * associations are used as circular queue entries in the association table
Dave Love <fx@gnu.org>
parents:
diff changeset
50 * which is contains an array of circular queues (buckets).
Dave Love <fx@gnu.org>
parents:
diff changeset
51 */
Dave Love <fx@gnu.org>
parents:
diff changeset
52 typedef struct _XAssoc {
Dave Love <fx@gnu.org>
parents:
diff changeset
53 struct _XAssoc *next; /* Next object in this bucket. */
Dave Love <fx@gnu.org>
parents:
diff changeset
54 struct _XAssoc *prev; /* Previous obejct in this bucket. */
Dave Love <fx@gnu.org>
parents:
diff changeset
55 Display *display; /* Display which owns the id. */
Dave Love <fx@gnu.org>
parents:
diff changeset
56 XID x_id; /* X Window System id. */
Dave Love <fx@gnu.org>
parents:
diff changeset
57 char *data; /* Pointer to untyped memory. */
Dave Love <fx@gnu.org>
parents:
diff changeset
58 } XAssoc;
Dave Love <fx@gnu.org>
parents:
diff changeset
59
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
60 /*
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
61 * XAssocTable - X Window System id to data structure pointer association
Dave Love <fx@gnu.org>
parents:
diff changeset
62 * table. An XAssocTable is a hash table whose buckets are circular
Dave Love <fx@gnu.org>
parents:
diff changeset
63 * queues of XAssoc's. The XAssocTable is constructed from an array of
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
64 * XAssoc's which are the circular queue headers (bucket headers).
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
65 * An XAssocTable consists an XAssoc pointer that points to the first
Dave Love <fx@gnu.org>
parents:
diff changeset
66 * bucket in the bucket array and an integer that indicates the number
Dave Love <fx@gnu.org>
parents:
diff changeset
67 * of buckets in the array.
Dave Love <fx@gnu.org>
parents:
diff changeset
68 */
Dave Love <fx@gnu.org>
parents:
diff changeset
69 typedef struct {
Dave Love <fx@gnu.org>
parents:
diff changeset
70 XAssoc *buckets; /* Pointer to first bucket in bucket array.*/
Dave Love <fx@gnu.org>
parents:
diff changeset
71 int size; /* Table size (number of buckets). */
Dave Love <fx@gnu.org>
parents:
diff changeset
72 } XAssocTable;
Dave Love <fx@gnu.org>
parents:
diff changeset
73
Dave Love <fx@gnu.org>
parents:
diff changeset
74 XAssocTable *XCreateAssocTable();
Dave Love <fx@gnu.org>
parents:
diff changeset
75 char *XLookUpAssoc();
Dave Love <fx@gnu.org>
parents:
diff changeset
76
Dave Love <fx@gnu.org>
parents:
diff changeset
77 #endif /* _X10_H_ */
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
78
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
79 /* arch-tag: b0b749fb-757b-470b-b405-af7d033a5aad
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
80 (do not change this comment) */