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 (GDK_COMPILATION)
29#error "Only <gdk/gdkx.h> can be included directly."
30#endif
31
32#include <gdk/gdk.h>
33
34#include <X11/Xlib.h>
35#include <X11/Xutil.h>
36
37G_BEGIN_DECLS
38
39#ifdef GDK_COMPILATION
40typedef struct _GdkX11Display GdkX11Display;
41#else
42typedef GdkDisplay GdkX11Display;
43#endif
44typedef struct _GdkX11DisplayClass GdkX11DisplayClass;
45
46#define GDK_TYPE_X11_DISPLAY (gdk_x11_display_get_type())
47#define GDK_X11_DISPLAY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_X11_DISPLAY, GdkX11Display))
48#define GDK_X11_DISPLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_X11_DISPLAY, GdkX11DisplayClass))
49#define GDK_IS_X11_DISPLAY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_X11_DISPLAY))
50#define GDK_IS_X11_DISPLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_X11_DISPLAY))
51#define GDK_X11_DISPLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_X11_DISPLAY, GdkX11DisplayClass))
52
53GDK_AVAILABLE_IN_ALL
54GType gdk_x11_display_get_type (void);
55
56GDK_AVAILABLE_IN_ALL
57Display *gdk_x11_display_get_xdisplay (GdkDisplay *display);
58
59#define GDK_DISPLAY_XDISPLAY(display) (gdk_x11_display_get_xdisplay (display))
60
61GDK_AVAILABLE_IN_ALL
62guint32 gdk_x11_display_get_user_time (GdkDisplay *display);
63
64GDK_AVAILABLE_IN_ALL
65const gchar * gdk_x11_display_get_startup_notification_id (GdkDisplay *display);
66GDK_AVAILABLE_IN_ALL
67void gdk_x11_display_set_startup_notification_id (GdkDisplay *display,
68 const gchar *startup_id);
69
70GDK_AVAILABLE_IN_ALL
71void gdk_x11_display_set_cursor_theme (GdkDisplay *display,
72 const gchar *theme,
73 const gint size);
74
75GDK_AVAILABLE_IN_ALL
76void gdk_x11_display_broadcast_startup_message (GdkDisplay *display,
77 const char *message_type,
78 ...) G_GNUC_NULL_TERMINATED;
79
80GDK_AVAILABLE_IN_ALL
81GdkDisplay *gdk_x11_lookup_xdisplay (Display *xdisplay);
82
83GDK_AVAILABLE_IN_ALL
84void gdk_x11_display_grab (GdkDisplay *display);
85GDK_AVAILABLE_IN_ALL
86void gdk_x11_display_ungrab (GdkDisplay *display);
87
88GDK_AVAILABLE_IN_3_10
89void gdk_x11_display_set_window_scale (GdkDisplay *display,
90 gint scale);
91
92GDK_AVAILABLE_IN_ALL
93void gdk_x11_display_error_trap_push (GdkDisplay *display);
94/* warn unused because you could use pop_ignored otherwise */
95GDK_AVAILABLE_IN_ALL
96G_GNUC_WARN_UNUSED_RESULT gint gdk_x11_display_error_trap_pop (GdkDisplay *display);
97GDK_AVAILABLE_IN_ALL
98void gdk_x11_display_error_trap_pop_ignored (GdkDisplay *display);
99
100GDK_AVAILABLE_IN_ALL
101void gdk_x11_register_standard_event_type (GdkDisplay *display,
102 gint event_base,
103 gint n_events);
104
105GDK_AVAILABLE_IN_ALL
106void gdk_x11_set_sm_client_id (const gchar *sm_client_id);
107
108
109G_END_DECLS
110
111#endif /* __GDK_X11_DISPLAY_H__ */
112