lightdm.c \
login1.c \
login1.h \
- mir-greeter.c \
- mir-greeter.h \
mir-server.c \
mir-server.h \
- mir-session.c \
- mir-session.h \
plymouth.c \
plymouth.h \
privileges.c \
xdmcp-session.c \
xdmcp-session.h \
xdmcp-session-private.h \
- xgreeter.c \
- xgreeter.h \
xserver-local.c \
xserver-local.h \
xserver-remote.c \
xserver-xvnc.c \
xserver-xvnc.h \
xserver.c \
- xserver.h \
- xsession.c \
- xsession.h
+ xserver.h
lightdm_CFLAGS = \
$(LIGHTDM_CFLAGS) \
return TRUE;
}
+void
+display_server_setup_session (DisplayServer *server, Session *session)
+{
+ return DISPLAY_SERVER_GET_CLASS (server)->setup_session (server, session);
+}
+
+static void
+display_server_real_setup_session (DisplayServer *server, Session *session)
+{
+}
+
void
display_server_stop (DisplayServer *server)
{
{
klass->get_vt = display_server_real_get_vt;
klass->start = display_server_real_start;
+ klass->setup_session = display_server_real_setup_session;
klass->stop = display_server_real_stop;
g_type_class_add_private (klass, sizeof (DisplayServerPrivate));
#include <glib-object.h>
+typedef struct DisplayServer DisplayServer;
+
+#include "session.h"
+
G_BEGIN_DECLS
#define DISPLAY_SERVER_TYPE (display_server_get_type())
typedef struct DisplayServerPrivate DisplayServerPrivate;
-typedef struct
+struct DisplayServer
{
GObject parent_instance;
DisplayServerPrivate *priv;
-} DisplayServer;
+};
typedef struct
{
gint (*get_vt)(DisplayServer *server);
gboolean (*start)(DisplayServer *server);
+ void (*setup_session)(DisplayServer *server, Session *session);
void (*stop)(DisplayServer *server);
} DisplayServerClass;
gboolean display_server_start (DisplayServer *server);
+void display_server_setup_session (DisplayServer *server, Session *session);
+
void display_server_stop (DisplayServer *server);
gboolean display_server_get_is_stopping (DisplayServer *server);
static gboolean read_cb (GIOChannel *source, GIOCondition condition, gpointer data);
+Greeter *
+greeter_new (void)
+{
+ return g_object_new (GREETER_TYPE, NULL);
+}
+
void
greeter_set_pam_services (Greeter *greeter, const gchar *pam_service, const gchar *autologin_pam_service)
{
GType greeter_get_type (void);
+Greeter *greeter_new (void);
+
void greeter_set_pam_services (Greeter *greeter, const gchar *pam_service, const gchar *autologin_pam_service);
void greeter_set_allow_guest (Greeter *greeter, gboolean allow_guest);
+++ /dev/null
-/*
- * Copyright (C) 2013 Robert Ancell.
- * Author: Robert Ancell <robert.ancell@canonical.com>
- *
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
- * license.
- */
-
-#include "mir-greeter.h"
-
-G_DEFINE_TYPE (MirGreeter, mir_greeter, GREETER_TYPE);
-
-MirGreeter *
-mir_greeter_new (void)
-{
- return g_object_new (MIR_GREETER_TYPE, NULL);
-}
-
-static void
-mir_greeter_init (MirGreeter *session)
-{
-}
-
-static void
-mir_greeter_class_init (MirGreeterClass *klass)
-{
-}
+++ /dev/null
-/*
- * Copyright (C) 2013 Robert Ancell.
- * Author: Robert Ancell <robert.ancell@canonical.com>
- *
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
- * license.
- */
-
-#ifndef MIR_GREETER_H_
-#define MIR_GREETER_H_
-
-#include "greeter.h"
-
-G_BEGIN_DECLS
-
-#define MIR_GREETER_TYPE (mir_greeter_get_type())
-#define MIR_GREETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MIR_GREETER_TYPE, MirGreeter))
-
-typedef struct MirGreeterPrivate MirGreeterPrivate;
-
-typedef struct
-{
- Greeter parent_instance;
- MirGreeterPrivate *priv;
-} MirGreeter;
-
-typedef struct
-{
- GreeterClass parent_class;
-} MirGreeterClass;
-
-GType mir_greeter_get_type (void);
-
-MirGreeter *mir_greeter_new (void);
-
-G_END_DECLS
-
-#endif /* MIR_GREETER_H_ */
#include <string.h>
#include "mir-server.h"
-#include "mir-session.h"
struct MirServerPrivate
{
static void
mir_server_finalize (GObject *object)
{
- MirServer *self;
-
- self = MIR_SERVER (object);
-
G_OBJECT_CLASS (mir_server_parent_class)->finalize (object);
}
+++ /dev/null
-/*
- * Copyright (C) 2010-2011 Robert Ancell.
- * Author: Robert Ancell <robert.ancell@canonical.com>
- *
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
- * license.
- */
-
-#include "mir-session.h"
-#include "mir-server.h"
-
-G_DEFINE_TYPE (MirSession, mir_session, SESSION_TYPE);
-
-MirSession *
-mir_session_new (void)
-{
- MirSession *session;
-
- session = g_object_new (MIR_SESSION_TYPE, NULL);
- session_set_log_file (SESSION (session), ".session-errors");
-
- return session;
-}
-
-static void
-mir_session_init (MirSession *session)
-{
-}
-
-static void
-mir_session_class_init (MirSessionClass *klass)
-{
-}
+++ /dev/null
-/*
- * Copyright (C) 2010-2011 Robert Ancell.
- * Author: Robert Ancell <robert.ancell@canonical.com>
- *
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
- * license.
- */
-
-#ifndef MIR_SESSION_H_
-#define MIR_SESSION_H_
-
-#include "session.h"
-
-G_BEGIN_DECLS
-
-#define MIR_SESSION_TYPE (mir_session_get_type())
-#define MIR_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MIR_SESSION_TYPE, MirSession))
-
-typedef struct MirSessionPrivate MirSessionPrivate;
-
-typedef struct
-{
- Session parent_instance;
- MirSessionPrivate *priv;
-} MirSession;
-
-typedef struct
-{
- SessionClass parent_class;
-} MirSessionClass;
-
-GType mir_session_get_type (void);
-
-MirSession *mir_session_new (void);
-
-G_END_DECLS
-
-#endif /* MIR_SESSION_H_ */
#include "seat-unity.h"
#include "configuration.h"
#include "xserver-local.h"
-#include "xgreeter.h"
-#include "xsession.h"
#include "mir-server.h"
#include "vt.h"
#include "plymouth.h"
static Greeter *
seat_unity_create_greeter_session (Seat *seat)
{
- XGreeter *greeter_session;
+ Greeter *greeter_session;
- greeter_session = xgreeter_new ();
+ greeter_session = greeter_new ();
session_set_env (SESSION (greeter_session), "XDG_SEAT", "seat0");
- return GREETER (greeter_session);
+ return greeter_session;
}
static Session *
seat_unity_create_session (Seat *seat)
{
- XSession *session;
+ Session *session;
- session = xsession_new ();
- session_set_env (SESSION (session), "XDG_SEAT", "seat0");
+ session = session_new ();
+ session_set_env (session, "XDG_SEAT", "seat0");
- return SESSION (session);
+ return session;
}
static void
#include "seat-xdmcp-session.h"
#include "xserver-remote.h"
-#include "xgreeter.h"
-#include "xsession.h"
struct SeatXDMCPSessionPrivate
{
return DISPLAY_SERVER (xserver);
}
-static Greeter *
-seat_xdmcp_session_create_greeter_session (Seat *seat)
-{
- return GREETER (xgreeter_new ());
-}
-
-static Session *
-seat_xdmcp_session_create_session (Seat *seat)
-{
- return SESSION (xsession_new ());
-}
-
static void
seat_xdmcp_session_init (SeatXDMCPSession *seat)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
seat_class->create_display_server = seat_xdmcp_session_create_display_server;
- seat_class->create_greeter_session = seat_xdmcp_session_create_greeter_session;
- seat_class->create_session = seat_xdmcp_session_create_session;
object_class->finalize = seat_xdmcp_session_finalize;
g_type_class_add_private (klass, sizeof (SeatXDMCPSessionPrivate));
#include "seat-xlocal.h"
#include "configuration.h"
#include "xserver-local.h"
-#include "xgreeter.h"
-#include "xsession.h"
#include "mir-server.h"
#include "vt.h"
static Greeter *
seat_xlocal_create_greeter_session (Seat *seat)
{
- XGreeter *greeter_session;
+ Greeter *greeter_session;
- greeter_session = xgreeter_new ();
+ greeter_session = SEAT_CLASS (seat_xlocal_parent_class)->create_greeter_session (seat);
session_set_env (SESSION (greeter_session), "XDG_SEAT", "seat0");
- return GREETER (greeter_session);
+ return greeter_session;
}
static Session *
seat_xlocal_create_session (Seat *seat)
{
- XSession *session;
+ Session *session;
- session = xsession_new ();
+ session = SEAT_CLASS (seat_xlocal_parent_class)->create_session (seat);
session_set_env (SESSION (session), "XDG_SEAT", "seat0");
- return SESSION (session);
+ return session;
}
static void
#include "seat-xremote.h"
#include "configuration.h"
#include "xserver-remote.h"
-#include "xgreeter.h"
-#include "xsession.h"
G_DEFINE_TYPE (SeatXRemote, seat_xremote, SEAT_TYPE);
static Greeter *
seat_xremote_create_greeter_session (Seat *seat)
{
- XGreeter *greeter_session;
+ Greeter *greeter_session;
- greeter_session = xgreeter_new ();
+ greeter_session = SEAT_CLASS (seat_xremote_parent_class)->create_greeter_session (seat);
session_set_env (SESSION (greeter_session), "XDG_SEAT", "seat0");
- return GREETER (greeter_session);
+ return greeter_session;
}
static Session *
seat_xremote_create_session (Seat *seat)
{
- return SESSION (xsession_new ());
+ Session *session;
+
+ session = SEAT_CLASS (seat_xremote_parent_class)->create_session (seat);
+ session_set_env (SESSION (session), "XDG_SEAT", "seat0");
+
+ return session;
}
static void
#include "seat-xvnc.h"
#include "xserver-xvnc.h"
-#include "xgreeter.h"
-#include "xsession.h"
#include "configuration.h"
G_DEFINE_TYPE (SeatXVNC, seat_xvnc, SEAT_TYPE);
return DISPLAY_SERVER (xserver);
}
-static Greeter *
-seat_xvnc_create_greeter_session (Seat *seat)
-{
- return GREETER (xgreeter_new ());
-}
-
-static Session *
-seat_xvnc_create_session (Seat *seat)
-{
- return SESSION (xsession_new ());
-}
-
static void
seat_xvnc_run_script (Seat *seat, DisplayServer *display_server, Process *script)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
seat_class->create_display_server = seat_xvnc_create_display_server;
- seat_class->create_greeter_session = seat_xvnc_create_greeter_session;
- seat_class->create_session = seat_xvnc_create_session;
seat_class->run_script = seat_xvnc_run_script;
object_class->finalize = seat_xdmcp_session_finalize;
gchar **argv;
session = create_session (seat, TRUE);
+ session_set_session_type (session, session_config_get_session_type (session_config));
session_set_env (session, "DESKTOP_SESSION", session_name);
session_set_env (session, "GDMSESSION", session_name);
if (language && language[0] != '\0')
}
session = create_session (seat, TRUE);
+ session_set_session_type (session, session_config_get_session_type (session_config));
session_set_do_authenticate (session, TRUE);
session_set_is_guest (session, TRUE);
argv = get_session_argv (session_config, seat_get_string_property (seat, "session-wrapper"));
Session *session;
session = create_session (seat, FALSE);
+ session_set_session_type (session, session_get_session_type (SESSION (greeter)));
session_set_display_server (session, session_get_display_server (SESSION (greeter)));
return g_object_ref (session);
return TRUE;
}
+static Greeter *
+seat_real_create_greeter_session (Seat *seat)
+{
+ return greeter_new ();
+}
+
+static Session *
+seat_real_create_session (Seat *seat)
+{
+ return session_new ();
+}
+
static void
seat_real_set_active_session (Seat *seat, Session *session)
{
klass->setup = seat_real_setup;
klass->start = seat_real_start;
+ klass->create_greeter_session = seat_real_create_greeter_session;
+ klass->create_session = seat_real_create_session;
klass->set_active_session = seat_real_set_active_session;
klass->get_active_session = seat_real_get_active_session;
klass->run_script = seat_real_run_script;
struct SessionConfigPrivate
{
+ /* Session type */
+ gchar *session_type;
+
/* Command to run */
gchar *command;
};
config = g_object_new (SESSION_CONFIG_TYPE, NULL);
config->priv->command = command;
+ config->priv->session_type = g_key_file_get_string (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-Session-Type", NULL);
return config;
}
session_config_get_command (SessionConfig *config)
{
g_return_val_if_fail (config != NULL, NULL);
-
return config->priv->command;
}
+const gchar *
+session_config_get_session_type (SessionConfig *config)
+{
+ g_return_val_if_fail (config != NULL, NULL);
+ return config->priv->session_type;
+}
+
static void
session_config_init (SessionConfig *config)
{
{
SessionConfig *self = SESSION_CONFIG (object);
+ g_free (self->priv->session_type);
g_free (self->priv->command);
G_OBJECT_CLASS (session_config_parent_class)->finalize (object);
const gchar *session_config_get_command (SessionConfig *config);
+const gchar *session_config_get_session_type (SessionConfig *config);
+
G_END_DECLS
#endif /* SESSION_CONFIG_H_ */
G_DEFINE_TYPE (Session, session, G_TYPE_OBJECT);
+Session *
+session_new (void)
+{
+ return g_object_new (SESSION_TYPE, NULL);
+}
+
+void
+session_set_session_type (Session *session, const gchar *session_type)
+{
+}
+
const gchar *
session_get_session_type (Session *session)
{
g_return_val_if_fail (session->priv->pid == 0, FALSE);
+ display_server_setup_session (session->priv->display_server, session);
+
/* Create pipes to talk to the child */
if (pipe (to_child_pipe) < 0 || pipe (from_child_pipe) < 0)
{
g_return_if_fail (session->priv->argv != NULL);
g_return_if_fail (session->priv->pid != 0);
+ display_server_setup_session (session->priv->display_server, session);
+
session->priv->command_run = TRUE;
command = g_strjoinv (" ", session->priv->argv);
session_init (Session *session)
{
session->priv = G_TYPE_INSTANCE_GET_PRIVATE (session, SESSION_TYPE, SessionPrivate);
+ session->priv->log_filename = g_strdup (".xsession-errors");
}
static void
#include <security/pam_appl.h>
+typedef struct Session Session;
+
#include "display-server.h"
#include "accounts.h"
#include "xauthority.h"
typedef struct SessionPrivate SessionPrivate;
-typedef struct
+struct Session
{
GObject parent_instance;
SessionPrivate *priv;
-} Session;
+};
typedef struct
{
GType session_get_type (void);
+Session *session_new (void);
+
+void session_set_session_type (Session *session, const gchar *session_type);
+
const gchar *session_get_session_type (Session *session);
void session_set_pam_service (Session *session, const gchar *pam_service);
+++ /dev/null
-/*
- * Copyright (C) 2013 Robert Ancell.
- * Author: Robert Ancell <robert.ancell@canonical.com>
- *
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
- * license.
- */
-
-#include <errno.h>
-#include <string.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-#include "xgreeter.h"
-#include "xserver.h"
-#include "configuration.h"
-
-G_DEFINE_TYPE (XGreeter, xgreeter, GREETER_TYPE);
-
-XGreeter *
-xgreeter_new (void)
-{
- return g_object_new (XGREETER_TYPE, NULL);
-}
-
-static void
-setup_env (XGreeter *xgreeter)
-{
- DisplayServer *display_server;
- gint vt;
-
- display_server = session_get_display_server (SESSION (xgreeter));
-
- vt = display_server_get_vt (display_server);
- if (vt > 0)
- {
- gchar *t;
-
- t = g_strdup_printf ("/dev/tty%d", vt);
- session_set_tty (SESSION (xgreeter), t);
- g_free (t);
-
- t = g_strdup_printf ("%d", vt);
- session_set_env (SESSION (xgreeter), "XDG_VTNR", t);
- g_free (t);
- }
-
- session_set_env (SESSION (xgreeter), "DISPLAY", xserver_get_address (XSERVER (display_server)));
- session_set_tty (SESSION (xgreeter), xserver_get_address (XSERVER (display_server)));
- session_set_xdisplay (SESSION (xgreeter), xserver_get_address (XSERVER (display_server)));
- session_set_remote_host_name (SESSION (xgreeter), xserver_get_hostname (XSERVER (display_server)));
- session_set_xauthority (SESSION (xgreeter),
- xserver_get_authority (XSERVER (display_server)),
- config_get_boolean (config_get_instance (), "LightDM", "user-authority-in-system-dir"));
-}
-
-static gboolean
-xgreeter_start (Session *session)
-{
- setup_env (XGREETER (session));
- return SESSION_CLASS (xgreeter_parent_class)->start (session);
-}
-
-static void
-xgreeter_run (Session *session)
-{
- setup_env (XGREETER (session));
- SESSION_CLASS (xgreeter_parent_class)->run (session);
-}
-
-static void
-xgreeter_init (XGreeter *session)
-{
-}
-
-static void
-xgreeter_class_init (XGreeterClass *klass)
-{
- SessionClass *session_class = SESSION_CLASS (klass);
-
- session_class->start = xgreeter_start;
- session_class->run = xgreeter_run;
-}
+++ /dev/null
-/*
- * Copyright (C) 2013 Robert Ancell.
- * Author: Robert Ancell <robert.ancell@canonical.com>
- *
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
- * license.
- */
-
-#ifndef XGREETER_H_
-#define XGREETER_H_
-
-#include "greeter.h"
-
-G_BEGIN_DECLS
-
-#define XGREETER_TYPE (xgreeter_get_type())
-#define XGREETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XGREETER_TYPE, XGreeter))
-
-typedef struct XGreeterPrivate XGreeterPrivate;
-
-typedef struct
-{
- Greeter parent_instance;
- XGreeterPrivate *priv;
-} XGreeter;
-
-typedef struct
-{
- GreeterClass parent_class;
-} XGreeterClass;
-
-GType xgreeter_get_type (void);
-
-XGreeter *xgreeter_new (void);
-
-G_END_DECLS
-
-#endif /* XGREETER_H_ */
#include <xcb/xcb.h>
#include "xserver.h"
-#include "xsession.h"
+#include "configuration.h"
struct XServerPrivate
{
return DISPLAY_SERVER_CLASS (xserver_parent_class)->start (display_server);
}
+static void
+xserver_setup_session (DisplayServer *display_server, Session *session)
+{
+ gint vt;
+
+ display_server = session_get_display_server (session);
+
+ vt = display_server_get_vt (display_server);
+ if (vt > 0)
+ {
+ gchar *t;
+
+ t = g_strdup_printf ("/dev/tty%d", vt);
+ session_set_tty (session, t);
+ g_free (t);
+
+ t = g_strdup_printf ("%d", vt);
+ session_set_env (session, "XDG_VTNR", t);
+ g_free (t);
+ }
+
+ session_set_env (session, "DISPLAY", xserver_get_address (XSERVER (display_server)));
+ session_set_tty (session, xserver_get_address (XSERVER (display_server)));
+ session_set_xdisplay (session, xserver_get_address (XSERVER (display_server)));
+ session_set_remote_host_name (session, xserver_get_hostname (XSERVER (display_server)));
+ session_set_xauthority (session,
+ xserver_get_authority (XSERVER (display_server)),
+ config_get_boolean (config_get_instance (), "LightDM", "user-authority-in-system-dir"));
+}
+
static void
xserver_init (XServer *server)
{
DisplayServerClass *display_server_class = DISPLAY_SERVER_CLASS (klass);
display_server_class->start = xserver_start;
+ display_server_class->setup_session = xserver_setup_session;
object_class->finalize = xserver_finalize;
g_type_class_add_private (klass, sizeof (XServerPrivate));
+++ /dev/null
-/*
- * Copyright (C) 2010-2011 Robert Ancell.
- * Author: Robert Ancell <robert.ancell@canonical.com>
- *
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
- * license.
- */
-
-#include <errno.h>
-#include <string.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-#include "xsession.h"
-#include "xserver.h"
-#include "configuration.h"
-
-G_DEFINE_TYPE (XSession, xsession, SESSION_TYPE);
-
-XSession *
-xsession_new (void)
-{
- XSession *session;
-
- session = g_object_new (XSESSION_TYPE, NULL);
- session_set_log_file (SESSION (session), ".xsession-errors");
-
- return session;
-}
-
-static void
-setup_env (XSession *xsession)
-{
- DisplayServer *display_server;
- gint vt;
-
- display_server = session_get_display_server (SESSION (xsession));
-
- vt = display_server_get_vt (display_server);
- if (vt > 0)
- {
- gchar *t;
-
- t = g_strdup_printf ("/dev/tty%d", vt);
- session_set_tty (SESSION (xsession), t);
- g_free (t);
-
- t = g_strdup_printf ("%d", vt);
- session_set_env (SESSION (xsession), "XDG_VTNR", t);
- g_free (t);
- }
-
- session_set_env (SESSION (xsession), "DISPLAY", xserver_get_address (XSERVER (display_server)));
- session_set_tty (SESSION (xsession), xserver_get_address (XSERVER (display_server)));
- session_set_xdisplay (SESSION (xsession), xserver_get_address (XSERVER (display_server)));
- session_set_remote_host_name (SESSION (xsession), xserver_get_hostname (XSERVER (display_server)));
- session_set_xauthority (SESSION (xsession),
- xserver_get_authority (XSERVER (display_server)),
- config_get_boolean (config_get_instance (), "LightDM", "user-authority-in-system-dir"));
-}
-
-static gboolean
-xsession_start (Session *session)
-{
- setup_env (XSESSION (session));
- return SESSION_CLASS (xsession_parent_class)->start (session);
-}
-
-static void
-xsession_run (Session *session)
-{
- setup_env (XSESSION (session));
- SESSION_CLASS (xsession_parent_class)->run (session);
-}
-
-static void
-xsession_init (XSession *session)
-{
-}
-
-static void
-xsession_class_init (XSessionClass *klass)
-{
- SessionClass *session_class = SESSION_CLASS (klass);
-
- session_class->start = xsession_start;
- session_class->run = xsession_run;
-}
+++ /dev/null
-/*
- * Copyright (C) 2010-2011 Robert Ancell.
- * Author: Robert Ancell <robert.ancell@canonical.com>
- *
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
- * license.
- */
-
-#ifndef XSESSION_H_
-#define XSESSION_H_
-
-#include "session.h"
-
-G_BEGIN_DECLS
-
-#define XSESSION_TYPE (xsession_get_type())
-#define XSESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XSESSION_TYPE, XSession))
-
-typedef struct XSessionPrivate XSessionPrivate;
-
-typedef struct
-{
- Session parent_instance;
- XSessionPrivate *priv;
-} XSession;
-
-typedef struct
-{
- SessionClass parent_class;
-} XSessionClass;
-
-GType xsession_get_type (void);
-
-XSession *xsession_new (void);
-
-G_END_DECLS
-
-#endif /* XSESSION_H_ */