X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fredisplay.h;h=aa6f74295160d42138a64a311e3f97901a3bddae;hb=041d9d27443ebd08f42fca2becb1f32451c1576f;hp=9059d4cbba1f34c626e647656acc24d90f86e7c1;hpb=77dcef404dc78635f6ffa8f71a803d2bc7cc8921;p=chise%2Fxemacs-chise.git diff --git a/src/redisplay.h b/src/redisplay.h index 9059d4c..aa6f742 100644 --- a/src/redisplay.h +++ b/src/redisplay.h @@ -270,6 +270,11 @@ struct display_line glyph_block_dynarr *right_glyphs; }; +#define DISPLAY_LINE_HEIGHT(dl) \ +(dl->ascent + dl->descent - dl->clip) +#define DISPLAY_LINE_YPOS(dl) \ +(dl->ypos - dl->ascent) + typedef struct { Dynarr_declare (display_line); @@ -350,6 +355,11 @@ extern int frame_changed; extern int glyphs_changed; extern int glyphs_changed_set; +/* True if any displayed subwindow is in need of updating + somewhere. */ +extern int subwindows_changed; +extern int subwindows_changed_set; + /* True if an icon is in need of updating somewhere. */ extern int icon_changed; extern int icon_changed_set; @@ -417,6 +427,7 @@ extern int windows_structure_changed; #define MARK_POINT_CHANGED MARK_TYPE_CHANGED (point) #define MARK_TOOLBAR_CHANGED MARK_TYPE_CHANGED (toolbar) #define MARK_GLYPHS_CHANGED MARK_TYPE_CHANGED (glyphs) +#define MARK_SUBWINDOWS_CHANGED MARK_TYPE_CHANGED (subwindows) /* Anytime a console, device or frame is added or deleted we need to reset these flags. */ @@ -431,6 +442,7 @@ extern int windows_structure_changed; point_changed_set = 0; \ toolbar_changed_set = 0; \ glyphs_changed_set = 0; \ + subwindows_changed_set = 0; \ } while (0) @@ -547,6 +559,14 @@ int compute_line_start_cache_dynarr_usage (line_start_cache_dynarr *dyn, int get_next_display_block (layout_bounds bounds, display_block_dynarr *dba, int start_pos, int *next_start); +void redisplay_output_subwindow (struct window *w, struct display_line *dl, + Lisp_Object image_instance, int xpos, + int xoffset, int start_pixpos, int width, + face_index findex, int cursor_start, + int cursor_width, int cursor_height); +void redisplay_unmap_subwindows_maybe (struct frame* f, int x, int y, int width, int height); +void redisplay_clear_region (Lisp_Object window, face_index findex, int x, + int y, int width, int height); void redisplay_clear_bottom_of_window (struct window *w, display_line_dynarr *ddla, int min_start, int max_end);