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, see <http://www.gnu.org/licenses/>. 16 */ 17 18 /* 19 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS 20 * file for a list of people on the GTK+ Team. See the ChangeLog 21 * files for a list of changes. These files are distributed with 22 * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 23 */ 24 25 #ifndef __GDK_X11_DISPLAY_H__ 26 #define __GDK_X11_DISPLAY_H__ 27 28 #if !defined (__GDKX_H_INSIDE__) && !defined (GTK_COMPILATION) 29 #error "Only <gdk/x11/gdkx.h> can be included directly." 30 #endif 31 32 #include <gdk/gdk.h> 33 #include <gdk/x11/gdkx11screen.h> 34 35 #include <X11/Xlib.h> 36 #include <X11/Xutil.h> 37 38 G_BEGIN_DECLS 39 40 #ifdef GTK_COMPILATION 41 typedef struct _GdkX11Display GdkX11Display; 42 #else 43 typedef GdkDisplay GdkX11Display; 44 #endif 45 typedef struct _GdkX11DisplayClass GdkX11DisplayClass; 46 47 #define GDK_TYPE_X11_DISPLAY (gdk_x11_display_get_type()) 48 #define GDK_X11_DISPLAY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_X11_DISPLAY, GdkX11Display)) 49 #define GDK_X11_DISPLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_X11_DISPLAY, GdkX11DisplayClass)) 50 #define GDK_IS_X11_DISPLAY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_X11_DISPLAY)) 51 #define GDK_IS_X11_DISPLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_X11_DISPLAY)) 52 #define GDK_X11_DISPLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_X11_DISPLAY, GdkX11DisplayClass)) 53 54 GDK_AVAILABLE_IN_ALL 55 GType gdk_x11_display_get_type (void); 56 57 GDK_AVAILABLE_IN_ALL 58 GdkDisplay * gdk_x11_display_open (const char *display_name); 59 60 GDK_AVAILABLE_IN_ALL 61 Display * gdk_x11_display_get_xdisplay (GdkDisplay *display); 62 GDK_AVAILABLE_IN_ALL 63 Screen * gdk_x11_display_get_xscreen (GdkDisplay *display); 64 GDK_AVAILABLE_IN_ALL 65 Window gdk_x11_display_get_xrootwindow (GdkDisplay *display); 66 GDK_AVAILABLE_IN_ALL 67 Cursor gdk_x11_display_get_xcursor (GdkDisplay *display, 68 GdkCursor *cursor); 69 70 /** 71 * GDK_DISPLAY_XDISPLAY: 72 * @display: a `GdkDisplay` 73 * 74 * Returns the display of a `GdkDisplay`. 75 * 76 * Returns: an Xlib Display* 77 */ 78 #define GDK_DISPLAY_XDISPLAY(display) (gdk_x11_display_get_xdisplay (display)) 79 80 GDK_AVAILABLE_IN_ALL 81 guint32 gdk_x11_display_get_user_time (GdkDisplay *display); 82 83 GDK_AVAILABLE_IN_ALL 84 const char * gdk_x11_display_get_startup_notification_id (GdkDisplay *display); 85 GDK_AVAILABLE_IN_ALL 86 void gdk_x11_display_set_startup_notification_id (GdkDisplay *display, 87 const char *startup_id); 88 GDK_AVAILABLE_IN_ALL 89 void gdk_x11_display_set_program_class (GdkDisplay *display, 90 const char *program_class); 91 92 GDK_AVAILABLE_IN_ALL 93 void gdk_x11_display_set_cursor_theme (GdkDisplay *display, 94 const char *theme, 95 const int size); 96 97 GDK_AVAILABLE_IN_ALL 98 void gdk_x11_display_broadcast_startup_message (GdkDisplay *display, 99 const char *message_type, 100 ...) G_GNUC_NULL_TERMINATED; 101 102 GDK_AVAILABLE_IN_ALL 103 GdkDisplay *gdk_x11_lookup_xdisplay (Display *xdisplay); 104 105 GDK_AVAILABLE_IN_ALL 106 GdkX11Screen *gdk_x11_display_get_screen (GdkDisplay *display); 107 108 GDK_AVAILABLE_IN_ALL 109 GdkMonitor * gdk_x11_display_get_primary_monitor (GdkDisplay *display); 110 111 GDK_AVAILABLE_IN_ALL 112 void gdk_x11_display_grab (GdkDisplay *display); 113 GDK_AVAILABLE_IN_ALL 114 void gdk_x11_display_ungrab (GdkDisplay *display); 115 116 GDK_AVAILABLE_IN_ALL 117 void gdk_x11_display_set_surface_scale (GdkDisplay *display, 118 int scale); 119 120 GDK_AVAILABLE_IN_ALL 121 void gdk_x11_display_error_trap_push (GdkDisplay *display); 122 /* warn unused because you could use pop_ignored otherwise */ 123 GDK_AVAILABLE_IN_ALL 124 G_GNUC_WARN_UNUSED_RESULT int gdk_x11_display_error_trap_pop (GdkDisplay *display); 125 GDK_AVAILABLE_IN_ALL 126 void gdk_x11_display_error_trap_pop_ignored (GdkDisplay *display); 127 128 GDK_AVAILABLE_IN_ALL 129 void gdk_x11_set_sm_client_id (const char *sm_client_id); 130 131 GDK_AVAILABLE_IN_ALL 132 GdkSurface * gdk_x11_display_get_default_group (GdkDisplay *display); 133 134 G_END_DECLS 135 136 #endif /* __GDK_X11_DISPLAY_H__ */ 137