]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blobdiff - src/greeter.h
Allow in-session greeters to reconnect
[sojka/lightdm.git] / src / greeter.h
index a48a6d43d20450690076d8b43cf6c3972eff643b..b9404ae528bb410072ce63d90411282f541b72c6 100644 (file)
@@ -11,6 +11,8 @@
 #ifndef GREETER_H_
 #define GREETER_H_
 
+typedef struct Greeter Greeter;
+
 #include "session.h"
 
 G_BEGIN_DECLS
@@ -22,6 +24,7 @@ G_BEGIN_DECLS
 #define IS_GREETER(obj)        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GREETER_TYPE))
 
 #define GREETER_SIGNAL_CONNECTED      "connected"
+#define GREETER_SIGNAL_DISCONNECTED   "disconnected"
 #define GREETER_SIGNAL_CREATE_SESSION "create-session"
 #define GREETER_SIGNAL_START_SESSION  "start-session"
 
@@ -31,16 +34,17 @@ G_BEGIN_DECLS
 
 typedef struct GreeterPrivate GreeterPrivate;
 
-typedef struct
+struct Greeter
 {
     GObject         parent_instance;
     GreeterPrivate *priv;
-} Greeter;
+};
 
 typedef struct
 {
     GObjectClass parent_class;
     void (*connected)(Greeter *greeter);
+    void (*disconnected)(Greeter *greeter);  
     Session *(*create_session)(Greeter *greeter);
     gboolean (*start_session)(Greeter *greeter, SessionType type, const gchar *session);
 } GreeterClass;
@@ -49,7 +53,7 @@ GType greeter_get_type (void);
 
 Greeter *greeter_new (void);
 
-gboolean greeter_start (Greeter *greeter, gboolean (*setup_child_cb)(Greeter *greeter, int input_fd, int output_fd, gpointer user_data), gpointer user_data);
+void greeter_set_file_descriptors (Greeter *greeter, int to_greeter_fd, int from_greeter_fd);
 
 void greeter_stop (Greeter *greeter);