view plugins/toc_commands.c @ 842:2804dc8e9ba0

[gaim-migrate @ 852] HTML widget is faster, more stable :) oh my cs teacher would be so proud. here's a description of the old algorithm and my new improved one: old algorithm: print as much text as we can. then try printing the rest of it. with at 4000 character message, this usually leads to a stack about 200 functions deep. depending on the amound of memory you have, this may have lead to a segfault. new algorithm: if we can print it all, print it all. if we can't { if we've already printed stuff on this line then finish printing the line. print the first half of the stuff, then the second half. } this usually leads to a stack no deeper than about 20 functions. it also causes the widget to be much faster. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 05 Sep 2000 21:30:43 +0000
parents ae7c762775cd
children ece2d1543b20
line wrap: on
line source

#define GAIM_PLUGINS
#include "gaim.h"

#include <gtk/gtk.h>

void enter_callback(GtkWidget *widget, GtkWidget *entry) {
	gchar *entry_text;
	entry_text = gtk_entry_get_text(GTK_ENTRY(entry));
	sflap_send(entry_text, strlen(entry_text), TYPE_DATA);
}

void destroy_callback(GtkWidget *widget, void *handle) {
	gtk_widget_destroy(widget);
	gaim_plugin_unload(handle);
}

GtkWidget *window;
void gaim_plugin_init(void *h) {
	GtkWidget *entry;

	window = gtk_window_new(GTK_WINDOW_DIALOG);
	gtk_window_set_title(GTK_WINDOW(window), "Gaim - SFLAP interface");

	entry = gtk_entry_new();
	gtk_signal_connect(GTK_OBJECT(entry), "activate",
			   (GtkSignalFunc)enter_callback,
			   entry);
	gtk_container_add(GTK_CONTAINER(window), entry);
	gtk_widget_show(entry);

	gtk_signal_connect(GTK_OBJECT(window), "destroy",
			   (GtkSignalFunc)destroy_callback,
			   h);

	gtk_widget_show(window);
}

void gaim_plugin_remove() {
	gtk_widget_destroy(window);
}

char *name() {
	return "TOC Interface";
}

char *description() {
	return "Allows you to talk directly to the TOC server, bypassing gaim.";
}