]> Pileus Git - ~andy/gtk/blob - gdk/x11/gdkx.h
Add a GtkAccelGroupFindFunc to clean up the prototype. (#76670, Vitaly
[~andy/gtk] / gdk / x11 / gdkx.h
1 /* GDK - The GIMP Drawing Kit
2  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3  *
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.
8  *
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.
13  *
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.
18  */
19
20 /*
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/. 
25  */
26
27 #ifndef __GDK_X_H__
28 #define __GDK_X_H__
29
30 #include <gdk/gdkprivate.h>
31 #include <gdk/gdkcursor.h>
32
33 #include <X11/Xlib.h>
34 #include <X11/Xutil.h>
35
36 G_BEGIN_DECLS
37
38 #ifndef GDK_MULTIHEAD_SAFE
39 extern Display          *gdk_display;
40 #endif
41
42 Display *gdk_x11_drawable_get_xdisplay    (GdkDrawable *drawable);
43 XID      gdk_x11_drawable_get_xid         (GdkDrawable *drawable);
44 Display *gdk_x11_image_get_xdisplay       (GdkImage    *image);
45 XImage  *gdk_x11_image_get_ximage         (GdkImage    *image);
46 Display *gdk_x11_colormap_get_xdisplay    (GdkColormap *colormap);
47 Colormap gdk_x11_colormap_get_xcolormap   (GdkColormap *colormap);
48 Display *gdk_x11_cursor_get_xdisplay      (GdkCursor   *cursor);
49 Cursor   gdk_x11_cursor_get_xcursor       (GdkCursor   *cursor);
50 Display *gdk_x11_display_get_xdisplay     (GdkDisplay  *display);
51 Visual * gdk_x11_visual_get_xvisual       (GdkVisual   *visual);
52 Display *gdk_x11_gc_get_xdisplay          (GdkGC       *gc);
53 GC       gdk_x11_gc_get_xgc               (GdkGC       *gc);
54 Screen * gdk_x11_screen_get_xscreen       (GdkScreen   *screen);
55 int      gdk_x11_screen_get_screen_number (GdkScreen   *screen);
56 #ifndef GDK_MULTIHEAD_SAFE
57 Window   gdk_x11_get_default_root_xwindow (void);
58 Display *gdk_x11_get_default_xdisplay     (void);
59 gint     gdk_x11_get_default_screen       (void);
60 #endif
61
62 #define GDK_COLORMAP_XDISPLAY(cmap)   (gdk_x11_colormap_get_xdisplay (cmap))
63 #define GDK_COLORMAP_XCOLORMAP(cmap)  (gdk_x11_colormap_get_xcolormap (cmap))
64 #define GDK_CURSOR_XDISPLAY(cursor)   (gdk_x11_cursor_get_xdisplay (cursor))
65 #define GDK_CURSOR_XCURSOR(cursor)    (gdk_x11_cursor_get_xcursor (cursor))
66 #define GDK_IMAGE_XDISPLAY(image)     (gdk_x11_image_get_xdisplay (image))
67 #define GDK_IMAGE_XIMAGE(image)       (gdk_x11_image_get_ximage (image))
68
69 #ifndef GDK_MULTIHEAD_SAFE
70 #define GDK_DISPLAY()                 gdk_display
71 #endif
72
73 #ifdef INSIDE_GDK_X11
74
75 #include "gdkprivate-x11.h"
76 #include "gdkscreen-x11.h"
77
78 #define GDK_DISPLAY_XDISPLAY(display) (GDK_DISPLAY_X11(display)->xdisplay)
79
80 #define GDK_WINDOW_XDISPLAY(win)      (GDK_SCREEN_X11 (GDK_WINDOW_SCREEN (win))->xdisplay)
81 #define GDK_WINDOW_XID(win)           (GDK_DRAWABLE_IMPL_X11(((GdkWindowObject *)win)->impl)->xid)
82 #define GDK_PIXMAP_XDISPLAY(pix)      (GDK_SCREEN_X11 (GDK_PIXMAP_SCREEN (pix))->xdisplay)
83 #define GDK_PIXMAP_XID(pix)           (GDK_DRAWABLE_IMPL_X11(((GdkPixmapObject *)pix)->impl)->xid)
84 #define GDK_DRAWABLE_XDISPLAY(win)    (GDK_IS_WINDOW (win) ? GDK_WINDOW_XDISPLAY (win) : GDK_PIXMAP_XDISPLAY (win))
85 #define GDK_DRAWABLE_XID(win)         (GDK_IS_WINDOW (win) ? GDK_WINDOW_XID (win) : GDK_PIXMAP_XID (win))
86 #define GDK_GC_XDISPLAY(gc)           (GDK_SCREEN_XDISPLAY(GDK_GC_X11(gc)->screen))
87 #define GDK_GC_XGC(gc)                (GDK_GC_X11(gc)->xgc)
88 #define GDK_SCREEN_XDISPLAY(screen)   (GDK_SCREEN_X11 (screen)->xdisplay)
89 #define GDK_SCREEN_XSCREEN(screen)    (GDK_SCREEN_X11 (screen)->xscreen)
90 #define GDK_SCREEN_XNUMBER(screen)    (GDK_SCREEN_X11 (screen)->screen_num) 
91 #define GDK_VISUAL_XVISUAL(vis)       (((GdkVisualPrivate *) vis)->xvisual)
92 #define GDK_GC_GET_XGC(gc)            (GDK_GC_X11(gc)->dirty_mask ? _gdk_x11_gc_flush (gc) : ((GdkGCX11 *)(gc))->xgc)
93 #define GDK_WINDOW_XWINDOW            GDK_DRAWABLE_XID
94
95 #else /* INSIDE_GDK_X11 */
96
97 #ifndef GDK_MULTIHEAD_SAFE
98 #define GDK_ROOT_WINDOW()             (gdk_x11_get_default_root_xwindow ())
99 #endif
100
101 #define GDK_DISPLAY_XDISPLAY(display) (gdk_x11_display_get_xdisplay (display))
102
103 #define GDK_WINDOW_XDISPLAY(win)      (gdk_x11_drawable_get_xdisplay (((GdkWindowObject *)win)->impl))
104 #define GDK_WINDOW_XID(win)           (gdk_x11_drawable_get_xid (win))
105 #define GDK_WINDOW_XWINDOW(win)       (gdk_x11_drawable_get_xid (win))
106 #define GDK_PIXMAP_XDISPLAY(win)      (gdk_x11_drawable_get_xdisplay (((GdkPixmapObject *)win)->impl))
107 #define GDK_PIXMAP_XID(win)           (gdk_x11_drawable_get_xid (win))
108 #define GDK_DRAWABLE_XDISPLAY(win)    (gdk_x11_drawable_get_xdisplay (win))
109 #define GDK_DRAWABLE_XID(win)         (gdk_x11_drawable_get_xid (win))
110 #define GDK_GC_XDISPLAY(gc)           (gdk_x11_gc_get_xdisplay (gc))
111 #define GDK_GC_XGC(gc)                (gdk_x11_gc_get_xgc (gc))
112 #define GDK_SCREEN_XDISPLAY(screen)   (gdk_x11_display_get_xdisplay (gdk_screen_get_display (screen)))
113 #define GDK_SCREEN_XSCREEN(screen)    (gdk_x11_screen_get_xscreen (screen))
114 #define GDK_SCREEN_XNUMBER(screen)    (gdk_x11_screen_get_screen_number (screen))
115 #define GDK_VISUAL_XVISUAL(visual)    (gdk_x11_visual_get_xvisual (visual))
116
117 #endif /* INSIDE_GDK_X11 */
118
119 GdkVisual* gdk_x11_screen_lookup_visual (GdkScreen *screen,
120                                          VisualID   xvisualid);
121 #ifndef GDK_MULTIHEAD_SAFE
122 GdkVisual* gdkx_visual_get            (VisualID   xvisualid);
123 #endif
124
125 #ifdef GDK_ENABLE_BROKEN
126 /* XXX: An X Colormap is useless unless we also have the visual. */
127 GdkColormap* gdkx_colormap_get (Colormap xcolormap);
128 #endif
129
130 GdkColormap *gdk_x11_colormap_foreign_new (GdkVisual *visual,
131                                            Colormap   xcolormap);
132
133      /* Return the Gdk* for a particular XID */
134 gpointer      gdk_xid_table_lookup_for_display (GdkDisplay *display,
135                                                 XID         xid);
136 guint32       gdk_x11_get_server_time  (GdkWindow       *window);
137
138 /* returns TRUE if we support the given WM spec feature */
139 gboolean gdk_x11_screen_supports_net_wm_hint (GdkScreen *screen,
140                                               GdkAtom    property);
141
142 #ifndef GDK_MULTIHEAD_SAFE
143 gpointer      gdk_xid_table_lookup   (XID              xid);
144 gboolean      gdk_net_wm_supports    (GdkAtom    property);
145 void          gdk_x11_grab_server    ();
146 void          gdk_x11_ungrab_server  ();
147
148 #endif
149
150 GdkDisplay   *gdk_x11_lookup_xdisplay (Display *xdisplay);
151
152
153 /* Functions to get the X Atom equivalent to the GdkAtom */
154 Atom                  gdk_x11_atom_to_xatom_for_display (GdkDisplay  *display,
155                                                          GdkAtom      atom);
156 GdkAtom               gdk_x11_xatom_to_atom_for_display (GdkDisplay  *display,
157                                                          Atom         xatom);
158 Atom                  gdk_x11_get_xatom_by_name_for_display (GdkDisplay  *display,
159                                                              const gchar *atom_name);
160 G_CONST_RETURN gchar *gdk_x11_get_xatom_name_for_display (GdkDisplay  *display,
161                                                           Atom         xatom);
162 #ifndef GDK_MULTIHEAD_SAFE
163 Atom                  gdk_x11_atom_to_xatom     (GdkAtom      atom);
164 GdkAtom               gdk_x11_xatom_to_atom     (Atom         xatom);
165 Atom                  gdk_x11_get_xatom_by_name (const gchar *atom_name);
166 G_CONST_RETURN gchar *gdk_x11_get_xatom_name    (Atom         xatom);
167 #endif
168
169 #ifndef GDK_DISABLE_DEPRECATED
170
171 Display *            gdk_x11_font_get_xdisplay (GdkFont *font);
172 gpointer             gdk_x11_font_get_xfont    (GdkFont *font);
173 G_CONST_RETURN char *gdk_x11_font_get_name     (GdkFont *font);
174
175 #define GDK_FONT_XDISPLAY(font)       (gdk_x11_font_get_xdisplay (font))
176 #define GDK_FONT_XFONT(font)          (gdk_x11_font_get_xfont (font))
177
178 #ifndef GDK_MULTIHEAD_SAFE
179
180 #define gdk_font_lookup(xid)       ((GdkFont*) gdk_xid_table_lookup (xid))
181
182 #endif /* GDK_MULTIHEAD_SAFE */
183 #define gdk_font_lookup_for_display(display, xid) ((GdkFont*) gdk_xid_table_lookup_for_display (display, xid))
184
185 void        gdk_x11_display_grab              (GdkDisplay *display);
186 void        gdk_x11_display_ungrab            (GdkDisplay *display);
187
188 #endif /* GDK_DISABLE_DEPRECATED */
189
190 G_END_DECLS
191
192 #endif /* __GDK_X_H__ */