694 |
frames. It may be < 0 in case of completely invisible rows. */ |
frames. It may be < 0 in case of completely invisible rows. */ |
695 |
int visible_height; |
int visible_height; |
696 |
|
|
697 |
|
/* Extra line spacing added after this row. Do not consider this |
698 |
|
in last row when checking if row is fully visible. */ |
699 |
|
int extra_line_spacing; |
700 |
|
|
701 |
/* Hash code. This hash code is available as soon as the row |
/* Hash code. This hash code is available as soon as the row |
702 |
is constructed, i.e. after a call to display_line. */ |
is constructed, i.e. after a call to display_line. */ |
703 |
unsigned hash; |
unsigned hash; |
920 |
|
|
921 |
#define MATRIX_ROW_DISPLAYS_TEXT_P(ROW) ((ROW)->displays_text_p) |
#define MATRIX_ROW_DISPLAYS_TEXT_P(ROW) ((ROW)->displays_text_p) |
922 |
|
|
923 |
|
|
924 |
|
/* Helper macros */ |
925 |
|
|
926 |
|
#define MR_PARTIALLY_VISIBLE(ROW) \ |
927 |
|
((ROW)->height != (ROW)->visible_height) |
928 |
|
|
929 |
|
#define MR_PARTIALLY_VISIBLE_AT_TOP(W, ROW) \ |
930 |
|
((ROW)->y < WINDOW_HEADER_LINE_HEIGHT ((W))) |
931 |
|
|
932 |
|
#define MR_PARTIALLY_VISIBLE_AT_BOTTOM(W, ROW) \ |
933 |
|
(((ROW)->y + (ROW)->height - (ROW)->extra_line_spacing) \ |
934 |
|
> WINDOW_BOX_HEIGHT_NO_MODE_LINE ((W))) |
935 |
|
|
936 |
/* Non-zero if ROW is not completely visible in window W. */ |
/* Non-zero if ROW is not completely visible in window W. */ |
937 |
|
|
938 |
#define MATRIX_ROW_PARTIALLY_VISIBLE_P(ROW) \ |
#define MATRIX_ROW_PARTIALLY_VISIBLE_P(W, ROW) \ |
939 |
((ROW)->height != (ROW)->visible_height) |
(MR_PARTIALLY_VISIBLE ((ROW)) \ |
940 |
|
&& (MR_PARTIALLY_VISIBLE_AT_TOP ((W), (ROW)) \ |
941 |
|
|| MR_PARTIALLY_VISIBLE_AT_BOTTOM ((W), (ROW)))) |
942 |
|
|
943 |
|
|
944 |
|
|
945 |
/* Non-zero if ROW is partially visible at the top of window W. */ |
/* Non-zero if ROW is partially visible at the top of window W. */ |
946 |
|
|
947 |
#define MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P(W, ROW) \ |
#define MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P(W, ROW) \ |
948 |
(MATRIX_ROW_PARTIALLY_VISIBLE_P ((ROW)) \ |
(MR_PARTIALLY_VISIBLE ((ROW)) \ |
949 |
&& (ROW)->y < WINDOW_HEADER_LINE_HEIGHT ((W))) |
&& MR_PARTIALLY_VISIBLE_AT_TOP ((W), (ROW))) |
950 |
|
|
951 |
/* Non-zero if ROW is partially visible at the bottom of window W. */ |
/* Non-zero if ROW is partially visible at the bottom of window W. */ |
952 |
|
|
953 |
#define MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P(W, ROW) \ |
#define MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P(W, ROW) \ |
954 |
(MATRIX_ROW_PARTIALLY_VISIBLE_P ((ROW)) \ |
(MR_PARTIALLY_VISIBLE ((ROW)) \ |
955 |
&& (ROW)->y + (ROW)->height > WINDOW_BOX_HEIGHT_NO_MODE_LINE ((W))) |
&& MR_PARTIALLY_VISIBLE_AT_BOTTOM ((W), (ROW))) |
956 |
|
|
957 |
/* Return the bottom Y + 1 of ROW. */ |
/* Return the bottom Y + 1 of ROW. */ |
958 |
|
|
2011 |
line, if the window has one. */ |
line, if the window has one. */ |
2012 |
int last_visible_y; |
int last_visible_y; |
2013 |
|
|
2014 |
/* Additional space in pixels between lines (for window systems |
/* Default amount of additional space in pixels between lines (for |
2015 |
only.) */ |
window systems only.) */ |
2016 |
int extra_line_spacing; |
int extra_line_spacing; |
2017 |
|
|
2018 |
|
/* Max extra line spacing added in this row. */ |
2019 |
|
int max_extra_line_spacing; |
2020 |
|
|
2021 |
/* Override font height information for this glyph. |
/* Override font height information for this glyph. |
2022 |
Used if override_ascent >= 0. Cleared after this glyph. */ |
Used if override_ascent >= 0. Cleared after this glyph. */ |
2023 |
int override_ascent, override_descent, override_boff; |
int override_ascent, override_descent, override_boff; |
2602 |
extern struct frame *last_mouse_frame; |
extern struct frame *last_mouse_frame; |
2603 |
extern int last_tool_bar_item; |
extern int last_tool_bar_item; |
2604 |
extern int mouse_autoselect_window; |
extern int mouse_autoselect_window; |
2605 |
|
extern void reseat_at_previous_visible_line_start P_ ((struct it *)); |
2606 |
|
|
2607 |
extern int calc_pixel_width_or_height P_ ((double *, struct it *, Lisp_Object, |
extern int calc_pixel_width_or_height P_ ((double *, struct it *, Lisp_Object, |
2608 |
/* XFontStruct */ void *, int, int *)); |
/* XFontStruct */ void *, int, int *)); |