gint get_from_remote(gpointer data) { int ch; gchar *outstr; gchar instr[2]; int inbytes; int outbytes; instr[1]=0; switch(chat_check_remote()) { case 2: /* Chat active */ while(ch=chat_read_byte()) { if(ch==-1) { chat_close(); gtk_main_quit(); return(FALSE); } if(ch==8 || ch==127) { GtkTextIter start; GtkTextIter end; gtk_text_buffer_get_iter_at_mark( gtk_text_view_get_buffer(GTK_TEXT_VIEW(data)) ,&start ,gtk_text_buffer_get_insert( gtk_text_view_get_buffer(GTK_TEXT_VIEW(data)) ) ); end=start; gtk_text_iter_backward_cursor_position(&end); gtk_text_buffer_delete( gtk_text_view_get_buffer(GTK_TEXT_VIEW(data)) ,&start ,&end ); } else { instr[0]=ch; outstr=g_convert(instr, 1, "UTF-8", "CP437", &inbytes, &outbytes, NULL); gtk_text_buffer_insert_at_cursor( gtk_text_view_get_buffer(GTK_TEXT_VIEW(data)) ,outstr ,1 ); g_free(outstr); } } return(TRUE); } chat_close(); return(FALSE); }
void chat_input(int c) { switch (c) { case SDL_SCANCODE_RETURN: if (strlen(_chatCurrentLine) > 0) { network_send_chat(_chatCurrentLine); } chat_clear_input(); chat_close(); break; case SDL_SCANCODE_ESCAPE: chat_close(); break; } }
void on_MainWindow_destroy (GtkObject *object, gpointer user_data) { chat_close(); gtk_main_quit(); }
void on_CancelButton_clicked (GtkButton *button, gpointer user_data) { chat_close(); gtk_main_quit(); }
void chat_toggle() { if (gChatOpen) { chat_close(); } else { chat_open(); } }
void chat_input(CHAT_INPUT input) { switch (input) { case CHAT_INPUT_SEND: if (strlen(_chatCurrentLine) > 0) { network_send_chat(_chatCurrentLine); } chat_clear_input(); chat_close(); break; case CHAT_INPUT_CLOSE: chat_close(); break; default: break; } }
gint connect_wait(gpointer data) { GtkWidget *MainWindow; switch(chat_check_remote()) { case -1: /* Error */ case 0: /* Remote has gone away */ chat_close(); return(FALSE); case 1: /* Waiting for remote */ return(TRUE); case 2: /* Chat active */ MainWindow = create_MainWindow (); gtk_widget_hide (GTK_WIDGET(data)); gtk_widget_show (MainWindow); return(FALSE); } return(TRUE); }