1 /* GDK - The GIMP Drawing Kit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
21 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
22 * file for a list of people on the GTK+ Team. See the ChangeLog
23 * files for a list of changes. These files are distributed with
24 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
28 * Private uninstalled header defining things local to X windowing code
31 #ifndef __GDK_PRIVATE_X11_H__
32 #define __GDK_PRIVATE_X11_H__
34 #include <gdk/gdkcursor.h>
35 #include <gdk/gdkprivate.h>
36 #include <gdk/gdkinternals.h>
37 #include "gdkwindow-x11.h"
38 #include "gdkdisplay-x11.h"
39 #include <cairo-xlib.h>
41 typedef struct _GdkCursorPrivate GdkCursorPrivate;
43 struct _GdkCursorPrivate
52 void _gdk_x11_error_handler_push (void);
53 void _gdk_x11_error_handler_pop (void);
55 Colormap _gdk_visual_get_x11_colormap (GdkVisual *visual);
57 gint _gdk_screen_x11_visual_get_best_depth (GdkScreen *screen);
58 GdkVisualType _gdk_screen_x11_visual_get_best_type (GdkScreen *screen);
59 GdkVisual * _gdk_screen_x11_get_system_visual (GdkScreen *screen);
60 GdkVisual* _gdk_screen_x11_visual_get_best (GdkScreen *screen);
61 GdkVisual* _gdk_screen_x11_visual_get_best_with_depth (GdkScreen *screen,
63 GdkVisual* _gdk_screen_x11_visual_get_best_with_type (GdkScreen *screen,
64 GdkVisualType visual_type);
65 GdkVisual* _gdk_screen_x11_visual_get_best_with_both (GdkScreen *screen,
67 GdkVisualType visual_type);
68 void _gdk_screen_x11_query_depths (GdkScreen *screen,
71 void _gdk_screen_x11_query_visual_types (GdkScreen *screen,
72 GdkVisualType **visual_types,
74 GList * _gdk_screen_x11_list_visuals (GdkScreen *screen);
78 void _gdk_xid_table_insert (GdkDisplay *display,
81 void _gdk_xid_table_remove (GdkDisplay *display,
83 gint _gdk_send_xevent (GdkDisplay *display,
89 /* Routines from gdkgeometry-x11.c */
90 void _gdk_window_move_resize_child (GdkWindow *window,
95 void _gdk_window_process_expose (GdkWindow *window,
99 gboolean _gdk_x11_window_queue_antiexpose (GdkWindow *window,
100 cairo_region_t *area);
101 void _gdk_x11_window_translate (GdkWindow *window,
102 cairo_region_t *area,
106 void _gdk_selection_window_destroyed (GdkWindow *window);
107 gboolean _gdk_selection_filter_clear_event (XSelectionClearEvent *event);
109 cairo_region_t* _xwindow_get_shape (Display *xdisplay,
113 void _gdk_region_get_xrectangles (const cairo_region_t *region,
119 gboolean _gdk_moveresize_handle_event (XEvent *event);
120 gboolean _gdk_moveresize_configure_done (GdkDisplay *display,
123 void _gdk_keymap_state_changed (GdkDisplay *display,
125 void _gdk_keymap_keys_changed (GdkDisplay *display);
126 gint _gdk_x11_get_group_for_state (GdkDisplay *display,
127 GdkModifierType state);
128 void _gdk_keymap_add_virtual_modifiers_compat (GdkKeymap *keymap,
129 GdkModifierType *modifiers);
130 gboolean _gdk_keymap_key_is_modifier (GdkKeymap *keymap,
133 void _gdk_x11_initialize_locale (void);
134 void _gdk_x11_windowing_init (void);
136 void _gdk_xgrab_check_unmap (GdkWindow *window,
138 void _gdk_xgrab_check_destroy (GdkWindow *window);
140 gboolean _gdk_x11_display_is_root_window (GdkDisplay *display,
141 Window xroot_window);
143 GdkDisplay * _gdk_x11_display_open (const gchar *display_name);
144 void _gdk_x11_display_make_default (GdkDisplay *display);
145 void _gdk_x11_display_update_grab_info (GdkDisplay *display,
148 void _gdk_x11_display_update_grab_info_ungrab (GdkDisplay *display,
152 void _gdk_x11_display_queue_events (GdkDisplay *display);
153 void _gdk_x11_device_check_extension_events (GdkDevice *device);
155 void _gdk_x11_display_manager_add_display (GdkDisplayManager *manager,
156 GdkDisplay *display);
157 void _gdk_x11_display_manager_remove_display (GdkDisplayManager *manager,
158 GdkDisplay *display);
160 void _gdk_x11_precache_atoms (GdkDisplay *display,
161 const gchar * const *atom_names,
164 void _gdk_screen_x11_events_init (GdkScreen *screen);
166 void _gdk_events_init (GdkDisplay *display);
167 void _gdk_events_uninit (GdkDisplay *display);
168 void _gdk_windowing_window_init (GdkScreen *screen);
169 void _gdk_x11_visual_init (GdkScreen *screen);
170 void _gdk_x11_dnd_init (GdkDisplay *display);
172 void _gdk_x11_cursor_update_theme (GdkCursor *cursor);
173 void _gdk_x11_cursor_display_finalize (GdkDisplay *display);
175 void _gdk_x11_window_register_dnd (GdkWindow *window);
177 gboolean _gdk_x11_get_xft_setting (GdkScreen *screen,
181 GdkGrabStatus _gdk_x11_convert_grab_status (gint status);
183 cairo_surface_t * _gdk_x11_window_create_bitmap_surface (GdkWindow *window,
187 extern gboolean _gdk_use_xshm;
188 extern const int _gdk_nenvent_masks;
189 extern const int _gdk_event_mask_table[];
190 extern GdkAtom _gdk_selection_property;
191 extern gboolean _gdk_synchronize;
193 #define GDK_SCREEN_DISPLAY(screen) (GDK_SCREEN_X11 (screen)->display)
194 #define GDK_SCREEN_XROOTWIN(screen) (GDK_SCREEN_X11 (screen)->xroot_window)
195 #define GDK_WINDOW_SCREEN(win) (gdk_window_get_screen (win))
196 #define GDK_WINDOW_DISPLAY(win) (GDK_SCREEN_X11 (GDK_WINDOW_SCREEN (win))->display)
197 #define GDK_WINDOW_XROOTWIN(win) (GDK_SCREEN_X11 (GDK_WINDOW_SCREEN (win))->xroot_window)
198 #define GDK_GC_DISPLAY(gc) (GDK_SCREEN_DISPLAY (GDK_GC_X11(gc)->screen))
199 #define GDK_WINDOW_IS_X11(win) (GDK_IS_WINDOW_IMPL_X11 ((win)->impl))
201 #endif /* __GDK_PRIVATE_X11_H__ */