Mercurial > hg > xemacs-beta
comparison src/redisplay.h @ 398:74fd4e045ea6 r21-2-29
Import from CVS: tag r21-2-29
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:13:30 +0200 |
parents | aabb7f5b1c81 |
children | a86b2b5e0111 |
comparison
equal
deleted
inserted
replaced
397:f4aeb21a5bad | 398:74fd4e045ea6 |
---|---|
20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
21 Boston, MA 02111-1307, USA. */ | 21 Boston, MA 02111-1307, USA. */ |
22 | 22 |
23 /* Synched up with: Not in FSF. */ | 23 /* Synched up with: Not in FSF. */ |
24 | 24 |
25 #ifndef _XEMACS_REDISPLAY_H_ | 25 #ifndef INCLUDED_redisplay_h_ |
26 #define _XEMACS_REDISPLAY_H_ | 26 #define INCLUDED_redisplay_h_ |
27 | 27 |
28 /* Redisplay DASSERT types */ | 28 /* Redisplay DASSERT types */ |
29 #define DB_DISP_POS 1 | 29 #define DB_DISP_POS 1 |
30 #define DB_DISP_TEXT_LAYOUT 2 | 30 #define DB_DISP_TEXT_LAYOUT 2 |
31 #define DB_DISP_REDISPLAY 4 | 31 #define DB_DISP_REDISPLAY 4 |
88 or pixmap. Any single character in a buffer has one or more runes | 88 or pixmap. Any single character in a buffer has one or more runes |
89 (or zero, if the character is invisible) corresponding to it. | 89 (or zero, if the character is invisible) corresponding to it. |
90 (Printable characters typically have one rune associated with them, | 90 (Printable characters typically have one rune associated with them, |
91 but control characters have two -- a ^ and a letter -- and other | 91 but control characters have two -- a ^ and a letter -- and other |
92 non-printing characters (those displayed in octal) have four. */ | 92 non-printing characters (those displayed in octal) have four. */ |
93 | |
94 /* WARNING! In compare_runes (one of the most heavily used functions) | |
95 two runes are compared. So please be careful with changes to this | |
96 structure. See comments in compare_runes. | |
97 | |
98 #### This should really be made smaller. | |
99 */ | |
93 | 100 |
94 typedef struct rune rune; | 101 typedef struct rune rune; |
95 struct rune | 102 struct rune |
96 { | 103 { |
97 face_index findex; /* face rune is displayed with. The | 104 face_index findex; /* face rune is displayed with. The |
103 faces that overlap the rune) and | 110 faces that overlap the rune) and |
104 contains the instance values for | 111 contains the instance values for |
105 each of the face properties in this | 112 each of the face properties in this |
106 particular window. */ | 113 particular window. */ |
107 | 114 |
108 short xpos; /* horizontal starting position in pixels */ | |
109 short width; /* pixel width of rune */ | |
110 | |
111 | |
112 Bufpos bufpos; /* buffer position this rune is displaying; | 115 Bufpos bufpos; /* buffer position this rune is displaying; |
113 for the modeline, the value here is a | 116 for the modeline, the value here is a |
114 Charcount, but who's looking? */ | 117 Charcount, but who's looking? */ |
115 Bufpos endpos; /* if set this rune covers a range of pos */ | 118 Bufpos endpos; /* if set this rune covers a range of pos */ |
116 /* #### Chuck, what does it mean for a rune | 119 /* #### Chuck, what does it mean for a rune |
117 to cover a range of pos? I don't get | 120 to cover a range of pos? I don't get |
118 this. */ | 121 this. */ |
119 unsigned int cursor_type :3; /* is this rune covered by the cursor? */ | 122 /* #### This isn't used as an rvalue anywhere! |
120 unsigned int type :3; /* type of rune object */ | 123 remove! */ |
124 | |
125 | |
126 short xpos; /* horizontal starting position in pixels */ | |
127 short width; /* pixel width of rune */ | |
128 | |
129 | |
130 unsigned char cursor_type; /* is this rune covered by the cursor? */ | |
131 unsigned char type; /* type of rune object */ | |
132 /* We used to do bitfields here, but if I | |
133 (JV) count correctly that doesn't matter | |
134 for the size of the structure. All the bit | |
135 fiddling _does_ slow down redisplay by | |
136 about 10%. So don't do that */ | |
121 | 137 |
122 union /* Information specific to the type of rune */ | 138 union /* Information specific to the type of rune */ |
123 { | 139 { |
140 /* #### GLyps are are. Is it really necessary to waste 8 bytes on every | |
141 rune for that?! */ | |
124 /* DGLYPH */ | 142 /* DGLYPH */ |
125 struct | 143 struct |
126 { | 144 { |
127 Lisp_Object glyph; | 145 Lisp_Object glyph; |
128 Lisp_Object extent; /* extent rune is attached to, if any. | 146 Lisp_Object extent; /* extent rune is attached to, if any. |
143 } chr; | 161 } chr; |
144 | 162 |
145 /* HLINE */ | 163 /* HLINE */ |
146 struct | 164 struct |
147 { | 165 { |
148 int thickness; /* how thick to make hline */ | 166 short thickness; /* how thick to make hline */ |
149 int yoffset; /* how far down from top of line to put top */ | 167 short yoffset; /* how far down from top of line to put top */ |
150 } hline; | 168 } hline; |
151 } object; /* actual rune object */ | 169 } object; /* actual rune object */ |
152 }; | 170 }; |
153 | 171 |
154 typedef struct | 172 typedef struct |
230 | 248 |
231 typedef struct | 249 typedef struct |
232 { | 250 { |
233 Dynarr_declare (glyph_block); | 251 Dynarr_declare (glyph_block); |
234 } glyph_block_dynarr; | 252 } glyph_block_dynarr; |
253 | |
254 /*************************************************************************/ | |
255 /* display lines */ | |
256 /*************************************************************************/ | |
257 | |
258 /* Modeline commentary: IMO the modeline is handled very badly, we | |
259 special case virtually *everything* in the redisplay routines for | |
260 the modeline. The fact that dl->bufpos can be either a buffer | |
261 position or a char count highlights this. There is no abstraction at | |
262 all that I can find and it means that the code is made very ugly as | |
263 a result. Either we should treat the modeline *entirely* separately, | |
264 or we should abstract to something that applies equally well to the | |
265 modeline and to buffer text, the things are not enormously different | |
266 after all and handling them identically at some level would | |
267 eliminate some bugs that still exist (mainly to do with modeline | |
268 handling). This problem doesn't help trying to implement gutters | |
269 which are somewhere in between buffer text and modeline text. | |
270 | |
271 Redisplay commentary: Everything in redisplay is tied very tightly | |
272 to the things that are being displayed, and the context, | |
273 e.g. buffers and windows. According to Chuck this is so that we can | |
274 get speed, which seems fine to me, however this usage is extended | |
275 too far down the redispay routines IMO. At some level there should | |
276 be functions that know how to display strings with extents and | |
277 faces, regardless of buffer etc. After all the window system does | |
278 not care. <andy@xemacs.org> */ | |
235 | 279 |
236 typedef struct display_line display_line; | 280 typedef struct display_line display_line; |
237 struct display_line | 281 struct display_line |
238 { | 282 { |
239 short ypos; /* vertical position in pixels | 283 short ypos; /* vertical position in pixels |
245 pixels below the baseline. | 289 pixels below the baseline. |
246 The descent includes the baseline | 290 The descent includes the baseline |
247 pixel-row itself, I think. */ | 291 pixel-row itself, I think. */ |
248 unsigned short clip; /* amount of bottom of line to clip | 292 unsigned short clip; /* amount of bottom of line to clip |
249 in pixels.*/ | 293 in pixels.*/ |
294 unsigned short top_clip; /* amount of top of line to clip | |
295 in pixels.*/ | |
250 Bufpos bufpos; /* first buffer position on line */ | 296 Bufpos bufpos; /* first buffer position on line */ |
251 Bufpos end_bufpos; /* last buffer position on line */ | 297 Bufpos end_bufpos; /* last buffer position on line */ |
252 Charcount offset; /* adjustment to bufpos vals */ | 298 Charcount offset; /* adjustment to bufpos vals */ |
253 Charcount num_chars; /* # of chars on line | 299 Charcount num_chars; /* # of chars on line |
254 including expansion of tabs | 300 including expansion of tabs |
266 display_block_dynarr *display_blocks; | 312 display_block_dynarr *display_blocks; |
267 | 313 |
268 /* Dynamic arrays of left and right glyph blocks */ | 314 /* Dynamic arrays of left and right glyph blocks */ |
269 glyph_block_dynarr *left_glyphs; | 315 glyph_block_dynarr *left_glyphs; |
270 glyph_block_dynarr *right_glyphs; | 316 glyph_block_dynarr *right_glyphs; |
317 | |
318 face_index left_margin_findex; | |
319 face_index right_margin_findex; | |
320 face_index default_findex; | |
271 }; | 321 }; |
272 | 322 |
273 #define DISPLAY_LINE_HEIGHT(dl) \ | 323 #define DISPLAY_LINE_HEIGHT(dl) \ |
274 (dl->ascent + dl->descent - dl->clip) | 324 (dl->ascent + dl->descent - (dl->clip + dl->top_clip)) |
275 #define DISPLAY_LINE_YPOS(dl) \ | 325 #define DISPLAY_LINE_YPOS(dl) \ |
276 (dl->ypos - dl->ascent) | 326 (dl->ypos - (dl->ascent - dl->top_clip)) |
327 #define DISPLAY_LINE_YEND(dl) \ | |
328 ((dl->ypos + dl->descent) - dl->clip) | |
277 | 329 |
278 typedef struct | 330 typedef struct |
279 { | 331 { |
280 Dynarr_declare (display_line); | 332 Dynarr_declare (display_line); |
281 } display_line_dynarr; | 333 } display_line_dynarr; |
334 | |
335 /* The following two structures are used to represent an area to | |
336 displayed and where to display it. Using these two structures all | |
337 combinations of clipping and position can be accommodated. */ | |
338 | |
339 /* This represents an area to be displayed into. */ | |
340 typedef struct display_box display_box; | |
341 struct display_box | |
342 { | |
343 int xpos; /* absolute horizontal position of area */ | |
344 int ypos; /* absolute vertical position of area */ | |
345 int width, height; | |
346 }; | |
347 | |
348 /* This represents the area from a glyph to be displayed. */ | |
349 typedef struct display_glyph_area display_glyph_area; | |
350 struct display_glyph_area | |
351 { | |
352 int xoffset; /* horizontal offset of the glyph, +ve means | |
353 display the glyph with x offset by xoffset, | |
354 -ve means display starting xoffset into the | |
355 glyph. */ | |
356 int yoffset; /* vertical offset of the glyph, +ve means | |
357 display the glyph with y offset by yoffset, | |
358 -ve means display starting xoffset into the | |
359 glyph. */ | |
360 int width, height; /* width and height of glyph to display. */ | |
361 }; | |
282 | 362 |
283 /* It could be argued that the following two structs belong in | 363 /* It could be argued that the following two structs belong in |
284 extents.h, but they're only used by redisplay and it simplifies | 364 extents.h, but they're only used by redisplay and it simplifies |
285 the header files to put them here. */ | 365 the header files to put them here. */ |
286 | 366 |
313 unsigned int invisible_ellipses:1; | 393 unsigned int invisible_ellipses:1; |
314 unsigned int previously_invisible:1; | 394 unsigned int previously_invisible:1; |
315 unsigned int invisible_ellipses_already_displayed:1; | 395 unsigned int invisible_ellipses_already_displayed:1; |
316 }; | 396 }; |
317 | 397 |
398 #define EDGE_TOP 1 | |
399 #define EDGE_LEFT 2 | |
400 #define EDGE_BOTTOM 4 | |
401 #define EDGE_RIGHT 8 | |
402 #define EDGE_ALL (EDGE_TOP | EDGE_LEFT | EDGE_BOTTOM | EDGE_RIGHT) | |
403 | |
318 | 404 |
319 /*************************************************************************/ | 405 /*************************************************************************/ |
320 /* change flags */ | 406 /* change flags */ |
321 /*************************************************************************/ | 407 /*************************************************************************/ |
322 | 408 |
358 /* True if any displayed subwindow is in need of updating | 444 /* True if any displayed subwindow is in need of updating |
359 somewhere. */ | 445 somewhere. */ |
360 extern int subwindows_changed; | 446 extern int subwindows_changed; |
361 extern int subwindows_changed_set; | 447 extern int subwindows_changed_set; |
362 | 448 |
449 /* True if any displayed subwindow is in need of updating | |
450 somewhere. */ | |
451 extern int subwindows_state_changed; | |
452 extern int subwindows_state_changed_set; | |
453 | |
363 /* True if an icon is in need of updating somewhere. */ | 454 /* True if an icon is in need of updating somewhere. */ |
364 extern int icon_changed; | 455 extern int icon_changed; |
365 extern int icon_changed_set; | 456 extern int icon_changed_set; |
366 | 457 |
367 /* True if a menubar is in need of updating somewhere. */ | 458 /* True if a menubar is in need of updating somewhere. */ |
384 extern int asynch_device_change_pending; | 475 extern int asynch_device_change_pending; |
385 | 476 |
386 /* non-nil if any toolbar has changed */ | 477 /* non-nil if any toolbar has changed */ |
387 extern int toolbar_changed; | 478 extern int toolbar_changed; |
388 extern int toolbar_changed_set; | 479 extern int toolbar_changed_set; |
480 | |
481 /* non-nil if any gutter has changed */ | |
482 extern int gutter_changed; | |
483 extern int gutter_changed_set; | |
389 | 484 |
390 /* non-nil if any window has changed since the last time redisplay completed */ | 485 /* non-nil if any window has changed since the last time redisplay completed */ |
391 extern int windows_changed; | 486 extern int windows_changed; |
392 | 487 |
393 /* non-nil if any frame's window structure has changed since the last | 488 /* non-nil if any frame's window structure has changed since the last |
424 #define MARK_ICON_CHANGED MARK_TYPE_CHANGED (icon) | 519 #define MARK_ICON_CHANGED MARK_TYPE_CHANGED (icon) |
425 #define MARK_MENUBAR_CHANGED MARK_TYPE_CHANGED (menubar) | 520 #define MARK_MENUBAR_CHANGED MARK_TYPE_CHANGED (menubar) |
426 #define MARK_MODELINE_CHANGED MARK_TYPE_CHANGED (modeline) | 521 #define MARK_MODELINE_CHANGED MARK_TYPE_CHANGED (modeline) |
427 #define MARK_POINT_CHANGED MARK_TYPE_CHANGED (point) | 522 #define MARK_POINT_CHANGED MARK_TYPE_CHANGED (point) |
428 #define MARK_TOOLBAR_CHANGED MARK_TYPE_CHANGED (toolbar) | 523 #define MARK_TOOLBAR_CHANGED MARK_TYPE_CHANGED (toolbar) |
524 #define MARK_GUTTER_CHANGED MARK_TYPE_CHANGED (gutter) | |
429 #define MARK_GLYPHS_CHANGED MARK_TYPE_CHANGED (glyphs) | 525 #define MARK_GLYPHS_CHANGED MARK_TYPE_CHANGED (glyphs) |
430 #define MARK_SUBWINDOWS_CHANGED MARK_TYPE_CHANGED (subwindows) | 526 #define MARK_SUBWINDOWS_CHANGED MARK_TYPE_CHANGED (subwindows) |
527 #define MARK_SUBWINDOWS_STATE_CHANGED MARK_TYPE_CHANGED (subwindows_state) | |
528 | |
529 | |
530 #define CLASS_RESET_CHANGED_FLAGS(p) do { \ | |
531 (p)->buffers_changed = 0; \ | |
532 (p)->clip_changed = 0; \ | |
533 (p)->extents_changed = 0; \ | |
534 (p)->faces_changed = 0; \ | |
535 (p)->frame_changed = 0; \ | |
536 (p)->icon_changed = 0; \ | |
537 (p)->menubar_changed = 0; \ | |
538 (p)->modeline_changed = 0; \ | |
539 (p)->point_changed = 0; \ | |
540 (p)->toolbar_changed = 0; \ | |
541 (p)->gutter_changed = 0; \ | |
542 (p)->glyphs_changed = 0; \ | |
543 (p)->subwindows_changed = 0; \ | |
544 (p)->subwindows_state_changed = 0; \ | |
545 (p)->windows_changed = 0; \ | |
546 (p)->windows_structure_changed = 0; \ | |
547 } while (0) | |
548 | |
549 #define GLOBAL_RESET_CHANGED_FLAGS do { \ | |
550 buffers_changed = 0; \ | |
551 clip_changed = 0; \ | |
552 extents_changed = 0; \ | |
553 faces_changed = 0; \ | |
554 frame_changed = 0; \ | |
555 icon_changed = 0; \ | |
556 menubar_changed = 0; \ | |
557 modeline_changed = 0; \ | |
558 point_changed = 0; \ | |
559 toolbar_changed = 0; \ | |
560 gutter_changed = 0; \ | |
561 glyphs_changed = 0; \ | |
562 subwindows_changed = 0; \ | |
563 subwindows_state_changed = 0; \ | |
564 windows_changed = 0; \ | |
565 windows_structure_changed = 0; \ | |
566 } while (0) | |
567 | |
568 #define CLASS_REDISPLAY_FLAGS_CHANGEDP(p) \ | |
569 ( (p)->buffers_changed || \ | |
570 (p)->clip_changed || \ | |
571 (p)->extents_changed || \ | |
572 (p)->faces_changed || \ | |
573 (p)->frame_changed || \ | |
574 (p)->icon_changed || \ | |
575 (p)->menubar_changed || \ | |
576 (p)->modeline_changed || \ | |
577 (p)->point_changed || \ | |
578 (p)->toolbar_changed || \ | |
579 (p)->gutter_changed || \ | |
580 (p)->glyphs_changed || \ | |
581 (p)->size_changed || \ | |
582 (p)->subwindows_changed || \ | |
583 (p)->subwindows_state_changed || \ | |
584 (p)->windows_changed || \ | |
585 (p)->windows_structure_changed ) | |
586 | |
587 #define GLOBAL_REDISPLAY_FLAGS_CHANGEDP \ | |
588 ( buffers_changed || \ | |
589 clip_changed || \ | |
590 extents_changed || \ | |
591 faces_changed || \ | |
592 frame_changed || \ | |
593 icon_changed || \ | |
594 menubar_changed || \ | |
595 modeline_changed || \ | |
596 point_changed || \ | |
597 toolbar_changed || \ | |
598 gutter_changed || \ | |
599 glyphs_changed || \ | |
600 size_changed || \ | |
601 subwindows_changed || \ | |
602 subwindows_state_changed || \ | |
603 windows_changed || \ | |
604 windows_structure_changed ) | |
605 | |
431 | 606 |
432 /* Anytime a console, device or frame is added or deleted we need to reset | 607 /* Anytime a console, device or frame is added or deleted we need to reset |
433 these flags. */ | 608 these flags. */ |
434 #define RESET_CHANGED_SET_FLAGS \ | 609 #define RESET_CHANGED_SET_FLAGS do { \ |
435 do { \ | 610 buffers_changed_set = 0; \ |
436 buffers_changed_set = 0; \ | 611 clip_changed_set = 0; \ |
437 clip_changed_set = 0; \ | 612 extents_changed_set = 0; \ |
438 extents_changed_set = 0; \ | 613 icon_changed_set = 0; \ |
439 icon_changed_set = 0; \ | 614 menubar_changed_set = 0; \ |
440 menubar_changed_set = 0; \ | 615 modeline_changed_set = 0; \ |
441 modeline_changed_set = 0; \ | 616 point_changed_set = 0; \ |
442 point_changed_set = 0; \ | 617 toolbar_changed_set = 0; \ |
443 toolbar_changed_set = 0; \ | 618 gutter_changed_set = 0; \ |
444 glyphs_changed_set = 0; \ | 619 glyphs_changed_set = 0; \ |
445 subwindows_changed_set = 0; \ | 620 subwindows_changed_set = 0; \ |
446 } while (0) | 621 subwindows_state_changed_set = 0; \ |
622 } while (0) | |
447 | 623 |
448 | 624 |
449 /*************************************************************************/ | 625 /*************************************************************************/ |
450 /* redisplay global variables */ | 626 /* redisplay global variables */ |
451 /*************************************************************************/ | 627 /*************************************************************************/ |
483 /* If non-zero, a window-system was specified on the command line. | 659 /* If non-zero, a window-system was specified on the command line. |
484 Defined in emacs.c. */ | 660 Defined in emacs.c. */ |
485 extern int display_arg; | 661 extern int display_arg; |
486 | 662 |
487 /* Type of display specified. Defined in emacs.c. */ | 663 /* Type of display specified. Defined in emacs.c. */ |
488 extern CONST char *display_use; | 664 extern const char *display_use; |
489 | 665 |
490 /* Nonzero means reading single-character input with prompt | 666 /* Nonzero means reading single-character input with prompt |
491 so put cursor on minibuffer after the prompt. */ | 667 so put cursor on minibuffer after the prompt. */ |
492 | 668 |
493 extern int cursor_in_echo_area; | 669 extern int cursor_in_echo_area; |
517 Bufpos point); | 693 Bufpos point); |
518 int line_at_center (struct window *w, int type, Bufpos start, Bufpos point); | 694 int line_at_center (struct window *w, int type, Bufpos start, Bufpos point); |
519 int window_half_pixpos (struct window *w); | 695 int window_half_pixpos (struct window *w); |
520 void redisplay_echo_area (void); | 696 void redisplay_echo_area (void); |
521 void free_display_structs (struct window_mirror *mir); | 697 void free_display_structs (struct window_mirror *mir); |
522 Bufbyte *generate_formatted_string (struct window *w, Lisp_Object format_str, | 698 void free_display_lines (display_line_dynarr *dla); |
523 Lisp_Object result_str, face_index findex, | 699 void generate_displayable_area (struct window *w, Lisp_Object disp_string, |
524 int type); | 700 int xpos, int ypos, int width, int height, |
701 display_line_dynarr* dl, | |
702 Bufpos start_pos, face_index default_face); | |
703 /* `generate_title_string' in frame.c needs this */ | |
704 void generate_formatted_string_db (Lisp_Object format_str, | |
705 Lisp_Object result_str, | |
706 struct window *w, | |
707 struct display_line *dl, | |
708 struct display_block *db, | |
709 face_index findex, | |
710 int min_pixpos, int max_pixpos, int type); | |
525 int real_current_modeline_height (struct window *w); | 711 int real_current_modeline_height (struct window *w); |
526 int pixel_to_glyph_translation (struct frame *f, int x_coord, | 712 int pixel_to_glyph_translation (struct frame *f, int x_coord, |
527 int y_coord, int *col, int *row, | 713 int y_coord, int *col, int *row, |
528 int *obj_x, int *obj_y, | 714 int *obj_x, int *obj_y, |
529 struct window **w, Bufpos *bufpos, | 715 struct window **w, Bufpos *bufpos, |
530 Bufpos *closest, Charcount *modeline_closest, | 716 Bufpos *closest, Charcount *modeline_closest, |
531 Lisp_Object *obj1, Lisp_Object *obj2); | 717 Lisp_Object *obj1, Lisp_Object *obj2); |
532 void glyph_to_pixel_translation (struct window *w, int char_x, | 718 void glyph_to_pixel_translation (struct window *w, int char_x, |
533 int char_y, int *pix_x, int *pix_y); | 719 int char_y, int *pix_x, int *pix_y); |
534 void mark_redisplay (void (*) (Lisp_Object)); | 720 void mark_redisplay (void); |
535 int point_in_line_start_cache (struct window *w, Bufpos point, | 721 int point_in_line_start_cache (struct window *w, Bufpos point, |
536 int min_past); | 722 int min_past); |
537 int point_would_be_visible (struct window *w, Bufpos startp, | 723 int point_would_be_visible (struct window *w, Bufpos startp, |
538 Bufpos point); | 724 Bufpos point); |
539 Bufpos start_of_last_line (struct window *w, Bufpos startp); | 725 Bufpos start_of_last_line (struct window *w, Bufpos startp); |
557 | 743 |
558 /* defined in redisplay-output.c */ | 744 /* defined in redisplay-output.c */ |
559 int get_next_display_block (layout_bounds bounds, | 745 int get_next_display_block (layout_bounds bounds, |
560 display_block_dynarr *dba, int start_pos, | 746 display_block_dynarr *dba, int start_pos, |
561 int *next_start); | 747 int *next_start); |
562 void redisplay_output_subwindow (struct window *w, struct display_line *dl, | 748 void redisplay_output_layout (struct window *w, |
563 Lisp_Object image_instance, int xpos, | 749 Lisp_Object image_instance, |
564 int xoffset, int start_pixpos, int width, | 750 struct display_box* db, struct display_glyph_area* dga, |
565 face_index findex, int cursor_start, | 751 face_index findex, int cursor_start, int cursor_width, |
566 int cursor_width, int cursor_height); | 752 int cursor_height); |
753 void redisplay_output_subwindow (struct window *w, | |
754 Lisp_Object image_instance, | |
755 struct display_box* db, struct display_glyph_area* dga, | |
756 face_index findex, int cursor_start, int cursor_width, | |
757 int cursor_height); | |
567 void redisplay_unmap_subwindows_maybe (struct frame* f, int x, int y, int width, int height); | 758 void redisplay_unmap_subwindows_maybe (struct frame* f, int x, int y, int width, int height); |
759 void redisplay_output_pixmap (struct window *w, | |
760 Lisp_Object image_instance, | |
761 struct display_box* db, struct display_glyph_area* dga, | |
762 face_index findex, int cursor_start, int cursor_width, | |
763 int cursor_height, int offset_bitmap); | |
764 int redisplay_calculate_display_boxes (struct display_line *dl, int xpos, | |
765 int xoffset, int start_pixpos, int width, | |
766 struct display_box* dest, | |
767 struct display_glyph_area* src); | |
768 int redisplay_normalize_glyph_area (struct display_box* dest, | |
769 struct display_glyph_area* glyphsrc); | |
770 void redisplay_clear_to_window_end (struct window *w, int ypos1, int ypos2); | |
568 void redisplay_clear_region (Lisp_Object window, face_index findex, int x, | 771 void redisplay_clear_region (Lisp_Object window, face_index findex, int x, |
569 int y, int width, int height); | 772 int y, int width, int height); |
570 void redisplay_clear_bottom_of_window (struct window *w, | 773 void redisplay_clear_bottom_of_window (struct window *w, |
571 display_line_dynarr *ddla, | 774 display_line_dynarr *ddla, |
572 int min_start, int max_end); | 775 int min_start, int max_end); |
573 void redisplay_update_line (struct window *w, int first_line, | 776 void redisplay_update_line (struct window *w, int first_line, |
574 int last_line, int update_values); | 777 int last_line, int update_values); |
575 void redisplay_output_window (struct window *w); | 778 void redisplay_output_window (struct window *w); |
779 void bevel_modeline (struct window *w, struct display_line *dl); | |
576 int redisplay_move_cursor (struct window *w, Bufpos new_point, | 780 int redisplay_move_cursor (struct window *w, Bufpos new_point, |
577 int no_output_end); | 781 int no_output_end); |
578 void redisplay_redraw_cursor (struct frame *f, int run_begin_end_meths); | 782 void redisplay_redraw_cursor (struct frame *f, int run_begin_end_meths); |
579 void output_display_line (struct window *w, display_line_dynarr *cdla, | 783 void output_display_line (struct window *w, display_line_dynarr *cdla, |
580 display_line_dynarr *ddla, int line, | 784 display_line_dynarr *ddla, int line, |
581 int force_start, int force_end); | 785 int force_start, int force_end); |
582 | 786 |
583 #endif /* _XEMACS_REDISPLAY_H_ */ | 787 #endif /* INCLUDED_redisplay_h_ */ |