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
38G_BEGIN_DECLS
39
40#ifdef GTK_COMPILATION
41typedef struct _GdkX11Display GdkX11Display;
42#else
43typedef GdkDisplay GdkX11Display;
44#endif
45typedef 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
54GDK_AVAILABLE_IN_ALL
55GType gdk_x11_display_get_type (void);
56
57GDK_AVAILABLE_IN_ALL
58GdkDisplay * gdk_x11_display_open (const char *display_name);
59
60GDK_AVAILABLE_IN_ALL
61Display * gdk_x11_display_get_xdisplay (GdkDisplay *display);
62GDK_AVAILABLE_IN_ALL
63Screen * gdk_x11_display_get_xscreen (GdkDisplay *display);
64GDK_AVAILABLE_IN_ALL
65Window gdk_x11_display_get_xrootwindow (GdkDisplay *display);
66GDK_AVAILABLE_IN_ALL
67Cursor 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
80GDK_AVAILABLE_IN_ALL
81guint32 gdk_x11_display_get_user_time (GdkDisplay *display);
82
83GDK_AVAILABLE_IN_ALL
84const char * gdk_x11_display_get_startup_notification_id (GdkDisplay *display);
85GDK_AVAILABLE_IN_ALL
86void gdk_x11_display_set_startup_notification_id (GdkDisplay *display,
87 const char *startup_id);
88GDK_AVAILABLE_IN_ALL
89void gdk_x11_display_set_program_class (GdkDisplay *display,
90 const char *program_class);
91
92GDK_AVAILABLE_IN_ALL
93void gdk_x11_display_set_cursor_theme (GdkDisplay *display,
94 const char *theme,
95 const int size);
96
97GDK_AVAILABLE_IN_ALL
98void gdk_x11_display_broadcast_startup_message (GdkDisplay *display,
99 const char *message_type,
100 ...) G_GNUC_NULL_TERMINATED;
101
102GDK_AVAILABLE_IN_ALL
103GdkDisplay *gdk_x11_lookup_xdisplay (Display *xdisplay);
104
105GDK_AVAILABLE_IN_ALL
106GdkX11Screen *gdk_x11_display_get_screen (GdkDisplay *display);
107
108GDK_AVAILABLE_IN_ALL
109GdkMonitor * gdk_x11_display_get_primary_monitor (GdkDisplay *display);
110
111GDK_AVAILABLE_IN_ALL
112void gdk_x11_display_grab (GdkDisplay *display);
113GDK_AVAILABLE_IN_ALL
114void gdk_x11_display_ungrab (GdkDisplay *display);
115
116GDK_AVAILABLE_IN_ALL
117void gdk_x11_display_set_surface_scale (GdkDisplay *display,
118 int scale);
119
120GDK_AVAILABLE_IN_ALL
121void gdk_x11_display_error_trap_push (GdkDisplay *display);
122/* warn unused because you could use pop_ignored otherwise */
123GDK_AVAILABLE_IN_ALL
124G_GNUC_WARN_UNUSED_RESULT int gdk_x11_display_error_trap_pop (GdkDisplay *display);
125GDK_AVAILABLE_IN_ALL
126void gdk_x11_display_error_trap_pop_ignored (GdkDisplay *display);
127
128GDK_AVAILABLE_IN_ALL
129void gdk_x11_set_sm_client_id (const char *sm_client_id);
130
131GDK_AVAILABLE_IN_ALL
132GdkSurface * gdk_x11_display_get_default_group (GdkDisplay *display);
133
134G_END_DECLS
135
136#endif /* __GDK_X11_DISPLAY_H__ */
137

source code of gtk/gdk/x11/gdkx11display.h