3 private LightDM.Greeter greeter;
4 private Gtk.Entry username_entry;
5 private Gtk.Entry password_entry;
6 private Gtk.Label message_label;
10 greeter = new LightDM.Greeter ();
11 greeter.connected.connect (connect_cb);
12 greeter.show_prompt.connect (show_prompt_cb);
13 greeter.show_message.connect (show_message_cb);
14 greeter.authentication_complete.connect (authentication_complete_cb);
15 greeter.timed_login.connect (timed_login_cb);
16 greeter.quit.connect (quit_cb);
21 greeter.connect_to_server ();
24 private void username_activate_cb (Gtk.Entry entry)
26 username_entry.sensitive = false;
27 greeter.login (username_entry.text);
30 private void password_activate_cb (Gtk.Entry entry)
32 password_entry.sensitive = false;
33 greeter.respond (password_entry.text);
36 private void connect_cb (LightDM.Greeter greeter)
38 var display = Gdk.Display.get_default ();
39 var screen = display.get_default_screen ();
41 var window = new Gtk.Window ();
42 window.set_default_size (screen.get_width (), screen.get_height ());
44 var vbox = new Gtk.VBox (false, 0);
47 var login_align = new Gtk.Alignment (0.5f, 0.5f, 0.0f, 0.0f);
48 vbox.pack_start (login_align, true, true, 0);
50 var login_vbox = new Gtk.VBox (false, 6);
51 login_vbox.border_width = 12;
52 login_align.add (login_vbox);
54 var logo_image = new Gtk.Image.from_icon_name ("computer", Gtk.IconSize.DIALOG);
55 logo_image.pixel_size = 64;
56 login_vbox.pack_start (logo_image, false, false, 0);
57 login_vbox.pack_start (new Gtk.Label (greeter.hostname), false, false, 0);
59 message_label = new Gtk.Label ("");
60 login_vbox.pack_start (message_label, false, false, 0);
61 message_label.no_show_all = true;
63 username_entry = new Gtk.Entry ();
64 login_vbox.pack_start (username_entry, false, false, 0);
65 username_entry.activate.connect (username_activate_cb);
67 password_entry = new Gtk.Entry ();
68 password_entry.sensitive = false;
69 login_vbox.pack_start (password_entry, false, false, 0);
70 password_entry.activate.connect (password_activate_cb);
71 password_entry.no_show_all = true;
74 username_entry.grab_focus ();
77 private void show_prompt_cb (LightDM.Greeter greeter, string text, LightDM.PromptType type)
79 password_entry.show ();
80 password_entry.sensitive = true;
81 password_entry.visibility = type != LightDM.PromptType.SECRET;
82 password_entry.grab_focus ();
85 private void show_message_cb (LightDM.Greeter greeter, string text, LightDM.MessageType type)
87 message_label.label = text;
88 message_label.show ();
91 private void authentication_complete_cb (LightDM.Greeter greeter)
93 password_entry.hide ();
94 password_entry.text = "";
95 username_entry.text = "";
96 username_entry.sensitive = true;
97 username_entry.grab_focus ();
98 if (greeter.is_authenticated)
99 greeter.start_default_session ();
102 message_label.label = "Failed to authenticate";
103 message_label.show ();
107 private void timed_login_cb (LightDM.Greeter greeter, string username)
109 greeter.login (greeter.timed_login_user);
112 private void quit_cb (LightDM.Greeter greeter)
117 static int main (string[] args)
121 var g = new Greeter ();