X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fchat.git;a=blobdiff_plain;f=ui.c;h=45270475cbcfd094b3a800d3f16c78c57cc236c4;hp=7574652b3aa3ee6babbf553874374cacbf2e29ee;hb=d3a770cb9f1cdc233d807a8bec0a1a514b043789;hpb=8a0e2834ab01c824196aab0e81c713f6b88110cd diff --git a/ui.c b/ui.c index 7574652..4527047 100644 --- a/ui.c +++ b/ui.c @@ -17,6 +17,7 @@ */ +#include #include #include #include @@ -30,29 +31,58 @@ rploop (GIOChannel *src, GIOCondition cond, gpointer xmpp) return TRUE; } -int -main (int argc, char **argv) +GtkWidget *entry1; +GtkWidget *entry2; +GtkWidget *entry3; + +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); +} + +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; }