295 |
/* Type of font used to display the character glyph. Used to |
/* Type of font used to display the character glyph. Used to |
296 |
determine which set of functions to use to obtain font metrics |
determine which set of functions to use to obtain font metrics |
297 |
for the glyph. Value should be an enumerator of the type |
for the glyph. Value should be an enumerator of the type |
298 |
w32_char_font_type. */ |
w32_char_font_type. */ |
299 |
unsigned w32_font_type : 2; |
unsigned w32_font_type : 2; |
300 |
#endif |
#endif |
301 |
|
|
375 |
|
|
376 |
/* Construct a glyph code from a character glyph GLYPH. If the |
/* Construct a glyph code from a character glyph GLYPH. If the |
377 |
character is multibyte, return -1 as we can't use glyph table for a |
character is multibyte, return -1 as we can't use glyph table for a |
378 |
multibyte character. */ |
multibyte character. */ |
379 |
|
|
380 |
#define GLYPH_FROM_CHAR_GLYPH(GLYPH) \ |
#define GLYPH_FROM_CHAR_GLYPH(GLYPH) \ |
381 |
((GLYPH).u.ch < 256 \ |
((GLYPH).u.ch < 256 \ |
575 |
to any text; it is some buffer position if the row corresponds to |
to any text; it is some buffer position if the row corresponds to |
576 |
an empty display line that displays a line end. This is what old |
an empty display line that displays a line end. This is what old |
577 |
redisplay used to do. (Except in code for terminal frames, this |
redisplay used to do. (Except in code for terminal frames, this |
578 |
kludge is no longer use, I believe. --gerd). |
kludge is no longer used, I believe. --gerd). |
579 |
|
|
580 |
See also start, end, displays_text_p and ends_at_zv_p for cleaner |
See also start, end, displays_text_p and ends_at_zv_p for cleaner |
581 |
ways to do it. The special meaning of positions 0 and -1 will be |
ways to do it. The special meaning of positions 0 and -1 will be |
667 |
of lbearing or rbearing. */ |
of lbearing or rbearing. */ |
668 |
unsigned contains_overlapping_glyphs_p : 1; |
unsigned contains_overlapping_glyphs_p : 1; |
669 |
|
|
670 |
/* 1 means this row is a wide as the window it is displayed in, including |
/* 1 means this row is as wide as the window it is displayed in, including |
671 |
scroll bars, fringes, and internal borders. This also |
scroll bars, fringes, and internal borders. This also |
672 |
implies that the row doesn't have marginal areas. */ |
implies that the row doesn't have marginal areas. */ |
673 |
unsigned full_width_p : 1; |
unsigned full_width_p : 1; |
674 |
|
|
675 |
/* Non-zero means row is a mode or top-line. */ |
/* Non-zero means row is a mode or header-line. */ |
676 |
unsigned mode_line_p : 1; |
unsigned mode_line_p : 1; |
677 |
|
|
678 |
/* 1 in a current row means this row is overlapped by another row. */ |
/* 1 in a current row means this row is overlapped by another row. */ |
685 |
|
|
686 |
/* 1 means this line starts in the middle of a character consisting |
/* 1 means this line starts in the middle of a character consisting |
687 |
of more than one glyph. Some glyphs have been put in the |
of more than one glyph. Some glyphs have been put in the |
688 |
previoius row, the rest are put in this row. */ |
previous row, the rest are put in this row. */ |
689 |
unsigned starts_in_middle_of_char_p : 1; |
unsigned starts_in_middle_of_char_p : 1; |
690 |
|
|
691 |
/* 1 in a current row means this row overlaps others. */ |
/* 1 in a current row means this row overlaps others. */ |
719 |
#define MATRIX_MODE_LINE_ROW(MATRIX) \ |
#define MATRIX_MODE_LINE_ROW(MATRIX) \ |
720 |
((MATRIX)->rows + (MATRIX)->nrows - 1) |
((MATRIX)->rows + (MATRIX)->nrows - 1) |
721 |
|
|
722 |
/* Return a pointer to the row reserved for the top line in MATRIX. |
/* Return a pointer to the row reserved for the header line in MATRIX. |
723 |
This is always the first row in MATRIX because that's the only |
This is always the first row in MATRIX because that's the only |
724 |
way that works in frame-based redisplay. */ |
way that works in frame-based redisplay. */ |
725 |
|
|
748 |
#define MATRIX_ROW_START_CHARPOS(ROW) ((ROW)->start.pos.charpos) |
#define MATRIX_ROW_START_CHARPOS(ROW) ((ROW)->start.pos.charpos) |
749 |
#define MATRIX_ROW_START_BYTEPOS(ROW) ((ROW)->start.pos.bytepos) |
#define MATRIX_ROW_START_BYTEPOS(ROW) ((ROW)->start.pos.bytepos) |
750 |
|
|
751 |
/* Return character/ byte position at which ROW ends. */ |
/* Return the character/ byte position at which ROW ends. */ |
752 |
|
|
753 |
#define MATRIX_ROW_END_CHARPOS(ROW) ((ROW)->end.pos.charpos) |
#define MATRIX_ROW_END_CHARPOS(ROW) ((ROW)->end.pos.charpos) |
754 |
#define MATRIX_ROW_END_BYTEPOS(ROW) ((ROW)->end.pos.bytepos) |
#define MATRIX_ROW_END_BYTEPOS(ROW) ((ROW)->end.pos.bytepos) |
914 |
? MATRIX_MODE_LINE_ROW (MATRIX)->height \ |
? MATRIX_MODE_LINE_ROW (MATRIX)->height \ |
915 |
: 0) |
: 0) |
916 |
|
|
917 |
/* Return the height of the top line in glyph matrix MATRIX, or zero |
/* Return the height of the header line in glyph matrix MATRIX, or zero |
918 |
if not known. This macro is called under circumstances where |
if not known. This macro is called under circumstances where |
919 |
MATRIX might not have been allocated yet. */ |
MATRIX might not have been allocated yet. */ |
920 |
|
|
936 |
: estimate_mode_line_height (XFRAME ((W)->frame), \ |
: estimate_mode_line_height (XFRAME ((W)->frame), \ |
937 |
MODE_LINE_FACE_ID))) |
MODE_LINE_FACE_ID))) |
938 |
|
|
939 |
/* Return the current height of the top line of window W. If not |
/* Return the current height of the header line of window W. If not |
940 |
known from current_header_line_height, look at W's current glyph |
known from current_header_line_height, look at W's current glyph |
941 |
matrix, or return an estimation based on the height of the font of |
matrix, or return an estimation based on the height of the font of |
942 |
the face `header-line'. */ |
the face `header-line'. */ |
954 |
#define DESIRED_MODE_LINE_HEIGHT(W) \ |
#define DESIRED_MODE_LINE_HEIGHT(W) \ |
955 |
MATRIX_MODE_LINE_HEIGHT ((W)->desired_matrix) |
MATRIX_MODE_LINE_HEIGHT ((W)->desired_matrix) |
956 |
|
|
957 |
/* Return the height of the desired top line of window W. */ |
/* Return the height of the desired header line of window W. */ |
958 |
|
|
959 |
#define DESIRED_HEADER_LINE_HEIGHT(W) \ |
#define DESIRED_HEADER_LINE_HEIGHT(W) \ |
960 |
MATRIX_HEADER_LINE_HEIGHT ((W)->desired_matrix) |
MATRIX_HEADER_LINE_HEIGHT ((W)->desired_matrix) |
990 |
? CURRENT_MODE_LINE_HEIGHT (W) \ |
? CURRENT_MODE_LINE_HEIGHT (W) \ |
991 |
: 0) |
: 0) |
992 |
|
|
993 |
/* Height in pixels of the top line. Zero if W doesn't have a top |
/* Height in pixels of the header line. Zero if W doesn't have a header |
994 |
line. */ |
line. */ |
995 |
|
|
996 |
#define WINDOW_DISPLAY_HEADER_LINE_HEIGHT(W) \ |
#define WINDOW_DISPLAY_HEADER_LINE_HEIGHT(W) \ |
1004 |
(WINDOW_DISPLAY_PIXEL_HEIGHT ((W)) \ |
(WINDOW_DISPLAY_PIXEL_HEIGHT ((W)) \ |
1005 |
- WINDOW_DISPLAY_MODE_LINE_HEIGHT ((W))) |
- WINDOW_DISPLAY_MODE_LINE_HEIGHT ((W))) |
1006 |
|
|
1007 |
/* Pixel height of window W without mode and top line. */ |
/* Pixel height of window W without mode and header line. */ |
1008 |
|
|
1009 |
#define WINDOW_DISPLAY_TEXT_HEIGHT(W) \ |
#define WINDOW_DISPLAY_TEXT_HEIGHT(W) \ |
1010 |
(WINDOW_DISPLAY_PIXEL_HEIGHT ((W)) \ |
(WINDOW_DISPLAY_PIXEL_HEIGHT ((W)) \ |
1053 |
#define FRAME_TO_WINDOW_PIXEL_X(W, X) \ |
#define FRAME_TO_WINDOW_PIXEL_X(W, X) \ |
1054 |
((X) - WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X ((W))) |
((X) - WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X ((W))) |
1055 |
|
|
1056 |
/* Convert frame relative pixel X to window relative pixel Y. */ |
/* Convert frame relative pixel Y to window relative pixel Y. */ |
1057 |
|
|
1058 |
#define FRAME_TO_WINDOW_PIXEL_Y(W, Y) \ |
#define FRAME_TO_WINDOW_PIXEL_Y(W, Y) \ |
1059 |
((Y) - WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y ((W))) |
((Y) - WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y ((W))) |
1109 |
? WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH ((W)) \ |
? WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH ((W)) \ |
1110 |
: WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH ((W)))) |
: WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH ((W)))) |
1111 |
|
|
1112 |
/* Value is non-zero if window W has a mode line. */ |
/* Value is non-zero if window W wants a mode line. */ |
1113 |
|
|
1114 |
#define WINDOW_WANTS_MODELINE_P(W) \ |
#define WINDOW_WANTS_MODELINE_P(W) \ |
1115 |
(!MINI_WINDOW_P (W) \ |
(!MINI_WINDOW_P (W) \ |
1118 |
&& BUFFERP ((W)->buffer) \ |
&& BUFFERP ((W)->buffer) \ |
1119 |
&& !NILP (XBUFFER ((W)->buffer)->mode_line_format)) |
&& !NILP (XBUFFER ((W)->buffer)->mode_line_format)) |
1120 |
|
|
1121 |
/* Value is non-zero if window W wants a top line. */ |
/* Value is non-zero if window W wants a header line. */ |
1122 |
|
|
1123 |
#define WINDOW_WANTS_HEADER_LINE_P(W) \ |
#define WINDOW_WANTS_HEADER_LINE_P(W) \ |
1124 |
(!MINI_WINDOW_P (W) \ |
(!MINI_WINDOW_P (W) \ |
1249 |
/* Non-zero means characters in this face have a box that thickness |
/* Non-zero means characters in this face have a box that thickness |
1250 |
around them. If it is negative, the absolute value indicates the |
around them. If it is negative, the absolute value indicates the |
1251 |
thickness, and the horizontal lines of box (top and bottom) are |
thickness, and the horizontal lines of box (top and bottom) are |
1252 |
drawn inside of characters glyph area. The vartical lines of box |
drawn inside of characters glyph area. The vertical lines of box |
1253 |
(left and right) are drawn as the same way as the case that this |
(left and right) are drawn as the same way as the case that this |
1254 |
value is positive. */ |
value is positive. */ |
1255 |
int box_line_width; |
int box_line_width; |
1297 |
unsigned underline_defaulted_p : 1; |
unsigned underline_defaulted_p : 1; |
1298 |
|
|
1299 |
/* 1 means that either no color is specified for the corresponding |
/* 1 means that either no color is specified for the corresponding |
1300 |
attribute or that the the specified color couldn't be loaded. |
attribute or that the specified color couldn't be loaded. |
1301 |
Use the foreground color when drawing in that case. */ |
Use the foreground color when drawing in that case. */ |
1302 |
unsigned overline_color_defaulted_p : 1; |
unsigned overline_color_defaulted_p : 1; |
1303 |
unsigned strike_through_color_defaulted_p : 1; |
unsigned strike_through_color_defaulted_p : 1; |
1335 |
|
|
1336 |
#define FACE_TTY_DEFAULT_FG_COLOR ((unsigned long) -2) |
#define FACE_TTY_DEFAULT_FG_COLOR ((unsigned long) -2) |
1337 |
|
|
1338 |
/* Color index indicating that face uses an unsigned background color. */ |
/* Color index indicating that face uses an unknown background color. */ |
1339 |
|
|
1340 |
#define FACE_TTY_DEFAULT_BG_COLOR ((unsigned long) -3) |
#define FACE_TTY_DEFAULT_BG_COLOR ((unsigned long) -3) |
1341 |
|
|
1588 |
Lisp_Object *dpvec, *dpend; |
Lisp_Object *dpvec, *dpend; |
1589 |
|
|
1590 |
/* Length in bytes of the char that filled dpvec. A value of zero |
/* Length in bytes of the char that filled dpvec. A value of zero |
1591 |
means that no character such character is involved. */ |
means that no such character is involved. */ |
1592 |
int dpvec_char_len; |
int dpvec_char_len; |
1593 |
|
|
1594 |
/* Face id of the iterator saved in case a glyph from dpvec contains |
/* Face id of the iterator saved in case a glyph from dpvec contains |
1751 |
int last_visible_y; |
int last_visible_y; |
1752 |
|
|
1753 |
/* Additional space in pixels between lines (for window systems |
/* Additional space in pixels between lines (for window systems |
1754 |
only.). */ |
only.) */ |
1755 |
int extra_line_spacing; |
int extra_line_spacing; |
1756 |
|
|
1757 |
/* If non-null, glyphs are produced in glyph_row with each call to |
/* If non-null, glyphs are produced in glyph_row with each call to |
1901 |
redisplay. CURSOR_ON_P non-zero means switch cursor on. |
redisplay. CURSOR_ON_P non-zero means switch cursor on. |
1902 |
MOUSE_FACE_OVERWRITTEN_P non-zero means that some lines in W |
MOUSE_FACE_OVERWRITTEN_P non-zero means that some lines in W |
1903 |
that contained glyphs in mouse-face were overwritten, so we |
that contained glyphs in mouse-face were overwritten, so we |
1904 |
have to update the mouse hightlight. */ |
have to update the mouse highlight. */ |
1905 |
void (*update_window_end_hook) P_ ((struct window *w, int cursor_on_p, |
void (*update_window_end_hook) P_ ((struct window *w, int cursor_on_p, |
1906 |
int mouse_face_overwritten_p)); |
int mouse_face_overwritten_p)); |
1907 |
|
|
1949 |
struct image; |
struct image; |
1950 |
|
|
1951 |
|
|
1952 |
/* Each image format (JPEG, IIFF, ...) supported is described by |
/* Each image format (JPEG, TIFF, ...) supported is described by |
1953 |
a structure of the type below. */ |
a structure of the type below. */ |
1954 |
|
|
1955 |
struct image_type |
struct image_type |
2015 |
#define DEFAULT_IMAGE_HEIGHT 30 |
#define DEFAULT_IMAGE_HEIGHT 30 |
2016 |
|
|
2017 |
/* Percent of image height used as ascent. A value of |
/* Percent of image height used as ascent. A value of |
2018 |
CENTERED_IMAGE_ASCENT means draw center the image centered on the |
CENTERED_IMAGE_ASCENT means draw the image centered on the |
2019 |
line. */ |
line. */ |
2020 |
int ascent; |
int ascent; |
2021 |
#define DEFAULT_IMAGE_ASCENT 50 |
#define DEFAULT_IMAGE_ASCENT 50 |