Mercurial > emacs
annotate src/frame.c @ 1244:ee01548e8ba5
(ws-mark-word): Use forward-word, with an arg, instead of backward-word.
(wordstar-mode): Move after definition of keymap.
(ws-move-block): Just two args for kill-region.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 28 Sep 1992 13:02:21 +0000 |
parents | a43d53261506 |
children | 4e556fda7a4d |
rev | line source |
---|---|
765 | 1 /* Generic frame functions. |
708 | 2 Copyright (C) 1989, 1992 Free Software Foundation. |
286 | 3 |
4 This file is part of GNU Emacs. | |
5 | |
6 GNU Emacs is free software; you can redistribute it and/or modify | |
7 it under the terms of the GNU General Public License as published by | |
708 | 8 the Free Software Foundation; either version 2, or (at your option) |
286 | 9 any later version. |
10 | |
11 GNU Emacs is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with GNU Emacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
19 | |
363 | 20 #include <stdio.h> |
21 | |
286 | 22 #include "config.h" |
987
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
23 #include "lisp.h" |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
24 #include "frame.h" |
732 | 25 |
765 | 26 #ifdef MULTI_FRAME |
732 | 27 |
286 | 28 #include "window.h" |
363 | 29 #include "termhooks.h" |
286 | 30 |
31 Lisp_Object Vemacs_iconified; | |
765 | 32 Lisp_Object Vframe_list; |
33 Lisp_Object Vterminal_frame; | |
34 Lisp_Object Vdefault_minibuffer_frame; | |
35 Lisp_Object Vdefault_frame_alist; | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
36 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
37 /* Evaluate this expression to rebuild the section of syms_of_frame |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
38 that initializes and staticpros the symbols declared below. Note |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
39 that Emacs 18 has a bug that keeps C-x C-e from being able to |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
40 evaluate this expression. |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
41 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
42 (progn |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
43 ;; Accumulate a list of the symbols we want to initialize from the |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
44 ;; declarations at the top of the file. |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
45 (goto-char (point-min)) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
46 (search-forward "/\*&&& symbols declared here &&&*\/\n") |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
47 (let (symbol-list) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
48 (while (looking-at "Lisp_Object \\(Q[a-z_]+\\)") |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
49 (setq symbol-list |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
50 (cons (buffer-substring (match-beginning 1) (match-end 1)) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
51 symbol-list)) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
52 (forward-line 1)) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
53 (setq symbol-list (nreverse symbol-list)) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
54 ;; Delete the section of syms_of_... where we initialize the symbols. |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
55 (search-forward "\n /\*&&& init symbols here &&&*\/\n") |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
56 (let ((start (point))) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
57 (while (looking-at "^ Q") |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
58 (forward-line 2)) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
59 (kill-region start (point))) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
60 ;; Write a new symbol initialization section. |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
61 (while symbol-list |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
62 (insert (format " %s = intern (\"" (car symbol-list))) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
63 (let ((start (point))) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
64 (insert (substring (car symbol-list) 1)) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
65 (subst-char-in-region start (point) ?_ ?-)) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
66 (insert (format "\");\n staticpro (&%s);\n" (car symbol-list))) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
67 (setq symbol-list (cdr symbol-list))))) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
68 */ |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
69 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
70 /*&&& symbols declared here &&&*/ |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
71 Lisp_Object Qframep; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
72 Lisp_Object Qlive_frame_p; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
73 Lisp_Object Qheight; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
74 Lisp_Object Qicon; |
539 | 75 Lisp_Object Qminibuffer; |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
76 Lisp_Object Qmodeline; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
77 Lisp_Object Qname; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
78 Lisp_Object Qnone; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
79 Lisp_Object Qonly; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
80 Lisp_Object Qunsplittable; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
81 Lisp_Object Qwidth; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
82 Lisp_Object Qx; |
286 | 83 |
84 extern Lisp_Object Vminibuffer_list; | |
85 extern Lisp_Object get_minibuffer (); | |
86 | |
765 | 87 DEFUN ("framep", Fframep, Sframep, 1, 1, 0, |
88 "Return non-nil if OBJECT is a frame.\n\ | |
89 Value is t for a termcap frame (a character-only terminal),\n\ | |
90 `x' for an Emacs frame that is really an X window.\n\ | |
91 Also see `live-frame-p'.") | |
454 | 92 (object) |
93 Lisp_Object object; | |
286 | 94 { |
765 | 95 if (XTYPE (object) != Lisp_Frame) |
286 | 96 return Qnil; |
765 | 97 switch (XFRAME (object)->output_method) |
286 | 98 { |
99 case output_termcap: | |
100 return Qt; | |
101 case output_x_window: | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
102 return Qx; |
286 | 103 default: |
104 abort (); | |
105 } | |
106 } | |
107 | |
765 | 108 DEFUN ("live-frame-p", Flive_frame_p, Slive_frame_p, 1, 1, 0, |
109 "Return non-nil if OBJECT is a frame which has not been deleted.\n\ | |
110 Value is nil if OBJECT is not a live frame. If object is a live\n\ | |
111 frame, the return value indicates what sort of output device it is\n\ | |
112 displayed on. Value is t for a termcap frame (a character-only\n\ | |
113 terminal), `x' for an Emacs frame being displayed in an X window.") | |
454 | 114 (object) |
115 Lisp_Object object; | |
116 { | |
765 | 117 return ((FRAMEP (object) |
118 && FRAME_LIVE_P (XFRAME (object))) | |
119 ? Fframep (object) | |
454 | 120 : Qnil); |
121 } | |
122 | |
765 | 123 struct frame * |
124 make_frame (mini_p) | |
286 | 125 int mini_p; |
126 { | |
765 | 127 Lisp_Object frame; |
128 register struct frame *f; | |
286 | 129 register Lisp_Object root_window; |
130 register Lisp_Object mini_window; | |
131 | |
765 | 132 frame = Fmake_vector (((sizeof (struct frame) - (sizeof (Lisp_Vector) |
363 | 133 - sizeof (Lisp_Object))) |
134 / sizeof (Lisp_Object)), | |
286 | 135 make_number (0)); |
765 | 136 XSETTYPE (frame, Lisp_Frame); |
137 f = XFRAME (frame); | |
286 | 138 |
765 | 139 f->cursor_x = 0; |
140 f->cursor_y = 0; | |
141 f->current_glyphs = 0; | |
142 f->desired_glyphs = 0; | |
143 f->visible = 0; | |
144 f->display.nothing = 0; | |
145 f->iconified = 0; | |
146 f->wants_modeline = 1; | |
147 f->auto_raise = 0; | |
148 f->auto_lower = 0; | |
149 f->no_split = 0; | |
150 f->garbaged = 0; | |
151 f->has_minibuffer = mini_p; | |
152 f->focus_frame = frame; | |
1006
a13ee72d74a2
* frame.c (make_frame): Clear the explicit_name member of the new
Jim Blandy <jimb@redhat.com>
parents:
987
diff
changeset
|
153 f->explicit_name = 0; |
286 | 154 |
765 | 155 f->param_alist = Qnil; |
286 | 156 |
987
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
157 root_window = make_window (); |
286 | 158 if (mini_p) |
159 { | |
987
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
160 mini_window = make_window (); |
286 | 161 XWINDOW (root_window)->next = mini_window; |
162 XWINDOW (mini_window)->prev = root_window; | |
163 XWINDOW (mini_window)->mini_p = Qt; | |
765 | 164 XWINDOW (mini_window)->frame = frame; |
165 f->minibuffer_window = mini_window; | |
286 | 166 } |
167 else | |
168 { | |
169 mini_window = Qnil; | |
170 XWINDOW (root_window)->next = Qnil; | |
765 | 171 f->minibuffer_window = Qnil; |
286 | 172 } |
173 | |
765 | 174 XWINDOW (root_window)->frame = frame; |
286 | 175 |
176 /* 10 is arbitrary, | |
177 just so that there is "something there." | |
765 | 178 Correct size will be set up later with change_frame_size. */ |
286 | 179 |
765 | 180 f->width = 10; |
181 f->height = 10; | |
286 | 182 |
183 XFASTINT (XWINDOW (root_window)->width) = 10; | |
184 XFASTINT (XWINDOW (root_window)->height) = (mini_p ? 9 : 10); | |
185 | |
186 if (mini_p) | |
187 { | |
188 XFASTINT (XWINDOW (mini_window)->width) = 10; | |
189 XFASTINT (XWINDOW (mini_window)->top) = 9; | |
190 XFASTINT (XWINDOW (mini_window)->height) = 1; | |
191 } | |
192 | |
765 | 193 /* Choose a buffer for the frame's root window. */ |
386 | 194 { |
195 Lisp_Object buf; | |
196 | |
197 XWINDOW (root_window)->buffer = Qt; | |
198 buf = Fcurrent_buffer (); | |
199 /* If buf is a 'hidden' buffer (i.e. one whose name starts with | |
200 a space), try to find another one. */ | |
201 if (XSTRING (Fbuffer_name (buf))->data[0] == ' ') | |
202 buf = Fother_buffer (buf); | |
203 Fset_window_buffer (root_window, buf); | |
204 } | |
205 | |
286 | 206 if (mini_p) |
207 { | |
208 XWINDOW (mini_window)->buffer = Qt; | |
209 Fset_window_buffer (mini_window, | |
485 | 210 (NILP (Vminibuffer_list) |
286 | 211 ? get_minibuffer (0) |
212 : Fcar (Vminibuffer_list))); | |
213 } | |
214 | |
765 | 215 f->root_window = root_window; |
216 f->selected_window = root_window; | |
363 | 217 /* Make sure this window seems more recently used than |
218 a newly-created, never-selected window. */ | |
765 | 219 XFASTINT (XWINDOW (f->selected_window)->use_time) = ++window_select_count; |
286 | 220 |
765 | 221 Vframe_list = Fcons (frame, Vframe_list); |
286 | 222 |
765 | 223 return f; |
286 | 224 } |
225 | |
765 | 226 /* Make a frame using a separate minibuffer window on another frame. |
286 | 227 MINI_WINDOW is the minibuffer window to use. nil means use the |
228 default (the global minibuffer). */ | |
229 | |
765 | 230 struct frame * |
231 make_frame_without_minibuffer (mini_window) | |
286 | 232 register Lisp_Object mini_window; |
233 { | |
765 | 234 register struct frame *f; |
286 | 235 |
236 /* Choose the minibuffer window to use. */ | |
485 | 237 if (NILP (mini_window)) |
286 | 238 { |
765 | 239 if (XTYPE (Vdefault_minibuffer_frame) != Lisp_Frame) |
240 error ("default-minibuffer-frame must be set when creating minibufferless frames"); | |
241 if (! FRAME_LIVE_P (XFRAME (Vdefault_minibuffer_frame))) | |
242 error ("default-minibuffer-frame must be a live frame"); | |
243 mini_window = XFRAME (Vdefault_minibuffer_frame)->minibuffer_window; | |
286 | 244 } |
245 else | |
246 { | |
247 CHECK_WINDOW (mini_window, 0); | |
248 } | |
249 | |
765 | 250 /* Make a frame containing just a root window. */ |
251 f = make_frame (0); | |
286 | 252 |
253 /* Install the chosen minibuffer window, with proper buffer. */ | |
765 | 254 f->minibuffer_window = mini_window; |
286 | 255 Fset_window_buffer (mini_window, |
485 | 256 (NILP (Vminibuffer_list) |
286 | 257 ? get_minibuffer (0) |
258 : Fcar (Vminibuffer_list))); | |
765 | 259 return f; |
286 | 260 } |
261 | |
765 | 262 /* Make a frame containing only a minibuffer window. */ |
286 | 263 |
765 | 264 struct frame * |
265 make_minibuffer_frame () | |
286 | 266 { |
765 | 267 /* First make a frame containing just a root window, no minibuffer. */ |
286 | 268 |
765 | 269 register struct frame *f = make_frame (0); |
286 | 270 register Lisp_Object mini_window; |
765 | 271 register Lisp_Object frame; |
286 | 272 |
765 | 273 XSET (frame, Lisp_Frame, f); |
286 | 274 |
1006
a13ee72d74a2
* frame.c (make_frame): Clear the explicit_name member of the new
Jim Blandy <jimb@redhat.com>
parents:
987
diff
changeset
|
275 f->auto_raise = 0; |
765 | 276 f->auto_lower = 0; |
277 f->no_split = 1; | |
278 f->wants_modeline = 0; | |
279 f->has_minibuffer = 1; | |
286 | 280 |
281 /* Now label the root window as also being the minibuffer. | |
282 Avoid infinite looping on the window chain by marking next pointer | |
283 as nil. */ | |
284 | |
765 | 285 mini_window = f->minibuffer_window = f->root_window; |
286 | 286 XWINDOW (mini_window)->mini_p = Qt; |
287 XWINDOW (mini_window)->next = Qnil; | |
1006
a13ee72d74a2
* frame.c (make_frame): Clear the explicit_name member of the new
Jim Blandy <jimb@redhat.com>
parents:
987
diff
changeset
|
288 XWINDOW (mini_window)->prev = Qnil; |
765 | 289 XWINDOW (mini_window)->frame = frame; |
286 | 290 |
291 /* Put the proper buffer in that window. */ | |
292 | |
293 Fset_window_buffer (mini_window, | |
485 | 294 (NILP (Vminibuffer_list) |
286 | 295 ? get_minibuffer (0) |
296 : Fcar (Vminibuffer_list))); | |
765 | 297 return f; |
286 | 298 } |
299 | |
765 | 300 /* Construct a frame that refers to the terminal (stdin and stdout). */ |
286 | 301 |
765 | 302 struct frame * |
303 make_terminal_frame () | |
286 | 304 { |
765 | 305 register struct frame *f; |
286 | 306 |
765 | 307 Vframe_list = Qnil; |
308 f = make_frame (1); | |
309 f->name = build_string ("terminal"); | |
310 f->visible = 1; | |
311 f->display.nothing = 1; /* Nonzero means frame isn't deleted. */ | |
312 XSET (Vterminal_frame, Lisp_Frame, f); | |
313 return f; | |
286 | 314 } |
315 | |
765 | 316 DEFUN ("select-frame", Fselect_frame, Sselect_frame, 1, 2, 0, |
317 "Select the frame FRAME. FRAMES's selected window becomes \"the\"\n\ | |
363 | 318 selected window. If the optional parameter NO-ENTER is non-nil, don't\n\ |
765 | 319 focus on that frame.") |
320 (frame, no_enter) | |
321 Lisp_Object frame, no_enter; | |
286 | 322 { |
765 | 323 CHECK_LIVE_FRAME (frame, 0); |
286 | 324 |
765 | 325 if (selected_frame == XFRAME (frame)) |
326 return frame; | |
286 | 327 |
765 | 328 selected_frame = XFRAME (frame); |
329 if (! FRAME_MINIBUF_ONLY_P (selected_frame)) | |
330 last_nonminibuf_frame = selected_frame; | |
363 | 331 |
765 | 332 Fselect_window (XFRAME (frame)->selected_window); |
286 | 333 |
334 #ifdef HAVE_X_WINDOWS | |
765 | 335 #ifdef MULTI_FRAME |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
336 if (FRAME_X_P (XFRAME (frame)) |
485 | 337 && NILP (no_enter)) |
286 | 338 { |
765 | 339 Ffocus_frame (frame); |
286 | 340 } |
341 #endif | |
342 #endif | |
765 | 343 choose_minibuf_frame (); |
286 | 344 |
765 | 345 return frame; |
286 | 346 } |
347 | |
765 | 348 DEFUN ("selected-frame", Fselected_frame, Sselected_frame, 0, 0, 0, |
349 "Return the frame that is now selected.") | |
286 | 350 () |
351 { | |
352 Lisp_Object tem; | |
765 | 353 XSET (tem, Lisp_Frame, selected_frame); |
286 | 354 return tem; |
355 } | |
356 | |
765 | 357 DEFUN ("window-frame", Fwindow_frame, Swindow_frame, 1, 1, 0, |
358 "Return the frame object that window WINDOW is on.") | |
286 | 359 (window) |
360 Lisp_Object window; | |
361 { | |
362 CHECK_WINDOW (window, 0); | |
765 | 363 return XWINDOW (window)->frame; |
286 | 364 } |
365 | |
765 | 366 DEFUN ("frame-root-window", Fframe_root_window, Sframe_root_window, 0, 1, 0, |
367 "Returns the root-window of FRAME.") | |
368 (frame) | |
369 Lisp_Object frame; | |
286 | 370 { |
765 | 371 if (NILP (frame)) |
372 XSET (frame, Lisp_Frame, selected_frame); | |
454 | 373 else |
765 | 374 CHECK_LIVE_FRAME (frame, 0); |
286 | 375 |
765 | 376 return XFRAME (frame)->root_window; |
286 | 377 } |
378 | |
765 | 379 DEFUN ("frame-selected-window", Fframe_selected_window, |
380 Sframe_selected_window, 0, 1, 0, | |
381 "Return the selected window of frame object FRAME.") | |
382 (frame) | |
383 Lisp_Object frame; | |
286 | 384 { |
765 | 385 if (NILP (frame)) |
386 XSET (frame, Lisp_Frame, selected_frame); | |
454 | 387 else |
765 | 388 CHECK_LIVE_FRAME (frame, 0); |
286 | 389 |
765 | 390 return XFRAME (frame)->selected_window; |
286 | 391 } |
392 | |
765 | 393 DEFUN ("frame-list", Fframe_list, Sframe_list, |
286 | 394 0, 0, 0, |
765 | 395 "Return a list of all frames.") |
286 | 396 () |
397 { | |
765 | 398 return Fcopy_sequence (Vframe_list); |
286 | 399 } |
400 | |
765 | 401 #ifdef MULTI_FRAME |
454 | 402 |
765 | 403 /* Return the next frame in the frame list after FRAME. |
404 If MINIBUF is nil, exclude minibuffer-only frames. | |
405 If MINIBUF is a window, include only frames using that window for | |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
406 their minibuffer. |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
407 If MINIBUF is non-nil, and not a window, include all frames. */ |
286 | 408 Lisp_Object |
765 | 409 next_frame (frame, minibuf) |
410 Lisp_Object frame; | |
454 | 411 Lisp_Object minibuf; |
286 | 412 { |
413 Lisp_Object tail; | |
414 int passed = 0; | |
415 | |
765 | 416 /* There must always be at least one frame in Vframe_list. */ |
417 if (! CONSP (Vframe_list)) | |
454 | 418 abort (); |
419 | |
286 | 420 while (1) |
765 | 421 for (tail = Vframe_list; CONSP (tail); tail = XCONS (tail)->cdr) |
286 | 422 { |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
423 Lisp_Object f = XCONS (tail)->car; |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
424 |
286 | 425 if (passed) |
363 | 426 { |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
427 /* Decide whether this frame is eligible to be returned. */ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
428 |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
429 /* If we've looped all the way around without finding any |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
430 eligible frames, return the original frame. */ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
431 if (EQ (f, frame)) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
432 return f; |
335 | 433 |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
434 /* Let minibuf decide if this frame is acceptable. */ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
435 if (NILP (minibuf)) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
436 { |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
437 if (! FRAME_MINIBUF_ONLY_P (XFRAME (f))) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
438 return f; |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
439 } |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
440 else if (XTYPE (minibuf) == Lisp_Window) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
441 { |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
442 if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf)) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
443 return f; |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
444 } |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
445 else |
765 | 446 return f; |
363 | 447 } |
286 | 448 |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
449 if (EQ (frame, f)) |
286 | 450 passed++; |
451 } | |
452 } | |
453 | |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
454 #if 0 |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
455 /* Nobody seems to be using this code right now. */ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
456 |
765 | 457 /* Return the previous frame in the frame list before FRAME. |
458 If MINIBUF is nil, exclude minibuffer-only frames. | |
459 If MINIBUF is a window, include only frames using that window for | |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
460 their minibuffer. |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
461 If MINIBUF is non-nil and not a window, include all frames. */ |
286 | 462 Lisp_Object |
765 | 463 prev_frame (frame, minibuf) |
464 Lisp_Object frame; | |
454 | 465 Lisp_Object minibuf; |
286 | 466 { |
467 Lisp_Object tail; | |
468 Lisp_Object prev; | |
469 | |
765 | 470 /* There must always be at least one frame in Vframe_list. */ |
471 if (! CONSP (Vframe_list)) | |
454 | 472 abort (); |
473 | |
286 | 474 prev = Qnil; |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
475 for (tail = Vframe_list; CONSP (tail); tail = XCONS (tail)->cdr) |
454 | 476 { |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
477 Lisp_Object f = XCONS (tail)->car; |
454 | 478 |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
479 if (XTYPE (f) != Lisp_Frame) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
480 abort (); |
454 | 481 |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
482 if (EQ (frame, f) && !NILP (prev)) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
483 return prev; |
454 | 484 |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
485 /* Decide whether this frame is eligible to be returned, |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
486 according to minibuf. */ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
487 if (NILP (minibuf)) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
488 { |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
489 if (! FRAME_MINIBUF_ONLY_P (XFRAME (f))) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
490 prev = f; |
454 | 491 } |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
492 else if (XTYPE (minibuf) == Lisp_Window) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
493 { |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
494 if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf)) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
495 prev = f; |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
496 } |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
497 else |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
498 prev = f; |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
499 } |
454 | 500 |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
501 /* We've scanned the entire list. */ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
502 if (NILP (prev)) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
503 /* We went through the whole frame list without finding a single |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
504 acceptable frame. Return the original frame. */ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
505 return frame; |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
506 else |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
507 /* There were no acceptable frames in the list before FRAME; otherwise, |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
508 we would have returned directly from the loop. Since PREV is the last |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
509 acceptable frame in the list, return it. */ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
510 return prev; |
286 | 511 } |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
512 #endif |
286 | 513 |
765 | 514 DEFUN ("next-frame", Fnext_frame, Snext_frame, 0, 2, 0, |
515 "Return the next frame in the frame list after FRAME.\n\ | |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
516 If omitted, FRAME defaults to the selected frame.\n\ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
517 If optional argument MINIBUF is nil or omitted, exclude minibuffer-only frames.\n\ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
518 If MINIBUF is a window, include only frames using that window for their\n\ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
519 minibuffer.\n\ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
520 If MINIBUF is non-nil and not a window, include all frames.") |
765 | 521 (frame, miniframe) |
522 Lisp_Object frame, miniframe; | |
286 | 523 { |
524 Lisp_Object tail; | |
525 | |
765 | 526 if (NILP (frame)) |
527 XSET (frame, Lisp_Frame, selected_frame); | |
454 | 528 else |
765 | 529 CHECK_LIVE_FRAME (frame, 0); |
286 | 530 |
765 | 531 return next_frame (frame, miniframe); |
286 | 532 } |
765 | 533 #endif /* MULTI_FRAME */ |
286 | 534 |
765 | 535 DEFUN ("delete-frame", Fdelete_frame, Sdelete_frame, 0, 1, "", |
536 "Delete FRAME, permanently eliminating it from use.\n\ | |
537 If omitted, FRAME defaults to the selected frame.\n\ | |
538 A frame may not be deleted if its minibuffer is used by other frames.") | |
539 (frame) | |
540 Lisp_Object frame; | |
286 | 541 { |
765 | 542 struct frame *f; |
286 | 543 union display displ; |
544 | |
765 | 545 if (EQ (frame, Qnil)) |
286 | 546 { |
765 | 547 f = selected_frame; |
548 XSET (frame, Lisp_Frame, f); | |
286 | 549 } |
550 else | |
551 { | |
765 | 552 CHECK_FRAME (frame, 0); |
553 f = XFRAME (frame); | |
286 | 554 } |
555 | |
765 | 556 if (! FRAME_LIVE_P (f)) |
454 | 557 return; |
558 | |
765 | 559 /* Are there any other frames besides this one? */ |
560 if (f == selected_frame && EQ (next_frame (frame, Qt), frame)) | |
561 error ("Attempt to delete the only frame"); | |
286 | 562 |
765 | 563 /* Does this frame have a minibuffer, and is it the surrogate |
564 minibuffer for any other frame? */ | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
565 if (FRAME_HAS_MINIBUF_P (XFRAME (frame))) |
363 | 566 { |
765 | 567 Lisp_Object frames; |
708 | 568 |
765 | 569 for (frames = Vframe_list; |
570 CONSP (frames); | |
571 frames = XCONS (frames)->cdr) | |
708 | 572 { |
765 | 573 Lisp_Object this = XCONS (frames)->car; |
363 | 574 |
765 | 575 if (! EQ (this, frame) |
576 && EQ (frame, | |
577 (WINDOW_FRAME | |
708 | 578 (XWINDOW |
765 | 579 (FRAME_MINIBUF_WINDOW |
580 (XFRAME (this))))))) | |
581 error ("Attempt to delete a surrogate minibuffer frame"); | |
708 | 582 } |
286 | 583 } |
584 | |
765 | 585 /* Don't let the frame remain selected. */ |
586 if (f == selected_frame) | |
587 Fselect_frame (next_frame (frame, Qt)); | |
286 | 588 |
765 | 589 /* Don't allow minibuf_window to remain on a deleted frame. */ |
590 if (EQ (f->minibuffer_window, minibuf_window)) | |
286 | 591 { |
765 | 592 Fset_window_buffer (selected_frame->minibuffer_window, |
286 | 593 XWINDOW (minibuf_window)->buffer); |
765 | 594 minibuf_window = selected_frame->minibuffer_window; |
286 | 595 } |
596 | |
765 | 597 Vframe_list = Fdelq (frame, Vframe_list); |
598 f->visible = 0; | |
599 displ = f->display; | |
600 f->display.nothing = 0; | |
286 | 601 |
363 | 602 #ifdef HAVE_X_WINDOWS |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
603 if (FRAME_X_P (f)) |
765 | 604 x_destroy_window (f, displ); |
363 | 605 #endif |
606 | |
765 | 607 /* If we've deleted the last_nonminibuf_frame, then try to find |
363 | 608 another one. */ |
765 | 609 if (f == last_nonminibuf_frame) |
363 | 610 { |
765 | 611 Lisp_Object frames; |
708 | 612 |
765 | 613 last_nonminibuf_frame = 0; |
363 | 614 |
765 | 615 for (frames = Vframe_list; |
616 CONSP (frames); | |
617 frames = XCONS (frames)->cdr) | |
363 | 618 { |
765 | 619 f = XFRAME (XCONS (frames)->car); |
620 if (!FRAME_MINIBUF_ONLY_P (f)) | |
363 | 621 { |
765 | 622 last_nonminibuf_frame = f; |
363 | 623 break; |
624 } | |
625 } | |
626 } | |
286 | 627 |
765 | 628 /* If we've deleted Vdefault_minibuffer_frame, try to find another |
629 one. Prefer minibuffer-only frames, but also notice frames | |
708 | 630 with other windows. */ |
765 | 631 if (EQ (frame, Vdefault_minibuffer_frame)) |
708 | 632 { |
765 | 633 Lisp_Object frames; |
708 | 634 |
765 | 635 /* The last frame we saw with a minibuffer, minibuffer-only or not. */ |
636 Lisp_Object frame_with_minibuf = Qnil; | |
708 | 637 |
765 | 638 for (frames = Vframe_list; |
639 CONSP (frames); | |
640 frames = XCONS (frames)->cdr) | |
708 | 641 { |
765 | 642 Lisp_Object this = XCONS (frames)->car; |
708 | 643 |
765 | 644 if (XTYPE (this) != Lisp_Frame) |
708 | 645 abort (); |
765 | 646 f = XFRAME (this); |
708 | 647 |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
648 if (FRAME_HAS_MINIBUF_P (f)) |
708 | 649 { |
765 | 650 frame_with_minibuf = this; |
651 if (FRAME_MINIBUF_ONLY_P (f)) | |
708 | 652 break; |
653 } | |
654 } | |
655 | |
765 | 656 /* We know that there must be some frame with a minibuffer out |
657 there. If this were not true, all of the frames present | |
708 | 658 would have to be minibufferless, which implies that at some |
765 | 659 point their minibuffer frames must have been deleted, but |
708 | 660 that is prohibited at the top; you can't delete surrogate |
765 | 661 minibuffer frames. */ |
662 if (NILP (frame_with_minibuf)) | |
708 | 663 abort (); |
664 | |
765 | 665 Vdefault_minibuffer_frame = frame_with_minibuf; |
708 | 666 } |
667 | |
286 | 668 return Qnil; |
669 } | |
670 | |
671 /* Return mouse position in character cell units. */ | |
672 | |
454 | 673 DEFUN ("mouse-position", Fmouse_position, Smouse_position, 0, 0, 0, |
765 | 674 "Return a list (FRAME X . Y) giving the current mouse frame and position.\n\ |
454 | 675 If Emacs is running on a mouseless terminal or hasn't been programmed\n\ |
765 | 676 to read the mouse position, it returns the selected frame for FRAME\n\ |
454 | 677 and nil for X and Y.") |
678 () | |
286 | 679 { |
454 | 680 Lisp_Object x, y, dummy; |
765 | 681 FRAME_PTR f; |
286 | 682 |
454 | 683 if (mouse_position_hook) |
765 | 684 (*mouse_position_hook) (&f, &x, &y, &dummy); |
454 | 685 else |
686 { | |
765 | 687 f = selected_frame; |
454 | 688 x = y = Qnil; |
689 } | |
286 | 690 |
765 | 691 XSET (dummy, Lisp_Frame, f); |
454 | 692 return Fcons (dummy, Fcons (make_number (x), make_number (y))); |
286 | 693 } |
694 | |
695 DEFUN ("set-mouse-position", Fset_mouse_position, Sset_mouse_position, 3, 3, 0, | |
765 | 696 "Move the mouse pointer to the center of cell (X,Y) in FRAME.\n\ |
697 WARNING: If you use this under X, you should do `unfocus-frame' afterwards.") | |
698 (frame, x, y) | |
699 Lisp_Object frame, x, y; | |
286 | 700 { |
765 | 701 CHECK_LIVE_FRAME (frame, 0); |
286 | 702 CHECK_NUMBER (x, 2); |
703 CHECK_NUMBER (y, 1); | |
704 | |
705 #ifdef HAVE_X_WINDOWS | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
706 if (FRAME_X_P (XFRAME (frame))) |
286 | 707 /* Warping the mouse will cause enternotify and focus events. */ |
765 | 708 x_set_mouse_position (XFRAME (frame), x, y); |
286 | 709 #endif |
710 | |
711 return Qnil; | |
712 } | |
713 | |
714 #if 0 | |
715 /* ??? Can this be replaced with a Lisp function? | |
756 | 716 It is used in minibuf.c. Can we get rid of that? |
717 Yes. All uses in minibuf.c are gone, and parallels to these | |
765 | 718 functions have been defined in frame.el. */ |
286 | 719 |
765 | 720 DEFUN ("frame-configuration", Fframe_configuration, Sframe_configuration, |
286 | 721 0, 0, 0, |
765 | 722 "Return object describing current frame configuration.\n\ |
723 The frame configuration is the current mouse position and selected frame.\n\ | |
724 This object can be given to `restore-frame-configuration'\n\ | |
725 to restore this frame configuration.") | |
286 | 726 () |
727 { | |
454 | 728 Lisp_Object c, time; |
286 | 729 |
454 | 730 c = Fmake_vector (make_number(4), Qnil); |
765 | 731 XVECTOR (c)->contents[0] = Fselected_frame(); |
454 | 732 if (mouse_position_hook) |
733 (*mouse_position_hook) (&XVECTOR (c)->contents[1] | |
734 &XVECTOR (c)->contents[2], | |
735 &XVECTOR (c)->contents[3], | |
736 &time); | |
286 | 737 return c; |
738 } | |
739 | |
765 | 740 DEFUN ("restore-frame-configuration", Frestore_frame_configuration, |
741 Srestore_frame_configuration, | |
286 | 742 1, 1, 0, |
765 | 743 "Restores frame configuration CONFIGURATION.") |
286 | 744 (config) |
745 Lisp_Object config; | |
746 { | |
765 | 747 Lisp_Object x_pos, y_pos, frame; |
286 | 748 |
749 CHECK_VECTOR (config, 0); | |
750 if (XVECTOR (config)->size != 3) | |
751 { | |
765 | 752 error ("Wrong size vector passed to restore-frame-configuration"); |
286 | 753 } |
765 | 754 frame = XVECTOR (config)->contents[0]; |
755 CHECK_LIVE_FRAME (frame, 0); | |
286 | 756 |
765 | 757 Fselect_frame (frame, Qnil); |
286 | 758 |
759 #if 0 | |
765 | 760 /* This seems to interfere with the frame selection mechanism. jla */ |
454 | 761 x_pos = XVECTOR (config)->contents[2]; |
762 y_pos = XVECTOR (config)->contents[3]; | |
765 | 763 set_mouse_position (frame, XINT (x_pos), XINT (y_pos)); |
286 | 764 #endif |
765 | |
765 | 766 return frame; |
286 | 767 } |
768 #endif | |
769 | |
765 | 770 DEFUN ("make-frame-visible", Fmake_frame_visible, Smake_frame_visible, |
872 | 771 0, 1, 0, |
765 | 772 "Make the frame FRAME visible (assuming it is an X-window).\n\ |
773 Also raises the frame so that nothing obscures it.") | |
774 (frame) | |
775 Lisp_Object frame; | |
286 | 776 { |
872 | 777 if (NILP (frame)) |
886 | 778 XSET (frame, Lisp_Frame, selected_frame); |
872 | 779 |
765 | 780 CHECK_LIVE_FRAME (frame, 0); |
286 | 781 |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
782 #ifdef HAVE_X_WINDOWS |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
783 if (FRAME_X_P (XFRAME (frame))) |
765 | 784 x_make_frame_visible (XFRAME (frame)); |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
785 #endif |
286 | 786 |
765 | 787 return frame; |
286 | 788 } |
789 | |
765 | 790 DEFUN ("make-frame-invisible", Fmake_frame_invisible, Smake_frame_invisible, |
872 | 791 0, 1, "", |
765 | 792 "Make the frame FRAME invisible (assuming it is an X-window).") |
793 (frame) | |
794 Lisp_Object frame; | |
286 | 795 { |
872 | 796 if (NILP (frame)) |
886 | 797 XSET (frame, Lisp_Frame, selected_frame); |
872 | 798 |
765 | 799 CHECK_LIVE_FRAME (frame, 0); |
286 | 800 |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
801 #ifdef HAVE_X_WINDOWS |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
802 if (FRAME_X_P (XFRAME (frame))) |
765 | 803 x_make_frame_invisible (XFRAME (frame)); |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
804 #endif |
286 | 805 |
806 return Qnil; | |
807 } | |
808 | |
765 | 809 DEFUN ("iconify-frame", Ficonify_frame, Siconify_frame, |
872 | 810 0, 1, "", |
765 | 811 "Make the frame FRAME into an icon.") |
812 (frame) | |
813 Lisp_Object frame; | |
286 | 814 { |
872 | 815 if (NILP (frame)) |
886 | 816 XSET (frame, Lisp_Frame, selected_frame); |
872 | 817 |
765 | 818 CHECK_LIVE_FRAME (frame, 0); |
286 | 819 |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
820 #ifdef HAVE_X_WINDOWS |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
821 if (FRAME_X_P (XFRAME (frame))) |
765 | 822 x_iconify_frame (XFRAME (frame)); |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
823 #endif |
286 | 824 |
825 return Qnil; | |
826 } | |
827 | |
765 | 828 DEFUN ("frame-visible-p", Fframe_visible_p, Sframe_visible_p, |
286 | 829 1, 1, 0, |
765 | 830 "Return t if FRAME is now \"visible\" (actually in use for display).\n\ |
831 A frame that is not \"visible\" is not updated and, if it works through\n\ | |
286 | 832 a window system, it may not show at all.\n\ |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
833 Return the symbol `icon' if frame is visible only as an icon.") |
765 | 834 (frame) |
835 Lisp_Object frame; | |
286 | 836 { |
765 | 837 CHECK_LIVE_FRAME (frame, 0); |
286 | 838 |
765 | 839 if (XFRAME (frame)->visible) |
286 | 840 return Qt; |
765 | 841 if (XFRAME (frame)->iconified) |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
842 return Qicon; |
286 | 843 return Qnil; |
844 } | |
845 | |
765 | 846 DEFUN ("visible-frame-list", Fvisible_frame_list, Svisible_frame_list, |
286 | 847 0, 0, 0, |
765 | 848 "Return a list of all frames now \"visible\" (being updated).") |
286 | 849 () |
850 { | |
765 | 851 Lisp_Object tail, frame; |
852 struct frame *f; | |
286 | 853 Lisp_Object value; |
854 | |
855 value = Qnil; | |
765 | 856 for (tail = Vframe_list; CONSP (tail); tail = XCONS (tail)->cdr) |
286 | 857 { |
765 | 858 frame = XCONS (tail)->car; |
859 if (XTYPE (frame) != Lisp_Frame) | |
286 | 860 continue; |
765 | 861 f = XFRAME (frame); |
862 if (f->visible) | |
863 value = Fcons (frame, value); | |
286 | 864 } |
865 return value; | |
866 } | |
363 | 867 |
868 | |
869 | |
765 | 870 DEFUN ("redirect-frame-focus", Fredirect_frame_focus, Sredirect_frame_focus, |
363 | 871 1, 2, 0, |
765 | 872 "Arrange for keystrokes typed at FRAME to be sent to FOCUS-FRAME.\n\ |
873 This means that, after reading a keystroke typed at FRAME,\n\ | |
874 `last-event-frame' will be FOCUS-FRAME.\n\ | |
363 | 875 \n\ |
765 | 876 If FOCUS-FRAME is omitted or eq to FRAME, any existing redirection is\n\ |
877 cancelled, and the frame again receives its own keystrokes.\n\ | |
363 | 878 \n\ |
765 | 879 The redirection lasts until the next call to `redirect-frame-focus'\n\ |
880 or `select-frame'.\n\ | |
363 | 881 \n\ |
882 This is useful for temporarily redirecting keystrokes to the minibuffer\n\ | |
765 | 883 window when a frame doesn't have its own minibuffer.") |
884 (frame, focus_frame) | |
885 Lisp_Object frame, focus_frame; | |
363 | 886 { |
765 | 887 CHECK_LIVE_FRAME (frame, 0); |
454 | 888 |
765 | 889 if (NILP (focus_frame)) |
890 focus_frame = frame; | |
363 | 891 else |
765 | 892 CHECK_LIVE_FRAME (focus_frame, 1); |
363 | 893 |
765 | 894 XFRAME (frame)->focus_frame = focus_frame; |
363 | 895 |
765 | 896 if (frame_rehighlight_hook) |
897 (*frame_rehighlight_hook) (); | |
363 | 898 |
899 return Qnil; | |
900 } | |
901 | |
902 | |
765 | 903 DEFUN ("frame-focus", Fframe_focus, Sframe_focus, 1, 1, 0, |
904 "Return the frame to which FRAME's keystrokes are currently being sent.\n\ | |
905 See `redirect-frame-focus'.") | |
906 (frame) | |
907 Lisp_Object frame; | |
363 | 908 { |
765 | 909 CHECK_LIVE_FRAME (frame, 0); |
910 return FRAME_FOCUS_FRAME (XFRAME (frame)); | |
363 | 911 } |
912 | |
913 | |
286 | 914 |
915 Lisp_Object | |
765 | 916 get_frame_param (frame, prop) |
917 register struct frame *frame; | |
286 | 918 Lisp_Object prop; |
919 { | |
920 register Lisp_Object tem; | |
921 | |
765 | 922 tem = Fassq (prop, frame->param_alist); |
286 | 923 if (EQ (tem, Qnil)) |
924 return tem; | |
925 return Fcdr (tem); | |
926 } | |
927 | |
928 void | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
929 store_in_alist (alistptr, prop, val) |
286 | 930 Lisp_Object *alistptr, val; |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
931 Lisp_Object prop; |
286 | 932 { |
933 register Lisp_Object tem; | |
934 | |
935 tem = Fassq (prop, *alistptr); | |
936 if (EQ (tem, Qnil)) | |
937 *alistptr = Fcons (Fcons (prop, val), *alistptr); | |
938 else | |
939 Fsetcdr (tem, val); | |
940 } | |
941 | |
942 void | |
765 | 943 store_frame_param (f, prop, val) |
944 struct frame *f; | |
286 | 945 Lisp_Object prop, val; |
946 { | |
947 register Lisp_Object tem; | |
948 | |
765 | 949 tem = Fassq (prop, f->param_alist); |
286 | 950 if (EQ (tem, Qnil)) |
765 | 951 f->param_alist = Fcons (Fcons (prop, val), f->param_alist); |
286 | 952 else |
953 Fsetcdr (tem, val); | |
539 | 954 |
955 if (EQ (prop, Qminibuffer) | |
956 && XTYPE (val) == Lisp_Window) | |
957 { | |
958 if (! MINI_WINDOW_P (XWINDOW (val))) | |
959 error ("Surrogate minibuffer windows must be minibuffer windows."); | |
960 | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
961 if (FRAME_HAS_MINIBUF_P (f) || FRAME_MINIBUF_ONLY_P (f)) |
765 | 962 error ("Can't change the surrogate minibuffer of a frame with its own minibuffer."); |
539 | 963 |
964 /* Install the chosen minibuffer window, with proper buffer. */ | |
765 | 965 f->minibuffer_window = val; |
539 | 966 } |
286 | 967 } |
968 | |
765 | 969 DEFUN ("frame-parameters", Fframe_parameters, Sframe_parameters, 0, 1, 0, |
970 "Return the parameters-alist of frame FRAME.\n\ | |
286 | 971 It is a list of elements of the form (PARM . VALUE), where PARM is a symbol.\n\ |
777 | 972 The meaningful PARMs depend on the kind of frame.\n\ |
973 If FRAME is omitted, return information on the currently selected frame.") | |
765 | 974 (frame) |
975 Lisp_Object frame; | |
286 | 976 { |
977 Lisp_Object alist; | |
765 | 978 struct frame *f; |
286 | 979 |
765 | 980 if (EQ (frame, Qnil)) |
981 f = selected_frame; | |
286 | 982 else |
983 { | |
765 | 984 CHECK_FRAME (frame, 0); |
985 f = XFRAME (frame); | |
286 | 986 } |
987 | |
765 | 988 if (f->display.nothing == 0) |
286 | 989 return Qnil; |
990 | |
765 | 991 alist = Fcopy_alist (f->param_alist); |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
992 store_in_alist (&alist, Qname, f->name); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
993 store_in_alist (&alist, Qheight, make_number (f->height)); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
994 store_in_alist (&alist, Qwidth, make_number (f->width)); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
995 store_in_alist (&alist, Qmodeline, (f->wants_modeline ? Qt : Qnil)); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
996 store_in_alist (&alist, Qminibuffer, |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
997 (! FRAME_HAS_MINIBUF_P (f) ? Qnone |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
998 : (FRAME_MINIBUF_ONLY_P (f) ? Qonly |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
999 : FRAME_MINIBUF_WINDOW (f)))); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1000 store_in_alist (&alist, Qunsplittable, (f->no_split ? Qt : Qnil)); |
286 | 1001 |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1002 #ifdef HAVE_X_WINDOWS |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1003 if (FRAME_X_P (f)) |
765 | 1004 x_report_frame_params (f, &alist); |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1005 #endif |
286 | 1006 return alist; |
1007 } | |
1008 | |
765 | 1009 DEFUN ("modify-frame-parameters", Fmodify_frame_parameters, |
1010 Smodify_frame_parameters, 2, 2, 0, | |
1011 "Modify the parameters of frame FRAME according to ALIST.\n\ | |
286 | 1012 ALIST is an alist of parameters to change and their new values.\n\ |
1013 Each element of ALIST has the form (PARM . VALUE), where PARM is a symbol.\n\ | |
765 | 1014 The meaningful PARMs depend on the kind of frame; undefined PARMs are ignored.") |
1015 (frame, alist) | |
1016 Lisp_Object frame, alist; | |
286 | 1017 { |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1018 FRAME_PTR f; |
286 | 1019 register Lisp_Object tail, elt, prop, val; |
1020 | |
765 | 1021 if (EQ (frame, Qnil)) |
1022 f = selected_frame; | |
286 | 1023 else |
1024 { | |
765 | 1025 CHECK_LIVE_FRAME (frame, 0); |
1026 f = XFRAME (frame); | |
286 | 1027 } |
1028 | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1029 #ifdef HAVE_X_WINDOWS |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1030 if (FRAME_X_P (f)) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1031 #if 1 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1032 x_set_frame_parameters (f, alist); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1033 #else |
286 | 1034 for (tail = alist; !EQ (tail, Qnil); tail = Fcdr (tail)) |
1035 { | |
1036 elt = Fcar (tail); | |
1037 prop = Fcar (elt); | |
1038 val = Fcdr (elt); | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1039 x_set_frame_param (f, prop, val, get_frame_param (f, prop)); |
765 | 1040 store_frame_param (f, prop, val); |
286 | 1041 } |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1042 #endif |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1043 #endif |
286 | 1044 |
1045 return Qnil; | |
1046 } | |
1047 | |
1048 | |
777 | 1049 #if 0 |
1050 /* This function isn't useful enough by itself to include; we need to | |
1051 add functions to allow the user to find the size of a font before | |
1052 this is actually useful. */ | |
1053 | |
765 | 1054 DEFUN ("frame-pixel-size", Fframe_pixel_size, |
1055 Sframe_pixel_size, 1, 1, 0, | |
1056 "Return a cons (width . height) of FRAME's size in pixels.") | |
1057 (frame) | |
1058 Lisp_Object frame; | |
286 | 1059 { |
765 | 1060 register struct frame *f; |
286 | 1061 int width, height; |
1062 | |
765 | 1063 CHECK_LIVE_FRAME (frame, 0); |
1064 f = XFRAME (frame); | |
286 | 1065 |
765 | 1066 return Fcons (make_number (x_pixel_width (f)), |
1067 make_number (x_pixel_height (f))); | |
286 | 1068 } |
777 | 1069 #endif |
1070 | |
1071 #if 0 | |
1072 /* These functions have no C callers, and can be written nicely in lisp. */ | |
286 | 1073 |
765 | 1074 DEFUN ("frame-height", Fframe_height, Sframe_height, 0, 0, 0, |
1075 "Return number of lines available for display on selected frame.") | |
286 | 1076 () |
1077 { | |
765 | 1078 return make_number (FRAME_HEIGHT (selected_frame)); |
286 | 1079 } |
1080 | |
765 | 1081 DEFUN ("frame-width", Fframe_width, Sframe_width, 0, 0, 0, |
1082 "Return number of columns available for display on selected frame.") | |
286 | 1083 () |
1084 { | |
765 | 1085 return make_number (FRAME_WIDTH (selected_frame)); |
286 | 1086 } |
777 | 1087 #endif |
286 | 1088 |
765 | 1089 DEFUN ("set-frame-height", Fset_frame_height, Sset_frame_height, 2, 3, 0, |
1090 "Specify that the frame FRAME has LINES lines.\n\ | |
286 | 1091 Optional third arg non-nil means that redisplay should use LINES lines\n\ |
765 | 1092 but that the idea of the actual height of the frame should not be changed.") |
1093 (frame, rows, pretend) | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1094 Lisp_Object frame, rows, pretend; |
286 | 1095 { |
765 | 1096 register struct frame *f; |
286 | 1097 |
1098 CHECK_NUMBER (rows, 0); | |
765 | 1099 if (NILP (frame)) |
1100 f = selected_frame; | |
286 | 1101 else |
1102 { | |
765 | 1103 CHECK_LIVE_FRAME (frame, 0); |
1104 f = XFRAME (frame); | |
286 | 1105 } |
1106 | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1107 #ifdef HAVE_X_WINDOWS |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1108 if (FRAME_X_P (f)) |
286 | 1109 { |
765 | 1110 if (XINT (rows) != f->width) |
1111 x_set_window_size (f, f->width, XINT (rows)); | |
286 | 1112 } |
1113 else | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1114 #endif |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1115 change_frame_size (f, XINT (rows), 0, !NILP (pretend), 0); |
286 | 1116 return Qnil; |
1117 } | |
1118 | |
765 | 1119 DEFUN ("set-frame-width", Fset_frame_width, Sset_frame_width, 2, 3, 0, |
1120 "Specify that the frame FRAME has COLS columns.\n\ | |
286 | 1121 Optional third arg non-nil means that redisplay should use COLS columns\n\ |
765 | 1122 but that the idea of the actual width of the frame should not be changed.") |
1123 (frame, cols, pretend) | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1124 Lisp_Object frame, cols, pretend; |
286 | 1125 { |
765 | 1126 register struct frame *f; |
286 | 1127 CHECK_NUMBER (cols, 0); |
765 | 1128 if (NILP (frame)) |
1129 f = selected_frame; | |
286 | 1130 else |
1131 { | |
765 | 1132 CHECK_LIVE_FRAME (frame, 0); |
1133 f = XFRAME (frame); | |
286 | 1134 } |
1135 | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1136 #ifdef HAVE_X_WINDOWS |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1137 if (FRAME_X_P (f)) |
286 | 1138 { |
765 | 1139 if (XINT (cols) != f->width) |
1140 x_set_window_size (f, XINT (cols), f->height); | |
286 | 1141 } |
1142 else | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1143 #endif |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1144 change_frame_size (f, 0, XINT (cols), !NILP (pretend), 0); |
286 | 1145 return Qnil; |
1146 } | |
1147 | |
765 | 1148 DEFUN ("set-frame-size", Fset_frame_size, Sset_frame_size, 3, 3, 0, |
1149 "Sets size of FRAME to COLS by ROWS, measured in characters.") | |
1150 (frame, cols, rows) | |
1151 Lisp_Object frame, cols, rows; | |
286 | 1152 { |
765 | 1153 register struct frame *f; |
286 | 1154 int mask; |
1155 | |
765 | 1156 CHECK_LIVE_FRAME (frame, 0); |
286 | 1157 CHECK_NUMBER (cols, 2); |
1158 CHECK_NUMBER (rows, 1); | |
765 | 1159 f = XFRAME (frame); |
286 | 1160 |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1161 #ifdef HAVE_X_WINDOWS |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1162 if (FRAME_X_P (f)) |
286 | 1163 { |
765 | 1164 if (XINT (rows) != f->height || XINT (cols) != f->width) |
1165 x_set_window_size (f, XINT (cols), XINT (rows)); | |
286 | 1166 } |
1167 else | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1168 #endif |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1169 change_frame_size (f, XINT (rows), XINT (cols), 0, 0); |
286 | 1170 |
1171 return Qnil; | |
1172 } | |
1173 | |
765 | 1174 DEFUN ("set-frame-position", Fset_frame_position, |
1175 Sset_frame_position, 3, 3, 0, | |
1176 "Sets position of FRAME in pixels to XOFFSET by YOFFSET.\n\ | |
454 | 1177 If XOFFSET or YOFFSET are negative, they are interpreted relative to\n\ |
765 | 1178 the leftmost or bottommost position FRAME could occupy without going\n\ |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1179 off the screen.") |
765 | 1180 (frame, xoffset, yoffset) |
1181 Lisp_Object frame, xoffset, yoffset; | |
286 | 1182 { |
765 | 1183 register struct frame *f; |
286 | 1184 int mask; |
1185 | |
765 | 1186 CHECK_LIVE_FRAME (frame, 0); |
286 | 1187 CHECK_NUMBER (xoffset, 1); |
1188 CHECK_NUMBER (yoffset, 2); | |
765 | 1189 f = XFRAME (frame); |
286 | 1190 |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1191 #ifdef HAVE_X_WINDOWS |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1192 if (FRAME_X_P (f)) |
765 | 1193 x_set_offset (f, XINT (xoffset), XINT (yoffset)); |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1194 #endif |
286 | 1195 |
1196 return Qt; | |
1197 } | |
777 | 1198 |
286 | 1199 |
1200 #ifndef HAVE_X11 | |
1201 DEFUN ("rubber-band-rectangle", Frubber_band_rectangle, Srubber_band_rectangle, | |
1202 3, 3, "", | |
765 | 1203 "Ask user to specify a window position and size on FRAME with the mouse.\n\ |
1204 Arguments are FRAME, NAME and GEO. NAME is a name to be displayed as\n\ | |
286 | 1205 the purpose of this rectangle. GEO is an X-windows size spec that can\n\ |
1206 specify defaults for some sizes/positions. If GEO specifies everything,\n\ | |
1207 the mouse is not used.\n\ | |
765 | 1208 Returns a list of five values: (FRAME LEFT TOP WIDTH HEIGHT).") |
1209 (frame, name, geo) | |
1210 Lisp_Object frame; | |
286 | 1211 Lisp_Object name; |
1212 Lisp_Object geo; | |
1213 { | |
1214 int vals[4]; | |
1215 Lisp_Object nums[4]; | |
1216 int i; | |
1217 | |
765 | 1218 CHECK_FRAME (frame, 0); |
286 | 1219 CHECK_STRING (name, 1); |
1220 CHECK_STRING (geo, 2); | |
1221 | |
765 | 1222 switch (XFRAME (frame)->output_method) |
286 | 1223 { |
1224 case output_x_window: | |
765 | 1225 x_rubber_band (XFRAME (frame), &vals[0], &vals[1], &vals[2], &vals[3], |
286 | 1226 XSTRING (geo)->data, XSTRING (name)->data); |
1227 break; | |
1228 | |
1229 default: | |
1230 return Qnil; | |
1231 } | |
1232 | |
1233 for (i = 0; i < 4; i++) | |
1234 XFASTINT (nums[i]) = vals[i]; | |
765 | 1235 return Fcons (frame, Flist (4, nums)); |
286 | 1236 return Qnil; |
1237 } | |
1238 #endif /* not HAVE_X11 */ | |
1239 | |
765 | 1240 choose_minibuf_frame () |
286 | 1241 { |
765 | 1242 /* For lowest-level minibuf, put it on currently selected frame |
1243 if frame has a minibuffer. */ | |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
1244 |
286 | 1245 if (minibuf_level == 0 |
765 | 1246 && selected_frame != 0 |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
1247 && !EQ (minibuf_window, selected_frame->minibuffer_window)) |
286 | 1248 { |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
1249 /* I don't think that any frames may validly have a null minibuffer |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
1250 window anymore. */ |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
1251 if (NILP (selected_frame->minibuffer_window)) |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
1252 abort (); |
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
1253 |
765 | 1254 Fset_window_buffer (selected_frame->minibuffer_window, |
286 | 1255 XWINDOW (minibuf_window)->buffer); |
765 | 1256 minibuf_window = selected_frame->minibuffer_window; |
286 | 1257 } |
1258 } | |
1259 | |
765 | 1260 syms_of_frame () |
286 | 1261 { |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1262 /*&&& init symbols here &&&*/ |
765 | 1263 Qframep = intern ("framep"); |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1264 staticpro (&Qframep); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1265 Qlive_frame_p = intern ("live-frame-p"); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1266 staticpro (&Qlive_frame_p); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1267 Qheight = intern ("height"); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1268 staticpro (&Qheight); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1269 Qicon = intern ("icon"); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1270 staticpro (&Qicon); |
539 | 1271 Qminibuffer = intern ("minibuffer"); |
1272 staticpro (&Qminibuffer); | |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1273 Qmodeline = intern ("modeline"); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1274 staticpro (&Qmodeline); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1275 Qname = intern ("name"); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1276 staticpro (&Qname); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1277 Qnone = intern ("none"); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1278 staticpro (&Qnone); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1279 Qonly = intern ("only"); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1280 staticpro (&Qonly); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1281 Qunsplittable = intern ("unsplittable"); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1282 staticpro (&Qunsplittable); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1283 Qwidth = intern ("width"); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1284 staticpro (&Qwidth); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1285 Qx = intern ("x"); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1286 staticpro (&Qx); |
286 | 1287 |
765 | 1288 staticpro (&Vframe_list); |
286 | 1289 |
765 | 1290 DEFVAR_LISP ("terminal-frame", &Vterminal_frame, |
1291 "The initial frame-object, which represents Emacs's stdout."); | |
286 | 1292 |
1293 DEFVAR_LISP ("emacs-iconified", &Vemacs_iconified, | |
765 | 1294 "Non-nil if all of emacs is iconified and frame updates are not needed."); |
286 | 1295 Vemacs_iconified = Qnil; |
1296 | |
765 | 1297 DEFVAR_LISP ("default-minibuffer-frame", &Vdefault_minibuffer_frame, |
1298 "Minibufferless frames use this frame's minibuffer.\n\ | |
454 | 1299 \n\ |
765 | 1300 Emacs cannot create minibufferless frames unless this is set to an\n\ |
454 | 1301 appropriate surrogate.\n\ |
1302 \n\ | |
1303 Emacs consults this variable only when creating minibufferless\n\ | |
765 | 1304 frames; once the frame is created, it sticks with its assigned\n\ |
454 | 1305 minibuffer, no matter what this variable is set to. This means that\n\ |
1306 this variable doesn't necessarily say anything meaningful about the\n\ | |
765 | 1307 current set of frames, or where the minibuffer is currently being\n\ |
454 | 1308 displayed."); |
765 | 1309 Vdefault_minibuffer_frame = Qnil; |
286 | 1310 |
765 | 1311 DEFVAR_LISP ("default-frame-alist", &Vdefault_frame_alist, |
1312 "Alist of default values for frame creation.\n\ | |
386 | 1313 These may be set in your init file, like this:\n\ |
765 | 1314 (setq default-frame-alist '((width . 80) (height . 55)))\n\ |
386 | 1315 These override values given in window system configuration data, like\n\ |
1316 X Windows' defaults database.\n\ | |
765 | 1317 For values specific to the first Emacs frame, see `initial-frame-alist'.\n\ |
1318 For values specific to the separate minibuffer frame, see\n\ | |
1319 `minibuffer-frame-alist'."); | |
1320 Vdefault_frame_alist = Qnil; | |
386 | 1321 |
765 | 1322 defsubr (&Sframep); |
1323 defsubr (&Slive_frame_p); | |
1324 defsubr (&Sselect_frame); | |
1325 defsubr (&Sselected_frame); | |
1326 defsubr (&Swindow_frame); | |
1327 defsubr (&Sframe_root_window); | |
1328 defsubr (&Sframe_selected_window); | |
1329 defsubr (&Sframe_list); | |
1330 defsubr (&Snext_frame); | |
1331 defsubr (&Sdelete_frame); | |
454 | 1332 defsubr (&Smouse_position); |
286 | 1333 defsubr (&Sset_mouse_position); |
1334 #if 0 | |
765 | 1335 defsubr (&Sframe_configuration); |
1336 defsubr (&Srestore_frame_configuration); | |
286 | 1337 #endif |
765 | 1338 defsubr (&Smake_frame_visible); |
1339 defsubr (&Smake_frame_invisible); | |
1340 defsubr (&Siconify_frame); | |
1341 defsubr (&Sframe_visible_p); | |
1342 defsubr (&Svisible_frame_list); | |
1343 defsubr (&Sredirect_frame_focus); | |
1344 defsubr (&Sframe_focus); | |
1345 defsubr (&Sframe_parameters); | |
1346 defsubr (&Smodify_frame_parameters); | |
785 | 1347 #if 0 |
765 | 1348 defsubr (&Sframe_pixel_size); |
1349 defsubr (&Sframe_height); | |
1350 defsubr (&Sframe_width); | |
785 | 1351 #endif |
765 | 1352 defsubr (&Sset_frame_height); |
1353 defsubr (&Sset_frame_width); | |
1354 defsubr (&Sset_frame_size); | |
1355 defsubr (&Sset_frame_position); | |
286 | 1356 #ifndef HAVE_X11 |
1357 defsubr (&Srubber_band_rectangle); | |
1358 #endif /* HAVE_X11 */ | |
1359 } | |
732 | 1360 |
1118
a43d53261506
* frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents:
1006
diff
changeset
|
1361 #else /* not MULTI_FRAME */ |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1362 |
987
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1363 /* If we're not using multi-frame stuff, we still need to provide some |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1364 support functions. */ |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1365 |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1366 /* Unless this function is defined, providing set-frame-height and |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1367 set-frame-width doesn't help compatibility any, since they both |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1368 want this as their first argument. */ |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1369 DEFUN ("selected-frame", Fselected_frame, Sselected_frame, 0, 0, 0, |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1370 "Return the frame that is now selected.") |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1371 () |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1372 { |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1373 Lisp_Object tem; |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1374 XFASTINT (tem) = 0; |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1375 return tem; |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1376 } |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1377 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1378 DEFUN ("set-frame-height", Fset_frame_height, Sset_frame_height, 2, 3, 0, |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1379 "Specify that the frame FRAME has LINES lines.\n\ |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1380 Optional third arg non-nil means that redisplay should use LINES lines\n\ |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1381 but that the idea of the actual height of the frame should not be changed.") |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1382 (frame, rows, pretend) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1383 Lisp_Object frame, rows, pretend; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1384 { |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1385 CHECK_NUMBER (rows, 0); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1386 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1387 change_frame_size (0, XINT (rows), 0, !NILP (pretend), 0); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1388 return Qnil; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1389 } |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1390 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1391 DEFUN ("set-frame-width", Fset_frame_width, Sset_frame_width, 2, 3, 0, |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1392 "Specify that the frame FRAME has COLS columns.\n\ |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1393 Optional third arg non-nil means that redisplay should use COLS columns\n\ |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1394 but that the idea of the actual width of the frame should not be changed.") |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1395 (frame, cols, pretend) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1396 Lisp_Object frame, cols, pretend; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1397 { |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1398 CHECK_NUMBER (cols, 0); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1399 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1400 change_frame_size (0, 0, XINT (cols), !NILP (pretend), 0); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1401 return Qnil; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1402 } |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1403 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1404 DEFUN ("set-frame-size", Fset_frame_size, Sset_frame_size, 3, 3, 0, |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1405 "Sets size of FRAME to COLS by ROWS, measured in characters.") |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1406 (frame, cols, rows) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1407 Lisp_Object frame, cols, rows; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1408 { |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1409 CHECK_NUMBER (cols, 2); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1410 CHECK_NUMBER (rows, 1); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1411 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1412 change_frame_size (0, XINT (rows), XINT (cols), 0, 0); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1413 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1414 return Qnil; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1415 } |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1416 |
987
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1417 DEFUN ("frame-height", Fframe_height, Sframe_height, 0, 0, 0, |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1418 "Return number of lines available for display on selected frame.") |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1419 () |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1420 { |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1421 return make_number (FRAME_HEIGHT (selected_frame)); |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1422 } |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1423 |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1424 DEFUN ("frame-width", Fframe_width, Sframe_width, 0, 0, 0, |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1425 "Return number of columns available for display on selected frame.") |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1426 () |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1427 { |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1428 return make_number (FRAME_WIDTH (selected_frame)); |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1429 } |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1430 |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1431 /* These are for backward compatibility with Emacs 18. */ |
afb21e974ed2
* frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents:
965
diff
changeset
|
1432 |
965
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1433 DEFUN ("set-screen-height", Fset_screen_height, Sset_screen_height, 1, 2, 0, |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1434 "Tell redisplay that the screen has LINES lines.\n\ |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1435 Optional second arg non-nil means that redisplay should use LINES lines\n\ |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1436 but that the idea of the actual height of the screen should not be changed.") |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1437 (lines, pretend) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1438 Lisp_Object lines, pretend; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1439 { |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1440 CHECK_NUMBER (lines, 0); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1441 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1442 change_frame_size (0, XINT (lines), 0, !NILP (pretend), 0); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1443 return Qnil; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1444 } |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1445 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1446 DEFUN ("set-screen-width", Fset_screen_width, Sset_screen_width, 1, 2, 0, |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1447 "Tell redisplay that the screen has COLS columns.\n\ |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1448 Optional second arg non-nil means that redisplay should use COLS columns\n\ |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1449 but that the idea of the actual width of the screen should not be changed.") |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1450 (cols, pretend) |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1451 Lisp_Object cols, pretend; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1452 { |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1453 CHECK_NUMBER (cols, 0); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1454 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1455 change_frame_size (0, 0, XINT (cols), !NILP (pretend), 0); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1456 return Qnil; |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1457 } |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1458 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1459 syms_of_frame () |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1460 { |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1461 defsubr (&Sset_frame_height); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1462 defsubr (&Sset_frame_width); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1463 defsubr (&Sset_frame_size); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1464 defsubr (&Sset_screen_height); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1465 defsubr (&Sset_screen_width); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1466 defsubr (&Sframe_height); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1467 Ffset (intern ("screen-height"), intern ("frame-height")); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1468 defsubr (&Sframe_width); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1469 Ffset (intern ("screen-width"), intern ("frame-width")); |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1470 } |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1471 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1472 #endif /* not MULTI_FRAME */ |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1473 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1474 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1475 |
0eb68c6c452a
* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents:
886
diff
changeset
|
1476 |