Mercurial > emacs
comparison src/dispextern.h @ 89909:68c22ea6027c
Sync to HEAD
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Fri, 16 Apr 2004 12:51:06 +0000 |
parents | e3cedd99e51a |
children | 4c90ffeb71c5 |
comparison
equal
deleted
inserted
replaced
89908:ee1402f7b568 | 89909:68c22ea6027c |
---|---|
48 #include "msdos.h" | 48 #include "msdos.h" |
49 #endif | 49 #endif |
50 | 50 |
51 #ifdef HAVE_X_WINDOWS | 51 #ifdef HAVE_X_WINDOWS |
52 typedef struct x_display_info Display_Info; | 52 typedef struct x_display_info Display_Info; |
53 typedef XImage * XImagePtr; | |
54 typedef XImagePtr XImagePtr_or_DC; | |
53 #define NativeRectangle XRectangle | 55 #define NativeRectangle XRectangle |
54 #endif | 56 #endif |
55 | 57 |
56 #ifdef HAVE_NTGUI | 58 #ifdef HAVE_NTGUI |
57 #include "w32gui.h" | 59 #include "w32gui.h" |
58 typedef struct w32_display_info Display_Info; | 60 typedef struct w32_display_info Display_Info; |
61 typedef XImage *XImagePtr; | |
62 typedef HDC XImagePtr_or_DC; | |
59 #endif | 63 #endif |
60 | 64 |
61 #ifdef HAVE_CARBON | 65 #ifdef HAVE_CARBON |
62 #include "macgui.h" | 66 #include "macgui.h" |
63 typedef struct mac_display_info Display_Info; | 67 typedef struct mac_display_info Display_Info; |
64 | 68 /* Mac equivalent of XImage. */ |
65 /* Include Carbon.h to define Cursor and Rect. */ | 69 typedef Pixmap XImagePtr; |
66 #undef mktime | 70 typedef XImagePtr XImagePtr_or_DC; |
67 #undef DEBUG | |
68 #undef Z | |
69 #undef free | |
70 #undef malloc | |
71 #undef realloc | |
72 /* Macros max and min defined in lisp.h conflict with those in | |
73 precompiled header Carbon.h. */ | |
74 #undef max | |
75 #undef min | |
76 #undef init_process | |
77 #include <Carbon/Carbon.h> | |
78 #undef Z | |
79 #define Z (current_buffer->text->z) | |
80 #undef free | |
81 #define free unexec_free | |
82 #undef malloc | |
83 #define malloc unexec_malloc | |
84 #undef realloc | |
85 #define realloc unexec_realloc | |
86 #undef min | |
87 #define min(a, b) ((a) < (b) ? (a) : (b)) | |
88 #undef max | |
89 #define max(a, b) ((a) > (b) ? (a) : (b)) | |
90 #undef init_process | |
91 #define init_process emacs_init_process | |
92 | |
93 #endif | 71 #endif |
94 | |
95 | 72 |
96 #ifndef NativeRectangle | 73 #ifndef NativeRectangle |
97 #define NativeRectangle int | 74 #define NativeRectangle int |
98 #endif | 75 #endif |
99 | |
100 | 76 |
101 /* Structure forward declarations. Some are here because function | 77 /* Structure forward declarations. Some are here because function |
102 prototypes below reference structure types before their definition | 78 prototypes below reference structure types before their definition |
103 in this file. Some are here because not every file including | 79 in this file. Some are here because not every file including |
104 dispextern.h also includes frame.h and windows.h. */ | 80 dispextern.h also includes frame.h and windows.h. */ |
124 ON_RIGHT_FRINGE, | 100 ON_RIGHT_FRINGE, |
125 ON_LEFT_MARGIN, | 101 ON_LEFT_MARGIN, |
126 ON_RIGHT_MARGIN | 102 ON_RIGHT_MARGIN |
127 }; | 103 }; |
128 | 104 |
105 /* Number of bits allocated to store fringe bitmap numbers. */ | |
106 #define FRINGE_ID_BITS 8 | |
107 | |
129 | 108 |
130 | 109 |
131 /*********************************************************************** | 110 /*********************************************************************** |
132 Debugging | 111 Debugging |
133 ***********************************************************************/ | 112 ***********************************************************************/ |
319 Lisp_Object object; | 298 Lisp_Object object; |
320 | 299 |
321 /* Width in pixels. */ | 300 /* Width in pixels. */ |
322 short pixel_width; | 301 short pixel_width; |
323 | 302 |
303 /* Ascent and descent in pixels. */ | |
304 short ascent, descent; | |
305 | |
324 /* Vertical offset. If < 0, the glyph is displayed raised, if > 0 | 306 /* Vertical offset. If < 0, the glyph is displayed raised, if > 0 |
325 the glyph is displayed lowered. */ | 307 the glyph is displayed lowered. */ |
326 short voffset; | 308 short voffset; |
327 | 309 |
328 /* Which kind of glyph this is---character, image etc. Value | 310 /* Which kind of glyph this is---character, image etc. Value |
357 /* 1 means the actual glyph is not available, draw a box instead. | 339 /* 1 means the actual glyph is not available, draw a box instead. |
358 This can happen when a font couldn't be loaded, or a character | 340 This can happen when a font couldn't be loaded, or a character |
359 doesn't have a glyph in a font. */ | 341 doesn't have a glyph in a font. */ |
360 unsigned glyph_not_available_p : 1; | 342 unsigned glyph_not_available_p : 1; |
361 | 343 |
344 #define FACE_ID_BITS 21 | |
345 | |
362 /* Face of the glyph. */ | 346 /* Face of the glyph. */ |
363 unsigned face_id : 21; | 347 unsigned face_id : FACE_ID_BITS; |
364 | 348 |
365 /* Type of font used to display the character glyph. May be used to | 349 /* Type of font used to display the character glyph. May be used to |
366 determine which set of functions to use to obtain font metrics | 350 determine which set of functions to use to obtain font metrics |
367 for the glyph. On W32, value should be an enumerator of the type | 351 for the glyph. On W32, value should be an enumerator of the type |
368 w32_char_font_type. Otherwise it equals FONT_TYPE_UNKNOWN. */ | 352 w32_char_font_type. Otherwise it equals FONT_TYPE_UNKNOWN. */ |
702 glyph position + 1, due to truncation, invisible text etc. In an | 686 glyph position + 1, due to truncation, invisible text etc. In an |
703 up-to-date display, this should always be equal to the start | 687 up-to-date display, this should always be equal to the start |
704 position of the next row. */ | 688 position of the next row. */ |
705 struct display_pos end; | 689 struct display_pos end; |
706 | 690 |
691 /* Left fringe bitmap number (enum fringe_bitmap_type). */ | |
692 unsigned left_user_fringe_bitmap : FRINGE_ID_BITS; | |
693 | |
694 /* Face of the left fringe glyph. */ | |
695 unsigned left_user_fringe_face_id : FACE_ID_BITS; | |
696 | |
697 /* Right fringe bitmap number (enum fringe_bitmap_type). */ | |
698 unsigned right_user_fringe_bitmap : FRINGE_ID_BITS; | |
699 | |
700 /* Face of the right fringe glyph. */ | |
701 unsigned right_user_fringe_face_id : FACE_ID_BITS; | |
702 | |
703 /* Left fringe bitmap number (enum fringe_bitmap_type). */ | |
704 unsigned left_fringe_bitmap : FRINGE_ID_BITS; | |
705 | |
706 /* Face of the left fringe glyph. */ | |
707 unsigned left_fringe_face_id : FACE_ID_BITS; | |
708 | |
709 /* Right fringe bitmap number (enum fringe_bitmap_type). */ | |
710 unsigned right_fringe_bitmap : FRINGE_ID_BITS; | |
711 | |
712 /* Face of the right fringe glyph. */ | |
713 unsigned right_fringe_face_id : FACE_ID_BITS; | |
714 | |
715 /* 1 means that we must draw the bitmaps of this row. */ | |
716 unsigned redraw_fringe_bitmaps_p : 1; | |
717 | |
707 /* In a desired matrix, 1 means that this row must be updated. In a | 718 /* In a desired matrix, 1 means that this row must be updated. In a |
708 current matrix, 0 means that the row has been invalidated, i.e. | 719 current matrix, 0 means that the row has been invalidated, i.e. |
709 the row's contents do not agree with what is visible on the | 720 the row's contents do not agree with what is visible on the |
710 screen. */ | 721 screen. */ |
711 unsigned enabled_p : 1; | 722 unsigned enabled_p : 1; |
769 /* 1 means some glyphs in this row are displayed in mouse-face. */ | 780 /* 1 means some glyphs in this row are displayed in mouse-face. */ |
770 unsigned mouse_face_p : 1; | 781 unsigned mouse_face_p : 1; |
771 | 782 |
772 /* 1 means this row was ended by a newline from a string. */ | 783 /* 1 means this row was ended by a newline from a string. */ |
773 unsigned ends_in_newline_from_string_p : 1; | 784 unsigned ends_in_newline_from_string_p : 1; |
785 | |
786 /* 1 means this row width is exactly the width of the window, and the | |
787 final newline character is hidden in the right fringe. */ | |
788 unsigned exact_window_width_line_p : 1; | |
789 | |
790 /* 1 means this row currently shows the cursor in the right fringe. */ | |
791 unsigned cursor_in_fringe_p : 1; | |
792 | |
793 /* Non-zero means display a bitmap on X frames indicating that this | |
794 the first line of the buffer. */ | |
795 unsigned indicate_bob_p : 1; | |
796 | |
797 /* Non-zero means display a bitmap on X frames indicating that this | |
798 the top line of the window, but not start of the buffer. */ | |
799 unsigned indicate_top_line_p : 1; | |
800 | |
801 /* Non-zero means display a bitmap on X frames indicating that this | |
802 the last line of the buffer. */ | |
803 unsigned indicate_eob_p : 1; | |
804 | |
805 /* Non-zero means display a bitmap on X frames indicating that this | |
806 the bottom line of the window, but not end of the buffer. */ | |
807 unsigned indicate_bottom_line_p : 1; | |
774 | 808 |
775 /* Continuation lines width at the start of the row. */ | 809 /* Continuation lines width at the start of the row. */ |
776 int continuation_lines_width; | 810 int continuation_lines_width; |
777 }; | 811 }; |
778 | 812 |
1484 MOUSE_FACE_ID, | 1518 MOUSE_FACE_ID, |
1485 MENU_FACE_ID, | 1519 MENU_FACE_ID, |
1486 BASIC_FACE_ID_SENTINEL | 1520 BASIC_FACE_ID_SENTINEL |
1487 }; | 1521 }; |
1488 | 1522 |
1523 #define MAX_FACE_ID ((1 << FACE_ID_BITS) - 1) | |
1489 | 1524 |
1490 /* A cache of realized faces. Each frame has its own cache because | 1525 /* A cache of realized faces. Each frame has its own cache because |
1491 Emacs allows different frame-local face definitions. */ | 1526 Emacs allows different frame-local face definitions. */ |
1492 | 1527 |
1493 struct face_cache | 1528 struct face_cache |
1561 | 1596 |
1562 | 1597 |
1563 /*********************************************************************** | 1598 /*********************************************************************** |
1564 Fringes | 1599 Fringes |
1565 ***********************************************************************/ | 1600 ***********************************************************************/ |
1566 | |
1567 enum fringe_bitmap_type | |
1568 { | |
1569 NO_FRINGE_BITMAP = 0, | |
1570 LEFT_TRUNCATION_BITMAP, | |
1571 RIGHT_TRUNCATION_BITMAP, | |
1572 CONTINUED_LINE_BITMAP, | |
1573 CONTINUATION_LINE_BITMAP, | |
1574 OVERLAY_ARROW_BITMAP, | |
1575 ZV_LINE_BITMAP, | |
1576 MAX_FRINGE_BITMAPS | |
1577 }; | |
1578 | |
1579 struct fringe_bitmap | |
1580 { | |
1581 int width; | |
1582 int height; | |
1583 int period; | |
1584 unsigned char *bits; | |
1585 }; | |
1586 | 1601 |
1587 /* Structure used to describe where and how to draw a fringe bitmap. | 1602 /* Structure used to describe where and how to draw a fringe bitmap. |
1588 WHICH is the fringe bitmap to draw. WD and H is the (adjusted) | 1603 WHICH is the fringe bitmap to draw. WD and H is the (adjusted) |
1589 width and height of the bitmap, DH is the height adjustment (if | 1604 width and height of the bitmap, DH is the height adjustment (if |
1590 bitmap is periodic). X and Y are frame coordinates of the area to | 1605 bitmap is periodic). X and Y are frame coordinates of the area to |
1592 area. BX, NX, BY, NY specifies the area to clear if the bitmap | 1607 area. BX, NX, BY, NY specifies the area to clear if the bitmap |
1593 does not fill the entire area. FACE is the fringe face. */ | 1608 does not fill the entire area. FACE is the fringe face. */ |
1594 | 1609 |
1595 struct draw_fringe_bitmap_params | 1610 struct draw_fringe_bitmap_params |
1596 { | 1611 { |
1597 enum fringe_bitmap_type which; | 1612 int which; /* enum fringe_bitmap_type */ |
1613 unsigned short *bits; | |
1598 int wd, h, dh; | 1614 int wd, h, dh; |
1599 int x, y; | 1615 int x, y; |
1600 int bx, nx, by, ny; | 1616 int bx, nx, by, ny; |
1617 unsigned cursor_p : 1; | |
1618 unsigned overlay_p : 1; | |
1601 struct face *face; | 1619 struct face *face; |
1602 }; | 1620 }; |
1603 | 1621 |
1604 extern struct fringe_bitmap fringe_bitmaps[MAX_FRINGE_BITMAPS]; | 1622 #define MAX_FRINGE_BITMAPS (1<<FRINGE_ID_BITS) |
1605 | 1623 |
1606 | 1624 |
1607 /*********************************************************************** | 1625 /*********************************************************************** |
1608 Display Iterator | 1626 Display Iterator |
1609 ***********************************************************************/ | 1627 ***********************************************************************/ |
1769 dpvec is set to ctl_chars when a control character is translated. | 1787 dpvec is set to ctl_chars when a control character is translated. |
1770 This vector is also used for incomplete multibyte character | 1788 This vector is also used for incomplete multibyte character |
1771 translation (e.g \222\244). Such a character is at most 4 bytes, | 1789 translation (e.g \222\244). Such a character is at most 4 bytes, |
1772 thus we need at most 16 bytes here. */ | 1790 thus we need at most 16 bytes here. */ |
1773 Lisp_Object ctl_chars[16]; | 1791 Lisp_Object ctl_chars[16]; |
1792 | |
1793 /* Initial buffer or string position of the iterator, before skipping | |
1794 over display properties and invisible text. */ | |
1795 struct display_pos start; | |
1774 | 1796 |
1775 /* Current buffer or string position of the iterator, including | 1797 /* Current buffer or string position of the iterator, including |
1776 position in overlay strings etc. */ | 1798 position in overlay strings etc. */ |
1777 struct display_pos current; | 1799 struct display_pos current; |
1778 | 1800 |
1956 | 1978 |
1957 /* Current y-position. Automatically incremented by the height of | 1979 /* Current y-position. Automatically incremented by the height of |
1958 glyph_row in move_it_to and display_line. */ | 1980 glyph_row in move_it_to and display_line. */ |
1959 int current_y; | 1981 int current_y; |
1960 | 1982 |
1983 /* Vertical matrix position of first text line in window. */ | |
1984 int first_vpos; | |
1985 | |
1961 /* Current vertical matrix position, or line number. Automatically | 1986 /* Current vertical matrix position, or line number. Automatically |
1962 incremented by move_it_to and display_line. */ | 1987 incremented by move_it_to and display_line. */ |
1963 int vpos; | 1988 int vpos; |
1964 | 1989 |
1965 /* Horizontal matrix position reached in move_it_in_display_line. | 1990 /* Horizontal matrix position reached in move_it_in_display_line. |
1966 Only set there, not in display_line. */ | 1991 Only set there, not in display_line. */ |
1967 int hpos; | 1992 int hpos; |
1993 | |
1994 /* Left fringe bitmap number (enum fringe_bitmap_type). */ | |
1995 unsigned left_user_fringe_bitmap : FRINGE_ID_BITS; | |
1996 | |
1997 /* Face of the left fringe glyph. */ | |
1998 unsigned left_user_fringe_face_id : FACE_ID_BITS; | |
1999 | |
2000 /* Right fringe bitmap number (enum fringe_bitmap_type). */ | |
2001 unsigned right_user_fringe_bitmap : FRINGE_ID_BITS; | |
2002 | |
2003 /* Face of the right fringe glyph. */ | |
2004 unsigned right_user_fringe_face_id : FACE_ID_BITS; | |
1968 }; | 2005 }; |
1969 | 2006 |
1970 | 2007 |
1971 /* Access to positions of iterator IT. */ | 2008 /* Access to positions of iterator IT. */ |
1972 | 2009 |
2118 #ifdef HAVE_WINDOW_SYSTEM | 2155 #ifdef HAVE_WINDOW_SYSTEM |
2119 | 2156 |
2120 /* Draw a fringe bitmap in window W of row ROW using parameters P. */ | 2157 /* Draw a fringe bitmap in window W of row ROW using parameters P. */ |
2121 void (*draw_fringe_bitmap) P_ ((struct window *w, struct glyph_row *row, | 2158 void (*draw_fringe_bitmap) P_ ((struct window *w, struct glyph_row *row, |
2122 struct draw_fringe_bitmap_params *p)); | 2159 struct draw_fringe_bitmap_params *p)); |
2160 | |
2161 /* Define and destroy fringe bitmap no. WHICH. */ | |
2162 void (*define_fringe_bitmap) P_ ((int which, unsigned short *bits, | |
2163 int h, int wd)); | |
2164 void (*destroy_fringe_bitmap) P_ ((int which)); | |
2123 | 2165 |
2124 /* Get metrics of character CHAR2B in FONT of type FONT_TYPE. | 2166 /* Get metrics of character CHAR2B in FONT of type FONT_TYPE. |
2125 Value is null if CHAR2B is not contained in the font. */ | 2167 Value is null if CHAR2B is not contained in the font. */ |
2126 XCharStruct * (*per_char_metric) P_ ((XFontStruct *font, XChar2b *char2b, | 2168 XCharStruct * (*per_char_metric) P_ ((XFontStruct *font, XChar2b *char2b, |
2127 int font_type)); | 2169 int font_type)); |
2441 void window_box P_ ((struct window *, int, int *, int *, int *, int *)); | 2483 void window_box P_ ((struct window *, int, int *, int *, int *, int *)); |
2442 int window_box_height P_ ((struct window *)); | 2484 int window_box_height P_ ((struct window *)); |
2443 int window_text_bottom_y P_ ((struct window *)); | 2485 int window_text_bottom_y P_ ((struct window *)); |
2444 int window_box_width P_ ((struct window *, int)); | 2486 int window_box_width P_ ((struct window *, int)); |
2445 int window_box_left P_ ((struct window *, int)); | 2487 int window_box_left P_ ((struct window *, int)); |
2488 int window_box_left_offset P_ ((struct window *, int)); | |
2446 int window_box_right P_ ((struct window *, int)); | 2489 int window_box_right P_ ((struct window *, int)); |
2490 int window_box_right_offset P_ ((struct window *, int)); | |
2447 void window_box_edges P_ ((struct window *, int, int *, int *, int *, int *)); | 2491 void window_box_edges P_ ((struct window *, int, int *, int *, int *, int *)); |
2448 int estimate_mode_line_height P_ ((struct frame *, enum face_id)); | 2492 int estimate_mode_line_height P_ ((struct frame *, enum face_id)); |
2449 void pixel_to_glyph_coords P_ ((struct frame *, int, int, int *, int *, | 2493 void pixel_to_glyph_coords P_ ((struct frame *, int, int, int *, int *, |
2450 NativeRectangle *, int)); | 2494 NativeRectangle *, int)); |
2451 int glyph_to_pixel_coords P_ ((struct window *, int, int, int *, int *)); | 2495 int glyph_to_pixel_coords P_ ((struct window *, int, int, int *, int *)); |
2468 void move_it_by_lines P_ ((struct it *, int, int)); | 2512 void move_it_by_lines P_ ((struct it *, int, int)); |
2469 void move_it_past_eol P_ ((struct it *)); | 2513 void move_it_past_eol P_ ((struct it *)); |
2470 int in_display_vector_p P_ ((struct it *)); | 2514 int in_display_vector_p P_ ((struct it *)); |
2471 int frame_mode_line_height P_ ((struct frame *)); | 2515 int frame_mode_line_height P_ ((struct frame *)); |
2472 void highlight_trailing_whitespace P_ ((struct frame *, struct glyph_row *)); | 2516 void highlight_trailing_whitespace P_ ((struct frame *, struct glyph_row *)); |
2473 void draw_row_fringe_bitmaps P_ ((struct window *, struct glyph_row *)); | |
2474 void compute_fringe_widths P_ ((struct frame *, int)); | |
2475 extern Lisp_Object Qtool_bar; | 2517 extern Lisp_Object Qtool_bar; |
2476 extern Lisp_Object Vshow_trailing_whitespace; | 2518 extern Lisp_Object Vshow_trailing_whitespace; |
2477 extern int mode_line_in_non_selected_windows; | 2519 extern int mode_line_in_non_selected_windows; |
2478 extern int redisplaying_p; | 2520 extern int redisplaying_p; |
2479 extern Lisp_Object Vimage_types; | 2521 extern Lisp_Object Vimage_types; |
2485 extern int help_echo_pos; | 2527 extern int help_echo_pos; |
2486 extern struct frame *last_mouse_frame; | 2528 extern struct frame *last_mouse_frame; |
2487 extern int last_tool_bar_item; | 2529 extern int last_tool_bar_item; |
2488 extern int mouse_autoselect_window; | 2530 extern int mouse_autoselect_window; |
2489 | 2531 |
2532 extern int calc_pixel_width_or_height P_ ((double *, struct it *, Lisp_Object, | |
2533 /* XFontStruct */ void *, int, int *)); | |
2534 | |
2490 #ifdef HAVE_WINDOW_SYSTEM | 2535 #ifdef HAVE_WINDOW_SYSTEM |
2491 | 2536 |
2492 #if GLYPH_DEBUG | 2537 #if GLYPH_DEBUG |
2493 extern void dump_glyph_string P_ ((struct glyph_string *)); | 2538 extern void dump_glyph_string P_ ((struct glyph_string *)); |
2494 #endif | 2539 #endif |
2521 extern void x_draw_vertical_border P_ ((struct window *w)); | 2566 extern void x_draw_vertical_border P_ ((struct window *w)); |
2522 | 2567 |
2523 extern void frame_to_window_pixel_xy P_ ((struct window *, int *, int *)); | 2568 extern void frame_to_window_pixel_xy P_ ((struct window *, int *, int *)); |
2524 extern void get_glyph_string_clip_rect P_ ((struct glyph_string *, | 2569 extern void get_glyph_string_clip_rect P_ ((struct glyph_string *, |
2525 NativeRectangle *nr)); | 2570 NativeRectangle *nr)); |
2571 extern Lisp_Object find_hot_spot P_ ((Lisp_Object, int, int)); | |
2526 extern void note_mouse_highlight P_ ((struct frame *, int, int)); | 2572 extern void note_mouse_highlight P_ ((struct frame *, int, int)); |
2527 extern void x_clear_window_mouse_face P_ ((struct window *)); | 2573 extern void x_clear_window_mouse_face P_ ((struct window *)); |
2528 extern void cancel_mouse_face P_ ((struct frame *)); | 2574 extern void cancel_mouse_face P_ ((struct frame *)); |
2529 | 2575 |
2530 extern void handle_tool_bar_click P_ ((struct frame *, | 2576 extern void handle_tool_bar_click P_ ((struct frame *, |
2536 extern int cursor_in_mouse_face_p P_ ((struct window *w)); | 2582 extern int cursor_in_mouse_face_p P_ ((struct window *w)); |
2537 | 2583 |
2538 extern void expose_frame P_ ((struct frame *, int, int, int, int)); | 2584 extern void expose_frame P_ ((struct frame *, int, int, int, int)); |
2539 extern int x_intersect_rectangles P_ ((XRectangle *, XRectangle *, | 2585 extern int x_intersect_rectangles P_ ((XRectangle *, XRectangle *, |
2540 XRectangle *)); | 2586 XRectangle *)); |
2587 #endif | |
2588 | |
2589 /* Defined in fringe.c */ | |
2590 | |
2591 int valid_fringe_bitmap_id_p (int); | |
2592 void draw_fringe_bitmap P_ ((struct window *, struct glyph_row *, int)); | |
2593 void draw_row_fringe_bitmaps P_ ((struct window *, struct glyph_row *)); | |
2594 void draw_window_fringes P_ ((struct window *)); | |
2595 int update_window_fringes P_ ((struct window *, int)); | |
2596 void compute_fringe_widths P_ ((struct frame *, int)); | |
2597 | |
2598 #ifdef WINDOWS_NT | |
2599 void w32_init_fringe P_ ((void)); | |
2600 void w32_reset_fringes P_ ((void)); | |
2601 #endif | |
2602 | |
2603 /* Defined in image.c */ | |
2604 | |
2605 #ifdef HAVE_WINDOW_SYSTEM | |
2606 | |
2607 extern int x_bitmap_height P_ ((struct frame *, int)); | |
2608 extern int x_bitmap_width P_ ((struct frame *, int)); | |
2609 extern int x_bitmap_pixmap P_ ((struct frame *, int)); | |
2610 extern void x_reference_bitmap P_ ((struct frame *, int)); | |
2611 extern int x_create_bitmap_from_data P_ ((struct frame *, char *, | |
2612 unsigned int, unsigned int)); | |
2613 extern int x_create_bitmap_from_file P_ ((struct frame *, Lisp_Object)); | |
2614 #ifndef x_destroy_bitmap | |
2615 extern void x_destroy_bitmap P_ ((struct frame *, int)); | |
2616 #endif | |
2617 extern void x_destroy_all_bitmaps P_ ((Display_Info *)); | |
2618 extern int x_create_bitmap_mask P_ ((struct frame * , int)); | |
2619 extern Lisp_Object x_find_image_file P_ ((Lisp_Object)); | |
2620 | |
2621 void x_kill_gs_process P_ ((Pixmap, struct frame *)); | |
2622 struct image_cache *make_image_cache P_ ((void)); | |
2623 void free_image_cache P_ ((struct frame *)); | |
2624 void clear_image_cache P_ ((struct frame *, int)); | |
2625 void forall_images_in_image_cache P_ ((struct frame *, | |
2626 void (*) P_ ((struct image *)))); | |
2627 int valid_image_p P_ ((Lisp_Object)); | |
2628 void prepare_image_for_display P_ ((struct frame *, struct image *)); | |
2629 int lookup_image P_ ((struct frame *, Lisp_Object)); | |
2630 | |
2631 unsigned long image_background P_ ((struct image *, struct frame *, | |
2632 XImagePtr_or_DC ximg)); | |
2633 int image_background_transparent P_ ((struct image *, struct frame *, | |
2634 XImagePtr_or_DC mask)); | |
2635 | |
2541 #endif | 2636 #endif |
2542 | 2637 |
2543 /* Defined in sysdep.c */ | 2638 /* Defined in sysdep.c */ |
2544 | 2639 |
2545 void get_frame_size P_ ((int *, int *)); | 2640 void get_frame_size P_ ((int *, int *)); |
2594 void gamma_correct P_ ((struct frame *, XColor *)); | 2689 void gamma_correct P_ ((struct frame *, XColor *)); |
2595 #endif | 2690 #endif |
2596 #ifdef WINDOWSNT | 2691 #ifdef WINDOWSNT |
2597 void gamma_correct P_ ((struct frame *, COLORREF *)); | 2692 void gamma_correct P_ ((struct frame *, COLORREF *)); |
2598 #endif | 2693 #endif |
2694 #ifdef MAC_OS | |
2695 void gamma_correct P_ ((struct frame *, unsigned long *)); | |
2696 #endif | |
2599 | 2697 |
2600 #ifdef HAVE_WINDOW_SYSTEM | 2698 #ifdef HAVE_WINDOW_SYSTEM |
2601 | 2699 |
2602 void x_kill_gs_process P_ ((Pixmap, struct frame *)); | |
2603 int x_screen_planes P_ ((struct frame *)); | 2700 int x_screen_planes P_ ((struct frame *)); |
2604 void x_implicitly_set_name P_ ((struct frame *, Lisp_Object, Lisp_Object)); | 2701 void x_implicitly_set_name P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
2605 struct image_cache *make_image_cache P_ ((void)); | |
2606 void free_image_cache P_ ((struct frame *)); | |
2607 void clear_image_cache P_ ((struct frame *, int)); | |
2608 void forall_images_in_image_cache P_ ((struct frame *, | |
2609 void (*) P_ ((struct image *)))); | |
2610 int valid_image_p P_ ((Lisp_Object)); | |
2611 void prepare_image_for_display P_ ((struct frame *, struct image *)); | |
2612 int lookup_image P_ ((struct frame *, Lisp_Object)); | |
2613 | |
2614 #ifdef HAVE_X_WINDOWS | |
2615 unsigned long image_background P_ ((struct image *, struct frame *, | |
2616 XImage *ximg)); | |
2617 int image_background_transparent P_ ((struct image *, struct frame *, | |
2618 XImage *mask)); | |
2619 #endif /* HAVE_X_WINDOWS */ | |
2620 | 2702 |
2621 extern Lisp_Object tip_frame; | 2703 extern Lisp_Object tip_frame; |
2622 extern Window tip_window; | 2704 extern Window tip_window; |
2623 EXFUN (Fx_show_tip, 6); | 2705 EXFUN (Fx_show_tip, 6); |
2624 EXFUN (Fx_hide_tip, 0); | 2706 EXFUN (Fx_hide_tip, 0); |
2654 /* Defined in dispnew.c */ | 2736 /* Defined in dispnew.c */ |
2655 | 2737 |
2656 extern int inverse_video; | 2738 extern int inverse_video; |
2657 extern int required_matrix_width P_ ((struct window *)); | 2739 extern int required_matrix_width P_ ((struct window *)); |
2658 extern int required_matrix_height P_ ((struct window *)); | 2740 extern int required_matrix_height P_ ((struct window *)); |
2659 extern Lisp_Object mode_line_string P_ ((struct window *, int, int, | 2741 extern Lisp_Object buffer_posn_from_coords P_ ((struct window *, |
2660 enum window_part, int *)); | 2742 int *, int *, |
2661 extern Lisp_Object marginal_area_string P_ ((struct window *, int, int, | 2743 struct display_pos *, |
2662 enum window_part, int *)); | 2744 Lisp_Object *, |
2745 int *, int *, int *, int *)); | |
2746 extern Lisp_Object mode_line_string P_ ((struct window *, enum window_part, | |
2747 int *, int *, int *, | |
2748 Lisp_Object *, | |
2749 int *, int *, int *, int *)); | |
2750 extern Lisp_Object marginal_area_string P_ ((struct window *, enum window_part, | |
2751 int *, int *, int *, | |
2752 Lisp_Object *, | |
2753 int *, int *, int *, int *)); | |
2663 extern void redraw_frame P_ ((struct frame *)); | 2754 extern void redraw_frame P_ ((struct frame *)); |
2664 extern void redraw_garbaged_frames P_ ((void)); | 2755 extern void redraw_garbaged_frames P_ ((void)); |
2665 extern void cancel_line P_ ((int, struct frame *)); | 2756 extern void cancel_line P_ ((int, struct frame *)); |
2666 extern void init_desired_glyphs P_ ((struct frame *)); | 2757 extern void init_desired_glyphs P_ ((struct frame *)); |
2667 extern int scroll_frame_lines P_ ((struct frame *, int, int, int, int)); | 2758 extern int scroll_frame_lines P_ ((struct frame *, int, int, int, int)); |
2698 int direct_output_for_insert P_ ((int)); | 2789 int direct_output_for_insert P_ ((int)); |
2699 int direct_output_forward_char P_ ((int)); | 2790 int direct_output_forward_char P_ ((int)); |
2700 int update_frame P_ ((struct frame *, int, int)); | 2791 int update_frame P_ ((struct frame *, int, int)); |
2701 void update_single_window P_ ((struct window *, int)); | 2792 void update_single_window P_ ((struct window *, int)); |
2702 int scrolling P_ ((struct frame *)); | 2793 int scrolling P_ ((struct frame *)); |
2703 void buffer_posn_from_coords P_ ((struct window *, int *, int *, | |
2704 Lisp_Object *, struct display_pos *)); | |
2705 void do_pending_window_change P_ ((int)); | 2794 void do_pending_window_change P_ ((int)); |
2706 void change_frame_size P_ ((struct frame *, int, int, int, int, int)); | 2795 void change_frame_size P_ ((struct frame *, int, int, int, int, int)); |
2707 void bitch_at_user P_ ((void)); | 2796 void bitch_at_user P_ ((void)); |
2708 Lisp_Object sit_for P_ ((int, int, int, int, int)); | 2797 Lisp_Object sit_for P_ ((int, int, int, int, int)); |
2709 void init_display P_ ((void)); | 2798 void init_display P_ ((void)); |
2777 enum resource_types)); | 2866 enum resource_types)); |
2778 | 2867 |
2779 #endif /* HAVE_WINDOW_SYSTEM */ | 2868 #endif /* HAVE_WINDOW_SYSTEM */ |
2780 | 2869 |
2781 #endif /* not DISPEXTERN_H_INCLUDED */ | 2870 #endif /* not DISPEXTERN_H_INCLUDED */ |
2871 | |
2872 /* arch-tag: c65c475f-1c1e-4534-8795-990b8509fd65 | |
2873 (do not change this comment) */ |