X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fchat.git;a=blobdiff_plain;f=ui.c;h=c2d5b2fdd96c9a23de3e0950a883094333130875;hp=7574652b3aa3ee6babbf553874374cacbf2e29ee;hb=HEAD;hpb=282bba49cf4dcad9e844e61d70d0ab7ea1c7cb22 diff --git a/ui.c b/ui.c index 7574652..c2d5b2f 100644 --- a/ui.c +++ b/ui.c @@ -17,6 +17,7 @@ */ +#include #include #include #include @@ -30,29 +31,61 @@ rploop (GIOChannel *src, GIOCondition cond, gpointer xmpp) return TRUE; } -int -main (int argc, char **argv) +GtkWidget *entry1; +GtkWidget *entry2; +GtkWidget *entry3; + +extern void hc_xmpp_chat_open (hc_xmpp_t *); + +static void +connect_clicked (GtkWidget *button, gpointer data) { - GMainLoop *loop; GIOChannel *channel; + hc_xmpp_t *xmpp; char *server; char *user; char *password; - hc_xmpp_t *xmpp; - if (argc < 4) - { - printf ("tictactoe server user password\n"); - return 1; - } - server = argv[1]; - user = argv[2]; - password = argv[3]; - dns_init (NULL, 1); + server = (char *) gtk_entry_get_text (GTK_ENTRY (entry1)); + user = (char *) gtk_entry_get_text (GTK_ENTRY (entry2)); + password = (char *) gtk_entry_get_text (GTK_ENTRY (entry3)); xmpp = hc_xmpp_new (hc_xmpp_hook, server, user, password); hc_xmpp_send_stream (xmpp); channel = g_io_channel_unix_new (hc_xmpp_fd (xmpp)); - loop = g_main_loop_new (g_main_context_default (), TRUE); g_io_add_watch (channel, G_IO_IN, rploop, xmpp); + hc_xmpp_chat_open (xmpp); +} + +static void +ui (void) +{ + GtkWidget *window; + GtkWidget *vbox; + GtkWidget *button; + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + vbox = gtk_vbox_new (TRUE, 5); + entry1 = gtk_entry_new (); + entry2 = gtk_entry_new (); + entry3 = gtk_entry_new (); + gtk_entry_set_visibility (GTK_ENTRY (entry3), FALSE); + button = gtk_button_new_with_label ("Connect"); + g_signal_connect (G_OBJECT (button), "clicked", + G_CALLBACK (connect_clicked), NULL); + gtk_container_add (GTK_CONTAINER (window), vbox); + gtk_container_add (GTK_CONTAINER (vbox), entry1); + gtk_container_add (GTK_CONTAINER (vbox), entry2); + gtk_container_add (GTK_CONTAINER (vbox), entry3); + gtk_container_add (GTK_CONTAINER (vbox), button); + gtk_widget_show_all (window); +} + +int +main (int argc, char **argv) +{ + GMainLoop *loop; + gtk_init (&argc, &argv); + dns_init (NULL, 1); + loop = g_main_loop_new (g_main_context_default (), TRUE); + ui (); g_main_loop_run (loop); return 0; }