]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blob - src/x-server-remote.c
1f458b15c5a9309b8edc339fdc81404bf9e08d18
[sojka/lightdm.git] / src / x-server-remote.c
1 /*
2  * Copyright (C) 2010-2011 Robert Ancell.
3  * Author: Robert Ancell <robert.ancell@canonical.com>
4  *
5  * This program is free software: you can redistribute it and/or modify it under
6  * the terms of the GNU General Public License as published by the Free Software
7  * Foundation, either version 3 of the License, or (at your option) any later
8  * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
9  * license.
10  */
11
12 #include <config.h>
13
14 #include "x-server-remote.h"
15
16 struct XServerRemotePrivate
17 {
18     /* Display number to use */
19     guint display_number;
20 };
21
22 G_DEFINE_TYPE (XServerRemote, x_server_remote, X_SERVER_TYPE);
23
24 XServerRemote *
25 x_server_remote_new (const gchar *hostname, guint number, XAuthority *authority)
26 {
27     XServerRemote *self = g_object_new (X_SERVER_REMOTE_TYPE, NULL);
28     gchar *name;
29
30     self->priv->display_number = number;
31
32     x_server_set_hostname (X_SERVER (self), hostname);
33     x_server_set_authority (X_SERVER (self), authority);
34
35     name = g_strdup_printf ("x-%s-%d", hostname, number);
36     display_server_set_name (DISPLAY_SERVER (self), name);
37     g_free (name);
38
39     return self;
40 }
41
42 static guint
43 x_server_remote_get_display_number (XServer *server)
44 {
45     return X_SERVER_REMOTE (server)->priv->display_number;
46 }
47
48 static void
49 x_server_remote_init (XServerRemote *server)
50 {
51     server->priv = G_TYPE_INSTANCE_GET_PRIVATE (server, X_SERVER_REMOTE_TYPE, XServerRemotePrivate);
52 }
53
54 static void
55 x_server_remote_class_init (XServerRemoteClass *klass)
56 {
57     XServerClass *x_server_class = X_SERVER_CLASS (klass);  
58
59     x_server_class->get_display_number = x_server_remote_get_display_number;
60
61     g_type_class_add_private (klass, sizeof (XServerRemotePrivate));
62 }