annotate src/frame.h @ 844:047d37eb70d7

[xemacs-hg @ 2002-05-16 13:30:23 by ben] ui fixes for things that were bothering me bytecode.c, editfns.c, lisp.h, lread.c: Fix save-restriction to use markers rather than pseudo-markers (integers representing the amount of text on either side of the region). That way, all inserts are handled correctly, not just those inside old restriction. Add buffer argument to save_restriction_save(). process.c: Clean up very dirty and kludgy code that outputs into a buffer -- use proper unwind protects, etc. font-lock.c: Do save-restriction/widen around the function -- otherwise, incorrect results will ensue when a buffer has been narrowed before a call to e.g. `buffer-syntactic-context' -- something that happens quite often. fileio.c: Look for a handler for make-temp-name. window.c, winslots.h: Try to solve this annoying problem: have two frames displaying the buffer, in different places; in one, temporarily switch away to another buffer and then back -- and you've lost your position; it's reset to the other one in the other frame. My current solution involves window-level caches of buffers and points (also a cache for window-start); when set-window-buffer is called, it looks to see if the buffer was previously visited in the window, and if so, uses the most recent point at that time. (It's a marker, so it handles changes.) #### Note: It could be argued that doing it on the frame level would be better -- e.g. if you visit a buffer temporarily through a grep, and then go back to that buffer, you presumably want the grep's position rather than some previous position provided everything was in the same frame, even though the grep was in another window in the frame. However, doing it on the frame level fails when you have two windows on the same frame. Perhaps we keep both a window and a frame cache, and use the frame cache if there are no other windows on the frame showing the buffer, else the window's cache? This is probably something to be configurable using a specifier. Suggestions please please please? window.c: Clean up a bit code that deals with the annoyance of window-point vs. point. dialog.el: Function to ask a multiple-choice question, automatically choosing a dialog box or minibuffer representation as necessary. Generalized version of yes-or-no-p, y-or-n-p. files.el: Use get-user-response to ask "yes/no/diff" question when recovering. "diff" means that a diff is displayed between the current file and the autosave. (Converts/deconverts escape-quoted as necessary. No more complaints from you, Mr. Turnbull!) One known problem: when a dialog is used, it's modal, so you can't scroll the diff. Will fix soon. lisp-mode.el: If we're filling a string, don't treat semicolon as a comment, which would give very unfriendly results. Uses `buffer-syntactic-context'. simple.el: all changes back to the beginning. (Useful if you've saved the file in the middle of the changes.) simple.el: Add option kill-word-into-kill-ring, which controls whether words deleted with kill-word, backward-kill-word, etc. are "cut" into the kill ring, or "cleared" into nothingness. (My preference is the latter, by far. I'd almost go so far as suggesting we make it the default, as you can always select a word and then cut it if you want it cut.) menubar-items.el: Add option corresponding to kill-word-into-kill-ring.
author ben
date Thu, 16 May 2002 13:30:58 +0000
parents 6728e641994e
children 2b6fa2618f76
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 /* Define frame-object for XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 Copyright (C) 1988, 1992, 1993, 1994 Free Software Foundation, Inc.
826
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 800
diff changeset
3 Copyright (C) 1995 Ben Wing.
428
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. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
24 #ifndef INCLUDED_frame_h_
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
25 #define INCLUDED_frame_h_
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 #include "redisplay.h"
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 793
diff changeset
28 #include "console.h" /* for error_check_frame_type */
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 #define FRAME_TYPE_NAME(f) ((f)->framemeths->name)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 #define FRAME_TYPE(f) ((f)->framemeths->symbol)
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 /******** Accessing / calling a frame method *********/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 #define HAS_FRAMEMETH_P(f, m) HAS_CONTYPE_METH_P ((f)->framemeths, m)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 #define FRAMEMETH(f, m, args) CONTYPE_METH ((f)->framemeths, m, args)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 #define MAYBE_FRAMEMETH(f, m, args) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 MAYBE_CONTYPE_METH ((f)->framemeths, m, args)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 #define FRAMEMETH_OR_GIVEN(f, m, args, given) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 CONTYPE_METH_OR_GIVEN((f)->framemeths, m, args, given)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 struct frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 struct lcrecord_header header;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 /* Methods for this frame's console. This can also be retrieved
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 through frame->device->console, but it's faster this way. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 struct console_methods *framemeths;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 /* Size of text only area of this frame, excluding scrollbars,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 toolbars and end of line glyphs. The size can be in characters
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52 or pixels, depending on units in which window system resizes
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 its windows */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 int height, width;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 /* New height and width for pending size change, in the same units
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 as above. 0 if no change pending. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 int new_height, new_width;
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 /* Size of text-only are of the frame, in default font characters.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 This may be inaccurate due to rounding error */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 int char_height, char_width;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 /* Size of the whole frame, including scrollbars, toolbars and end
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 of line glyphs, in pixels */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 int pixheight, pixwidth;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 #ifdef HAVE_TTY
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 /* The count of frame number. This applies to TTY frames only. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70 int order_count;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
73 /* Current page number for a printer frame. */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
74 int page_number;
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
75
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 /* Width of the internal border. This is a line of background color
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 just inside the window's border. It is normally only non-zero on
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 X frames, but we put it here to avoid introducing window system
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 dependencies. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 int internal_border_width;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 int modiff;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83
617
af57a77cbc92 [xemacs-hg @ 2001-06-18 07:09:50 by ben]
ben
parents: 462
diff changeset
84 struct expose_ignore *subwindow_exposures;
af57a77cbc92 [xemacs-hg @ 2001-06-18 07:09:50 by ben]
ben
parents: 462
diff changeset
85 struct expose_ignore *subwindow_exposures_tail;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 #ifdef HAVE_SCROLLBARS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 /* frame-local scrollbar information. See scrollbar.c. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 int scrollbar_y_offset;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 /* cache of created scrollbars */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92 struct scrollbar_instance *sb_vcache;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 struct scrollbar_instance *sb_hcache;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96 #ifdef HAVE_TOOLBARS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 /* Size of toolbars as seen by redisplay. This is used to determine
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98 whether to re-layout windows by a call to change_frame_size early
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99 in redisplay_frame. */
647
b39c14581166 [xemacs-hg @ 2001-08-13 04:45:47 by ben]
ben
parents: 617
diff changeset
100 int current_toolbar_size[4];
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
103 /* Size of gutters as seen by redisplay. This is used to determine
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
104 whether to re-layout windows by a call to change_frame_size early
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
105 in redisplay_frame. */
647
b39c14581166 [xemacs-hg @ 2001-08-13 04:45:47 by ben]
ben
parents: 617
diff changeset
106 int current_gutter_bounds[4];
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
107
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
108 /* Dynamic arrays of display lines for gutters */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
109 display_line_dynarr *current_display_lines[4];
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
110 display_line_dynarr *desired_display_lines[4];
428
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 /* A structure of auxiliary data specific to the device type.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
113 struct x_frame is used for X window frames; defined in console-x.h */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114 void *frame_data;
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 #define FRAME_SLOT_DECLARATION
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117 #define MARKED_SLOT(x) Lisp_Object x
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118 #include "frameslots.h"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
119
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120 /* Nonzero if frame is currently displayed.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121 Mutually exclusive with iconified
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122 JV: This now a tristate flag:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 Value : Emacs meaning :f-v-p : X meaning
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 0 : not displayed : nil : unmapped
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125 >0 : user can access it,needs repainting : t : mapped and visible
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126 <0 : user can access it,needs no repainting : hidden :mapped and invisible
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127 where f-v-p is the return value of frame-visible-p */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
128 int visible;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130 /* one-bit flags: */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
132 /* Is focusing onto this frame disabled? (Modal dialog boxes) */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
133 unsigned int disabled :1;
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
134
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
135 /* Are we finished initializing? */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
136 unsigned int init_finished :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
137
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138 /* Is frame marked for deletion? This is used in XSetErrorHandler(). */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
139 unsigned int being_deleted :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
140
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141 /* Nonzero if last attempt at redisplay on this frame was preempted. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 unsigned int display_preempted :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144 /* Nonzero if window is currently iconified.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145 This and visible are mutually exclusive. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146 unsigned int iconified :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
148 /* Nonzero if this frame should be cleared and then redrawn.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
149 Setting this will also effectively set frame_changed. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150 unsigned int clear :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
152 /* True if frame actually has a minibuffer window on it.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
153 0 if using a minibuffer window that isn't on this frame. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154 unsigned int has_minibuffer :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 /* True if frame's root window can't be split. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157 unsigned int no_split :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
158
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
159 unsigned int top_toolbar_was_visible :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
160 unsigned int bottom_toolbar_was_visible :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161 unsigned int left_toolbar_was_visible :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
162 unsigned int right_toolbar_was_visible :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163 /* gutter visibility */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164 unsigned int top_gutter_was_visible :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
165 unsigned int bottom_gutter_was_visible :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
166 unsigned int left_gutter_was_visible :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
167 unsigned int right_gutter_was_visible :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
168
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
169 /* redisplay flags */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
170 unsigned int buffers_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
171 unsigned int clip_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172 unsigned int extents_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
173 unsigned int faces_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174 unsigned int frame_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
175 unsigned int subwindows_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176 unsigned int subwindows_state_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
177 unsigned int glyphs_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
178 unsigned int icon_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
179 unsigned int menubar_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
180 unsigned int modeline_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
181 unsigned int point_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
182 unsigned int size_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
183 unsigned int toolbar_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
184 unsigned int gutter_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
185 unsigned int windows_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
186 unsigned int windows_structure_changed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
187 unsigned int window_face_cache_reset :1; /* used by expose handler */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
188 unsigned int echo_area_garbaged :1; /* used by Fredisplay_echo_area */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
189 unsigned int size_slipped :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
190
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
191 unsigned int size_change_pending :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
192 unsigned int mirror_dirty :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
194 /* flag indicating if any window on this frame is displaying a subwindow */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195 unsigned int subwindows_being_displayed :1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
196 };
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
197
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
198 EXFUN (Fdelete_frame, 2);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
199 EXFUN (Fframe_iconified_p, 1);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
200 EXFUN (Fframe_name, 1);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
201 EXFUN (Fframe_property, 3);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
202 EXFUN (Fmake_frame, 2);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
203 EXFUN (Fmake_frame_visible, 1);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
204 EXFUN (Fraise_frame, 1);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
205 EXFUN (Fselect_frame, 1);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
206 EXFUN (Fset_frame_pointer, 2);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
207 EXFUN (Fset_frame_position, 3);
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
208 EXFUN (Fset_frame_properties, 2);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
209 EXFUN (Fset_frame_size, 4);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
210
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
211 extern Lisp_Object Qbackground_toolbar_color, Qbell_volume, Qborder_color;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
212 extern Lisp_Object Qborder_width, Qbottom_toolbar_shadow_color;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
213 extern Lisp_Object Qbottom_toolbar_shadow_pixmap, Qdelete_frame;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
214 extern Lisp_Object Qdeselect_frame_hook, Qdrag_and_drop_functions, Qgc_pointer;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
215 extern Lisp_Object Qiconic, Qinitially_unmapped, Qinter_line_space;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
216 extern Lisp_Object Qinternal_border_width, Qinvisible, Qmap_frame_hook;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
217 extern Lisp_Object Qminibuffer, Qmodeline_pointer, Qmouse_enter_frame_hook;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
218 extern Lisp_Object Qmouse_leave_frame_hook, Qpointer_background;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
219 extern Lisp_Object Qpointer_color, Qpopup, Qscrollbar_placement;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
220 extern Lisp_Object Qselect_frame_hook, Qspace_pointer;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
221 extern Lisp_Object Qsynchronize_minibuffers, Qtext_pointer;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
222 extern Lisp_Object Qtoolbar_shadow_thickness, Qtop_toolbar_shadow_color;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
223 extern Lisp_Object Qtop_toolbar_shadow_pixmap, Qunmap_frame_hook;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
224 extern Lisp_Object Qunsplittable, Quse_backing_store, Qvisible, Qvisual_bell;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
225 extern Lisp_Object Vframe_icon_title_format, Vframe_title_format;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
226 extern Lisp_Object Vmouse_motion_handler;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
227
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
228
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
229 DECLARE_LRECORD (frame, struct frame);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
230 #define XFRAME(x) XRECORD (x, frame, struct frame)
617
af57a77cbc92 [xemacs-hg @ 2001-06-18 07:09:50 by ben]
ben
parents: 462
diff changeset
231 #define wrap_frame(p) wrap_record (p, frame)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
232 #define FRAMEP(x) RECORDP (x, frame)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
233 #define CHECK_FRAME(x) CHECK_RECORD (x, frame)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
234 #define CONCHECK_FRAME(x) CONCHECK_RECORD (x, frame)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
235
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
236 #define CHECK_LIVE_FRAME(x) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
237 CHECK_FRAME (x); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
238 if (! FRAME_LIVE_P (XFRAME (x))) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
239 dead_wrong_type_argument (Qframe_live_p, (x)); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
240 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
241 #define CONCHECK_LIVE_FRAME(x) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
242 CONCHECK_FRAME (x); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
243 if (! FRAME_LIVE_P (XFRAME (x))) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
244 x = wrong_type_argument (Qframe_live_p, (x)); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
245 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
246
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
247 #define FRAME_TYPE_P(f, type) EQ (FRAME_TYPE (f), Q##type)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
248
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 793
diff changeset
249 #ifdef ERROR_CHECK_TYPES
826
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 800
diff changeset
250 DECLARE_INLINE_HEADER (
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 800
diff changeset
251 struct frame *
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
252 error_check_frame_type (struct frame * f, Lisp_Object sym)
826
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 800
diff changeset
253 )
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
254 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
255 assert (EQ (FRAME_TYPE (f), sym));
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
256 return f;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
257 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
258 # define FRAME_TYPE_DATA(f, type) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
259 ((struct type##_frame *) error_check_frame_type (f, Q##type)->frame_data)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
260 #else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
261 # define FRAME_TYPE_DATA(f, type) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
262 ((struct type##_frame *) (f)->frame_data)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
263 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
264
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
265 #define CHECK_FRAME_TYPE(x, type) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
266 do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
267 CHECK_FRAME (x); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
268 if (!FRAME_TYPE_P (XFRAME (x), type)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
269 dead_wrong_type_argument \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
270 (type##_console_methods->predicate_symbol, x); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
271 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
272 #define CONCHECK_FRAME_TYPE(x, type) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
273 do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
274 CONCHECK_FRAME (x); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
275 if (!FRAME_TYPE_P (XFRAME (x), type)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
276 x = wrong_type_argument \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
277 (type##_console_methods->predicate_symbol, x); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
278 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
279
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
280 #define FRAME_DISPLAY_P(frm) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
281 (DEVICE_DISPLAY_P (XDEVICE (FRAME_DEVICE (frm))))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
282
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
283 #define CHECK_DISPLAY_FRAME(frm) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
284 do { \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
285 CHECK_FRAME (frm); \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
286 CHECK_LIVE_FRAME (frm); \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
287 CHECK_DISPLAY_DEVICE (FRAME_DEVICE (XFRAME (frm))); \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
288 } while (0)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
289
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
290 #define CONCHECK_DISPLAY_FRAME(frm) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
291 do { \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
292 CONCHECK_FRAME (frm); \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
293 CONCHECK_LIVE_FRAME (frm); \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
294 CONCHECK_DISPLAY_DEVICE (FRAME_DEVICE (XFRAME (frm))); \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
295 } while (0)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
296
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
297 #define FRAME_PRINTER_P(frm) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
298 (DEVICE_PRINTER_P (XDEVICE (FRAME_DEVICE (frm))))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
299
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
300 #define CHECK_PRINTER_FRAME(frm) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
301 do { \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
302 CHECK_FRAME (frm); \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
303 CHECK_LIVE_FRAME (frm); \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
304 CHECK_PRINTER_DEVICE (FRAME_DEVICE (XFRAME (frm))); \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
305 } while (0)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
306
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
307 #define CONCHECK_PRINTER_FRAME(frm) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
308 do { \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
309 CONCHECK_FRAME (frm); \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
310 CONCHECK_LIVE_FRAME (frm); \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
311 CONCHECK_PRINTER_DEVICE (FRAME_DEVICE (XFRAME (frm))); \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
312 } while (0)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
313
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
314 /* #### These should be in the frame-*.h files but there are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
315 too many places where the abstraction is broken. Need to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
316 fix. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
317
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
318 #define FRAME_X_P(frm) CONSOLE_TYPESYM_X_P (FRAME_TYPE (frm))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
319 #define CHECK_X_FRAME(z) CHECK_FRAME_TYPE (z, x)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
320 #define CONCHECK_X_FRAME(z) CONCHECK_FRAME_TYPE (z, x)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
321
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 444
diff changeset
322 #define FRAME_GTK_P(frm) CONSOLE_TYPESYM_GTK_P (FRAME_TYPE (frm))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 444
diff changeset
323 #define CHECK_GTK_FRAME(z) CHECK_FRAME_TYPE (z, gtk)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 444
diff changeset
324 #define CONCHECK_GTK_FRAME(z) CONCHECK_FRAME_TYPE (z, gtk)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 444
diff changeset
325
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
326 #define FRAME_TTY_P(frm) CONSOLE_TYPESYM_TTY_P (FRAME_TYPE (frm))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
327 #define CHECK_TTY_FRAME(z) CHECK_FRAME_TYPE (z, tty)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
328 #define CONCHECK_TTY_FRAME(z) CONCHECK_FRAME_TYPE (z, tty)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
329
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
330 #define FRAME_STREAM_P(frm) CONSOLE_TYPESYM_STREAM_P (FRAME_TYPE (frm))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
331 #define CHECK_STREAM_FRAME(z) CHECK_FRAME_TYPE (z, stream)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
332 #define CONCHECK_STREAM_FRAME(z) CONCHECK_FRAME_TYPE (z, stream)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
333
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
334 #define FRAME_WIN_P(frm) CONSOLE_TYPESYM_WIN_P (FRAME_TYPE (frm))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
335
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
336 extern int frame_changed;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
337
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
338 #define MARK_FRAME_FACES_CHANGED(f) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
339 struct frame *mffc_f = (f); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
340 mffc_f->faces_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
341 mffc_f->modiff++; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
342 if (!NILP (mffc_f->device)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
343 { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
344 struct device *mffc_d = XDEVICE (mffc_f->device); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
345 MARK_DEVICE_FACES_CHANGED (mffc_d); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
346 } \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
347 else \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
348 faces_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
349 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
350
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
351 #define MARK_FRAME_GLYPHS_CHANGED(f) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
352 struct frame *mfgc_f = (f); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
353 mfgc_f->glyphs_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
354 mfgc_f->modiff++; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
355 if (!NILP (mfgc_f->device)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
356 { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
357 struct device *mfgc_d = XDEVICE (mfgc_f->device); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
358 MARK_DEVICE_GLYPHS_CHANGED (mfgc_d); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
359 } \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
360 else \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
361 glyphs_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
362 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
363
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
364 #define MARK_FRAME_SUBWINDOWS_CHANGED(f) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
365 struct frame *mfgc_f = (f); \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
366 mfgc_f->subwindows_changed = 1; \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
367 mfgc_f->modiff++; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
368 if (!NILP (mfgc_f->device)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
369 { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
370 struct device *mfgc_d = XDEVICE (mfgc_f->device); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
371 MARK_DEVICE_SUBWINDOWS_CHANGED (mfgc_d); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
372 } \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
373 else \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
374 subwindows_changed = 1; \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
375 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
376
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
377 #define MARK_FRAME_SUBWINDOWS_STATE_CHANGED(f) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
378 struct frame *mfgc_f = (f); \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
379 mfgc_f->subwindows_state_changed = 1; \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
380 mfgc_f->modiff++; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
381 if (!NILP (mfgc_f->device)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
382 { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
383 struct device *mfgc_d = XDEVICE (mfgc_f->device); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
384 MARK_DEVICE_SUBWINDOWS_STATE_CHANGED (mfgc_d); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
385 } \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
386 else \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
387 subwindows_state_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
388 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
389
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
390 #define MARK_FRAME_TOOLBARS_CHANGED(f) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
391 struct frame *mftc_f = (f); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
392 mftc_f->toolbar_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
393 mftc_f->modiff++; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
394 if (!NILP (mftc_f->device)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
395 { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
396 struct device *mftc_d = XDEVICE (mftc_f->device); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
397 MARK_DEVICE_TOOLBARS_CHANGED (mftc_d); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
398 } \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
399 else \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
400 toolbar_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
401 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
402
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
403 #define MARK_FRAME_GUTTERS_CHANGED(f) do { \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
404 struct frame *mftc_f = (f); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
405 mftc_f->gutter_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
406 mftc_f->modiff++; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
407 if (!NILP (mftc_f->device)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
408 { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
409 struct device *mftc_d = XDEVICE (mftc_f->device); \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
410 MARK_DEVICE_GUTTERS_CHANGED (mftc_d); \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
411 } \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
412 else \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
413 gutter_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
414 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
415
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
416 #define MARK_FRAME_SIZE_CHANGED(f) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
417 struct frame *mfsc_f = (f); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
418 mfsc_f->size_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
419 mfsc_f->size_change_pending = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
420 mfsc_f->modiff++; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
421 if (!NILP (mfsc_f->device)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
422 { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
423 struct device *mfsc_d = XDEVICE (mfsc_f->device); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
424 MARK_DEVICE_SIZE_CHANGED (mfsc_d); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
425 } \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
426 else \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
427 size_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
428 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
429
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
430 #define MARK_FRAME_CHANGED(f) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
431 struct frame *mfc_f = (f); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
432 mfc_f->frame_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
433 mfc_f->modiff++; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
434 if (!NILP (mfc_f->device)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
435 { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
436 struct device *mfc_d = XDEVICE (mfc_f->device); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
437 MARK_DEVICE_FRAME_CHANGED (mfc_d); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
438 } \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
439 else \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
440 frame_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
441 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
442
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
443 #define MARK_FRAME_WINDOWS_CHANGED(f) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
444 struct frame *mfwc_f = (f); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
445 mfwc_f->windows_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
446 mfwc_f->modiff++; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
447 if (!NILP (mfwc_f->device)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
448 { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
449 struct device *mfwc_d = XDEVICE (mfwc_f->device); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
450 MARK_DEVICE_WINDOWS_CHANGED (mfwc_d); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
451 } \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
452 else \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
453 windows_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
454 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
455
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
456 #define MARK_FRAME_WINDOWS_STRUCTURE_CHANGED(f) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
457 struct frame *fwsc_f = (f); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
458 fwsc_f->windows_structure_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
459 fwsc_f->modiff++; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
460 if (!NILP (fwsc_f->device)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
461 { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
462 struct device *fwsc_d = XDEVICE (fwsc_f->device); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
463 MARK_DEVICE_WINDOWS_STRUCTURE_CHANGED (fwsc_d); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
464 } \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
465 else \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
466 windows_structure_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
467 invalidate_vertical_divider_cache_in_frame (fwsc_f); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
468 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
469
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
470 #define MARK_FRAME_SIZE_SLIPPED(f) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
471 struct frame *fwsc_f = (f); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
472 fwsc_f->size_slipped = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
473 fwsc_f->modiff++; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
474 if (!NILP (fwsc_f->device)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
475 { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
476 struct device *fwsc_d = XDEVICE (fwsc_f->device); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
477 MARK_DEVICE_FRAME_CHANGED (fwsc_d); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
478 } \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
479 else \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
480 frame_changed = 1; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
481 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
482
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
483 #define CLEAR_FRAME_SIZE_SLIPPED(f) do { \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
484 struct frame *fwsc_f = (f); \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
485 fwsc_f->size_slipped = 0; \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
486 } while (0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
487
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
488 #define SET_FRAME_CLEAR(f) MARK_FRAME_CHANGED (f); (f)->clear = 1
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
489 #define FRAME_DEVICE(f) ((f)->device)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
490 #define FRAME_CONSOLE(f) DEVICE_CONSOLE (XDEVICE (FRAME_DEVICE (f)))
617
af57a77cbc92 [xemacs-hg @ 2001-06-18 07:09:50 by ben]
ben
parents: 462
diff changeset
491 #define FRAME_LIVE_P(f) (!EQ (FRAME_TYPE (f), Qdead))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
492
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
493 #define FRAME_MINIBUF_ONLY_P(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
494 EQ (FRAME_ROOT_WINDOW (f), FRAME_MINIBUF_WINDOW (f))
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
495 #define FRAME_HAS_MINIBUF_P(f) ((f)->has_minibuffer)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
496 #define FRAME_HEIGHT(f) ((f)->height)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
497 #define FRAME_WIDTH(f) ((f)->width)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
498 #define FRAME_CHARHEIGHT(f) ((f)->char_height)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
499 #define FRAME_CHARWIDTH(f) ((f)->char_width)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
500 #define FRAME_PIXHEIGHT(f) ((f)->pixheight)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
501 #define FRAME_PIXWIDTH(f) ((f)->pixwidth)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
502 #define FRAME_PAGENUMBER(f) ((f)->page_number + 0)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
503 #define FRAME_SET_PAGENUMBER(f,x) (f)->page_number = (x);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
504 #ifdef HAVE_SCROLLBARS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
505 #define FRAME_SCROLLBAR_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
506 (NILP ((f)->vertical_scrollbar_visible_p) ? \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
507 0 : XINT ((f)->scrollbar_width))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
508 #define FRAME_SCROLLBAR_HEIGHT(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
509 (NILP ((f)->horizontal_scrollbar_visible_p) ? \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
510 0 : XINT ((f)->scrollbar_height))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
511 #else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
512 #define FRAME_SCROLLBAR_WIDTH(f) 0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
513 #define FRAME_SCROLLBAR_HEIGHT(f) 0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
514 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
515
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
516 #define FW_FRAME(obj) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
517 (WINDOWP (obj) ? WINDOW_FRAME (XWINDOW (obj)) \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
518 : (FRAMEP (obj) ? obj \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
519 : Qnil))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
520
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
521 #define FRAME_NEW_HEIGHT(f) ((f)->new_height)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
522 #define FRAME_NEW_WIDTH(f) ((f)->new_width)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
523 #define FRAME_CURSOR_X(f) ((f)->cursor_x)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
524 #define FRAME_CURSOR_Y(f) ((f)->cursor_y)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
525 #define FRAME_VISIBLE_P(f) ((f)->visible)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
526 #define FRAME_REPAINT_P(f) ((f)->visible>0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
527 #define FRAME_NO_SPLIT_P(f) ((f)->no_split)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
528 #define FRAME_ICONIFIED_P(f) ((f)->iconified)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
529 #define FRAME_FOCUS_FRAME(f) ((f)->focus_frame)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
530 #define FRAME_MINIBUF_WINDOW(f) ((f)->minibuffer_window)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
531 #define FRAME_ROOT_WINDOW(f) ((f)->root_window)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
532 /* Catch people attempting to set this. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
533 #define FRAME_SELECTED_WINDOW(f) NON_LVALUE ((f)->selected_window)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 647
diff changeset
534 #define FRAME_SELECTED_XWINDOW(f) XWINDOW (FRAME_SELECTED_WINDOW (f))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
535 #define FRAME_LAST_NONMINIBUF_WINDOW(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
536 NON_LVALUE ((f)->last_nonminibuf_window)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
537 #define FRAME_SB_VCACHE(f) ((f)->sb_vcache)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
538 #define FRAME_SB_HCACHE(f) ((f)->sb_hcache)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
539 #define FRAME_SUBWINDOW_CACHE(f) ((f)->subwindow_instance_cache)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
540
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
541 #if 0 /* FSFmacs */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
542
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
543 #define FRAME_VISIBLE_P(f) ((f)->visible != 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
544 #define FRAME_SET_VISIBLE(f,p) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
545 ((f)->async_visible = (p), FRAME_SAMPLE_VISIBILITY (f))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
546
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
547 /* Emacs's redisplay code could become confused if a frame's
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
548 visibility changes at arbitrary times. For example, if a frame is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
549 visible while the desired glyphs are being built, but becomes
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
550 invisible before they are updated, then some rows of the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
551 desired_glyphs will be left marked as enabled after redisplay is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
552 complete, which should never happen. The next time the frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
553 becomes visible, redisplay will probably barf.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
554
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
555 Currently, there are no similar situations involving iconified, but
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
556 the principle is the same.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
557
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
558 So instead of having asynchronous input handlers directly set and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
559 clear the frame's visibility and iconification flags, they just set
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
560 the async_visible and async_iconified flags; the redisplay code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
561 calls the FRAME_SAMPLE_VISIBILITY macro before doing any redisplay,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
562 which sets visible and iconified from their asynchronous
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
563 counterparts.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
564
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
565 Synchronous code must use the FRAME_SET_VISIBLE macro.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
566
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
567 Also, if a frame used to be invisible, but has just become visible,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
568 it must be marked as garbaged, since redisplay hasn't been keeping
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
569 up its contents. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
570 #define FRAME_SAMPLE_VISIBILITY(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
571 (((f)->async_visible && ! (f)->visible) ? SET_FRAME_GARBAGED (f) : 0, \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
572 (f)->visible = (f)->async_visible, \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
573 (f)->iconified = (f)->async_iconified)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
574
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
575 #endif /* FSFmacs */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
576
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
577 #define FRAME_BORDER_WIDTH(f) ((f)->internal_border_width)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
578 #define FRAME_BORDER_HEIGHT(f) ((f)->internal_border_width)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
579
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
580 /* This returns the frame-local value; that tells you what you should
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
581 use when computing the frame size. It is *not* the actual toolbar
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
582 size because that depends on the selected window. Use the macros
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
583 below for that.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
584 */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
585
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
586 #ifdef HAVE_TOOLBARS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
587 #define FRAME_RAW_THEORETICAL_TOOLBAR_VISIBLE(f, pos) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
588 (!NILP((f)->toolbar_buttons[pos]) && !NILP ((f)->toolbar_visible_p[pos]))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
589 #define FRAME_RAW_THEORETICAL_TOOLBAR_SIZE(f, pos) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
590 (!NILP ((f)->toolbar_buttons[pos]) && INTP((f)->toolbar_size[pos]) ? \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
591 (XINT ((f)->toolbar_size[pos])) : 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
592 #define FRAME_RAW_THEORETICAL_TOOLBAR_BORDER_WIDTH(f, pos) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
593 (!NILP ((f)->toolbar_buttons[pos]) && INTP((f)->toolbar_border_width[pos]) ? \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
594 (XINT ((f)->toolbar_border_width[pos])) : 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
595 #else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
596 #define FRAME_RAW_THEORETICAL_TOOLBAR_VISIBLE(f, pos) 0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
597 #define FRAME_RAW_THEORETICAL_TOOLBAR_SIZE(f, pos) 0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
598 #define FRAME_RAW_THEORETICAL_TOOLBAR_BORDER_WIDTH(f, pos) 0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
599 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
600
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
601 #define FRAME_THEORETICAL_TOOLBAR_SIZE(f, pos) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
602 (FRAME_RAW_THEORETICAL_TOOLBAR_VISIBLE (f, pos) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
603 ? FRAME_RAW_THEORETICAL_TOOLBAR_SIZE (f, pos) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
604 : 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
605
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
606 #define FRAME_THEORETICAL_TOP_TOOLBAR_HEIGHT(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
607 FRAME_THEORETICAL_TOOLBAR_SIZE (f, TOP_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
608 #define FRAME_THEORETICAL_BOTTOM_TOOLBAR_HEIGHT(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
609 FRAME_THEORETICAL_TOOLBAR_SIZE (f, BOTTOM_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
610 #define FRAME_THEORETICAL_LEFT_TOOLBAR_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
611 FRAME_THEORETICAL_TOOLBAR_SIZE (f, LEFT_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
612 #define FRAME_THEORETICAL_RIGHT_TOOLBAR_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
613 FRAME_THEORETICAL_TOOLBAR_SIZE (f, RIGHT_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
614
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
615 #define FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH(f, pos) \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
616 (FRAME_RAW_THEORETICAL_TOOLBAR_VISIBLE (f, pos) \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
617 ? FRAME_RAW_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, pos) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
618 : 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
619
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
620 #define FRAME_THEORETICAL_TOP_TOOLBAR_BORDER_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
621 FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, TOP_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
622 #define FRAME_THEORETICAL_BOTTOM_TOOLBAR_BORDER_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
623 FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, BOTTOM_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
624 #define FRAME_THEORETICAL_LEFT_TOOLBAR_BORDER_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
625 FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, LEFT_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
626 #define FRAME_THEORETICAL_RIGHT_TOOLBAR_BORDER_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
627 FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, RIGHT_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
628
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
629 /* This returns the window-local value rather than the frame-local value;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
630 that tells you about what's actually visible rather than what should
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
631 be used when computing the frame size. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
632
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
633 #ifdef HAVE_TOOLBARS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
634 #define FRAME_RAW_REAL_TOOLBAR_VISIBLE(f, pos) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
635 (HAS_DEVMETH_P (XDEVICE (FRAME_DEVICE (f)), initialize_frame_toolbars) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
636 && !NILP (XWINDOW (FRAME_LAST_NONMINIBUF_WINDOW (f))->toolbar_visible_p[pos]))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
637 #define FRAME_RAW_REAL_TOOLBAR_BORDER_WIDTH(f, pos) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
638 ((INTP (XWINDOW \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
639 (FRAME_LAST_NONMINIBUF_WINDOW (f))->toolbar_border_width[pos])) ? \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
640 (XINT (XWINDOW \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
641 (FRAME_LAST_NONMINIBUF_WINDOW (f))->toolbar_border_width[pos])) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
642 : 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
643 #define FRAME_RAW_REAL_TOOLBAR_SIZE(f, pos) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
644 ((INTP (XWINDOW \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
645 (FRAME_LAST_NONMINIBUF_WINDOW (f))->toolbar_size[pos])) ? \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
646 (XINT (XWINDOW \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
647 (FRAME_LAST_NONMINIBUF_WINDOW (f))->toolbar_size[pos])) : 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
648 #define FRAME_REAL_TOOLBAR(f, pos) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
649 (XWINDOW (FRAME_LAST_NONMINIBUF_WINDOW (f))->toolbar[pos])
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
650 #else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
651 #define FRAME_RAW_REAL_TOOLBAR_VISIBLE(f, pos) 0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
652 #define FRAME_RAW_REAL_TOOLBAR_BORDER_WIDTH(f, pos) 0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
653 #define FRAME_RAW_REAL_TOOLBAR_SIZE(f, pos) 0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
654 #define FRAME_REAL_TOOLBAR(f, pos) Qnil
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
655 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
656
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
657 /* Note to Chuck
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
658 Note to Chuck
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
659 Note to Chuck:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
660
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
661 The former definitions of FRAME_REAL_FOO_TOOLBAR_VISIBLE
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
662 looked at the toolbar data to see what was there. The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
663 current ones look at the current values of the specifiers.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
664 This is a semantic change; the former definition returned
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
665 what was *actually* there right at the moment, while the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
666 current one returns what *ought* to be there once redisplay
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
667 has run to completion. I think this new definition is more
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
668 correct in almost all circumstances and is much less likely
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
669 to lead to strange race conditions. I'm not completely
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
670 sure that there aren't some places in the redisplay code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
671 that use these macros and expect the former semantics, so
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
672 if you encounter some odd toolbar behavior, you might want
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
673 to look into this. --ben */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
674
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
675 #define FRAME_REAL_TOOLBAR_VISIBLE(f, pos) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
676 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
677 && FRAME_RAW_REAL_TOOLBAR_SIZE (f, pos) > 0) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
678 ? FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos) \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
679 : 0)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
680 #define FRAME_REAL_TOOLBAR_SIZE(f, pos) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
681 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
682 && FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos)) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
683 ? FRAME_RAW_REAL_TOOLBAR_SIZE (f, pos) \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
684 : 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
685 #define FRAME_REAL_TOOLBAR_BORDER_WIDTH(f, pos) \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
686 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
687 && FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos)) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
688 ? FRAME_RAW_REAL_TOOLBAR_BORDER_WIDTH (f, pos) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
689 : 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
690
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
691 #define FRAME_REAL_TOP_TOOLBAR_HEIGHT(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
692 FRAME_REAL_TOOLBAR_SIZE (f, TOP_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
693 #define FRAME_REAL_BOTTOM_TOOLBAR_HEIGHT(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
694 FRAME_REAL_TOOLBAR_SIZE (f, BOTTOM_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
695 #define FRAME_REAL_LEFT_TOOLBAR_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
696 FRAME_REAL_TOOLBAR_SIZE (f, LEFT_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
697 #define FRAME_REAL_RIGHT_TOOLBAR_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
698 FRAME_REAL_TOOLBAR_SIZE (f, RIGHT_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
699
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
700 #define FRAME_REAL_TOP_TOOLBAR_BORDER_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
701 FRAME_REAL_TOOLBAR_BORDER_WIDTH (f, TOP_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
702 #define FRAME_REAL_BOTTOM_TOOLBAR_BORDER_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
703 FRAME_REAL_TOOLBAR_BORDER_WIDTH (f, BOTTOM_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
704 #define FRAME_REAL_LEFT_TOOLBAR_BORDER_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
705 FRAME_REAL_TOOLBAR_BORDER_WIDTH (f, LEFT_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
706 #define FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
707 FRAME_REAL_TOOLBAR_BORDER_WIDTH (f, RIGHT_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
708
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
709 #define FRAME_REAL_TOP_TOOLBAR_VISIBLE(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
710 FRAME_REAL_TOOLBAR_VISIBLE (f, TOP_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
711 #define FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
712 FRAME_REAL_TOOLBAR_VISIBLE (f, BOTTOM_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
713 #define FRAME_REAL_LEFT_TOOLBAR_VISIBLE(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
714 FRAME_REAL_TOOLBAR_VISIBLE (f, LEFT_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
715 #define FRAME_REAL_RIGHT_TOOLBAR_VISIBLE(f) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
716 FRAME_REAL_TOOLBAR_VISIBLE (f, RIGHT_TOOLBAR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
717
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
718 #define FRAME_TOP_BORDER_START(f) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
719 (FRAME_REAL_TOP_TOOLBAR_HEIGHT (f) + \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
720 2 * FRAME_REAL_TOP_TOOLBAR_BORDER_WIDTH (f))
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
721 #define FRAME_TOP_BORDER_END(f) \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
722 (FRAME_TOP_BORDER_START (f) + FRAME_BORDER_HEIGHT (f))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
723
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
724 #define FRAME_BOTTOM_BORDER_START(f) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
725 (FRAME_PIXHEIGHT (f) - FRAME_BORDER_HEIGHT (f) - \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
726 FRAME_REAL_BOTTOM_TOOLBAR_HEIGHT (f) - \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
727 2 * FRAME_REAL_BOTTOM_TOOLBAR_BORDER_WIDTH (f))
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
728 #define FRAME_BOTTOM_BORDER_END(f) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
729 (FRAME_PIXHEIGHT (f) - FRAME_REAL_BOTTOM_TOOLBAR_HEIGHT (f) - \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
730 2 * FRAME_REAL_BOTTOM_TOOLBAR_BORDER_WIDTH (f))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
731
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
732 #define FRAME_LEFT_BORDER_START(f) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
733 (FRAME_REAL_LEFT_TOOLBAR_WIDTH (f) + \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
734 2 * FRAME_REAL_LEFT_TOOLBAR_BORDER_WIDTH (f))
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
735 #define FRAME_LEFT_BORDER_END(f) \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
736 (FRAME_LEFT_BORDER_START (f) + FRAME_BORDER_WIDTH (f))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
737
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
738 #define FRAME_RIGHT_BORDER_START(f) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
739 (FRAME_PIXWIDTH (f) - FRAME_BORDER_WIDTH (f) - \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
740 FRAME_REAL_RIGHT_TOOLBAR_WIDTH(f) - \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
741 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH (f))
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
742 #define FRAME_RIGHT_BORDER_END(f) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
743 (FRAME_PIXWIDTH (f) - FRAME_REAL_RIGHT_TOOLBAR_WIDTH (f) - \
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
744 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH(f))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
745
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
746 /* Equivalent in FSF Emacs:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
747
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
748 FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
749 `for' loop which iterates over the elements of Vframe_list. The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
750 loop will set FRAME_VAR, a Lisp_Object, to each frame in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
751 Vframe_list in succession and execute the statement. LIST_VAR
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
752 should be a Lisp_Object too; it is used to iterate through the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
753 Vframe_list.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
754 */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
755
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
756 /* NO_BREAK means that "break" doesn't do what you think it does!
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
757 Use goto instead. "continue" is OK, though. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
758 #define FRAME_LOOP_NO_BREAK(frmcons, devcons, concons) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
759 DEVICE_LOOP_NO_BREAK (devcons, concons) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
760 DEVICE_FRAME_LOOP (frmcons, XDEVICE (XCAR (devcons)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
761
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
762 void update_frame_title (struct frame *f);
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
763 Lisp_Object next_frame (Lisp_Object, Lisp_Object, Lisp_Object);
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
764 Lisp_Object previous_frame (Lisp_Object, Lisp_Object, Lisp_Object);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
765 void pixel_to_char_size (struct frame *f, int pixel_width, int pixel_height,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
766 int *char_width, int *char_height);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
767 void char_to_pixel_size (struct frame *f, int char_width, int char_height,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
768 int *pixel_width, int *pixel_height);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
769 void round_size_to_char (struct frame *f, int in_width, int in_height,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
770 int *out_width, int *out_height);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
771 void pixel_to_real_char_size (struct frame *f, int pixel_width, int pixel_height,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
772 int *char_width, int *char_height);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
773 void char_to_real_pixel_size (struct frame *f, int char_width, int char_height,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
774 int *pixel_width, int *pixel_height);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
775 void round_size_to_real_char (struct frame *f, int in_width, int in_height,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
776 int *out_width, int *out_height);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
777 void change_frame_size (struct frame *frame,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
778 int newlength, int newwidth,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
779 int delay);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
780 void adjust_frame_size (struct frame *frame);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
781 void frame_size_slipped (Lisp_Object specifier, struct frame *f,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
782 Lisp_Object oldval);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
783 void hold_frame_size_changes (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
784 void unhold_one_frame_size_changes (struct frame *f);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
785 void unhold_frame_size_changes (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
786 void select_frame_1 (Lisp_Object frame);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
787 void select_frame_2 (Lisp_Object frame);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
788 struct frame *selected_frame (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
789 struct frame *device_selected_frame (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
790 struct frame *decode_frame (Lisp_Object frame);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
791 struct frame *decode_frame_or_selected (Lisp_Object cdf);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
792 Lisp_Object make_frame (struct frame *f);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
793 int other_visible_frames (struct frame *f);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
794 void delete_frame_internal (struct frame *f, int force,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
795 int called_from_delete_device,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
796 int from_io_error);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
797 void io_error_delete_frame (Lisp_Object frame);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
798 Lisp_Object find_some_frame (int (*predicate) (Lisp_Object, void *),
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
799 void *closure);
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
800 int device_matches_device_spec (Lisp_Object device, Lisp_Object device_spec);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
801 Lisp_Object frame_first_window (struct frame *f);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
802 int show_gc_cursor (struct frame *f, Lisp_Object cursor);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
803 void set_frame_selected_window (struct frame *f, Lisp_Object window);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
804 int is_surrogate_for_selected_frame (struct frame *f);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
805 void update_frame_icon (struct frame *f);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
806 void invalidate_vertical_divider_cache_in_frame (struct frame *f);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
807
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 428
diff changeset
808 void init_frame (void);
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 428
diff changeset
809
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
810 #endif /* INCLUDED_frame_h_ */