changeset 4220:0cff8ec38935

[gaim-migrate @ 4464] Chris (darth_sebulba04) writes: "I made it so the timestamp.c iChat plugin can be configured from the gaim configuration menu to set the delay for when each stamp is shown." committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Tue, 07 Jan 2003 14:21:43 +0000
parents 1c57051bf64b
children 9e2336d5bdee
files plugins/timestamp.c
diffstat 1 files changed, 59 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/timestamp.c	Tue Jan 07 11:58:57 2003 +0000
+++ b/plugins/timestamp.c	Tue Jan 07 14:21:43 2003 +0000
@@ -1,4 +1,6 @@
 /* iChat-like timestamps by Sean Egan.
+ *
+ * Modified by: Chris J. Friesen <Darth_Sebulba04@yahoo.com> Jan 05, 2003.
  * <INSERT GPL HERE> */
 
 #include "config.h"
@@ -11,7 +13,8 @@
 #include "gaim.h"
 #include "gtkimhtml.h"
 
-#define TIMESTAMP_DELAY (5 * 60 * 1000)
+//Set the default to 5 minutes.
+int timestamp = 5 * 60 * 1000;
 
 GModule *handle;
 GSList *timestamp_timeouts;
@@ -39,9 +42,62 @@
 	do_timestamp(c);
 
 	timestamp_timeouts = g_slist_append(timestamp_timeouts,
-			GINT_TO_POINTER(g_timeout_add(TIMESTAMP_DELAY, do_timestamp, c)));
+			GINT_TO_POINTER(g_timeout_add(timestamp, do_timestamp, c)));
 
 }
+
+static void set_timestamp(GtkWidget *button, GtkWidget *spinner) {
+	int tm;
+       
+	tm = 0;
+	
+	tm = CLAMP(gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinner)), 1, G_MAXINT);
+	debug_printf("setting  time to %d mins\n", tm);
+	
+	tm = tm * 60 * 1000;
+
+	timestamp = tm;
+}
+
+GtkWidget *gaim_plugin_config_gtk() {
+	GtkWidget *ret;
+	GtkWidget *frame, *label;
+	GtkWidget *vbox, *hbox;
+	GtkAdjustment *adj;
+	GtkWidget *spinner, *button;
+	
+	ret = gtk_vbox_new(FALSE, 18);
+	gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
+
+	frame = make_frame(ret, _("iChat Timestamp"));
+	vbox = gtk_vbox_new(FALSE, 5);
+	gtk_container_add(GTK_CONTAINER(frame), vbox);
+
+	hbox = gtk_hbox_new(FALSE, 5);
+	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+
+	label = gtk_label_new("Delay");
+	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
+	
+	adj = (GtkAdjustment *)gtk_adjustment_new(timestamp/(60*1000), 1, G_MAXINT, 1, 0, 0);
+	spinner = gtk_spin_button_new(adj, 0, 0);
+        gtk_box_pack_start(GTK_BOX(hbox), spinner, TRUE, TRUE, 0);
+
+        label = gtk_label_new("minutes.");
+        gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
+
+        hbox = gtk_hbox_new(TRUE, 5);
+        gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+
+        button = gtk_button_new_with_mnemonic(_("_Apply"));
+        gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 5);
+	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(set_timestamp), spinner);
+	
+	gtk_widget_show_all(ret);
+	return ret;
+}
+
+
 char *gaim_plugin_init(GModule *h) {
 	GList *cnvs = conversations;
 	struct conversation *c;
@@ -72,7 +128,7 @@
 	desc.api_version = PLUGIN_API_VERSION;
 	desc.name = g_strdup(_("Timestamp"));
 	desc.version = g_strdup(VERSION);
-	desc.description = g_strdup(_("Adds iChat-style timestamps to conversations every 5 minutes."));
+	desc.description = g_strdup(_("Adds iChat-style timestamps to conversations every N minutes."));
 	desc.authors = g_strdup("Sean Egan &lt;bj91704@binghamton.edu>");
 	desc.url = g_strdup(WEBSITE);
 	return &desc;