# HG changeset patch # User Luke Schierer # Date 1041949303 0 # Node ID 0cff8ec389359945bc4951b83f3559bf787a4be8 # Parent 1c57051bf64be14f23ade36d6d8f6751688f4b8f [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 diff -r 1c57051bf64b -r 0cff8ec38935 plugins/timestamp.c --- 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 Jan 05, 2003. * */ #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 <bj91704@binghamton.edu>"); desc.url = g_strdup(WEBSITE); return &desc;