annotate src/frameslots.h @ 510:5bdbc721d46a

[xemacs-hg @ 2001-05-06 08:33:35 by ben] implement printing the selection when it's selected. force redisplay when set-charset-ccl-program called. if bytecomp or byte-optimize need recompiling, then load the .el version of them first, recompile them, and reload the .elc versions to recompile everything else (so we won't be waiting until the cows come home).
author ben
date Sun, 06 May 2001 08:33:41 +0000
parents abe6d1db359e
children af57a77cbc92
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 /* Definitions of marked slots in frames
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 Copyright (C) 1988, 1992, 1993, 1994 Free Software Foundation, Inc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 Copyright (C) 1996 Ben Wing.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 Free Software Foundation; either version 2, or (at your option) any
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 XEmacs is distributed in the hope that it will be useful, but WITHOUT
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 along with XEmacs; see the file COPYING. If not, write to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 Boston, MA 02111-1307, USA. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 /* Synched up with: FSF 19.30. Split out of frame.h. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 #ifdef FRAME_SLOT_DECLARATION
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 #define MARKED_SLOT_ARRAY(slot, size) MARKED_SLOT(slot[size])
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 #else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 #define MARKED_SLOT_ARRAY(slot, size) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 int mslotidx; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 for (mslotidx = 0; mslotidx < size; mslotidx++) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 MARKED_SLOT (slot[mslotidx]); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 } \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 } while (0);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 /* device frame belongs to. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 MARKED_SLOT (device);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 /* Name of this frame: a Lisp string.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 NOT the same as the frame's title, even though FSF bogusly
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 confuses the two. The frame's name is used for resourcing
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 and lookup purposes and is something you can count on having
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 a specific value, while the frame's title may vary depending
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 on the user's choice of `frame-title-format'. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 MARKED_SLOT (name);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 /* The frame which should receive keystrokes that occur in this
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 frame, or nil if they should go to the frame itself. This is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 usually nil, but if the frame is minibufferless, we can use this
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 to redirect keystrokes to a surrogate minibuffer frame when
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 needed.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 Note that a value of nil is different than having the field point
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 to the frame itself. Whenever the Fselect_frame function is used
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 to shift from one frame to the other, any redirections to the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 original frame are shifted to the newly selected frame; if
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 focus_frame is nil, Fselect_frame will leave it alone. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 MARKED_SLOT (focus_frame);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 /* This frame's root window. Every frame has one.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 If the frame has only a minibuffer window, this is it.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 Otherwise, if the frame has a minibuffer window, this is its sibling. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 MARKED_SLOT (root_window);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 /* This frame's selected window.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 Each frame has its own window hierarchy
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 and one of the windows in it is selected within the frame.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 The selected window of the selected frame is Emacs's selected window. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 MARKED_SLOT (selected_window);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 /* This frame's minibuffer window.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72 Most frames have their own minibuffer windows,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 but only the selected frame's minibuffer window
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 can actually appear to exist. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 MARKED_SLOT (minibuffer_window);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 /* The most recently selected nonminibuf window.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 This is used by things like the toolbar code, which doesn't
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 want the toolbar to change when moving to the minibuffer.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 This will only be a minibuf window if we are a minibuf-only
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81 frame. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 MARKED_SLOT (last_nonminibuf_window);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84 /* frame property list */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 MARKED_SLOT (plist);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
87 /* buffer_alist at last redisplay. */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
88 MARKED_SLOT (old_buffer_alist);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
89
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 /* A copy of the global Vbuffer_list, to maintain a per-frame buffer
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 ordering. The Vbuffer_list variable and the buffer_list slot of each
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92 frame contain exactly the same data, just in different orders. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 MARKED_SLOT (buffer_alist);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 /* Predicate for selecting buffers for other-buffer. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96 MARKED_SLOT (buffer_predicate);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98 /* The current mouse pointer for the frame. This is set by calling
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99 `set-frame-pointer'. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100 MARKED_SLOT (pointer);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102 /* The current icon for the frame. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
103 MARKED_SLOT (icon);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
105 #ifdef HAVE_MENUBARS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106 /* Vector representing the menubar currently displayed. See menubar-x.c. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107 MARKED_SLOT (menubar_data);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
108 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
109
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
110 /* specifier values cached in the struct frame: */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
112 #ifdef HAVE_MENUBARS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
113 MARKED_SLOT (menubar_visible_p);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
115
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
116 #ifdef HAVE_SCROLLBARS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117 /* Width and height of the scrollbars. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118 MARKED_SLOT (scrollbar_width);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
119 MARKED_SLOT (scrollbar_height);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120 /* Whether the scrollbars are visible */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121 MARKED_SLOT (horizontal_scrollbar_visible_p);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122 MARKED_SLOT (vertical_scrollbar_visible_p);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 /* Scrollbars location */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 MARKED_SLOT (scrollbar_on_left_p);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125 MARKED_SLOT (scrollbar_on_top_p);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
128 #ifdef HAVE_TOOLBARS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129 /* The following three don't really need to be cached except
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130 that we need to know when they've changed. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131 MARKED_SLOT (default_toolbar_width);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132 MARKED_SLOT (default_toolbar_height);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
133 MARKED_SLOT (default_toolbar_visible_p);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134 MARKED_SLOT (default_toolbar_border_width);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
135
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
136 /* List of toolbar buttons of current toolbars */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
137 MARKED_SLOT_ARRAY (toolbar_buttons, 4);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138 /* Size of the toolbars. The frame-local toolbar space is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
139 subtracted before the windows are arranged. Window and buffer
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
140 local toolbars overlay their windows. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141 MARKED_SLOT_ARRAY (toolbar_size, 4);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 /* Visibility of the toolbars. This acts as a valve for toolbar_size. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143 MARKED_SLOT_ARRAY (toolbar_visible_p, 4);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144 /* Thickness of the border around the toolbar. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145 MARKED_SLOT_ARRAY (toolbar_border_width, 4);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
148 /* Cache of subwindow instances for this frame */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
149 MARKED_SLOT (subwindow_instance_cache);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
150
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151 /* Possible frame-local default for outside margin widths. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
152 MARKED_SLOT (left_margin_width);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
153 MARKED_SLOT (right_margin_width);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155 #undef MARKED_SLOT
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 #undef MARKED_SLOT_ARRAY
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157 #undef FRAME_SLOT_DECLARATION