Mercurial > emacs
annotate src/dispextern.h @ 18989:6253a99afd95
(rmail-pop-password-error): New variable.
(rmail-insert-inbox-text): If there's an error getting mail from
the POP server, and the error matches rmail-pop-password-error or
we prompted for the POP password, assume that the password is
incorrect and erase it so that the user will be prompted again the
next time he gets mail.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 25 Jul 1997 22:08:24 +0000 |
parents | 118cff7e4bca |
children | fb4c986db0e2 |
rev | line source |
---|---|
247 | 1 /* Interface definitions for display code. |
7307 | 2 Copyright (C) 1985, 1993, 1994 Free Software Foundation, Inc. |
247 | 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 | |
732 | 8 the Free Software Foundation; either version 2, or (at your option) |
247 | 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 | |
14186
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
13407
diff
changeset
|
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
13407
diff
changeset
|
19 Boston, MA 02111-1307, USA. */ |
247 | 20 |
9572 | 21 #ifndef _DISPEXTERN_H_ |
22 #define _DISPEXTERN_H_ | |
23 | |
247 | 24 /* Nonzero means last display completed and cursor is really at |
25 cursX, cursY. Zero means it was preempted. */ | |
26 extern int display_completed; | |
27 | |
28 #ifdef HAVE_X_WINDOWS | |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
29 #include <X11/Xlib.h> |
9572 | 30 #endif |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
31 |
9572 | 32 #ifdef MSDOS |
33 #include "msdos.h" | |
34 #endif | |
35 | |
13407
5ebb99bc06bb
[HAVE_NTGUI]: Include win32.h.
Geoff Voelker <voelker@cs.washington.edu>
parents:
9572
diff
changeset
|
36 #ifdef HAVE_NTGUI |
16887
dd6cbc8b53e8
Use new name w32gui.h
Geoff Voelker <voelker@cs.washington.edu>
parents:
16051
diff
changeset
|
37 #include "w32gui.h" |
13407
5ebb99bc06bb
[HAVE_NTGUI]: Include win32.h.
Geoff Voelker <voelker@cs.washington.edu>
parents:
9572
diff
changeset
|
38 #endif |
5ebb99bc06bb
[HAVE_NTGUI]: Include win32.h.
Geoff Voelker <voelker@cs.washington.edu>
parents:
9572
diff
changeset
|
39 |
9572 | 40 #ifdef HAVE_FACES |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
41 struct face |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
42 { |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
43 /* If this is non-zero, it is a GC we can use without modification |
17028
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
44 to represent this face. Used only for ASCII characters. */ |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
45 GC gc; |
17028
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
46 |
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
47 /* GC used for non-ASCII characters. */ |
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
48 GC non_ascii_gc; |
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
49 |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
50 /* Pixel value for foreground color. */ |
8821
041e02e09745
(struct face): Use EMACS_UINT.
Richard M. Stallman <rms@gnu.org>
parents:
7307
diff
changeset
|
51 EMACS_UINT foreground; |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
52 |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
53 /* Pixel value for background color. */ |
8821
041e02e09745
(struct face): Use EMACS_UINT.
Richard M. Stallman <rms@gnu.org>
parents:
7307
diff
changeset
|
54 EMACS_UINT background; |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
55 |
17028
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
56 /* Font used for this face. If any fontset is set for this face, |
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
57 this points to a `font' slot of the struct `font_info' for an |
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
58 ASCII font of the fontset. In that case, we should not call |
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
59 XFreeFont on it because the font may still be used somewhere |
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
60 else. */ |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
61 XFontStruct *font; |
17028
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
62 |
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
63 /* Fontset ID if any fontset is set for this face, else -1. */ |
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
64 int fontset; |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
65 |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
66 /* Background stipple or bitmap used for this face. */ |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
67 Pixmap stipple; |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
68 |
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
69 /* Pixmap_depth. */ |
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
70 unsigned int pixmap_w, pixmap_h; |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
71 |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
72 /* Whether or not to underline text in this face. */ |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
73 char underline; |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
74 }; |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
75 |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
76 /* Let's stop using this and get rid of it. */ |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
77 typedef struct face *FACE; |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
78 |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
79 #define NORMAL_FACE ((struct face *) 0) |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
80 |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
81 #define FACE_HAS_GC(f) ((f)->gc) |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
82 #define FACE_GC(f) ((f)->gc) |
17028
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
83 #define FACE_NON_ASCII_GC(f) ((f)->non_ascii_gc) |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
84 #define FACE_FOREGROUND(f) ((f)->foreground) |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
85 #define FACE_BACKGROUND(f) ((f)->background) |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
86 #define FACE_FONT(f) ((f)->font) |
17028
118cff7e4bca
(struct face): New members `non_ascii_gc' and
Karl Heuer <kwzh@gnu.org>
parents:
16887
diff
changeset
|
87 #define FACE_FONTSET(f) ((f)->fontset) |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
88 #define FACE_STIPPLE(f) ((f)->stipple) |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
89 #define FACE_UNDERLINE_P(f) ((f)->underline) |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
90 |
9572 | 91 #else /* not HAVE_FACES */ |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
92 |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
93 typedef int FACE; |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
94 |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
95 #define NORMAL_FACE 0x0 |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
96 #define HIGHLIGHT_FACE 0x1 |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
97 #define UNDERLINE_FACE 0x2 |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
98 #define HIGHLIGHT_UNDERLINE_FACE 0x3 |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
99 |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
100 #define FACE_HIGHLIGHT(f) ((f) & 0x1) |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
101 #define FACE_UNDERLINE(f) ((f) & 0x2) |
9572 | 102 |
103 #endif /* not HAVE_FACES */ | |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
104 |
247 | 105 |
764 | 106 /* This structure is used for the actual display of text on a frame. |
247 | 107 |
108 There are two instantiations of it: the glyphs currently displayed, | |
109 and the glyphs we desire to display. The latter object is generated | |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
110 from buffers being displayed. */ |
247 | 111 |
764 | 112 struct frame_glyphs |
247 | 113 { |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
114 struct frame *frame; /* Frame these glyphs belong to. */ |
247 | 115 int height; |
116 int width; | |
117 | |
764 | 118 /* Contents of the frame. |
485 | 119 glyphs[V][H] is the glyph at position V, H. |
120 Note that glyphs[V][-1], | |
121 glyphs[V][used[V]], | |
764 | 122 and glyphs[V][frame_width] are always '\0'. */ |
247 | 123 GLYPH **glyphs; |
124 /* long vector from which the strings in `glyphs' are taken. */ | |
125 GLYPH *total_contents; | |
126 | |
764 | 127 /* When representing a desired frame, |
128 enable[n] == 0 means that line n is same as current frame. | |
1649
c3225b867171
* dispextern.h (struct frame_glyphs): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1510
diff
changeset
|
129 Between updates, all lines should be disabled. |
764 | 130 When representing current frame contents, |
485 | 131 enable[n] == 0 means that line n is blank. */ |
132 char *enable; | |
133 | |
134 /* Everything on line n after column used[n] is considered blank. */ | |
135 int *used; | |
136 | |
247 | 137 /* highlight[n] != 0 iff line n is highlighted. */ |
138 char *highlight; | |
139 | |
6658 | 140 /* Buffer offset of this line's first char. |
141 This is not really implemented, and cannot be, | |
142 and should be deleted. */ | |
247 | 143 int *bufp; |
144 | |
13407
5ebb99bc06bb
[HAVE_NTGUI]: Include win32.h.
Geoff Voelker <voelker@cs.washington.edu>
parents:
9572
diff
changeset
|
145 #ifdef HAVE_WINDOW_SYSTEM |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
146 /* Pixel position of top left corner of line. */ |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
147 short *top_left_x; |
247 | 148 short *top_left_y; |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
149 |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
150 /* Pixel width of line. */ |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
151 short *pix_width; |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
152 |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
153 /* Pixel height of line. */ |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
154 short *pix_height; |
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
155 |
2395
aec61f55a84d
(struct face): New fields pixmap_h, pixmap_w.
Richard M. Stallman <rms@gnu.org>
parents:
1780
diff
changeset
|
156 /* Largest font ascent on this line. */ |
1409
7fd1c810daca
* dispextern.h: New element of frame structure `max_ascent'.
Joseph Arceneaux <jla@gnu.org>
parents:
764
diff
changeset
|
157 short *max_ascent; |
13407
5ebb99bc06bb
[HAVE_NTGUI]: Include win32.h.
Geoff Voelker <voelker@cs.washington.edu>
parents:
9572
diff
changeset
|
158 #endif /* HAVE_WINDOW_SYSTEM */ |
6570
2c6d3ba470bb
(struct frame_glyphs): New fields charstarts and total_charstarts.
Richard M. Stallman <rms@gnu.org>
parents:
3883
diff
changeset
|
159 |
6658 | 160 /* Mapping of coordinate pairs to buffer positions. |
161 This field holds a vector indexed by row number. | |
162 Its elements are vectors indexed by column number. | |
163 Each element of these vectors is a buffer position, 0, or -1. | |
164 | |
165 For a column where the image of a text character starts, | |
166 the element value is the buffer position of that character. | |
167 When a window's screen line starts in mid character, | |
168 the element for the line's first column (at the window's left margin) | |
169 is that character's position. | |
170 For successive columns within a multicolumn character, | |
171 the element is -1. | |
172 For the column just beyond the last glyph on a line, | |
173 the element is the buffer position of the end of the line. | |
174 For following columns within the same window, the element is 0. | |
175 For rows past the end of the accessible buffer text, | |
176 the window's first column has ZV and other columns have 0. | |
177 | |
178 Mode lines and vertical separator lines have 0. | |
179 | |
180 The column of a window's left margin | |
181 always has a positive value (a buffer position), not 0 or -1, | |
182 for each line in that window's interior. */ | |
183 | |
6570
2c6d3ba470bb
(struct frame_glyphs): New fields charstarts and total_charstarts.
Richard M. Stallman <rms@gnu.org>
parents:
3883
diff
changeset
|
184 int **charstarts; |
2c6d3ba470bb
(struct frame_glyphs): New fields charstarts and total_charstarts.
Richard M. Stallman <rms@gnu.org>
parents:
3883
diff
changeset
|
185 |
2c6d3ba470bb
(struct frame_glyphs): New fields charstarts and total_charstarts.
Richard M. Stallman <rms@gnu.org>
parents:
3883
diff
changeset
|
186 /* This holds all the space in the subvectors of the charstarts field. */ |
2c6d3ba470bb
(struct frame_glyphs): New fields charstarts and total_charstarts.
Richard M. Stallman <rms@gnu.org>
parents:
3883
diff
changeset
|
187 int *total_charstarts; |
247 | 188 }; |
189 | |
190 extern void get_display_line (); | |
1510
2fd5263590ea
* dispextern.h (sit_for): Declare this extern.
Jim Blandy <jimb@redhat.com>
parents:
1409
diff
changeset
|
191 extern Lisp_Object sit_for (); |
9572 | 192 |
193 #endif /* not _DISPEXTERN_H_ */ |