Mercurial > emacs
comparison src/dispextern.h @ 85973:d3e87ee5aa0e
Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-923
author | Miles Bader <miles@gnu.org> |
---|---|
date | Fri, 09 Nov 2007 09:45:30 +0000 |
parents | 5059c82a6ddf aef264594958 |
children | 153b9f19471f 880960b70474 |
comparison
equal
deleted
inserted
replaced
85972:51aa47312c4b | 85973:d3e87ee5aa0e |
---|---|
1801 Lisp_Object y; | 1801 Lisp_Object y; |
1802 Lisp_Object width; | 1802 Lisp_Object width; |
1803 Lisp_Object height; | 1803 Lisp_Object height; |
1804 }; | 1804 }; |
1805 | 1805 |
1806 /* Input sources for fetching characters or data to display. | |
1807 The input source is found in the `method' field. */ | |
1808 | |
1806 enum it_method { | 1809 enum it_method { |
1807 GET_FROM_BUFFER = 0, | 1810 GET_FROM_BUFFER = 0, |
1808 GET_FROM_DISPLAY_VECTOR, | 1811 GET_FROM_DISPLAY_VECTOR, |
1809 GET_FROM_COMPOSITION, | 1812 GET_FROM_COMPOSITION, |
1810 GET_FROM_STRING, | 1813 GET_FROM_STRING, |
1902 | 1905 |
1903 /* Current buffer or string position of the iterator, including | 1906 /* Current buffer or string position of the iterator, including |
1904 position in overlay strings etc. */ | 1907 position in overlay strings etc. */ |
1905 struct display_pos current; | 1908 struct display_pos current; |
1906 | 1909 |
1910 /* Total number of overlay strings to process. This can be > | |
1911 OVERLAY_STRING_CHUNK_SIZE. */ | |
1912 int n_overlay_strings; | |
1913 | |
1907 /* Vector of overlays to process. Overlay strings are processed | 1914 /* Vector of overlays to process. Overlay strings are processed |
1908 OVERLAY_STRING_CHUNK_SIZE at a time. */ | 1915 OVERLAY_STRING_CHUNK_SIZE at a time. */ |
1909 #define OVERLAY_STRING_CHUNK_SIZE 16 | 1916 #define OVERLAY_STRING_CHUNK_SIZE 16 |
1910 Lisp_Object overlay_strings[OVERLAY_STRING_CHUNK_SIZE]; | 1917 Lisp_Object overlay_strings[OVERLAY_STRING_CHUNK_SIZE]; |
1911 | 1918 |
1912 /* Total number of overlay strings to process. This can be > | 1919 /* For each overlay string, the overlay it came from. */ |
1913 OVERLAY_STRING_CHUNK_SIZE. */ | 1920 Lisp_Object string_overlays[OVERLAY_STRING_CHUNK_SIZE]; |
1914 int n_overlay_strings; | |
1915 | 1921 |
1916 /* If non-nil, a Lisp string being processed. If | 1922 /* If non-nil, a Lisp string being processed. If |
1917 current.overlay_string_index >= 0, this is an overlay string from | 1923 current.overlay_string_index >= 0, this is an overlay string from |
1918 pos. */ | 1924 pos. */ |
1919 Lisp_Object string; | 1925 Lisp_Object string; |
1926 | |
1927 /* If non-nil, we are processing a string that came | |
1928 from a `display' property given by an overlay. */ | |
1929 Lisp_Object from_overlay; | |
1920 | 1930 |
1921 /* Stack of saved values. New entries are pushed when we begin to | 1931 /* Stack of saved values. New entries are pushed when we begin to |
1922 process an overlay string or a string from a `glyph' property. | 1932 process an overlay string or a string from a `glyph' property. |
1923 Entries are popped when we return to deliver display elements | 1933 Entries are popped when we return to deliver display elements |
1924 from what we previously had. */ | 1934 from what we previously had. */ |
1951 } u; | 1961 } u; |
1952 | 1962 |
1953 /* current text and display positions. */ | 1963 /* current text and display positions. */ |
1954 struct text_pos position; | 1964 struct text_pos position; |
1955 struct display_pos current; | 1965 struct display_pos current; |
1966 Lisp_Object from_overlay; | |
1956 enum glyph_row_area area; | 1967 enum glyph_row_area area; |
1957 enum it_method method; | 1968 enum it_method method; |
1958 unsigned multibyte_p : 1; | 1969 unsigned multibyte_p : 1; |
1959 unsigned string_from_display_prop_p : 1; | 1970 unsigned string_from_display_prop_p : 1; |
1960 unsigned display_ellipsis_p : 1; | 1971 unsigned display_ellipsis_p : 1; |
1967 stack[IT_STACK_SIZE]; | 1978 stack[IT_STACK_SIZE]; |
1968 | 1979 |
1969 /* Stack pointer. */ | 1980 /* Stack pointer. */ |
1970 int sp; | 1981 int sp; |
1971 | 1982 |
1983 /* -1 means selective display hides everything between a \r and the | |
1984 next newline; > 0 means hide lines indented more than that value. */ | |
1985 int selective; | |
1986 | |
1987 /* An enumeration describing what the next display element is | |
1988 after a call to get_next_display_element. */ | |
1989 enum display_element_type what; | |
1990 | |
1991 /* Face to use. */ | |
1992 int face_id; | |
1993 | |
1972 /* Setting of buffer-local variable selective-display-ellipsis. */ | 1994 /* Setting of buffer-local variable selective-display-ellipsis. */ |
1973 unsigned selective_display_ellipsis_p : 1; | 1995 unsigned selective_display_ellipsis_p : 1; |
1974 | 1996 |
1975 /* 1 means control characters are translated into the form `^C' | 1997 /* 1 means control characters are translated into the form `^C' |
1976 where the `^' can be replaced by a display table entry. */ | 1998 where the `^' can be replaced by a display table entry. */ |
1977 unsigned ctl_arrow_p : 1; | 1999 unsigned ctl_arrow_p : 1; |
1978 | 2000 |
1979 /* -1 means selective display hides everything between a \r and the | 2001 /* 1 means lines are truncated. */ |
1980 next newline; > 0 means hide lines indented more than that value. */ | 2002 unsigned truncate_lines_p : 1; |
1981 int selective; | |
1982 | |
1983 /* An enumeration describing what the next display element is | |
1984 after a call to get_next_display_element. */ | |
1985 enum display_element_type what; | |
1986 | |
1987 /* Face to use. */ | |
1988 int face_id; | |
1989 | 2003 |
1990 /* Non-zero means that the current face has a box. */ | 2004 /* Non-zero means that the current face has a box. */ |
1991 unsigned face_box_p : 1; | 2005 unsigned face_box_p : 1; |
1992 | 2006 |
1993 /* Non-null means that the current character is the first in a run | 2007 /* Non-null means that the current character is the first in a run |
2063 Object can be a Lisp string in case the current display element | 2077 Object can be a Lisp string in case the current display element |
2064 comes from an overlay string, or it is buffer. It may also be nil | 2078 comes from an overlay string, or it is buffer. It may also be nil |
2065 during mode-line update. Position is a position in object. */ | 2079 during mode-line update. Position is a position in object. */ |
2066 Lisp_Object object; | 2080 Lisp_Object object; |
2067 struct text_pos position; | 2081 struct text_pos position; |
2068 | |
2069 /* 1 means lines are truncated. */ | |
2070 unsigned truncate_lines_p : 1; | |
2071 | 2082 |
2072 /* Number of columns per \t. */ | 2083 /* Number of columns per \t. */ |
2073 short tab_width; | 2084 short tab_width; |
2074 | 2085 |
2075 /* Width in pixels of truncation and continuation glyphs. */ | 2086 /* Width in pixels of truncation and continuation glyphs. */ |
2843 void init_frame_faces P_ ((struct frame *)); | 2854 void init_frame_faces P_ ((struct frame *)); |
2844 void free_frame_faces P_ ((struct frame *)); | 2855 void free_frame_faces P_ ((struct frame *)); |
2845 void recompute_basic_faces P_ ((struct frame *)); | 2856 void recompute_basic_faces P_ ((struct frame *)); |
2846 int face_at_buffer_position P_ ((struct window *, int, int, int, int *, | 2857 int face_at_buffer_position P_ ((struct window *, int, int, int, int *, |
2847 int, int)); | 2858 int, int)); |
2859 int face_for_overlay_string P_ ((struct window *, int, int, | |
2860 int, int *, | |
2861 int, int, Lisp_Object)); | |
2848 int face_at_string_position P_ ((struct window *, Lisp_Object, int, int, int, | 2862 int face_at_string_position P_ ((struct window *, Lisp_Object, int, int, int, |
2849 int, int *, enum face_id, int)); | 2863 int, int *, enum face_id, int)); |
2850 int merge_faces P_ ((struct frame *, Lisp_Object, int, int)); | 2864 int merge_faces P_ ((struct frame *, Lisp_Object, int, int)); |
2851 int compute_char_face P_ ((struct frame *, int, Lisp_Object)); | 2865 int compute_char_face P_ ((struct frame *, int, Lisp_Object)); |
2852 void free_all_realized_faces P_ ((Lisp_Object)); | 2866 void free_all_realized_faces P_ ((Lisp_Object)); |