/* logon.c
*
* version 1.0
*
* GUI Logon Screen Challenge Submission
* C version, using GTK+-3.0
* Written by Armando I. Rivera (AIR)
*
* Compile: gcc logon.c $(pkg-config --libs --cflags gtk+-3.0) -o logon
*/
#include <gtk/gtk.h>
void onClick( GtkWidget *widget, gpointer data ) {
gchar *stupid_password = "pa$$w0rd!";
gchar *user_password;
g_object_get(data,"text",&user_password,NULL);
if (g_strcmp0 (stupid_password,user_password) == 0) {
g_print("Your are now logged in!\n");
gtk_main_quit();
}else{
g_print("Username or Password is Incorrect!\n");
}
}
int main (int argc, char **argv) {
GtkWidget *mainWin, *lblUser, *lblPass, *txtUser, *txtPass;
GtkWidget *hbox, *vbox, *btnLogin;
gtk_init(&argc, &argv);
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,6);
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL,6);
mainWin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_object_set(mainWin,
"title","Login",
"default-width",400,
"resizable",FALSE,
"window-position",GTK_WIN_POS_CENTER,
"child",vbox,
NULL);
g_object_set(vbox,"child",hbox,"margin",10,NULL);
lblUser = gtk_label_new("Username:");
lblPass = gtk_label_new("Password: ");
txtUser = gtk_entry_new();
txtPass = gtk_entry_new();
g_object_set(txtUser,"expand",TRUE,"text",g_get_user_name(),NULL);
g_object_set(txtPass,"expand",TRUE, "visibility", FALSE,NULL);
g_object_set(hbox,"child",lblUser,"child",txtUser,"spacing", 6, NULL);
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,6);
g_object_set(vbox,"child",hbox, NULL);
g_object_set(hbox,"child",lblPass,"child",txtPass,"spacing", 6, NULL);
btnLogin = gtk_button_new_with_label("Login");
g_object_set(vbox,"child",btnLogin,NULL);
g_signal_connect (mainWin, "destroy", G_CALLBACK (gtk_main_quit), NULL);
g_signal_connect (btnLogin, "clicked", G_CALLBACK (onClick), txtPass);
gtk_widget_show_all(mainWin);
gtk_main();
return 0;
}