Exemple #1
0
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);
}
Exemple #2
0
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;
	}
}
Exemple #3
0
void
on_MainWindow_destroy                  (GtkObject       *object,
                                        gpointer         user_data)
{
    chat_close();
    gtk_main_quit();
}
Exemple #4
0
void
on_CancelButton_clicked                (GtkButton       *button,
                                        gpointer         user_data)
{
    chat_close();
    gtk_main_quit();
}
Exemple #5
0
void chat_toggle()
{
	if (gChatOpen) {
		chat_close();
	} else {
		chat_open();
	}
}
Exemple #6
0
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;
    }
}
Exemple #7
0
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);
}