1
<refentry id="multihead" revision="1 May 2002">
3
<refentrytitle>Multi-head Support Overview</refentrytitle>
4
<manvolnum>3</manvolnum>
5
<refmiscinfo>GDK Library</refmiscinfo>
9
<refname>Multi-head Support Overview</refname>
10
<refpurpose>Overview of GdkDisplay and GdkScreen</refpurpose>
14
<title>Overview</title>
16
Multihead support is based around two main object types:
18
<listitem><para>GdkDisplay</para></listitem>
19
<listitem><para>GdkScreen</para></listitem>
24
<link linkend="gdk-GdkDisplay">GdkDisplay</link> objects are the GDK
25
representation of the X Display which can be described as <emphasis>a
26
workstation consisting of a keyboard a pointing device (such as a
27
mouse) and one or more screens</emphasis>.
28
It is used to open and keep track of various <link
29
linkend="gdk-GdkScreen">GdkScreen</link> objects currently
30
instanciated by the application. It is also used to grab and release
31
the keyboard and the mouse pointer.
34
<link linkend="gdk-GdkScreen">GdkScreen</link> objects are the GDK
35
representation of a physical screen. It is used throughout GDK and GTK+
36
to specify which screen the top level windows are to be displayed on.
37
It is also used to query the screen specification and default settings such as
38
the default colormap (<link linkend="gdk-screen-get-default-colormap">gdk_screen_get_default_colormap</link>()),
39
the screen width (<link linkend="gdk-screen-get-width">gdk_screen_get_width</link>()), etc.
42
The following code samples demonstrate common usage of the objects described above.
46
<title>Testing the number of screen on the current display</title>
48
-->gint num_screen = 0;
49
gchar *displayname = NULL;
50
GdkScreen **screen_list;
53
gtk_init (&argc, &argv);
55
display = gdk_display_get_default ();
56
num_screen = gdk_display_get_n_screens (display);
57
displayname = gdk_display_get_name (display);
58
if (num_screen <= 1)
60
printf ("This Xserver (%s) manages only one screen. exiting...\n",
66
printf ("This Xserver (%s) manages %d screens.\n", displayname,
73
<title>Opening a second display</title>
75
-->gchar *second_screen_name;
76
GdkDisplay *second_display;
77
GdkScreen *second_screen;
80
gtk_init (&argc, &argv);
82
/* screen2_name needs to be initialized before calling
83
/* gdk_display_new() */
84
second_display = gdk_display_new (&argc, &argv, second_screen_name);
86
second_screen = gdk_display_get_default_screen (second_display);
89
g_print ("Can't open display :\n\t%s\n\n",
93
/* now GdkScreen can be assigned to GtkWindows */
95
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
96
gtk_window_set_screen (window, second_screen);<!--
101
<title>See Also</title>
105
<term><link linkend="gdk-GdkDisplay">GdkDisplay</link></term>
106
<listitem><para>the GDK Object used to represent and manipulate display
107
related data</para></listitem>
110
<term><link linkend="gdk-GdkScreen">GdkScreen</link></term>
111
<listitem><para>the GDK Object used to represent and query screen related
112
data</para></listitem>
122
sgml-parent-document: ("gdk-docs.sgml" "book" "refentry" "")