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) */