* liblightdm API changes:
- Rename ldm_greeter_provide_secret to ldm_greeter_respond - responses
may not be secrets.
- - show_prompt signal now has a PromptType field
+ - show-prompt signal now has a PromptType field
+ - show-message signal now has a MessageType field and takes over
+ behaviour of show-error signal
* Fix error where an authentication failure from a previous session could
be interpreted as a failure in the current session.
* Simplify Vala bindings and add missing methods
@ldmgreeter: the object which received the signal.
-<!-- ##### SIGNAL LdmGreeter::show-error ##### -->
-<para>
-
-</para>
-
-@ldmgreeter: the object which received the signal.
-@arg1:
-
<!-- ##### SIGNAL LdmGreeter::show-message ##### -->
<para>
@ldmgreeter: the object which received the signal.
@arg1:
+@Param3:
<!-- ##### SIGNAL LdmGreeter::show-prompt ##### -->
<para>
}
static void
-show_message_cb (LdmGreeter *greeter, const gchar *text)
+show_message_cb (LdmGreeter *greeter, const gchar *text, LdmMessageType type)
{
gtk_label_set_text (GTK_LABEL (message_label), text);
gtk_widget_show (message_label);
g_signal_connect (G_OBJECT (greeter), "connected", G_CALLBACK (connect_cb), NULL);
g_signal_connect (G_OBJECT (greeter), "show-prompt", G_CALLBACK (show_prompt_cb), NULL);
g_signal_connect (G_OBJECT (greeter), "show-message", G_CALLBACK (show_message_cb), NULL);
- g_signal_connect (G_OBJECT (greeter), "show-error", G_CALLBACK (show_message_cb), NULL);
g_signal_connect (G_OBJECT (greeter), "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL);
g_signal_connect (G_OBJECT (greeter), "timed-login", G_CALLBACK (timed_login_cb), NULL);
g_signal_connect (G_OBJECT (greeter), "user-added", G_CALLBACK (user_added_cb), NULL);
self.greeter.connect('connected', self.connect_cb)
self.greeter.connect('show-prompt', self.show_prompt_cb)
self.greeter.connect('show-message', self.show_message_cb)
- self.greeter.connect('show-error', self.show_message_cb)
self.greeter.connect('authentication-complete', self.authentication_complete_cb)
self.greeter.connect('timed-login', self.timed_login_cb)
self.greeter.connect('quit', self.quit_cb)
self.prompt_entry.set_visibility(type != LightDM.PROMPT_TYPE_SECRET)
self.prompt_entry.grab_focus()
- def show_message_cb(self, greeter, text):
+ def show_message_cb(self, greeter, text, type):
self.message_label.show()
self.message_label.set_text(text)
greeter.connected.connect (connect_cb);
greeter.show_prompt.connect (show_prompt_cb);
greeter.show_message.connect (show_message_cb);
- greeter.show_error.connect (show_message_cb);
greeter.authentication_complete.connect (authentication_complete_cb);
greeter.timed_login.connect (timed_login_cb);
greeter.quit.connect (quit_cb);
password_entry.grab_focus ();
}
- private void show_message_cb (LightDM.Greeter greeter, string text)
+ private void show_message_cb (LightDM.Greeter greeter, string text, LightDM.MessageType type)
{
message_label.label = text;
message_label.show ();
GREETER_MESSAGE_USER_DEFAULTS = 106
} GreeterMessage;
-typedef enum
-{
- GREETER_PROMPT_QUESTION,
- GREETER_PROMPT_SECRET
-} GreeterPromptType;
-
#endif /* _GREETER_PROTOCOL_H_ */
CONNECTED,
SHOW_PROMPT,
SHOW_MESSAGE,
- SHOW_ERROR,
AUTHENTICATION_COMPLETE,
TIMED_LOGIN,
USER_ADDED,
switch (msg_style)
{
case PAM_PROMPT_ECHO_OFF:
- g_signal_emit (G_OBJECT (greeter), signals[SHOW_PROMPT], 0, msg, GREETER_PROMPT_SECRET);
+ g_signal_emit (G_OBJECT (greeter), signals[SHOW_PROMPT], 0, msg, LDM_PROMPT_TYPE_SECRET);
break;
case PAM_PROMPT_ECHO_ON:
- g_signal_emit (G_OBJECT (greeter), signals[SHOW_PROMPT], 0, msg, GREETER_PROMPT_QUESTION);
+ g_signal_emit (G_OBJECT (greeter), signals[SHOW_PROMPT], 0, msg, LDM_PROMPT_TYPE_QUESTION);
break;
case PAM_ERROR_MSG:
- g_signal_emit (G_OBJECT (greeter), signals[SHOW_ERROR], 0, msg);
+ g_signal_emit (G_OBJECT (greeter), signals[SHOW_MESSAGE], 0, msg, LDM_MESSAGE_TYPE_ERROR);
break;
case PAM_TEXT_INFO:
- g_signal_emit (G_OBJECT (greeter), signals[SHOW_MESSAGE], 0, msg);
+ g_signal_emit (G_OBJECT (greeter), signals[SHOW_MESSAGE], 0, msg, LDM_MESSAGE_TYPE_INFO);
break;
}
* LdmGreeter::show-prompt:
* @greeter: A #LdmGreeter
* @text: Prompt text
+ * @type: Prompt type
*
* The ::show-prompt signal gets emitted when the greeter should show a
* prompt to the user. The given text should be displayed and an input
* LdmGreeter::show-message:
* @greeter: A #LdmGreeter
* @text: Message text
+ * @type: Message type
*
* The ::show-message signal gets emitted when the greeter
- * should show an informational message to the user.
+ * should show a message to the user.
**/
signals[SHOW_MESSAGE] =
g_signal_new ("show-message",
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (LdmGreeterClass, show_message),
NULL, NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE, 1, G_TYPE_STRING);
-
- /**
- * LdmGreeter::show-error:
- * @greeter: A #LdmGreeter
- * @text: Message text
- *
- * The ::show-error signal gets emitted when the greeter
- * should show an error message to the user.
- **/
- signals[SHOW_ERROR] =
- g_signal_new ("show-error",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (LdmGreeterClass, show_error),
- NULL, NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE, 1, G_TYPE_STRING);
+ marshal_VOID__STRING_INT,
+ G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT);
/**
* LdmGreeter::authentication-complete:
public class Greeter : GLib.Object {
public Greeter ();
public virtual signal void connected ();
- public virtual signal void show_error (string text);
- public virtual signal void show_message (string text);
+ public virtual signal void show_message (string text, MessageType type);
public virtual signal void show_prompt (string text, PromptType type);
public virtual signal void timed_login (string username);
public virtual signal void authentication_complete ();
public void start_session (string? session);
public void start_default_session ();
}
+ public enum MessageType {
+ INFO,
+ ERROR
+ }
public enum PromptType {
QUESTION,
SECRET
LDM_PROMPT_TYPE_SECRET
} LdmPromptType;
+typedef enum
+{
+ LDM_MESSAGE_TYPE_INFO,
+ LDM_MESSAGE_TYPE_ERROR
+} LdmMessageType;
+
struct _LdmGreeter
{
GObject parent_instance;
void (*connected)(LdmGreeter *greeter);
void (*show_prompt)(LdmGreeter *greeter, const gchar *text, LdmPromptType type);
- void (*show_message)(LdmGreeter *greeter, const gchar *text);
- void (*show_error)(LdmGreeter *greeter, const gchar *text);
+ void (*show_message)(LdmGreeter *greeter, const gchar *text, LdmMessageType type);
void (*authentication_complete)(LdmGreeter *greeter);
void (*timed_login)(LdmGreeter *greeter, const gchar *username);
void (*user_added)(LdmGreeter *greeter, LdmUser *user);