Mercurial > hg > xemacs-beta
annotate src/frame.h @ 5750:66d2f63df75f
Correct some spelling and formatting in behavior.el.
Mentioned in tracker issue 826, the third thing mentioned there (the file
name at the bottom of the file) had already been fixed.
lisp/ChangeLog addition:
2013-08-05 Aidan Kehoe <kehoea@parhasard.net>
* behavior.el:
(override-behavior):
Correct some spelling and formatting here, thank you Steven
Mitchell in tracker issue 826.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Mon, 05 Aug 2013 10:05:32 +0100 |
parents | 308d34e9f07d |
children |
rev | line source |
---|---|
428 | 1 /* Define frame-object for XEmacs. |
2 Copyright (C) 1988, 1992, 1993, 1994 Free Software Foundation, Inc. | |
5043 | 3 Copyright (C) 1995, 2002, 2010 Ben Wing. |
428 | 4 |
5 This file is part of XEmacs. | |
6 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5128
diff
changeset
|
7 XEmacs is free software: you can redistribute it and/or modify it |
428 | 8 under the terms of the GNU General Public License as published by the |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5128
diff
changeset
|
9 Free Software Foundation, either version 3 of the License, or (at your |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5128
diff
changeset
|
10 option) any later version. |
428 | 11 |
12 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5128
diff
changeset
|
18 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
428 | 19 |
20 /* Synched up with: FSF 19.30. */ | |
21 | |
440 | 22 #ifndef INCLUDED_frame_h_ |
23 #define INCLUDED_frame_h_ | |
428 | 24 |
25 #include "redisplay.h" | |
800 | 26 #include "console.h" /* for error_check_frame_type */ |
428 | 27 |
872 | 28 struct frame; |
428 | 29 |
872 | 30 EXFUN (Fselected_frame, 1); |
428 | 31 EXFUN (Fdelete_frame, 2); |
32 EXFUN (Fframe_iconified_p, 1); | |
33 EXFUN (Fframe_name, 1); | |
34 EXFUN (Fframe_property, 3); | |
35 EXFUN (Fmake_frame, 2); | |
36 EXFUN (Fmake_frame_visible, 1); | |
37 EXFUN (Fraise_frame, 1); | |
38 EXFUN (Fselect_frame, 1); | |
39 EXFUN (Fset_frame_pointer, 2); | |
40 EXFUN (Fset_frame_position, 3); | |
442 | 41 EXFUN (Fset_frame_properties, 2); |
428 | 42 EXFUN (Fset_frame_size, 4); |
43 | |
44 extern Lisp_Object Qbackground_toolbar_color, Qbell_volume, Qborder_color; | |
45 extern Lisp_Object Qborder_width, Qbottom_toolbar_shadow_color; | |
46 extern Lisp_Object Qbottom_toolbar_shadow_pixmap, Qdelete_frame; | |
47 extern Lisp_Object Qdeselect_frame_hook, Qdrag_and_drop_functions, Qgc_pointer; | |
48 extern Lisp_Object Qiconic, Qinitially_unmapped, Qinter_line_space; | |
49 extern Lisp_Object Qinternal_border_width, Qinvisible, Qmap_frame_hook; | |
50 extern Lisp_Object Qminibuffer, Qmodeline_pointer, Qmouse_enter_frame_hook; | |
51 extern Lisp_Object Qmouse_leave_frame_hook, Qpointer_background; | |
52 extern Lisp_Object Qpointer_color, Qpopup, Qscrollbar_placement; | |
53 extern Lisp_Object Qselect_frame_hook, Qspace_pointer; | |
54 extern Lisp_Object Qsynchronize_minibuffers, Qtext_pointer; | |
55 extern Lisp_Object Qtoolbar_shadow_thickness, Qtop_toolbar_shadow_color; | |
56 extern Lisp_Object Qtop_toolbar_shadow_pixmap, Qunmap_frame_hook; | |
57 extern Lisp_Object Qunsplittable, Quse_backing_store, Qvisible, Qvisual_bell; | |
58 extern Lisp_Object Vframe_icon_title_format, Vframe_title_format; | |
59 extern Lisp_Object Vmouse_motion_handler; | |
60 | |
5118
e0db3c197671
merge up to latest default branch, doesn't compile yet
Ben Wing <ben@xemacs.org>
parents:
1318
diff
changeset
|
61 DECLARE_LISP_OBJECT (frame, struct frame); |
428 | 62 #define XFRAME(x) XRECORD (x, frame, struct frame) |
617 | 63 #define wrap_frame(p) wrap_record (p, frame) |
428 | 64 #define FRAMEP(x) RECORDP (x, frame) |
65 #define CHECK_FRAME(x) CHECK_RECORD (x, frame) | |
66 #define CONCHECK_FRAME(x) CONCHECK_RECORD (x, frame) | |
67 | |
872 | 68 /* Basic properties available to non-privileged users; redefined in |
69 frame-impl.h */ | |
70 | |
71 int frame_live_p (struct frame *f); | |
72 Lisp_Object frame_device (struct frame *f); | |
73 | |
74 #define FRAME_LIVE_P(f) frame_live_p (f) | |
75 #define FRAME_DEVICE(f) frame_device (f) | |
76 | |
77 #define FRAME_XDEVICE(f) XDEVICE (FRAME_DEVICE (f)) | |
78 #define FRAME_CONSOLE(f) XDEVICE_CONSOLE (FRAME_DEVICE (f)) | |
79 #define FRAME_XCONSOLE(f) XCONSOLE (FRAME_CONSOLE (f)) | |
80 | |
81 #define XFRAME_DEVICE(f) FRAME_DEVICE (XFRAME (f)) | |
82 #define XFRAME_XDEVICE(f) XDEVICE (XFRAME_DEVICE (f)) | |
83 #define XFRAME_CONSOLE(f) XDEVICE_CONSOLE (XFRAME_DEVICE (f)) | |
84 #define XFRAME_XCONSOLE(f) XCONSOLE (XFRAME_CONSOLE (f)) | |
85 | |
428 | 86 #define CHECK_LIVE_FRAME(x) do { \ |
87 CHECK_FRAME (x); \ | |
88 if (! FRAME_LIVE_P (XFRAME (x))) \ | |
89 dead_wrong_type_argument (Qframe_live_p, (x)); \ | |
90 } while (0) | |
91 #define CONCHECK_LIVE_FRAME(x) do { \ | |
92 CONCHECK_FRAME (x); \ | |
93 if (! FRAME_LIVE_P (XFRAME (x))) \ | |
94 x = wrong_type_argument (Qframe_live_p, (x)); \ | |
95 } while (0) | |
96 | |
97 #define FW_FRAME(obj) \ | |
98 (WINDOWP (obj) ? WINDOW_FRAME (XWINDOW (obj)) \ | |
442 | 99 : (FRAMEP (obj) ? obj \ |
100 : Qnil)) | |
428 | 101 |
102 /* Equivalent in FSF Emacs: | |
103 | |
104 FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a | |
105 `for' loop which iterates over the elements of Vframe_list. The | |
106 loop will set FRAME_VAR, a Lisp_Object, to each frame in | |
107 Vframe_list in succession and execute the statement. LIST_VAR | |
108 should be a Lisp_Object too; it is used to iterate through the | |
109 Vframe_list. | |
110 */ | |
111 | |
112 /* NO_BREAK means that "break" doesn't do what you think it does! | |
113 Use goto instead. "continue" is OK, though. */ | |
114 #define FRAME_LOOP_NO_BREAK(frmcons, devcons, concons) \ | |
115 DEVICE_LOOP_NO_BREAK (devcons, concons) \ | |
116 DEVICE_FRAME_LOOP (frmcons, XDEVICE (XCAR (devcons))) | |
117 | |
118 void update_frame_title (struct frame *f); | |
444 | 119 Lisp_Object next_frame (Lisp_Object, Lisp_Object, Lisp_Object); |
120 Lisp_Object previous_frame (Lisp_Object, Lisp_Object, Lisp_Object); | |
5043 | 121 void pixel_to_frame_unit_size (struct frame *f, int pixel_width, int pixel_height, |
122 int *char_width, int *char_height); | |
123 void frame_unit_to_pixel_size (struct frame *f, int char_width, int char_height, | |
124 int *pixel_width, int *pixel_height); | |
428 | 125 void pixel_to_char_size (struct frame *f, int pixel_width, int pixel_height, |
126 int *char_width, int *char_height); | |
127 void char_to_pixel_size (struct frame *f, int char_width, int char_height, | |
128 int *pixel_width, int *pixel_height); | |
129 void round_size_to_char (struct frame *f, int in_width, int in_height, | |
130 int *out_width, int *out_height); | |
131 void change_frame_size (struct frame *frame, | |
132 int newlength, int newwidth, | |
133 int delay); | |
134 void adjust_frame_size (struct frame *frame); | |
5043 | 135 void internal_set_frame_size (struct frame *f, int cols, int rows, |
136 int pretend); | |
428 | 137 void frame_size_slipped (Lisp_Object specifier, struct frame *f, |
138 Lisp_Object oldval); | |
139 void select_frame_1 (Lisp_Object frame); | |
140 void select_frame_2 (Lisp_Object frame); | |
141 struct frame *selected_frame (void); | |
142 struct frame *device_selected_frame (struct device *d); | |
143 struct frame *decode_frame (Lisp_Object frame); | |
144 struct frame *decode_frame_or_selected (Lisp_Object cdf); | |
145 Lisp_Object make_frame (struct frame *f); | |
146 int other_visible_frames (struct frame *f); | |
147 void delete_frame_internal (struct frame *f, int force, | |
148 int called_from_delete_device, | |
149 int from_io_error); | |
150 void io_error_delete_frame (Lisp_Object frame); | |
151 Lisp_Object find_some_frame (int (*predicate) (Lisp_Object, void *), | |
152 void *closure); | |
444 | 153 int device_matches_device_spec (Lisp_Object device, Lisp_Object device_spec); |
428 | 154 Lisp_Object frame_first_window (struct frame *f); |
155 void set_frame_selected_window (struct frame *f, Lisp_Object window); | |
156 int is_surrogate_for_selected_frame (struct frame *f); | |
157 void update_frame_icon (struct frame *f); | |
158 void invalidate_vertical_divider_cache_in_frame (struct frame *f); | |
159 | |
438 | 160 void init_frame (void); |
161 | |
5077
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
162 enum edge_pos |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
163 { |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
164 TOP_EDGE, |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
165 BOTTOM_EDGE, |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
166 LEFT_EDGE, |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
167 RIGHT_EDGE, |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
168 NUM_EDGES |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
169 }; |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
170 |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
171 /* Iterate over all possible edge positions */ |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
172 #define EDGE_POS_LOOP(var) \ |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
173 for (var = (enum edge_pos) 0; var < NUM_EDGES; \ |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
174 var = (enum edge_pos) (var + 1)) |
d372b17f63ce
clean up toolbar/gutter edge geometry
Ben Wing <ben@xemacs.org>
parents:
5043
diff
changeset
|
175 |
440 | 176 #endif /* INCLUDED_frame_h_ */ |