X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/4545fa2085b65a310e46b6d599d3998e0a1fe370..b12f6e85a068462962d1bf012260e2b55aabd4e7:/src/xterm.h diff --git a/src/xterm.h b/src/xterm.h index a84a42d85d..c8b768f618 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -1,12 +1,12 @@ /* Definitions and headers for communication with X protocol. Copyright (C) 1989, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006 Free Software Foundation, Inc. + 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Emacs. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) +the Free Software Foundation; either version 3, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, @@ -149,6 +149,9 @@ struct x_display_info /* Chain of all x_display_info structures. */ struct x_display_info *next; + /* The generic display parameters corresponding to this X display. */ + struct terminal *terminal; + /* Connection number (normally a file descriptor number). */ int connection; @@ -253,7 +256,7 @@ struct x_display_info char *x_id_name; /* The number of fonts actually stored in x_font_table. - font_table[n] is used and valid iff 0 <= n < n_fonts. 0 <= + font_table[n] is used and valid if 0 <= n < n_fonts. 0 <= n_fonts <= font_table_size and font_table[i].name != 0. */ int n_fonts; @@ -327,9 +330,6 @@ struct x_display_info /* Atom used in toolkit scroll bar client messages. */ Atom Xatom_Scrollbar; -#ifdef MULTI_KBOARD - struct kboard *kboard; -#endif int cut_buffers_initialized; /* Whether we're sure they all exist */ /* The frame (if any) which has the X window that has keyboard focus. @@ -389,6 +389,17 @@ struct x_display_info X_WMTYPE_A, X_WMTYPE_B } wm_type; + + + /* Atoms that are drag and drop atoms */ + Atom *x_dnd_atoms; + size_t x_dnd_atoms_size; + size_t x_dnd_atoms_length; + + /* Extended window manager hints, Atoms supported by the window manager */ + Atom *net_supported_atoms; + int nr_net_supported_atoms; + Window net_supported_window; }; #ifdef HAVE_X_I18N @@ -423,6 +434,7 @@ extern struct x_display_info *x_display_info_for_display P_ ((Display *)); extern struct x_display_info *x_display_info_for_name P_ ((Lisp_Object)); extern struct x_display_info *x_term_init P_ ((Lisp_Object, char *, char *)); +extern int x_display_ok P_ ((const char *)); extern Lisp_Object x_list_fonts P_ ((struct frame *, Lisp_Object, int, int)); extern void select_visual P_ ((struct x_display_info *)); @@ -520,8 +532,10 @@ struct x_output /* Pixel values used for various purposes. border_pixel may be -1 meaning use a gray tile. */ +#if 0 /* These are also defined in struct frame. Use that instead. */ unsigned long background_pixel; unsigned long foreground_pixel; +#endif unsigned long cursor_pixel; unsigned long border_pixel; unsigned long mouse_pixel; @@ -636,18 +650,14 @@ struct x_output FocusOut and LeaveNotify clears EXPLICIT/IMPLICIT. */ int focus_state; - /* The latest move we made to FRAME_OUTER_WINDOW. Saved so we can - compensate for type A WMs (see wm_type in dpyinfo above). */ - int expected_top; - int expected_left; - /* The offset we need to add to compensate for type A WMs. */ int move_offset_top; int move_offset_left; - /* Nonzero if we have made a move and needs to check if the WM placed us - at the right position. */ - int check_expected_move; + /* The frame's left/top offsets before we call XMoveWindow. See + x_check_expected_move. */ + int left_before_move; + int top_before_move; }; #define No_Cursor (None) @@ -799,6 +809,12 @@ struct scroll_bar place where the user grabbed it. If the handle isn't currently being dragged, this is Qnil. */ Lisp_Object dragging; + +#ifdef USE_TOOLKIT_SCROLL_BARS + /* t if the background of the fringe that is adjacent to a scroll + bar is extended to the gap between the fringe and the bar. */ + Lisp_Object fringe_extended_p; +#endif }; /* The number of elements a vector holding a struct scroll_bar needs. */ @@ -958,10 +974,6 @@ void x_delete_display P_ ((struct x_display_info *)); void x_make_frame_visible P_ ((struct frame *)); void x_iconify_frame P_ ((struct frame *)); void x_wm_set_size_hint P_ ((struct frame *, long, int)); -void x_catch_errors P_ ((Display *)); -int x_had_errors_p P_ ((Display *)); -void x_uncatch_errors P_ ((void)); -void x_check_errors P_ ((Display *, char *)); int x_text_icon P_ ((struct frame *, char *)); int x_bitmap_icon P_ ((struct frame *, Lisp_Object)); void x_set_window_size P_ ((struct frame *, int, int, int)); @@ -977,10 +989,13 @@ extern int x_bitmap_icon P_ ((struct frame *, Lisp_Object)); extern void x_catch_errors P_ ((Display *)); extern void x_check_errors P_ ((Display *, char *)); extern int x_had_errors_p P_ ((Display *)); +extern int x_catching_errors P_ ((void)); extern void x_uncatch_errors P_ ((void)); +extern void x_clear_errors P_ ((Display *)); extern void x_set_window_size P_ ((struct frame *, int, int, int)); extern void x_set_mouse_position P_ ((struct frame *, int, int)); extern void x_set_mouse_pixel_position P_ ((struct frame *, int, int)); +extern void x_ewmh_activate_frame P_ ((struct frame *)); extern void x_raise_frame P_ ((struct frame *)); extern void x_lower_frame P_ ((struct frame *)); extern void x_make_frame_visible P_ ((struct frame *)); @@ -992,10 +1007,15 @@ extern void x_wm_set_size_hint P_ ((struct frame *, long, int)); extern void x_wm_set_window_state P_ ((struct frame *, int)); extern void x_wm_set_icon_pixmap P_ ((struct frame *, int)); extern void x_delete_display P_ ((struct x_display_info *)); +extern void x_delete_terminal P_ ((struct terminal *terminal)); extern void x_initialize P_ ((void)); extern unsigned long x_copy_color P_ ((struct frame *, unsigned long)); #ifdef USE_X_TOOLKIT extern XtAppContext Xt_app_con; +extern int x_alloc_lighter_color_for_widget __P ((Widget, Display*, Colormap, + unsigned long *, + double, int)); +extern void x_activate_timeout_atimer P_ ((void)); #endif extern void x_query_colors P_ ((struct frame *f, XColor *, int)); extern void x_query_color P_ ((struct frame *f, XColor *)); @@ -1088,6 +1108,7 @@ extern void widget_store_internal_border P_ ((Widget)); extern void x_session_initialize P_ ((struct x_display_info *dpyinfo)); extern int x_session_check_input P_ ((struct input_event *bufp)); extern int x_session_have_connection P_ ((void)); +extern void x_session_close P_ ((void)); #endif #define FONT_TYPE_FOR_UNIBYTE(font, ch) 0