You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(106) |
Oct
(334) |
Nov
(246) |
Dec
(145) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(42) |
Feb
(53) |
Mar
(232) |
Apr
(109) |
May
(137) |
Jun
(63) |
Jul
(26) |
Aug
(263) |
Sep
(193) |
Oct
(507) |
Nov
(440) |
Dec
(241) |
2003 |
Jan
(567) |
Feb
(195) |
Mar
(504) |
Apr
(481) |
May
(524) |
Jun
(522) |
Jul
(594) |
Aug
(502) |
Sep
(643) |
Oct
(508) |
Nov
(430) |
Dec
(377) |
2004 |
Jan
(361) |
Feb
(251) |
Mar
(219) |
Apr
(499) |
May
(461) |
Jun
(419) |
Jul
(314) |
Aug
(519) |
Sep
(416) |
Oct
(247) |
Nov
(305) |
Dec
(382) |
2005 |
Jan
(267) |
Feb
(282) |
Mar
(327) |
Apr
(338) |
May
(189) |
Jun
(400) |
Jul
(462) |
Aug
(530) |
Sep
(316) |
Oct
(523) |
Nov
(481) |
Dec
(650) |
2006 |
Jan
(536) |
Feb
(361) |
Mar
(287) |
Apr
(146) |
May
(101) |
Jun
(169) |
Jul
(221) |
Aug
(498) |
Sep
(300) |
Oct
(236) |
Nov
(209) |
Dec
(205) |
2007 |
Jan
(30) |
Feb
(23) |
Mar
(26) |
Apr
(15) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Sean E. <sea...@us...> - 2002-08-16 01:25:05
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv30866/src Modified Files: gtkimhtml.c gtkimhtml.h Log Message: malcommit Index: gtkimhtml.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkimhtml.c,v retrieving revision 1.111 retrieving revision 1.112 diff -u -d -r1.111 -r1.112 --- gtkimhtml.c 16 Aug 2002 01:18:01 -0000 1.111 +++ gtkimhtml.c 16 Aug 2002 01:25:02 -0000 1.112 @@ -287,11 +287,7 @@ GdkPixmap *pm; GdkBitmap *bm; -#if GTK_CHECK_VERSION(1,3,0) - PangoFontDescription *font; -#else GdkFont *font; -#endif GdkColor *fore; GdkColor *back; GdkColor *bg; @@ -1446,11 +1442,7 @@ gtk_imhtml_tip_paint (GtkIMHtml *imhtml) { GtkStyle *style; -#if GTK_CHECK_VERSION(1,3,0) - PangoFontDescription *font; -#else GdkFont *font; -#endif gint y, baseline_skip, gap; style = imhtml->tip_window->style; Index: gtkimhtml.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkimhtml.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- gtkimhtml.h 16 Aug 2002 01:18:01 -0000 1.15 +++ gtkimhtml.h 16 Aug 2002 01:25:03 -0000 1.16 @@ -45,11 +45,7 @@ struct _GtkIMHtml { GtkLayout layout; -#if GTK_CHECK_VERSION(1,3,0) - PangoFontDescription *default_font; -#else GdkFont *default_font; -#endif GdkColor *default_fg_color; GdkColor *default_bg_color; GdkColor *default_hl_color; @@ -114,11 +110,7 @@ GtkAdjustment *vadj); void gtk_imhtml_set_defaults (GtkIMHtml *imhtml, -#if GTK_CHECK_VERSION(1,3,0) - PangoFontDescription *font, -#else GdkFont *font, -#endif GdkColor *fg_color, GdkColor *bg_color); |
From: Sean E. <sea...@us...> - 2002-08-16 01:18:04
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv29017/src Modified Files: gtkimhtml.c gtkimhtml.h perl.c Log Message: Thanks to Timothy Lee and Dan Colascione for gettiing perl 5.8 to work. Index: gtkimhtml.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkimhtml.c,v retrieving revision 1.110 retrieving revision 1.111 diff -u -d -r1.110 -r1.111 --- gtkimhtml.c 7 Aug 2002 23:25:33 -0000 1.110 +++ gtkimhtml.c 16 Aug 2002 01:18:01 -0000 1.111 @@ -287,7 +287,11 @@ GdkPixmap *pm; GdkBitmap *bm; +#if GTK_CHECK_VERSION(1,3,0) + PangoFontDescription *font; +#else GdkFont *font; +#endif GdkColor *fore; GdkColor *back; GdkColor *bg; @@ -1442,7 +1446,11 @@ gtk_imhtml_tip_paint (GtkIMHtml *imhtml) { GtkStyle *style; +#if GTK_CHECK_VERSION(1,3,0) + PangoFontDescription *font; +#else GdkFont *font; +#endif gint y, baseline_skip, gap; style = imhtml->tip_window->style; Index: gtkimhtml.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkimhtml.h,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- gtkimhtml.h 20 Apr 2002 08:10:13 -0000 1.14 +++ gtkimhtml.h 16 Aug 2002 01:18:01 -0000 1.15 @@ -45,7 +45,11 @@ struct _GtkIMHtml { GtkLayout layout; +#if GTK_CHECK_VERSION(1,3,0) + PangoFontDescription *default_font; +#else GdkFont *default_font; +#endif GdkColor *default_fg_color; GdkColor *default_bg_color; GdkColor *default_hl_color; @@ -110,7 +114,11 @@ GtkAdjustment *vadj); void gtk_imhtml_set_defaults (GtkIMHtml *imhtml, +#if GTK_CHECK_VERSION(1,3,0) + PangoFontDescription *font, +#else GdkFont *font, +#endif GdkColor *fg_color, GdkColor *bg_color); Index: perl.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/perl.c,v retrieving revision 1.72 retrieving revision 1.73 diff -u -d -r1.72 -r1.73 --- perl.c 29 May 2002 01:44:40 -0000 1.72 +++ perl.c 16 Aug 2002 01:18:01 -0000 1.73 @@ -34,6 +34,8 @@ #ifdef USE_PERL +#define group perl_group + #include <EXTERN.h> #ifndef _SEM_SEMUN_UNDEFINED #define HAS_UNION_SEMUN @@ -49,6 +51,7 @@ #include <dirent.h> #include <string.h> +#undef group /* perl module support */ extern void xs_init _((void)); @@ -175,13 +178,14 @@ { DIR *dir; struct dirent *ent; + struct dirent dirent_buf; char *buf; char *path; path = gaim_user_dir(); dir = opendir(path); if (dir) { - while ((ent = readdir(dir))) { + while ((readdir_r(dir,&dirent_buf,&ent),ent)) { if (strcmp(ent->d_name, ".") && strcmp(ent->d_name, "..")) { if (is_pl_file(ent->d_name)) { buf = g_malloc(strlen(path) + strlen(ent->d_name) + 2); |
From: Christian H. <ch...@us...> - 2002-08-15 04:04:28
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv4211 Modified Files: configure.in Log Message: This was causing compiler problems. Fun, huh? Index: configure.in =================================================================== RCS file: /cvsroot/gaim/gaim/configure.in,v retrieving revision 1.122 retrieving revision 1.123 diff -u -d -r1.122 -r1.123 --- configure.in 11 Aug 2002 06:42:16 -0000 1.122 +++ configure.in 15 Aug 2002 04:04:23 -0000 1.123 @@ -429,7 +429,7 @@ pixmaps/protocols/msn/Makefile pixmaps/protocols/yahoo/Makefile plugins/Makefile - plugins/Makefile + plugins/ticker/Makefile po/Makefile.in sounds/Makefile src/Makefile |
From: Sean E. <sea...@us...> - 2002-08-11 09:03:34
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv26287/src Modified Files: browser.c gaimrc.c Log Message: Fixed potential security vulnerability Index: browser.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/browser.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- browser.c 17 Jun 2002 00:10:34 -0000 1.23 +++ browser.c 11 Aug 2002 09:03:32 -0000 1.24 @@ -559,6 +559,58 @@ } +#if !GTK_CHECK_VERSION(1,3,0) +/* From Glib 2.0 */ +/** + * g_shell_quote: + * @unquoted_string: a literal string + * + * Quotes a string so that the shell (/bin/sh) will interpret the + * quoted string to mean @unquoted_string. If you pass a filename to + * the shell, for example, you should first quote it with this + * function. The return value must be freed with g_free(). The + * quoting style used is undefined (single or double quotes may be + * used). + * + * Return value: quoted string +**/ +gchar* +g_shell_quote (const gchar *unquoted_string) +{ + /* We always use single quotes, because the algorithm is cheesier. + * We could use double if we felt like it, that might be more + * human-readable. + */ + const gchar *p; + GString *dest; + + g_return_val_if_fail (unquoted_string != NULL, NULL); + + dest = g_string_new ("'"); + + p = unquoted_string; + + /* could speed this up a lot by appending chunks of text at a + * time. + */ + while (*p) + { + /* Replace literal ' with a close ', a \', and a open ' */ + if (*p == '\'') + g_string_append (dest, "'\\''"); + else + g_string_append_c (dest, *p); + ++p; + } + /* close the quote */ + g_string_append_c (dest, '\''); + + p = dest->str; + g_string_free (dest, FALSE); + return p; +} +#endif + void open_url(GtkWidget *w, char *url) { @@ -584,7 +636,7 @@ if (pid == 0) { char *args[4]; char command[1024]; - + if (web_browser == BROWSER_OPERA) { args[0] = "opera"; args[1] = "-newwindow"; @@ -610,7 +662,9 @@ args[1] = url; args[2] = NULL; } else if (web_browser == BROWSER_MANUAL) { - g_snprintf(command, sizeof(command), web_command, url); + char *quoted = g_shell_quote(command); + g_snprintf(command, sizeof(command), web_command, quoted); + g_free(quoted); args[0] = "sh"; args[1] = "-c"; args[2] = command; Index: gaimrc.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gaimrc.c,v retrieving revision 1.98 retrieving revision 1.99 diff -u -d -r1.98 -r1.99 --- gaimrc.c 11 Aug 2002 06:42:16 -0000 1.98 +++ gaimrc.c 11 Aug 2002 09:03:32 -0000 1.99 @@ -829,9 +829,7 @@ away_resend = 120; if (misc_options & OPT_MISC_BUDDY_TICKER) { - char *tickerplugin = g_build_filename(LIBDIR, "ticker.so", NULL); - load_plugin(tickerplugin); - g_free(tickerplugin); + load_plugin(LIBDIR "/ticker.so"); misc_options &= ~OPT_MISC_BUDDY_TICKER; } } |
From: Sean E. <sea...@us...> - 2002-08-11 06:43:26
|
Update of /cvsroot/gaim/gaim/plugins In directory usw-pr-cvs1:/tmp/cvs-serv5512/plugins Modified Files: notify.c Log Message: Another notify.c fix from deryni. Index: notify.c =================================================================== RCS file: /cvsroot/gaim/gaim/plugins/notify.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- notify.c 8 Aug 2002 15:31:08 -0000 1.10 +++ notify.c 11 Aug 2002 06:43:23 -0000 1.11 @@ -1,8 +1,15 @@ -/* Reworked by Etan Reisner +/* Rewritten by Etan Reisner <de...@ed...> * * Added config dialog * Added control over notification method * Added control over when to release notification + * + * Thanks to Carles Pina i Estany <ca...@pi...> + * for count of new messages option + */ + +/* if my flash messages patch gets merged in can use cnv->local + * to notify on new messages also */ #define GAIM_PLUGINS @@ -12,29 +19,37 @@ #include <string.h> #include <X11/Xlib.h> #include <X11/Xutil.h> -#include <X11/Xatom.h> +#include <X11/Xatom.h> #include <gdk/gdkx.h> -guint choice; -#define REMOVE_FOCUS 0x00000001 -#define REMOVE_TYPE 0x00000002 +guint choice = 1; +#define NOTIFY_FOCUS 0x00000001 +#define NOTIFY_TYPE 0x00000002 +#define NOTIFY_IN_FOCUS 0x00000004 -guint method; -#define METHOD_STRING 0x00000001 -#define METHOD_QUOTE 0x00000002 -#define METHOD_URGENT 0x00000004 +guint method = 1; +#define METHOD_STRING 0x00000001 +#define METHOD_QUOTE 0x00000002 +#define METHOD_URGENT 0x00000004 +#define METHOD_COUNT 0x00000008 void *handle; +/* I really don't like this but I was having trouble getting any + * other way of removing the signal callbacks to work and not crash gaim + */ +GtkWidget *really_evil_hack; +/* GHashTable *hash = NULL; */ GtkWidget *Dialog = NULL; -GtkWidget *Click, *Focus, *Type; -GtkWidget *String, *Quote, *Urgent, *Entry; -gchar *title_string; +GtkWidget *Click, *Focus, *Type, *InFocus; +GtkWidget *String, *Count, *Quote, *Urgent, *Entry; +gchar *title_string = "(*) "; /* predefine some functions, less warnings */ void options(GtkWidget *widget, gpointer data); void un_star(GtkWidget *widget, gpointer data); void un_star_window(GtkWidget *widget, gpointer data); void string_remove(GtkWidget *widget); +void count_remove(GtkWidget *widget); void quote_remove(GtkWidget *widget); void urgent_remove(struct conversation *c); @@ -45,6 +60,7 @@ char *me = g_strdup(normalize(gc->username)); int revert_to_return; Window focus_return; + int c, length; if (!strcmp(me, normalize(*who))) { g_free(me); @@ -64,23 +80,36 @@ XGetInputFocus(GDK_WINDOW_XDISPLAY(cnv->window->window), &focus_return, &revert_to_return); - if (focus_return != GDK_WINDOW_XWINDOW(cnv->window->window)) { + if ((choice & NOTIFY_IN_FOCUS) || focus_return != GDK_WINDOW_XWINDOW(cnv->window->window)) { if (method & METHOD_STRING) { - g_snprintf(buf, sizeof(buf), "%s", win->title); + strncpy(buf, win->title, sizeof(buf)); if (!strstr(buf, title_string)) { - g_snprintf(buf, sizeof(buf), "%s %s", title_string, win->title); + g_snprintf(buf, sizeof(buf), "%s%s", title_string, win->title); gtk_window_set_title(win, buf); } } + if (method & METHOD_COUNT) { + strncpy(buf, win->title, sizeof(buf)); + c = counter(buf, &length); + if (!c) { + g_snprintf(buf, sizeof(buf), "[1] %s", win->title); + } + else if (!g_strncasecmp(buf, "[", 1)) { + g_snprintf(buf, sizeof(buf), "[%d] %s", c+1, &win->title[3+length]); + } + gtk_window_set_title(win, buf); + } if (method & METHOD_QUOTE) { - g_snprintf(buf, sizeof(buf), "%s", win->title); + strncpy(buf, win->title, sizeof(buf)); if (g_strncasecmp(buf, "\"", 1)) { g_snprintf(buf, sizeof(buf), "\"%s\"", win->title); gtk_window_set_title(win, buf); } } if (method & METHOD_URGENT) { - /* do it the gdk way for windows compatibility(?) if I can figure it out */ + /* do it the gdk way for windows compatibility(?) if I can figure it out */ + /* Sean says this is a bad thing, and I should try using gtk_property_get first */ + /* I'll want to pay attention to note on dev.gnome.org though */ /* gdk_property_change(win->window, WM_HINTS, WM_HINTS, 32, GDK_PROP_MODE_REPLACE, XUrgencyHint, 1); */ XWMHints *hints = XGetWMHints(GDK_WINDOW_XDISPLAY(cnv->window->window), GDK_WINDOW_XWINDOW(cnv->window->window)); hints->flags |= XUrgencyHint; @@ -96,9 +125,11 @@ struct conversation *c = find_conversation(who); if (method & METHOD_QUOTE) - string_remove(c->window); - if (method & METHOD_STRING) quote_remove(c->window); + if (method & METHOD_COUNT) + count_remove(c->window); + if (method & METHOD_STRING) + string_remove(c->window); if (method & METHOD_URGENT) urgent_remove(c); return 0; @@ -107,34 +138,34 @@ int new_conv(char *who) { struct conversation *c = find_conversation(who); - if (choice & REMOVE_FOCUS) { - gtk_signal_connect(GTK_OBJECT(c->window), "focus-in-event", GTK_SIGNAL_FUNC(un_star), NULL); +/* g_hash_table_insert(hash, who, GINT_TO_POINTER(choice)); */ + + if (choice & NOTIFY_FOCUS) { + gtk_signal_connect_while_alive(GTK_OBJECT(c->window), "focus-in-event", GTK_SIGNAL_FUNC(un_star), NULL, GTK_OBJECT(really_evil_hack)); gtk_object_set_user_data(GTK_OBJECT(c->window), c); } else { - gtk_signal_connect(GTK_OBJECT(c->window), "button_press_event", GTK_SIGNAL_FUNC(un_star), NULL); + gtk_signal_connect_while_alive(GTK_OBJECT(c->window), "button_press_event", GTK_SIGNAL_FUNC(un_star), NULL, GTK_OBJECT(really_evil_hack)); gtk_object_set_user_data(GTK_OBJECT(c->window), c); - gtk_signal_connect(GTK_OBJECT(c->text), "button_press_event", GTK_SIGNAL_FUNC(un_star_window), NULL); + gtk_signal_connect_while_alive(GTK_OBJECT(c->text), "button_press_event", GTK_SIGNAL_FUNC(un_star_window), NULL, GTK_OBJECT(really_evil_hack)); gtk_object_set_user_data(GTK_OBJECT(c->text), c); - gtk_signal_connect(GTK_OBJECT(c->entry), "button_press_event", GTK_SIGNAL_FUNC(un_star_window), NULL); + gtk_signal_connect_while_alive(GTK_OBJECT(c->entry), "button_press_event", GTK_SIGNAL_FUNC(un_star_window), NULL, GTK_OBJECT(really_evil_hack)); gtk_object_set_user_data(GTK_OBJECT(c->entry), c); -/* gtk_signal_connect(GTK_OBJECT(c->text), "button_press_event", GTK_SIGNAL_FUNC(un_star_window), c); */ -/* gtk_signal_connect(GTK_OBJECT(c->entry), "button_press_event", GTK_SIGNAL_FUNC(un_star_window), c); */ } - if (choice & REMOVE_TYPE) { - gtk_signal_connect(GTK_OBJECT(c->entry), "key-press-event", GTK_SIGNAL_FUNC(un_star_window), NULL); + if (choice & NOTIFY_TYPE) { + gtk_signal_connect_while_alive(GTK_OBJECT(c->entry), "key-press-event", GTK_SIGNAL_FUNC(un_star_window), NULL, GTK_OBJECT(really_evil_hack)); gtk_object_set_user_data(GTK_OBJECT(c->entry), (gpointer) c); -/* gtk_signal_connect(GTK_OBJECT(c->entry), "key-press-event", GTK_SIGNAL_FUNC(un_star_window), c); */ } } void un_star(GtkWidget *widget, gpointer data) { struct conversation *c = gtk_object_get_user_data(GTK_OBJECT(widget)); -/* struct conversation *c = data; */ if (method & METHOD_QUOTE) quote_remove(widget); + if (method & METHOD_COUNT) + count_remove(widget); if (method & METHOD_STRING) string_remove(widget); if (method & METHOD_URGENT) @@ -148,11 +179,35 @@ un_star(parent, data); } +/* This function returns the number in [ ]'s or 0 */ +int counter (char *buf, int *length) { + char temp[256]; + int i = 1; + *length = 0; + +/* if (buf[0] != '[') */ +/* return (0); */ + + while (isdigit(buf[i]) && i<sizeof(buf)) { + temp[i-1] = buf[i]; + (*length)++; + i++; + } + temp[i] = '\0'; + + if (buf[i] != ']') { + *length = 0; + return (0); + } + + return (atoi(temp)); +} + void string_remove(GtkWidget *widget) { char buf[256]; GtkWindow *win = GTK_WINDOW(widget); - g_snprintf(buf, sizeof(buf), "%s", win->title); + strncpy(buf, win->title, sizeof(buf)); if (strstr(buf, title_string)) { g_snprintf(buf, sizeof(buf), "%s", &win->title[strlen(title_string)]); gtk_window_set_title(win, buf); @@ -160,11 +215,25 @@ return; } +void count_remove(GtkWidget *widget) { + char buf[256]; + GtkWindow *win = GTK_WINDOW(widget); + int length; + + strncpy(buf, win->title, sizeof(buf)); + if (!g_strncasecmp(buf, "[", 1)) { + counter(buf, &length); + g_snprintf(buf, sizeof(buf), "%s", &win->title[3+length]); + gtk_window_set_title(win, buf); + } + return; +} + void quote_remove(GtkWidget *widget) { char buf[256]; GtkWindow *win = GTK_WINDOW(widget); - g_snprintf(buf, sizeof(buf), "%s", win->title); + strncpy(buf, win->title, sizeof(buf)); if (!g_strncasecmp(buf, "\"", 1)) { g_snprintf(buf, strlen(buf) - 1, "%s", &win->title[1]); gtk_window_set_title(win, buf); @@ -183,20 +252,18 @@ } void save_notify_prefs() { - char *buf; + gchar buf[1000]; FILE *fp; - buf = malloc(1000); snprintf(buf, 1000, "%s/.gaim/.notify", getenv("HOME")); if (!(fp = fopen(buf, "w"))) { do_error_dialog(_("Unable to write to config file"), _("Notify plugin")); return; } - free(buf); - fprintf(fp, "CHOICE=%d\n", choice); - fprintf(fp, "METHOD=%d\n", method); - fprintf(fp, "STRING=%s\n", title_string); + fprintf(fp, "%d=CHOICE\n", choice); + fprintf(fp, "%d=METHOD\n", method); + fprintf(fp, "%s=STRING\n", title_string); fclose(fp); } @@ -212,13 +279,15 @@ while (fgets(buf, 1000, fp) != NULL) { parsed = g_strsplit(g_strchomp(buf), "=", 2); if (parsed[0] && parsed[1]) { - if (!strcmp(parsed[0], "CHOICE")) - choice = atoi(parsed[1]); - if (!strcmp(parsed[0], "METHOD")) - method = atoi(parsed[1]); - if (!strcmp(parsed[0], "STRING")) - title_string = parsed[1]; + if (!strcmp(parsed[1], "CHOICE")) + choice = atoi(parsed[0]); + if (!strcmp(parsed[1], "METHOD")) + method = atoi(parsed[0]); + if (!strcmp(parsed[1], "STRING")) + if (title_string != NULL) g_free(title_string); + title_string = g_strdup(parsed[0]); } + g_strfreev(parsed); } fclose(fp); return; @@ -228,9 +297,9 @@ gint option = GPOINTER_TO_INT(data); if (option == 0) - choice ^= REMOVE_FOCUS; + choice ^= NOTIFY_FOCUS; else if (option == 1) - choice ^= REMOVE_TYPE; + choice ^= NOTIFY_TYPE; else if (option == 2) { method ^= METHOD_STRING; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) @@ -242,14 +311,18 @@ method ^= METHOD_QUOTE; else if (option == 4) method ^= METHOD_URGENT; + else if (option == 5) + choice ^= NOTIFY_IN_FOCUS; + else if (option == 6) + method ^= METHOD_COUNT; } void setup_buttons() { - if (choice & REMOVE_FOCUS) + if (choice & NOTIFY_FOCUS) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Focus), TRUE); else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Click), TRUE); - if (choice & REMOVE_TYPE) + if (choice & NOTIFY_TYPE) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Type), TRUE); else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Type), FALSE); @@ -265,6 +338,12 @@ if (method & METHOD_URGENT) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Urgent), TRUE); + if (choice & NOTIFY_IN_FOCUS) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(InFocus), TRUE); + + if (method & METHOD_COUNT) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Count), TRUE); + return; } @@ -286,6 +365,9 @@ char *gaim_plugin_init(GModule *hndl) { handle = hndl; + really_evil_hack = gtk_label_new(""); +/* hash = g_hash_table_new(g_str_hash, g_int_equal); */ + load_notify_prefs(); gaim_signal_connect(handle, event_im_recv, received_im, NULL); @@ -295,6 +377,30 @@ return NULL; } +void gaim_plugin_remove() { + GList *c = conversations; + guint options; + + gtk_widget_destroy(really_evil_hack); + + while (c) { + struct conversation *cnv = (struct conversation *)c->data; +/* if (options = GPOINTER_TO_INT(g_hash_table_lookup(hash, cnv->name))) { */ + un_star(cnv->window, NULL); +/* if (options & REMOVE_FOCUS) */ +/* gtk_signal_disconnect_by_func(GTK_OBJECT(cnv->window), GTK_SIGNAL_FUNC(un_star), NULL); */ +/* else { */ +/* gtk_signal_disconnect_by_func(GTK_OBJECT(cnv->window), GTK_SIGNAL_FUNC(un_star), NULL); */ +/* gtk_signal_disconnect_by_func(GTK_OBJECT(cnv->text), GTK_SIGNAL_FUNC(un_star_window), NULL); */ +/* gtk_signal_disconnect_by_func(GTK_OBJECT(cnv->entry), GTK_SIGNAL_FUNC(un_star_window), NULL); */ +/* } */ +/* if (options & REMOVE_TYPE) */ +/* gtk_signal_disconnect_by_func(GTK_OBJECT(cnv->entry), GTK_SIGNAL_FUNC(un_star_window), NULL); */ +/* } */ + c = c->next; + } +} + char *name() { return "Visual Notification"; } @@ -307,14 +413,13 @@ void gaim_plugin_config() { GtkWidget *dialog_vbox; GtkWidget *button, *label; - GtkWidget *box, *box2, *box3, *frame; + GtkWidget *box, *box2, *box3, *box4, *frame; if (Dialog) return; /* main config dialog */ Dialog = gtk_dialog_new(); -/* gtk_widget_set_usize(Dialog, 275, -1); */ gtk_window_set_title(GTK_WINDOW(Dialog), "Notify plugin configuration"); gtk_window_set_policy(GTK_WINDOW(Dialog), FALSE, FALSE, TRUE); gtk_signal_connect(GTK_OBJECT(Dialog), "destroy", GTK_SIGNAL_FUNC(close_dialog), GINT_TO_POINTER(-1)); @@ -335,13 +440,20 @@ gtk_widget_set_usize(button, 80, -2); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(close_dialog), GINT_TO_POINTER(1)); + /* warning label */ + label = gtk_label_new(_("Changes in notification removal options take effect only on new conversation windows")); + gtk_box_pack_start(GTK_BOX(dialog_vbox), label, FALSE, FALSE, 1); + /* main hbox */ box = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(dialog_vbox), box, FALSE, FALSE, 0); + box4 = gtk_vbox_new(FALSE, 0); + gtk_box_pack_start(GTK_BOX(box), box4, FALSE, FALSE, 0); + /* un-notify choices */ frame = gtk_frame_new(_("Remove notification when:")); - gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(box4), frame, FALSE, FALSE, 0); box2 = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(frame), box2); @@ -371,10 +483,7 @@ Entry = gtk_entry_new_with_max_length(7); gtk_box_pack_start(GTK_BOX(box3), Entry, FALSE, FALSE, 0); - if (!title_string) - gtk_entry_set_text(GTK_ENTRY(Entry), "(*) "); - else - gtk_entry_set_text(GTK_ENTRY(Entry), title_string); + gtk_entry_set_text(GTK_ENTRY(Entry), title_string); Quote = gtk_check_button_new_with_label(_("Quote window title.")); gtk_box_pack_start(GTK_BOX(box2), Quote, FALSE, FALSE, 0); @@ -382,6 +491,22 @@ Urgent = gtk_check_button_new_with_label(_("Send URGENT to window manager.")); gtk_box_pack_start(GTK_BOX(box2), Urgent, FALSE, FALSE, 0); + label = gtk_label_new(_("Function oddly with tabs:")); + gtk_box_pack_start(GTK_BOX(box2), label, FALSE, FALSE, 0); + + Count = gtk_check_button_new_with_label(_("Insert count of new messages into window title")); + gtk_box_pack_start(GTK_BOX(box2), Count, FALSE, FALSE, 0); + + /* general options */ + frame = gtk_frame_new(_("General Options")); + gtk_box_pack_start(GTK_BOX(box4), frame, FALSE, FALSE, 0); + + box = gtk_vbox_new(FALSE, 0); + gtk_container_add(GTK_CONTAINER(frame), box); + + InFocus = gtk_check_button_new_with_label(_("Notify even when window is in focus")); + gtk_box_pack_start(GTK_BOX(box), InFocus, FALSE, FALSE, 0); + /* setup buttons, then attach signals */ setup_buttons(); gtk_signal_connect(GTK_OBJECT(Focus), "toggled", GTK_SIGNAL_FUNC(options), GINT_TO_POINTER(0)); @@ -389,6 +514,8 @@ gtk_signal_connect(GTK_OBJECT(String), "toggled", GTK_SIGNAL_FUNC(options), GINT_TO_POINTER(2)); gtk_signal_connect(GTK_OBJECT(Quote), "toggled", GTK_SIGNAL_FUNC(options), GINT_TO_POINTER(3)); gtk_signal_connect(GTK_OBJECT(Urgent), "toggled", GTK_SIGNAL_FUNC(options), GINT_TO_POINTER(4)); + gtk_signal_connect(GTK_OBJECT(InFocus), "toggled", GTK_SIGNAL_FUNC(options), GINT_TO_POINTER(5)); + gtk_signal_connect(GTK_OBJECT(Count), "toggled", GTK_SIGNAL_FUNC(options), GINT_TO_POINTER(6)); gtk_widget_show_all(Dialog); } |
From: Sean E. <sea...@us...> - 2002-08-11 06:42:19
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv5184/src Modified Files: Makefile.am aim.c buddy.c gaim.h gaimrc.c multi.c prefs.c ui.h Log Message: Pluginzed the ticker. the ticker will load itself if the old ticker option was set. Index: Makefile.am =================================================================== RCS file: /cvsroot/gaim/gaim/src/Makefile.am,v retrieving revision 1.45 retrieving revision 1.46 diff -u -d -r1.45 -r1.46 --- Makefile.am 2 Aug 2002 04:48:04 -0000 1.45 +++ Makefile.am 11 Aug 2002 06:42:16 -0000 1.46 @@ -15,7 +15,6 @@ gaimrc.c \ gtkimhtml.c \ gtkspell.c \ - gtkticker.c \ html.c \ idle.c \ list.c \ @@ -29,7 +28,6 @@ prpl.c \ server.c \ sound.c \ - ticker.c \ util.c gaim_applet_DEPENDENCIES = @LIBOBJS@ $(STATIC_LINK_LIBS) gaim_applet_LDFLAGS = -export-dynamic @@ -49,7 +47,6 @@ gaimrc.c \ gtkimhtml.c \ gtkspell.c \ - gtkticker.c \ html.c \ idle.c \ list.c \ @@ -63,7 +60,6 @@ prpl.c \ server.c \ sound.c \ - ticker.c \ util.c gaim_DEPENDENCIES = @LIBOBJS@ $(STATIC_LINK_LIBS) gaim_LDFLAGS = -export-dynamic @@ -84,7 +80,6 @@ getopt1.c \ gtkimhtml.h \ gtkspell.h \ - gtkticker.h \ md5.h \ multi.h \ prpl.h \ Index: aim.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/aim.c,v retrieving revision 1.182 retrieving revision 1.183 diff -u -d -r1.182 -r1.183 --- aim.c 2 Aug 2002 04:28:32 -0000 1.182 +++ aim.c 11 Aug 2002 06:42:16 -0000 1.183 @@ -57,7 +57,6 @@ #include <signal.h> #endif #include "locale.h" -#include "gtkticker.h" #include "gtkspell.h" #ifndef USE_APPLET #include <getopt.h> @@ -82,8 +81,6 @@ char *opt_away_arg = NULL; char *opt_rcfile_arg = NULL; int opt_debug = 0; - -void BuddyTickerCreateWindow(void); #if HAVE_SIGNAL_H /* Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v retrieving revision 1.319 retrieving revision 1.320 diff -u -d -r1.319 -r1.320 --- buddy.c 5 Aug 2002 07:33:08 -0000 1.319 +++ buddy.c 11 Aug 2002 06:42:16 -0000 1.320 @@ -94,9 +94,6 @@ GtkWidget *bpmenu; GtkWidget *buddies; -void BuddyTickerLogonTimeout(gpointer data); -void BuddyTickerLogoutTimeout(gpointer data); - typedef struct _GtkTreePixmaps GtkTreePixmaps; @@ -303,8 +300,6 @@ } update_num_group(gs); } else { - if (misc_options & OPT_MISC_BUDDY_TICKER) - BuddyTickerSetAlias(b->name, b->show); gtk_label_set_text(GTK_LABEL(bs->label), b->show); update_idle_time(bs); } @@ -589,19 +584,6 @@ show_log(NULL); } -void pressed_ticker(char *buddy) -{ - struct conversation *c; - - c = find_conversation(buddy); - - if (c != NULL) { - gdk_window_show(c->window->window); - } else { - c = new_conversation(buddy); - } -} - void pressed_alias_bs(GtkWidget *widget, struct buddy_show *bs) { alias_dialog_bud(find_buddy(bs->connlist->data, bs->name)); @@ -2110,8 +2092,6 @@ gtk_widget_show(b->pix); if (!(blist_options & OPT_BLIST_SHOW_PIXMAPS)) gtk_widget_hide(b->pix); - if (misc_options & OPT_MISC_BUDDY_TICKER) - BuddyTickerSetPixmap(b->name, pm, bm); gdk_pixmap_unref(pm); gdk_bitmap_unref(bm); gtk_timeout_remove(b->log_timer); @@ -2346,10 +2326,6 @@ gtk_widget_hide(bs->pix); gtk_pixmap_set(GTK_PIXMAP(bs->pix), pm, bm); gtk_widget_show(bs->pix); - if (misc_options & OPT_MISC_BUDDY_TICKER) { - BuddyTickerAddUser(b->name, b->show, pm, bm); - gtk_timeout_add(10000, (GtkFunction)BuddyTickerLogonTimeout, b->name); - } gdk_pixmap_unref(pm); gdk_bitmap_unref(bm); b->present = 2; @@ -2385,8 +2361,6 @@ gtk_widget_show(bs->pix); if (!(blist_options & OPT_BLIST_SHOW_PIXMAPS)) gtk_widget_hide(bs->pix); - if (misc_options & OPT_MISC_BUDDY_TICKER) - BuddyTickerSetPixmap(b->name, pm, bm); gdk_pixmap_unref(pm); gdk_bitmap_unref(bm); } @@ -2415,10 +2389,6 @@ gtk_widget_hide(bs->pix); gtk_pixmap_set(GTK_PIXMAP(bs->pix), pm, bm); gtk_widget_show(bs->pix); - if (misc_options & OPT_MISC_BUDDY_TICKER) { - BuddyTickerSetPixmap(b->name, pm, bm); - gtk_timeout_add(10000, (GtkFunction)BuddyTickerLogoutTimeout, b->name); - } gdk_pixmap_unref(pm); gdk_bitmap_unref(bm); if ((bs->sound != 1) && (im_options & OPT_IM_LOGON)) { Index: gaim.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/gaim.h,v retrieving revision 1.329 retrieving revision 1.330 diff -u -d -r1.329 -r1.330 --- gaim.h 2 Aug 2002 05:19:52 -0000 1.329 +++ gaim.h 11 Aug 2002 06:42:16 -0000 1.330 @@ -179,7 +179,7 @@ extern guint misc_options; #define OPT_MISC_DEBUG 0x00000001 #define OPT_MISC_BROWSER_POPUP 0x00000002 -#define OPT_MISC_BUDDY_TICKER 0x00000004 +#define OPT_MISC_BUDDY_TICKER 0x00000004 #define OPT_MISC_COOL_LOOK 0x00000008 #define OPT_MISC_STEALTH_TYPING 0x00000010 Index: gaimrc.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gaimrc.c,v retrieving revision 1.97 retrieving revision 1.98 diff -u -d -r1.97 -r1.98 --- gaimrc.c 2 Aug 2002 04:52:48 -0000 1.97 +++ gaimrc.c 11 Aug 2002 06:42:16 -0000 1.98 @@ -683,7 +683,6 @@ { /* OPT_DISP_IGNORE_COLOUR */ 0x00000020, &convo_options, OPT_CONVO_IGNORE_COLOUR }, { /* OPT_DISP_SHOW_LOGON */ 0x00000040, &im_options, OPT_IM_LOGON }, { /* OPT_DISP_SHOW_SMILEY */ 0x00000100, &convo_options, OPT_CONVO_SHOW_SMILEY }, -{ /* OPT_DISP_SHOW_BUDDYTICKER */ 0x00000200, &misc_options, OPT_MISC_BUDDY_TICKER }, { /* OPT_DISP_COOL_LOOK */ 0x00000400, &misc_options, OPT_MISC_COOL_LOOK }, { /* OPT_DISP_CHAT_LOGON */ 0x00000800, &chat_options, OPT_CHAT_LOGON }, { /* OPT_DISP_NO_BUTTONS */ 0x00002000, &blist_options, OPT_BLIST_NO_BUTTONS }, @@ -828,6 +827,13 @@ if (!away_resend) away_resend = 120; + + if (misc_options & OPT_MISC_BUDDY_TICKER) { + char *tickerplugin = g_build_filename(LIBDIR, "ticker.so", NULL); + load_plugin(tickerplugin); + g_free(tickerplugin); + misc_options &= ~OPT_MISC_BUDDY_TICKER; + } } static void gaimrc_write_options(FILE *f) Index: multi.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/multi.c,v retrieving revision 1.121 retrieving revision 1.122 diff -u -d -r1.121 -r1.122 --- multi.c 7 Aug 2002 23:25:33 -0000 1.121 +++ multi.c 11 Aug 2002 06:42:16 -0000 1.122 @@ -1482,8 +1482,6 @@ #else show_login(); #endif /* USE_APPLET */ - if (misc_options & OPT_MISC_BUDDY_TICKER) - BuddyTickerSignoff(); } struct aim_user *new_user(const char *name, int proto, int opts) Index: prefs.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/prefs.c,v retrieving revision 1.233 retrieving revision 1.234 diff -u -d -r1.233 -r1.234 --- prefs.c 8 Aug 2002 16:12:05 -0000 1.233 +++ prefs.c 11 Aug 2002 06:42:16 -0000 1.234 @@ -151,8 +151,6 @@ static void set_sound_options(); static void set_away_options(); -extern void BuddyTickerShow(); - #define PROXYHOST 0 #define PROXYPORT 1 #define PROXYTYPE 2 @@ -276,7 +274,6 @@ /* These shouldn't have to wait for user to click OK or APPLY or whatnot */ /* They really shouldn't be in preferences at all */ - gaim_button(_("Show Buddy Ticker"), &misc_options, OPT_MISC_BUDDY_TICKER, vbox); debugbutton = gaim_button(_("Show Debug Window"), &misc_options, OPT_MISC_DEBUG, vbox); gtk_widget_show (vbox); @@ -1967,9 +1964,6 @@ if (option == OPT_MISC_DEBUG) show_debug(); - if (option == OPT_MISC_BUDDY_TICKER) - BuddyTickerShow(); - save_prefs(); } @@ -2119,9 +2113,9 @@ gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0); gtk_object_set_user_data(GTK_OBJECT(button), options); - /* So that the ticker and debug window happen immediately - * I don't think they should be "preferences," anyway. */ - if (options == &misc_options && (option == OPT_MISC_DEBUG || option == OPT_MISC_BUDDY_TICKER)) + /* So that the debug window happens immediately + * I don't think it should be "preferences," anyway. */ + if (options == &misc_options && option == OPT_MISC_DEBUG) gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_misc_option), (int *)option); else Index: ui.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/ui.h,v retrieving revision 1.45 retrieving revision 1.46 diff -u -d -r1.45 -r1.46 --- ui.h 6 Aug 2002 03:02:18 -0000 1.45 +++ ui.h 11 Aug 2002 06:42:17 -0000 1.46 @@ -517,13 +517,4 @@ extern void play_sound(int); extern void play_file(char *); -/* Fucntions in ticker.c */ -void SetTickerPrefs(); -void BuddyTickerSignOff(); -void BuddyTickerAddUser(char *, char *, GdkPixmap *, GdkBitmap *); -void BuddyTickerSetPixmap(char *, GdkPixmap *, GdkBitmap *); -void BuddyTickerSetAlias(char *, char *); -void BuddyTickerSetNames(); -void BuddyTickerSignoff(); - #endif /* _UI_H_ */ |
From: Sean E. <sea...@us...> - 2002-08-11 06:42:19
|
Update of /cvsroot/gaim/gaim/plugins In directory usw-pr-cvs1:/tmp/cvs-serv5184/plugins Modified Files: Makefile.am Log Message: Pluginzed the ticker. the ticker will load itself if the old ticker option was set. Index: Makefile.am =================================================================== RCS file: /cvsroot/gaim/gaim/plugins/Makefile.am,v retrieving revision 1.59 retrieving revision 1.60 diff -u -d -r1.59 -r1.60 --- Makefile.am 9 Jul 2002 16:19:17 -0000 1.59 +++ Makefile.am 11 Aug 2002 06:42:16 -0000 1.60 @@ -1,3 +1,5 @@ +SUBDIRS = ticker + CFLAGS += -I\$(top_srcdir) -I\$(top_srcdir)/src -DVERSION=\"$(VERSION)\" SUFFIXES = .c .so .c.so: |
From: Sean E. <sea...@us...> - 2002-08-11 06:42:19
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv5184 Modified Files: ChangeLog configure.ac configure.in Log Message: Pluginzed the ticker. the ticker will load itself if the old ticker option was set. Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.520 retrieving revision 1.521 diff -u -d -r1.520 -r1.521 --- ChangeLog 8 Aug 2002 18:11:15 -0000 1.520 +++ ChangeLog 11 Aug 2002 06:42:16 -0000 1.521 @@ -33,6 +33,7 @@ * TOC no longer compiles statically by default--use OSCAR * ICQ plugin no longer gets built--use OSCAR * Added support for gettext 0.11.x. + * Buddy Ticker made a plugin. version 0.59 (06/24/2002): * Hungarian translation added (Thanks, Sutto Zoltan) Index: configure.ac =================================================================== RCS file: /cvsroot/gaim/gaim/configure.ac,v retrieving revision 1.74 retrieving revision 1.75 diff -u -d -r1.74 -r1.75 --- configure.ac 7 Aug 2002 23:29:09 -0000 1.74 +++ configure.ac 11 Aug 2002 06:42:16 -0000 1.75 @@ -432,6 +432,7 @@ pixmaps/protocols/msn/Makefile pixmaps/protocols/yahoo/Makefile plugins/Makefile + plugins/ticker/Makefile po/Makefile.in sounds/Makefile src/Makefile Index: configure.in =================================================================== RCS file: /cvsroot/gaim/gaim/configure.in,v retrieving revision 1.121 retrieving revision 1.122 diff -u -d -r1.121 -r1.122 --- configure.in 7 Aug 2002 23:29:09 -0000 1.121 +++ configure.in 11 Aug 2002 06:42:16 -0000 1.122 @@ -429,6 +429,7 @@ pixmaps/protocols/msn/Makefile pixmaps/protocols/yahoo/Makefile plugins/Makefile + plugins/Makefile po/Makefile.in sounds/Makefile src/Makefile |
From: Sean E. <sea...@us...> - 2002-08-11 06:42:19
|
Update of /cvsroot/gaim/gaim/plugins/ticker In directory usw-pr-cvs1:/tmp/cvs-serv5184/plugins/ticker Added Files: .cvsignore Makefile.am gtkticker.c gtkticker.h ticker.c Log Message: Pluginzed the ticker. the ticker will load itself if the old ticker option was set. --- NEW FILE: .cvsignore --- Makefile Makefile.in .libs --- NEW FILE: Makefile.am --- CFLAGS += -I\$(top_srcdir) -I\$(top_srcdir)/src -DVERSION=\"$(VERSION)\" plugindir = $(libdir)/gaim if PLUGINS tickersources = ticker.c gtkticker.so all: $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c gtkticker.c -o tmpgtkticker.lo $(PLUGIN_CFLAGS) $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c ticker.c -o tmpticker.lo $(PLUGIN_CFLAGS) $(LIBTOOL) --mode=link $(CC) $(CFLAGS) -o libtmpticker.la -rpath $(plugindir) tmpgtkticker.lo tmpticker.lo $(LIBS) $(LDFLAGS) -module -avoid-version $(PLUGIN_LIBS) @rm -f tmpticker.lo tmpgtkticker.lo tmpticker.o tmpgtkticker.o libtmpgtkticker.la libticker.la @cp .libs/libtmpticker.so* ticker.so @rm -f .libs/libtmpticker.* clean distclean: rm -rf $(plugin_DATA) .libs install: cp ticker.so $(plugindir) endif EXTRA_DIST = ticker.c gtkticker.c gtkticker.h --- NEW FILE: gtkticker.c --- /* GTK - The GIMP Toolkit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * GtkTicker Copyright 2000 Syd Logan */ #include "gtkticker.h" #include <gtk/gtk.h> static void gtk_ticker_compute_offsets (GtkTicker *ticker); static void gtk_ticker_class_init (GtkTickerClass *klass); static void gtk_ticker_init (GtkTicker *ticker); static void gtk_ticker_map (GtkWidget *widget); static void gtk_ticker_realize (GtkWidget *widget); static void gtk_ticker_size_request (GtkWidget *widget, GtkRequisition *requisition); static void gtk_ticker_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static void gtk_ticker_paint (GtkWidget *widget, GdkRectangle *area); static void gtk_ticker_draw (GtkWidget *widget, GdkRectangle *area); static gint gtk_ticker_expose (GtkWidget *widget, GdkEventExpose *event); static void gtk_ticker_add_real (GtkContainer *container, GtkWidget *widget); static void gtk_ticker_remove_real (GtkContainer *container, GtkWidget *widget); static void gtk_ticker_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data); static GtkType gtk_ticker_child_type (GtkContainer *container); static GtkContainerClass *parent_class = NULL; GtkType gtk_ticker_get_type (void) { static GtkType ticker_type = 0; if (!ticker_type) { static const GtkTypeInfo ticker_info = { "GtkTicker", sizeof (GtkTicker), sizeof (GtkTickerClass), (GtkClassInitFunc) gtk_ticker_class_init, (GtkObjectInitFunc) gtk_ticker_init, /* reserved_1 */ NULL, /* reserved_2 */ NULL, (GtkClassInitFunc) NULL, }; ticker_type = gtk_type_unique (GTK_TYPE_CONTAINER, &ticker_info); } return ticker_type; } static void gtk_ticker_class_init (GtkTickerClass *class) { GtkObjectClass *object_class; GtkWidgetClass *widget_class; GtkContainerClass *container_class; object_class = (GtkObjectClass*) class; widget_class = (GtkWidgetClass*) class; container_class = (GtkContainerClass*) class; parent_class = gtk_type_class (GTK_TYPE_CONTAINER); widget_class->map = gtk_ticker_map; widget_class->realize = gtk_ticker_realize; widget_class->size_request = gtk_ticker_size_request; widget_class->size_allocate = gtk_ticker_size_allocate; #if ! GTK_CHECK_VERSION(1,3,0) widget_class->draw = gtk_ticker_draw; #endif widget_class->expose_event = gtk_ticker_expose; container_class->add = gtk_ticker_add_real; container_class->remove = gtk_ticker_remove_real; container_class->forall = gtk_ticker_forall; container_class->child_type = gtk_ticker_child_type; } static GtkType gtk_ticker_child_type (GtkContainer *container) { return GTK_TYPE_WIDGET; } static void gtk_ticker_init (GtkTicker *ticker) { GTK_WIDGET_UNSET_FLAGS (ticker, GTK_NO_WINDOW); ticker->interval = (guint) 200; ticker->scootch = (guint) 2; ticker->children = NULL; ticker->timer = 0; ticker->dirty = TRUE; } GtkWidget* gtk_ticker_new (void) { GtkTicker *ticker; ticker = gtk_type_new (GTK_TYPE_TICKER); return GTK_WIDGET (ticker); } static void gtk_ticker_put (GtkTicker *ticker, GtkWidget *widget) { GtkTickerChild *child_info; g_return_if_fail (ticker != NULL); g_return_if_fail (GTK_IS_TICKER (ticker)); g_return_if_fail (widget != NULL); child_info = g_new(GtkTickerChild, 1); child_info->widget = widget; child_info->x = 0; gtk_widget_set_parent(widget, GTK_WIDGET (ticker)); ticker->children = g_list_append (ticker->children, child_info); if (GTK_WIDGET_REALIZED (ticker)) gtk_widget_realize (widget); if (GTK_WIDGET_VISIBLE (ticker) && GTK_WIDGET_VISIBLE (widget)) { if (GTK_WIDGET_MAPPED (ticker)) gtk_widget_map (widget); gtk_widget_queue_resize (GTK_WIDGET (ticker)); } } void gtk_ticker_set_interval (GtkTicker *ticker, gint interval ) { g_return_if_fail (ticker != NULL); g_return_if_fail (GTK_IS_TICKER (ticker)); if ( interval < 0 ) interval = 200; ticker->interval = interval; } guint gtk_ticker_get_interval (GtkTicker *ticker ) { g_return_val_if_fail (ticker != NULL, -1); g_return_val_if_fail (GTK_IS_TICKER (ticker), -1); return ticker->interval; } void gtk_ticker_set_scootch (GtkTicker *ticker, gint scootch ) { g_return_if_fail (ticker != NULL); g_return_if_fail (GTK_IS_TICKER (ticker)); if ( scootch <= 0 ) scootch = 2; ticker->scootch = scootch; ticker->dirty = TRUE; } guint gtk_ticker_get_scootch (GtkTicker *ticker ) { g_return_val_if_fail (ticker != NULL, -1); g_return_val_if_fail (GTK_IS_TICKER (ticker), -1); return ticker->scootch; } void gtk_ticker_set_spacing (GtkTicker *ticker, gint spacing ) { g_return_if_fail (ticker != NULL); g_return_if_fail (GTK_IS_TICKER (ticker)); if ( spacing < 0 ) spacing = 0; ticker->spacing = spacing; ticker->dirty = TRUE; } static int ticker_timeout( gpointer data ) { GtkTicker *ticker = (GtkTicker *) data; if (GTK_WIDGET_VISIBLE (ticker)) gtk_widget_queue_resize (GTK_WIDGET (ticker)); return( TRUE ); } void gtk_ticker_start_scroll(GtkTicker *ticker) { g_return_if_fail (ticker != NULL); g_return_if_fail (GTK_IS_TICKER (ticker)); if ( ticker->timer != 0 ) return; ticker->timer = gtk_timeout_add(ticker->interval, ticker_timeout, ticker); } void gtk_ticker_stop_scroll(GtkTicker *ticker) { g_return_if_fail (ticker != NULL); g_return_if_fail (GTK_IS_TICKER (ticker)); if ( ticker->timer == 0 ) return; gtk_timeout_remove( ticker->timer ); ticker->timer = 0; } guint gtk_ticker_get_spacing (GtkTicker *ticker ) { g_return_val_if_fail (ticker != NULL, -1); g_return_val_if_fail (GTK_IS_TICKER (ticker), -1); return ticker->spacing; } static void gtk_ticker_map (GtkWidget *widget) { GtkTicker *ticker; GtkTickerChild *child; GList *children; g_return_if_fail (widget != NULL); g_return_if_fail (GTK_IS_TICKER (widget)); GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED); ticker = GTK_TICKER (widget); children = ticker->children; while (children) { child = children->data; children = children->next; if (GTK_WIDGET_VISIBLE (child->widget) && !GTK_WIDGET_MAPPED (child->widget)) gtk_widget_map (child->widget); } gdk_window_show (widget->window); } static void gtk_ticker_realize (GtkWidget *widget) { GdkWindowAttr attributes; gint attributes_mask; g_return_if_fail (widget != NULL); g_return_if_fail (GTK_IS_TICKER (widget)); GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); attributes.window_type = GDK_WINDOW_CHILD; attributes.x = widget->allocation.x; attributes.y = widget->allocation.y; attributes.width = widget->allocation.width; attributes.height = widget->allocation.height; attributes.wclass = GDK_INPUT_OUTPUT; attributes.visual = gtk_widget_get_visual (widget); attributes.colormap = gtk_widget_get_colormap (widget); attributes.event_mask = gtk_widget_get_events (widget); attributes.event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); gdk_window_set_user_data (widget->window, widget); widget->style = gtk_style_attach (widget->style, widget->window); gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); } static void gtk_ticker_size_request (GtkWidget *widget, GtkRequisition *requisition) { GtkTicker *ticker; GtkTickerChild *child; GList *children; GtkRequisition child_requisition; g_return_if_fail (widget != NULL); g_return_if_fail (GTK_IS_TICKER (widget)); g_return_if_fail (requisition != NULL); ticker = GTK_TICKER (widget); requisition->width = 0; requisition->height = 0; children = ticker->children; while (children) { child = children->data; children = children->next; if (GTK_WIDGET_VISIBLE (child->widget)) { gtk_widget_size_request (child->widget, &child_requisition); requisition->height = MAX (requisition->height, child_requisition.height); requisition->width += child_requisition.width + ticker->spacing; } } if ( requisition->width > ticker->spacing ) requisition->width -= ticker->spacing; requisition->height += GTK_CONTAINER (ticker)->border_width * 2; requisition->width += GTK_CONTAINER (ticker)->border_width * 2; } static void gtk_ticker_compute_offsets (GtkTicker *ticker) { GtkTickerChild *child; GtkRequisition child_requisition; GList *children; guint16 border_width; g_return_if_fail (ticker != NULL); g_return_if_fail (GTK_IS_TICKER(ticker)); border_width = GTK_CONTAINER (ticker)->border_width; ticker->width = GTK_WIDGET(ticker)->allocation.width; ticker->total = 0; children = ticker->children; while (children) { child = children->data; child->x = 0; if (GTK_WIDGET_VISIBLE (child->widget)) { gtk_widget_get_child_requisition (child->widget, &child_requisition); child->offset = ticker->total; ticker->total += child_requisition.width + border_width + ticker->spacing; } children = children->next; } ticker->dirty = FALSE; } static void gtk_ticker_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { GtkTicker *ticker; GtkTickerChild *child; GtkAllocation child_allocation; GtkRequisition child_requisition; GList *children; guint16 border_width; g_return_if_fail (widget != NULL); g_return_if_fail (GTK_IS_TICKER(widget)); g_return_if_fail (allocation != NULL); ticker = GTK_TICKER (widget); if ( GTK_WIDGET(ticker)->allocation.width != ticker->width ) ticker->dirty = TRUE; if ( ticker->dirty == TRUE ) { gtk_ticker_compute_offsets( ticker ); } widget->allocation = *allocation; if (GTK_WIDGET_REALIZED (widget)) gdk_window_move_resize (widget->window, allocation->x, allocation->y, allocation->width, allocation->height); border_width = GTK_CONTAINER (ticker)->border_width; children = ticker->children; while (children) { child = children->data; child->x -= ticker->scootch; if (GTK_WIDGET_VISIBLE (child->widget)) { gtk_widget_get_child_requisition (child->widget, &child_requisition); child_allocation.width = child_requisition.width; child_allocation.x = child->offset + border_width + child->x; if ( ( child_allocation.x + child_allocation.width ) < GTK_WIDGET(ticker)->allocation.x ) { if ( ticker->total >= GTK_WIDGET(ticker)->allocation.width ) { child->x += GTK_WIDGET(ticker)->allocation.x + GTK_WIDGET(ticker)->allocation.width + ( ticker->total - ( GTK_WIDGET(ticker)->allocation.x + GTK_WIDGET(ticker)->allocation.width ) ); } else { child->x += GTK_WIDGET(ticker)->allocation.x + GTK_WIDGET(ticker)->allocation.width; } } child_allocation.y = border_width; child_allocation.height = child_requisition.height; gtk_widget_size_allocate (child->widget, &child_allocation); } children = children->next; } } static void gtk_ticker_paint (GtkWidget *widget, GdkRectangle *area) { g_return_if_fail (widget != NULL); g_return_if_fail (GTK_IS_TICKER (widget)); g_return_if_fail (area != NULL); if (GTK_WIDGET_DRAWABLE (widget)) gdk_window_clear_area (widget->window, 0, 0, widget->allocation.width, widget->allocation.height); } static void gtk_ticker_draw (GtkWidget *widget, GdkRectangle *area) { GtkTicker *ticker; GtkTickerChild *child; GList *children; g_return_if_fail (widget != NULL); g_return_if_fail (GTK_IS_TICKER (widget)); if (GTK_WIDGET_DRAWABLE (widget)) { ticker = GTK_TICKER (widget); gtk_ticker_paint (widget, area); children = ticker->children; while (children) { child = children->data; children = children->next; gtk_widget_draw (child->widget, NULL); } } } static gint gtk_ticker_expose (GtkWidget *widget, GdkEventExpose *event) { GtkTicker *ticker; GtkTickerChild *child; GdkEventExpose child_event; GList *children; g_return_val_if_fail (widget != NULL, FALSE); g_return_val_if_fail (GTK_IS_TICKER (widget), FALSE); g_return_val_if_fail (event != NULL, FALSE); if (GTK_WIDGET_DRAWABLE (widget)) { ticker = GTK_TICKER (widget); child_event = *event; children = ticker->children; while (children) { child = children->data; children = children->next; if (GTK_WIDGET_NO_WINDOW (child->widget) && gtk_widget_intersect (child->widget, &event->area, &child_event.area)) gtk_widget_event (child->widget, (GdkEvent*) &child_event); } } return FALSE; } void gtk_ticker_add(GtkTicker *ticker, GtkWidget *widget) { gtk_ticker_add_real( GTK_CONTAINER( ticker ), widget ); ticker->dirty = TRUE; } void gtk_ticker_remove(GtkTicker *ticker, GtkWidget *widget) { gtk_ticker_remove_real( GTK_CONTAINER( ticker ), widget ); ticker->dirty = TRUE; } static void gtk_ticker_add_real(GtkContainer *container, GtkWidget *widget) { g_return_if_fail (container != NULL); g_return_if_fail (GTK_IS_TICKER (container)); g_return_if_fail (widget != NULL); gtk_ticker_put(GTK_TICKER (container), widget); } static void gtk_ticker_remove_real(GtkContainer *container, GtkWidget *widget) { GtkTicker *ticker; GtkTickerChild *child; GList *children; g_return_if_fail (container != NULL); g_return_if_fail (GTK_IS_TICKER (container)); g_return_if_fail (widget != NULL); ticker = GTK_TICKER (container); children = ticker->children; while (children) { child = children->data; if (child->widget == widget) { gboolean was_visible = GTK_WIDGET_VISIBLE (widget); gtk_widget_unparent (widget); ticker->children = g_list_remove_link (ticker->children, children); g_list_free (children); g_free (child); if (was_visible && GTK_WIDGET_VISIBLE (container)) gtk_widget_queue_resize (GTK_WIDGET (container)); break; } children = children->next; } } static void gtk_ticker_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data) { GtkTicker *ticker; GtkTickerChild *child; GList *children; g_return_if_fail (container != NULL); g_return_if_fail (GTK_IS_TICKER (container)); g_return_if_fail (callback != NULL); ticker = GTK_TICKER (container); children = ticker->children; while (children) { child = children->data; children = children->next; (* callback) (child->widget, callback_data); } } --- NEW FILE: gtkticker.h --- /* GTK - The GIMP Toolkit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * Copyright 2000 Syd Logan */ #ifndef __GTK_TICKER_H__ #define __GTK_TICKER_H__ #include <gdk/gdk.h> #include <gtk/gtkcontainer.h> #include <gtk/gtkmain.h> #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #define GTK_TYPE_TICKER (gtk_ticker_get_type ()) #define GTK_TICKER(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_TICKER, GtkTicker)) #define GTK_TICKER_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_TICKER, GtkTickerClass)) #define GTK_IS_TICKER(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_TICKER)) #define GTK_IS_TICKER_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TICKER)) typedef struct _GtkTicker GtkTicker; typedef struct _GtkTickerClass GtkTickerClass; typedef struct _GtkTickerChild GtkTickerChild; /* XXX children move from right to left, should be able to go other way */ struct _GtkTicker { GtkContainer container; guint interval; /* how often to scootch */ guint spacing; /* inter-child horizontal spacing */ guint scootch; /* how many pixels to move each scootch */ gint timer; /* timer object */ guint total; /* total width of widgets */ guint width; /* width of containing window */ gboolean dirty; GList *children; }; struct _GtkTickerClass { GtkContainerClass parent_class; }; struct _GtkTickerChild { GtkWidget *widget; gint x; /* current position */ gint offset; /* offset in list */ }; GtkType gtk_ticker_get_type (void); GtkWidget* gtk_ticker_new (void); void gtk_ticker_add (GtkTicker *ticker, GtkWidget *widget); void gtk_ticker_remove (GtkTicker *ticker, GtkWidget *widget); void gtk_ticker_set_interval (GtkTicker *ticker, gint interval); guint gtk_ticker_get_interval (GtkTicker *ticker); void gtk_ticker_set_spacing (GtkTicker *ticker, gint spacing); guint gtk_ticker_get_spacing (GtkTicker *ticker); void gtk_ticker_set_scootch (GtkTicker *ticker, gint scootch); guint gtk_ticker_get_scootch (GtkTicker *ticker); void gtk_ticker_start_scroll (GtkTicker *ticker); void gtk_ticker_stop_scroll (GtkTicker *ticker); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __GTK_TICKER_H__ */ --- NEW FILE: ticker.c --- /* GTK - The GIMP Toolkit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * ticker.c -- Syd Logan, Summer 2000 * pluginized- Sean Egan, Summer 2002 */ #define GAIM_PLUGINS #include <gtk/gtk.h> #include "gtkticker.h" #include <string.h> #include <stdlib.h> #include "gaim.h" #include "prpl.h" #include "pixmaps/no_icon.xpm" static GtkWidget *tickerwindow = NULL; static GtkWidget *ticker; static GModule *handle; typedef struct { char buddy[ 128 ]; char alias[ 388 ]; GtkWidget *hbox; GtkWidget *ebox; GtkWidget *label; GtkWidget *pix; } TickerData; GList *tickerbuds = (GList *) NULL; gboolean userclose = FALSE; GtkWidget *msgw; void BuddyTickerDestroyWindow( GtkWidget *window ); void BuddyTickerCreateWindow( void ); void BuddyTickerAddUser( char *name, char *alias, GdkPixmap *pm, GdkBitmap *bm ); void BuddyTickerRemoveUser( char *name ); void BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm ); void BuddyTickerClearList( void ); void BuddyTickerSignOff( void ); GList * BuddyTickerFindUser( char *name ); int BuddyTickerMessageRemove( gpointer data ); void BuddyTickerShow(); void BuddyTickerDestroyWindow( GtkWidget *window ) { BuddyTickerClearList(); gtk_ticker_stop_scroll( GTK_TICKER( ticker ) ); gtk_widget_destroy( window ); ticker = tickerwindow = (GtkWidget *) NULL; userclose = TRUE; } static char *msg = "Welcome to Gaim " VERSION ", brought to you by Rob Flynn (maintainer), Eric Warmenhoven, Mark Spencer, Jeramey Crawford, Jim Duchek, Syd Logan, and Sean Egan"; void BuddyTickerCreateWindow() { if ( tickerwindow != (GtkWidget *) NULL ) return; debug_printf("Making ticker\n"); tickerwindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_signal_connect (GTK_OBJECT(tickerwindow), "destroy", GTK_SIGNAL_FUNC (BuddyTickerDestroyWindow), "WM destroy"); gtk_window_set_title (GTK_WINDOW(tickerwindow), "Gaim - Buddy Ticker"); gtk_window_set_wmclass (GTK_WINDOW(tickerwindow), "ticker", "Gaim"); gtk_widget_realize(tickerwindow); aol_icon(tickerwindow->window); ticker = gtk_ticker_new(); if (!ticker) return; gtk_ticker_set_spacing( GTK_TICKER( ticker ), 20 ); gtk_widget_set_usize( ticker, 500, -1 ); gtk_container_add( GTK_CONTAINER( tickerwindow ), ticker ); gtk_ticker_set_interval( GTK_TICKER( ticker ), 500 ); gtk_ticker_set_scootch( GTK_TICKER( ticker ), 10 ); /* Damned egotists msgw = gtk_label_new( msg ); gtk_ticker_add( GTK_TICKER( ticker ), msgw ); */ gtk_ticker_start_scroll( GTK_TICKER( ticker ) ); gtk_timeout_add( 60000, BuddyTickerMessageRemove, (gpointer) NULL ); gtk_widget_show_all (ticker); } gint ButtonPressCallback( GtkWidget *widget, GdkEvent *event, gpointer callback_data ) { TickerData *p = (TickerData *) callback_data; struct conversation *conv = new_conversation(p->buddy); return TRUE; } void BuddyTickerAddUser( char *name, char *alias, GdkPixmap *pm, GdkBitmap *bm ) { TickerData *p; GList *q; if ( userclose == TRUE ) return; debug_printf("Adding %s\n", name); BuddyTickerCreateWindow(); if (!ticker) return; q = (GList *) BuddyTickerFindUser( name ); if ( q != (GList *) NULL ) return; p = (TickerData *) malloc( sizeof( TickerData ) ); p->hbox = (GtkWidget *) NULL; p->label = (GtkWidget *) NULL; p->pix = (GtkWidget *) NULL; strcpy( p->buddy, name ); strcpy( p->alias, alias); tickerbuds = g_list_append( tickerbuds, p ); p->hbox = gtk_hbox_new( FALSE, 0 ); gtk_ticker_add( GTK_TICKER( ticker ), p->hbox ); gtk_widget_show_all( p->hbox ); BuddyTickerSetPixmap( name, pm, bm ); p->ebox = gtk_event_box_new(); /* click detection */ gtk_widget_set_events (p->ebox, GDK_BUTTON_PRESS_MASK); gtk_signal_connect (GTK_OBJECT (p->ebox), "button_press_event", GTK_SIGNAL_FUNC(ButtonPressCallback), (gpointer) p); gtk_box_pack_start_defaults( GTK_BOX( p->hbox ), p->ebox ); gtk_widget_show( p->ebox ); if (im_options & OPT_IM_ALIAS_TAB) p->label = gtk_label_new( alias ); else p->label = gtk_label_new( name ); gtk_container_add( GTK_CONTAINER(p->ebox), p->label ); gtk_widget_show( p->label ); gtk_widget_show( tickerwindow ); } void BuddyTickerRemoveUser( char *name ) { GList *p = (GList *) BuddyTickerFindUser( name ); TickerData *data; if ( !p ) return; data = (TickerData *) p->data; if ( userclose == TRUE ) return; if ( data ) { gtk_ticker_remove( GTK_TICKER( ticker ), data->hbox ); tickerbuds = g_list_remove( tickerbuds, data ); free( data ); } } void BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm ) { GList *p; TickerData *data; if ( userclose == TRUE ) return; p = (GList *) BuddyTickerFindUser( name ); if ( p ) data = (TickerData *) p->data; else return; if ( data->pix == (GtkWidget *) NULL ) { data->pix = gtk_pixmap_new( pm, bm ); gtk_box_pack_start_defaults( GTK_BOX( data->hbox ), data->pix ); } else { gtk_widget_hide( data->pix ); gtk_pixmap_set(GTK_PIXMAP(data->pix), pm, bm); } gtk_widget_show( data->pix ); } void BuddyTickerSetAlias( char *name, char *alias) { GList *p; TickerData *data; if ( userclose == TRUE ) return; p = (GList *) BuddyTickerFindUser( name ); if ( p ) data = (TickerData *) p->data; else return; if (alias) { g_snprintf(data->alias, sizeof(data->alias), alias); if (im_options & OPT_IM_ALIAS_TAB) gtk_label_set_text(GTK_LABEL(data->label), alias); } } GList * BuddyTickerFindUser( char *name ) { GList *p = tickerbuds; while ( p ) { TickerData *q = (TickerData *) p->data; if ( !strcmp( name, q->buddy ) ) return( p ); p = p->next; } return (GList *) NULL; } void BuddyTickerSetNames() { GList *p = tickerbuds; while ( p ) { TickerData *q = (TickerData *) p->data; if (im_options & OPT_IM_ALIAS_TAB) gtk_label_set_text(GTK_LABEL(q->label), q->alias); else gtk_label_set_text(GTK_LABEL(q->label), q->buddy); p = p->next; } } int BuddyTickerMessageRemove( gpointer data ) { if ( userclose == TRUE ) return FALSE; if ( tickerwindow == NULL ) return FALSE; gtk_ticker_remove( GTK_TICKER( ticker ), msgw ); return FALSE; } int BuddyTickerLogonTimeout( gpointer data ) { return FALSE; } int BuddyTickerLogoutTimeout( gpointer data ) { char *name = (char *) data; if ( userclose == TRUE ) return FALSE; BuddyTickerRemoveUser( name ); return FALSE; } void BuddyTickerSignoff( void ) { GList *p = tickerbuds; TickerData *q; while ( p ) { q = (TickerData *) p->data; if ( q ) BuddyTickerRemoveUser( q->buddy ); p = tickerbuds; } userclose = FALSE; if ( tickerwindow ) gtk_widget_hide( tickerwindow ); } void BuddyTickerClearList( void ) { GList *p = tickerbuds; while ( p ) p = g_list_remove( p, p->data ); tickerbuds = (GList *) NULL; } void BuddyTickerShow() { GdkPixmap *pm; GdkBitmap *bm; struct gaim_connection *gc; struct group *g; struct buddy *b; GSList *gcons, *grps, *buds; char **xpm; for( gcons = connections; gcons; gcons = gcons->next ) { gc = (struct gaim_connection *)gcons->data; for( grps = gc->groups; grps; grps = grps->next ) { g = (struct group *)grps->data; for( buds = g->members; buds; buds = buds->next ) { b = (struct buddy *)buds->data; if( b->present ) { xpm = NULL; if (gc->prpl->list_icon) xpm = gc->prpl->list_icon(b->uc); if (xpm == NULL) xpm = (char **)no_icon_xpm; pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm); BuddyTickerAddUser( b->name, b->show, pm, bm ); gdk_pixmap_unref(pm); if (bm) gdk_bitmap_unref(bm); } } } } } void signon_cb(struct gaim_connection *gc, char *who) { struct buddy *b = find_buddy(gc, who); char **xpm = NULL; GdkPixmap *pm; GdkBitmap *bm; if (gc->prpl->list_icon) xpm = gc->prpl->list_icon(b->uc); if (xpm == NULL) xpm = (char **)no_icon_xpm; pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm); BuddyTickerAddUser(who, b->show, pm, bm); gdk_pixmap_unref(pm); if (bm) gdk_bitmap_unref(bm); } void signoff_cb(struct gaim_connection *gc) { if (!connections->next) { gtk_widget_destroy(tickerwindow); tickerwindow = NULL; ticker = NULL; } } void buddy_signoff_cb(struct gaim_connection *gc, char *who) { BuddyTickerRemoveUser(who); } void away_cb(struct gaim_connection *gc, char *who) { struct buddy *b = find_buddy(gc, who); char **xpm = NULL; GdkPixmap *pm; GdkBitmap *bm; if (gc->prpl->list_icon) xpm = gc->prpl->list_icon(b->uc); if (xpm == NULL) xpm = (char **)no_icon_xpm; pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm); BuddyTickerSetPixmap(who, pm, bm); gdk_pixmap_unref(pm); if (bm) gdk_bitmap_unref(bm); } char *gaim_plugin_init(GModule *h) { handle = h; gaim_signal_connect(h, event_buddy_signon, signon_cb, NULL); gaim_signal_connect(h, event_signoff, signoff_cb, NULL); gaim_signal_connect(h, event_buddy_signoff, buddy_signoff_cb, NULL); gaim_signal_connect(h, event_buddy_away, away_cb, NULL); gaim_signal_connect(h, event_buddy_back, away_cb, NULL); if (connections) BuddyTickerShow(); return NULL; } void gaim_plugin_remove() { gtk_widget_destroy(tickerwindow); } |
From: Sean E. <sea...@us...> - 2002-08-11 06:36:50
|
Update of /cvsroot/gaim/gaim/plugins/ticker In directory usw-pr-cvs1:/tmp/cvs-serv4550/plugins/ticker Log Message: Directory /cvsroot/gaim/gaim/plugins/ticker added to the repository |
From: Christian H. <ch...@us...> - 2002-08-10 02:42:58
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv1024 Modified Files: prpl.c Log Message: It's best to initialize p and THEN check the contents of it. Index: prpl.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/prpl.c,v retrieving revision 1.55 retrieving revision 1.56 diff -u -d -r1.55 -r1.56 --- prpl.c 7 Aug 2002 23:25:33 -0000 1.55 +++ prpl.c 10 Aug 2002 02:42:55 -0000 1.56 @@ -75,6 +75,11 @@ return; } + p = g_new0(struct prpl, 1); + pi(p); + if ((old = find_prpl(p->protocol)) != NULL) + unload_protocol(old); + if (p->protocol == PROTO_ICQ) do_error_dialog(_("Gaim has loaded the ICQ plugin. This plugin has been deprecated. " "As such, it was probably not compiled from the same version of the " @@ -82,10 +87,7 @@ "It is reccomended that you use the AIM/ICQ protocol to connect to ICQ"), _("Protocol Warning")); - p = g_new0(struct prpl, 1); - pi(p); - if ((old = find_prpl(p->protocol)) != NULL) - unload_protocol(old); + protocols = g_slist_insert_sorted(protocols, p, (GCompareFunc)proto_compare); regenerate_user_list(); } |
From: <Len...@ho...> - 2002-08-09 17:20:57
|
PCEtLSBzYXZlZCBmcm9tIHVybD0oMDAyMilodHRwOi8vaW50ZXJuZXQuZS1t YWlsIC0tPg0KPEhUTUw+PEhFQUQ+DQo8VElUTEU+SU5TVEEgQlJVU0g8L1RJ VExFPg0KPFNUWUxFPkE6bGluayB7Y29sb3I6cmVkfTwvU1RZTEU+DQo8L0hF QUQ+DQo8Qk9EWSBiZ0NvbG9yPSNmZmZmZmY+DQo8VEFCTEUgY2VsbFNwYWNp bmc9MCBjZWxsUGFkZGluZz0xNCB3aWR0aD02MDAgYm9yZGVyPTMgYm9yZGVy Y29sb3JkYXJrPSMwMDMzNjYgYm9yZGVyY29sb3JsaWdodD0jNjY5OTk5IGJv cmRlcmNvbG9yPSMwMDMzNjY+DQogIDxUQk9EWT4NCgk8VFI+DQoJPFREIHdp ZHRoPTIwMCBiZ2NvbG9yPSM0NjgyYjQgdmFsaWduPXRvcD48Rk9OVCBmYWNl PSJWZXJkYW5hLCBBcmlhbCIgY29sb3I9I2ZmZmZmZiBzaXplPTQ+DQoJCTxC PkRPTidUIERSRUFNIFRPIExJVkUhIC4uLjxCUj48QlI+TElWRSBUSEUgRFJF QU08L0I+PEJSPjwvRk9OVD4NCgkJPEZPTlQgZmFjZT0iVmVyZGFuYSwgQXJp YWwiIGNvbG9yPSNmZmZmZmYgc2l6ZT0yPjxCUj48Qj4NCgkJPExJPkJlIHlv dXIgb3duIEJPU1MNCgkJPExJPldvcmsgeW91ciBvd24gSE9VUlMNCgkJPExJ Pk5vIEZJWEVEIG92ZXJoZWFkDQoJCTxMST5IaWdoIENBU0ggcmV0dXJuIA0K CQk8TEk+SU5DT01FIFN1cHBsaW1lbnQNCgkJPExJPlBhcnQgVGltZSBCdXNp bmVzczwvQj48L0ZPTlQ+PC9MST4NCgk8L1REPg0KICAgIDxURCAgd2lkdGg9 NDAwPjxGT05UIGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBjb2xvcj0jMDAwMDUw IHNpemU9Mz4NCgkJPEI+RGVhciBGdXR1cmUgQnVzaW5lc3MgT3duZXIsPC9C PiANCgkJPFAgYWxpZ249Y2VudGVyPjxGT05UIGZhY2U9IlZlcmRhbmEsIEFy aWFsIiBjb2xvcj0jMDAwMDUwIHNpemU9Mj4NCgkJPEI+RUFSTiA1MCwwMDAg QSBZRUFSICZuYnNwOyBXT1JLIE9ORSBEQVkgQSBXRUVLITwvQj48QlI+PEJS PldlIGNhbiBzaG93IHlvdSBob3cgeW91IGNhbiB3b3JrIGFzIGxpdHRsZQ0K CQlhcyBvbmUgZGF5IGEgd2VrIGFuZCBtYWtlIGFzIG11Y2ggYXMgJDUwLDAw MC4wMCBhIHllYXIgaW4geW91ciBvd24gbmV3IGJ1c2luZXNzLjxCUj48QlI+ DQoJCTxCPlRIQVQnUyBSSUdIVCE8L0I+PEJSPjxCUj5Ib3cgd291bGQgeW91 IGxpa2UgdG8gYmUgaW4gYW4gaW5kdXN0cnkgdGhhdCBoYXMgZ3Jvd24gZm9y IDU3IA0KCQljb25zZWN1dGl2ZSB5ZWFycz8gJm5ic3A7V2hlcmUgeW91ciBw cm9maXRzIGFyZSBuZWFybHkgMjAwJSBldmVyeSB0aW1lIHNvbWVvbmUgYnV5 cyBhbiANCgkJPEJSPjxBIGhyZWY9Imh0dHA6Ly93d3cuZW5kbGVzc29wcG9y dHVuaXRpZXNob3RsaW5lLmNvbS9JbnN0YS1CcnVzaC8iPjxCPjxJPklOU1RB IEJSVVNIPC9JPjwvQj48L0E+DQoJCWRpc3Bvc2FibGUgdG9vdGhicnVzaC4g Jm5ic3A7PEJSPjxCUj48Qj5FVkVSWU9ORSBCUlVTSEVTIEhJUyBPUiBIRVIg VEVFVEghPC9CPjxCUj48QlI+QnJlYWsgZG93biB0aGUgd2FsbHMNCgkJYW5k IGxpdmUgdGhlIGxpZmUgeW91J3ZlIG9ubHkgZHJlYW1lZCBhYm91dC4gICZu YnNwO0hhdmUgbW9yZSB0aW1lIGZvciB0aGUgYmV0dGVyIHRoaW5ncyBpbiBs aWZlLjxCUj4NCgkJPEJSPjxCPkRPTidUIERSRUFNIFRPIExJVkUuLi4gJm5i c3A7IExJVkUgVEhFIERSRUFNPC9CPjxCUj48QlI+QXZhaWxhYmlsdHkgaXMg eW91ciBhcmVhIGlzIGxpbWl0ZWQuICZuYnNwO1RoZXJlIGlzIG5vIA0KCQlv YmxpZ2F0aW9uLjxBIGhyZWY9Imh0dHA6Ly93d3cuZW5kbGVzc29wcG9ydHVu aXRpZXNob3RsaW5lLmNvbS9JbnN0YS1CcnVzaC8iPjxCPkNPTlRBQ1QgVVMg VE9EQVk8L0I+PC9BPiBzbyB5b3UgY2FuIGdldCB5b3VyIGZyZWUgaW5mb3Jt YXRpb24NCgkJDQoJCTxCUj48QlI+PEEgaHJlZj0iaHR0cDovL3d3dy5lbmRs ZXNzb3Bwb3J0dW5pdGllc2hvdGxpbmUuY29tL0luc3RhLUJydXNoLyI+DQoJ CTxGT05UIGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBjb2xvcj0jMDBiMDAwIHNp emU9NT48Qj4NCgkJQ2xpY2sgSGVyZSBUbyBTdGFydCBOb3c8L0I+PC9GT05U PjwvQT4gPC9GT05UPjwvUD4NCgk8L1REPjwvVFI+PC9UQk9EWT48L1RBQkxF PjxCUj4NCjxUQUJMRSB3aWR0aD01NTA+DQogIDxUQk9EWT4NCiAgPFRSID4N CiAgICA8VEQgYWxpZ249bGVmdD4NCgkJPEhSIFNJWkU9MSB3aWR0aD0iMTAw JSIgY29sb3I9aW5kaWdvPg0KCQk8Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJk YW5hLCBBcmlhbCI+WW91ciBwcml2YWN5IGlzIGV4dHJlbWVseSBpbXBvcnRh bnQgdG8gdXMuIFlvdSByZXF1ZXN0ZWQgdG8gcmVjZWl2ZQ0KCQl0aGlzIG1h aWxpbmcsIGJ5IHN1YnNjcmliaW5nIHRocm91Z2ggb25lIG9mIG91ciBtYXJr ZXRpbmcgcGFydG5lcnMuIEFzIGEgbGVhZGVyIGluIGVtYWlsIG1hcmtldGlu ZywgDQoJCXdlIGFyZSBjb21taXR0ZWQgdG8gZGVsaXZlcmluZyBhIGhpZ2hs eSByZXdhcmRpbmcgZXhwZXJpZW5jZSwgd2l0aCBvZmZlcnMgdGhhdCBpbmNs dWRlIGJhcmdhaW5zLCANCgkJZW50ZXJ0YWlubWVudCwgYW5kICBtb25leS1t YWtpbmcgaWRlYXMuIEhvd2V2ZXIsIGlmIHlvdSB3aXNoIHRvIHVuc3Vic2Ny aWJlLA0KCQk8QSBocmVmPSJodHRwOi8vd3d3LmVuZGxlc3NvcHBvcnR1bml0 aWVzaG90bGluZS5jb20vcmVtb3ZlLyIgdGFyZ2V0PSJfYmxhbmsiPmNsaWNr IGhlcmU8L0E+ICZuYnNwO1RoaXJkLXBhcnR5IA0KCQlvZmZlcnMgY29udGFp bmVkIGluIHRoaXMgZW1haWwgYXJlIHRoZSBzb2xlIHJlc3BvbnNpYmlsaXR5 IG9mIHRoZSBvZmZlciBvcmlnaW5hdG9yLg0KCQk8L2ZvbnQ+DQogICAgPC9U RD48L1RSPjwvVEJPRFk+PC9UQUJMRT48L0JPRFk+PC9IVE1MPg0KDQo2Nzg0 aUtRaTItOTUxTFRIZTYxNDdZYW1rMi03NThxeEZsMzE= |
From: <Del...@gr...> - 2002-08-08 20:00:03
|
T24gSmFudWFyeSAxc3QgMjAwMiwgdGhlIEV1cm9wZWFuIGNvdW50cmllcyBi ZWdhbg0KdXNpbmcgdGhlIG5ldyBFdXJvLiAgTmV2ZXIgYmVmb3JlIGhhdmUg c28NCm1hbnkgY291bnRyaWVzIHdpdGggc3VjaCBwb3dlcmZ1bCBlY29ub21p ZXMgdW5pdGVkDQp0byB1c2UgYSBzaW5nbGUgY3VycmVuY3kuICBHZXQgeW91 ciBwaWVjZSBvZiBoaXN0b3J5DQpub3chICBXZSB3b3VsZCBsaWtlIHRvIHNl bmQgeW91IGEgRlJFRSBFdXJvDQphbmQgYSBGUkVFIHJlcG9ydCBvbiB3b3Js ZCBjdXJyZW5jeS4gIEp1c3QgdmlzaXQNCm91ciBzaXRlIHRvIHJlcXVlc3Qg eW91ciBFdXJvIGFuZCBFdXJvIHJlcG9ydDoNCg0KaHR0cDovL3d3dy5pbmZv cm1hdGlvbi1kZXBvdC5jb20vRXVyb0V4Y2hhbmdlLw0KDQpJbiBhZGRpdGlv biB0byBvdXIgY3VycmVuY3kgcmVwb3J0LCB5b3UgY2FuIHJlY2VpdmUNCm91 ciBGUkVFIElOVkVTVE1FTlQgUEFDS0FHRToNCg0KKiAgTGVhcm4gaG93ICQx MCwwMDAgaW4gb3B0aW9ucyB3aWxsIGxldmVyYWdlICQxLDAwMCwwMDAgaW4N CkV1cm8gQ3VycmVuY3kuIFRoaXMgbWVhbnMgZXZlbiBhIHNtYWxsIG1vdmVt ZW50IGluIHRoZSBtYXJrZXQNCmhhcyBodWdlIHByb2ZpdCBwb3RlbnRpYWwu DQoNCklmIHlvdSBhcmUgb3ZlciBhZ2UgMTggYW5kIGhhdmUgc29tZSByaXNr IGNhcGl0YWwsIGl0J3MNCmltcG9ydGFudCB0aGF0IHlvdSBmaW5kIG91dCBo b3cgdGhlIEV1cm8gd2lsbA0KY2hhbmdlIHRoZSBlY29ub21pYyB3b3JsZCBh bmQgaG93IHlvdSBjYW4gcHJvZml0IQ0KDQpDTElDSyBOT1chIGh0dHA6Ly93 d3cuaW5mb3JtYXRpb24tZGVwb3QuY29tL0V1cm9FeGNoYW5nZS8NCg0KJDEw LDAwMCBtaW5pbXVtIGludmVzdG1lbnQNCg0KUGxlYXNlIGNhcmVmdWxseSBl dmFsdWF0ZSB5b3VyIGZpbmFuY2lhbCBwb3NpdGlvbiBiZWZvcmUNCnRyYWRp bmcuICBPbmx5IHJpc2sgY2FwaXRhbCBzaG91bGQgYmUgdXNlZC4NCg0KaHR0 cDovL3d3dy5pbmZvcm1hdGlvbi1kZXBvdC5jb20vdGFrZW1lb2ZmLyBUbyBP cHRPdXQuDQoNCg0KDQoNCg0KMTI1N3lwSW8yLTQwNk1kWVY4MjY4c0NmQzUt MjY4Qm1aejEwNDZxZVFvNi00MjN3eVZjMTA0MFRyb2IwLTgzMXdRUEkzMjM1 UFNabDcx |
From: Sean E. <sea...@us...> - 2002-08-08 19:14:24
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv17906 Modified Files: gaim2blt.pl Log Message: gaim2blt.pl bugfix by Andrew Molloy. Index: gaim2blt.pl =================================================================== RCS file: /cvsroot/gaim/gaim/gaim2blt.pl,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- gaim2blt.pl 21 Apr 2001 23:53:06 -0000 1.3 +++ gaim2blt.pl 8 Aug 2002 19:14:20 -0000 1.4 @@ -29,7 +29,7 @@ if ($type eq 'g') { print " }\n" if ($in_group); - print " $args {\n"; + print qq( "$args" {\n)"; $in_group = 1; } elsif ($type eq 'b') { my ($buddy, $alias) = split /:/, $args; |
From: Christian H. <ch...@us...> - 2002-08-08 18:11:47
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv30767 Modified Files: ChangeLog Makefile.am autogen.sh Added Files: config.rpath Log Message: Here it is. Added gettext 0.11.x support! It should work fine, but please let me know if anything is broken in 0.10.x or 0.11.x (in my tests, it all worked fine) --- NEW FILE: config.rpath --- Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.519 retrieving revision 1.520 diff -u -d -r1.519 -r1.520 --- ChangeLog 7 Aug 2002 23:25:33 -0000 1.519 +++ ChangeLog 8 Aug 2002 18:11:15 -0000 1.520 @@ -32,6 +32,7 @@ Etan Reisner) * TOC no longer compiles statically by default--use OSCAR * ICQ plugin no longer gets built--use OSCAR + * Added support for gettext 0.11.x. version 0.59 (06/24/2002): * Hungarian translation added (Thanks, Sutto Zoltan) Index: Makefile.am =================================================================== RCS file: /cvsroot/gaim/gaim/Makefile.am,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- Makefile.am 9 Dec 2001 13:18:58 -0000 1.31 +++ Makefile.am 8 Aug 2002 18:11:15 -0000 1.32 @@ -1,5 +1,5 @@ -EXTRA_DIST = gaim.spec.in gaim_applet.gnorba gaim.desktop gaim_applet.desktop \ +EXTRA_DIST = config.rpath gaim.spec.in gaim_applet.gnorba gaim.desktop gaim_applet.desktop \ HACKING gaim2blt.pl licq2gaim.pl if DISTRIB Index: autogen.sh =================================================================== RCS file: /cvsroot/gaim/gaim/autogen.sh,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- autogen.sh 26 Apr 2002 00:59:30 -0000 1.14 +++ autogen.sh 8 Aug 2002 18:11:15 -0000 1.15 @@ -1,5 +1,15 @@ #!/bin/sh +abort() { + # Don't break the tree if something goes wrong. + if [ -e m4~ ]; then + rm -rf m4 + mv m4~ m4 + fi + + exit 1 +} + (gettextize --version) < /dev/null > /dev/null 2>&1 || { echo; echo "You must have gettext installed to compile Gaim"; @@ -42,7 +52,26 @@ echo; echo "Running gettextize, please ignore non-fatal messages...." -echo n | gettextize --copy --force || exit; + +# Get the major version of gettext. +GETTEXT_VER=`gettextize --version | sed -n 's/^.*[0-9]\+\.\([0-9]\+\)\..*$/\1/p'` + +# Decide how we want to run gettext. +if [ $GETTEXT_VER -eq 11 ]; then + mv -f m4 m4~ + + echo n | gettextize --copy --force --intl --no-changelog || abort + + # Now restore the things that brain-dead gettext modified. + [ -e configure.in~ ] && mv -f configure.in~ configure.in + [ -e Makefile.am~ ] && mv -f Makefile.am~ Makefile.am + rm -rf m4 + mv -f m4~ m4 + + mv -f po/Makevars.template po/Makevars +else + echo n | gettextize --copy --force || exit; +fi echo "Running libtoolize, please ignore non-fatal messages...." echo n | libtoolize --copy --force || exit; |
From: Christian H. <ch...@us...> - 2002-08-08 18:11:22
|
Update of /cvsroot/gaim/gaim/po In directory usw-pr-cvs1:/tmp/cvs-serv30767/po Modified Files: .cvsignore bg.po cs.po da.po de.po es.po fi.po fr.po hu.po it.po ja.po ko.po nl.po pl.po ru.po sk.po sv.po zh_CN.po zh_TW.po Log Message: Here it is. Added gettext 0.11.x support! It should work fine, but please let me know if anything is broken in 0.10.x or 0.11.x (in my tests, it all worked fine) Index: .cvsignore =================================================================== RCS file: /cvsroot/gaim/gaim/po/.cvsignore,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- .cvsignore 19 May 2002 17:27:06 -0000 1.21 +++ .cvsignore 8 Aug 2002 18:11:15 -0000 1.22 @@ -3,24 +3,12 @@ Makefile.in.in ChangeLog POTFILES +Rules-quot cat-id-tbl.c -de.gmo -fr.gmo stamp-cat-id gaim.pot -es.gmo -zh_CN.gmo -ko.gmo -ru.gmo -pl.gmo -nl.gmo -sv.gmo -sk.gmo -fi.gmo -it.gmo -da.gmo -ja.gmo -bg.gmo -hu.gmo -zh_TW.gmo -cs.gmo +*.gmo +Makevars +*.sed +*.header +*.sin Index: bg.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/bg.po,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- bg.po 2 Jul 2002 05:42:25 -0000 1.3 +++ bg.po 8 Aug 2002 18:11:15 -0000 1.4 @@ -5,8 +5,8 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"Project-Id-Version: Gaim 0.60\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-04-16 04:54+0200\n" "Last-Translator: Hristo Todorov <ig...@bo...>\n" "Language-Team: Bulgarian <bg...@li...>\n" @@ -24,11 +24,11 @@ [...3338 lines suppressed...] +#~ msgid "minutes using" +#~ msgstr "ìèíóòè èçïîëçâàíè" + +#~ msgid "Messages" +#~ msgstr "Ñúîáùåíèÿ" + +#~ msgid "Make Away" +#~ msgstr "Ïðàâè îòñúñòâàù" + +#~ msgid "Privacy Options" +#~ msgstr "Óåäèíèå" + +#~ msgid "General" +#~ msgstr "Îñíîâíè" + +#~ msgid "Conversations" +#~ msgstr "Ðàçãîâîðè" #~ msgid "Enable sounds" #~ msgstr "Ïîçâîëÿâàíå íà çâóêà" Index: cs.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/cs.po,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- cs.po 2 Jul 2002 05:42:25 -0000 1.2 +++ cs.po 8 Aug 2002 18:11:15 -0000 1.3 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gaim 0.48\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-05-05 17:15GMT+1\n" "Last-Translator: Honza Král <hk...@ce...>\n" "Language-Team: Èeský jazyk <cs...@li...>\n" @@ -23,11 +23,11 @@ msgid "Gaim Chat" msgstr "Gaim - Chat" [...3406 lines suppressed...] + +#, fuzzy +#~ msgid "Messages" +#~ msgstr "Zprávy" + +#~ msgid "Make Away" +#~ msgstr "Udìlej 'Preè'" + +#~ msgid "Privacy Options" +#~ msgstr "Mo¾nosti Soukromí" + +#~ msgid "General" +#~ msgstr "Hlavní" + +#, fuzzy +#~ msgid "Conversations" +#~ msgstr "Konverzace" #~ msgid "Enable sounds" #~ msgstr "Povolit zvuky" Index: da.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/da.po,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- da.po 2 Jul 2002 05:42:25 -0000 1.2 +++ da.po 8 Aug 2002 18:11:15 -0000 1.3 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GAIM 0.55\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-04-01 23:04+0200\n" "Last-Translator: Lars Sarauw Hansen <sa...@dk...>\n" "Language-Team: Danish <da...@kl...>\n" @@ -26,11 +26,11 @@ msgid "Gaim Chat" msgstr "Gaim - Chat" [...3346 lines suppressed...] +#~ msgid "minutes using" +#~ msgstr "minutter og send" + +#~ msgid "Messages" +#~ msgstr "Beskeder" + +#~ msgid "Make Away" +#~ msgstr "Sæt fraværende" + +#~ msgid "Privacy Options" +#~ msgstr "Privatlivets fred" + +#~ msgid "General" +#~ msgstr "Generelt" + +#~ msgid "Conversations" +#~ msgstr "Samtaler" #~ msgid "Enable sounds" #~ msgstr "Brug lyde" Index: de.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/de.po,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- de.po 2 Jul 2002 05:42:25 -0000 1.36 +++ de.po 8 Aug 2002 18:11:15 -0000 1.37 @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Gaim 0.9.19\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-03-31 11:29+0200\n" "Last-Translator: Karsten Weiss <kn...@gm...>\n" "Language-Team: de <de...@li...>\n" @@ -33,11 +33,11 @@ msgid "Gaim Chat" msgstr "Gaim - Chat" [...3356 lines suppressed...] +#~ msgid "minutes using" +#~ msgstr "Minuten und benutze" + +#~ msgid "Messages" +#~ msgstr "Nachrichten" + +#~ msgid "Make Away" +#~ msgstr "Jetzt abwesend" + +#~ msgid "Privacy Options" +#~ msgstr "Einstellungen zur Privatsphäre" + +#~ msgid "General" +#~ msgstr "Allgemein" + +#~ msgid "Conversations" +#~ msgstr "Unterhaltungen" #~ msgid "Enable sounds" #~ msgstr "Klänge aktivieren" Index: es.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/es.po,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- es.po 3 Jul 2002 05:52:58 -0000 1.23 +++ es.po 8 Aug 2002 18:11:15 -0000 1.24 @@ -5,8 +5,8 @@ # msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-04-11 22:46-0700\n" +"Project-Id-Version: Gaim 0.60\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-02-23 18:05+0100\n" "Last-Translator: Alex Villar <al...@te...>\n" "Language-Team: <es...@li...>\n" @@ -14,6 +14,112 @@ [...4431 lines suppressed...] @@ -3599,9 +3939,6 @@ #~ msgid "Internal HTML Widget (Quite likely a bad idea!)" #~ msgstr "Programa de HTML Interno (¡Probablemente una idea mala!)" -#~ msgid "Applet" -#~ msgstr "Aplique" - #~ msgid "Permit/Deny" #~ msgstr "Permitir/Denegar" @@ -3613,9 +3950,6 @@ #~ msgid "Remove buddy from permit/deny" #~ msgstr "Quitar amigo de autorizar/negar" - -#~ msgid "Idle" -#~ msgstr "Inactivo" #~ msgid "Raise chat windows when people speak" #~ msgstr "Alzar ventana de conversación cuando alguien hable" Index: fi.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/fi.po,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- fi.po 2 Jul 2002 23:51:05 -0000 1.8 +++ fi.po 8 Aug 2002 18:11:15 -0000 1.9 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gaim 0.59\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-03-23 20:32+0200\n" "Last-Translator: Tero Kuusela <te...@su...>\n" "Language-Team: Finnish <fi...@li...>\n" @@ -22,11 +22,11 @@ msgid "Gaim Chat" msgstr "Gaim Ryhmäkeskustelu" [...3359 lines suppressed...] +#~ msgid "Auto Away after" +#~ msgstr "Merkitse poissaolevaksi" + +#~ msgid "minutes using" +#~ msgstr "minuutin jälkeen viestillä" + +#~ msgid "Messages" +#~ msgstr "Viestit" + +#~ msgid "Make Away" +#~ msgstr "Luo poissaolo" + +#~ msgid "Privacy Options" +#~ msgstr "Yksityisyysvalinnat" + +#~ msgid "General" +#~ msgstr "Yleistä" + +#~ msgid "Conversations" +#~ msgstr "Keskustelut" Index: fr.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/fr.po,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- fr.po 13 Jul 2002 01:31:45 -0000 1.30 +++ fr.po 8 Aug 2002 18:11:15 -0000 1.31 @@ -8,9 +8,10 @@ msgid "" msgstr "" "Project-Id-Version: Gaim 0.9.20\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-07-10 13:17GMT\n" "Last-Translator: sebfrance <seb...@if...>\n" +"Language-Team: fr <fr...@li...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" [...3402 lines suppressed...] +#~ msgid "minutes using" +#~ msgstr "minutes en utilisant" + +#~ msgid "Messages" +#~ msgstr "Messages" + +#~ msgid "Make Away" +#~ msgstr "Passer en mode 'absent'" + +#~ msgid "Privacy Options" +#~ msgstr "Options de filtrage" + +#~ msgid "General" +#~ msgstr "Géneral" + +#~ msgid "Conversations" +#~ msgstr "Conversations" #~ msgid "Enable sounds" #~ msgstr "Activer le son" Index: hu.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/hu.po,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- hu.po 2 Jul 2002 05:42:26 -0000 1.2 +++ hu.po 8 Aug 2002 18:11:16 -0000 1.3 @@ -2,11 +2,10 @@ # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"Project-Id-Version: Gaim 0.60\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-05-12 19:00+0100\n" [...3363 lines suppressed...] +#~ msgid "minutes using" +#~ msgstr "perc után a következ?vel" + +#~ msgid "Messages" +#~ msgstr "Üzenetek" + +#~ msgid "Make Away" +#~ msgstr "Nincs a gépnél" + +#~ msgid "Privacy Options" +#~ msgstr "Biztonsági beállítások" + +#~ msgid "General" +#~ msgstr "Általános" + +#~ msgid "Conversations" +#~ msgstr "Társalgások" #~ msgid "Enable sounds" #~ msgstr "Hangok engedélyezése" Index: it.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/it.po,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- it.po 2 Jul 2002 05:42:26 -0000 1.4 +++ it.po 8 Aug 2002 18:11:16 -0000 1.5 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Gaim 0.53\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-03-13 19:26+0100\n" "Last-Translator: Salvatore di Maggio <tit...@li...>\n" "Language-Team: Italian <it...@li...>\n" @@ -23,11 +23,11 @@ msgid "Gaim Chat" msgstr "Gaim - Chat" [...3368 lines suppressed...] + +#~ msgid "General" +#~ msgstr "Generale" + +#~ msgid "Conversations" +#~ msgstr "Conversazioni" + #~ msgid "Enable sounds" #~ msgstr "Abilita suoni" @@ -3665,9 +3708,6 @@ #~ msgid "Manual" #~ msgstr "Manuale" - -#~ msgid "Events" -#~ msgstr "Eventi" #~ msgid "Sound when buddy logs in" #~ msgstr "Suona quando un contatto entra" Index: ja.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/ja.po,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ja.po 2 Jul 2002 05:42:26 -0000 1.2 +++ ja.po 8 Aug 2002 18:11:16 -0000 1.3 @@ -2,11 +2,10 @@ # Copyright (C) 2002 Free Software Foundation, Inc. # Ryosuke Kutsuna <ry...@co...>, 2002 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: gaim version 0.56\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-04-22 13:12+0900\n" "Last-Translator: Ryosuke Kutsuna <ry...@co...>\n" [...3412 lines suppressed...] +#~ msgid "minutes using" +#~ msgstr "¿ôÊ¬ÍøÍÑ" + +#~ msgid "Messages" +#~ msgstr "¥á¥Ã¥»¡¼¥¸" + +#~ msgid "Make Away" +#~ msgstr "¤É¤Ã¤«¤¤¤±" + +#~ msgid "Privacy Options" +#~ msgstr "¸Ä¿Í¾ðÊ󥪥ץ·¥ç¥ó" + +#~ msgid "General" +#~ msgstr "°ìÈÌ" + +#~ msgid "Conversations" +#~ msgstr "²ñÏÃ" #~ msgid "Enable sounds" #~ msgstr "²»¤Î͸ú²½" Index: ko.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/ko.po,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- ko.po 2 Jul 2002 05:42:26 -0000 1.26 +++ ko.po 8 Aug 2002 18:11:16 -0000 1.27 @@ -2,11 +2,10 @@ # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: gaim 0.58\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-06-03 09:02+0900\n" "Last-Translator: A Lee <al...@de...>\n" [...3356 lines suppressed...] +#~ msgid "minutes using" +#~ msgstr "ºÐ µ¿¾È »ç¿ëÇÏÁö ¾ÊÀ¸¸é ´ÙÀ½ ÀÚ¸®ºñ¿ò ¸Þ½ÃÁö »ç¿ë: " + +#~ msgid "Messages" +#~ msgstr "¸Þ½ÃÁö" + +#~ msgid "Make Away" +#~ msgstr "Áö±Ý ÀÚ¸®ºñ¿ò" + +#~ msgid "Privacy Options" +#~ msgstr "ÇÁ¶óÀ̹ö½Ã ¿É¼Ç" + +#~ msgid "General" +#~ msgstr "ÀϹÝ" + +#~ msgid "Conversations" +#~ msgstr "´ëÈ" #~ msgid "Enable sounds" #~ msgstr "¼Ò¸® »ç¿ë" Index: nl.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/nl.po,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- nl.po 17 Mar 2002 22:25:12 -0000 1.4 +++ nl.po 8 Aug 2002 18:11:16 -0000 1.5 @@ -3,11 +3,10 @@ # Floris Eshuis <f.e...@hc...>, 2001. # upgraded by Reinier Lamers <tux...@pl...>, 2002 # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2001-11-09 15:51+0100\n" +"Project-Id-Version: Gaim 0.60\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-03-02 16:25+0100\n" [...4935 lines suppressed...] +#~ msgid "Time between sending auto-responses (in seconds):" +#~ msgstr "Tijd tussen het verzenden van automatische antwoorden (seconden):" + +#~ msgid "Auto Away after" +#~ msgstr "Automatisch afwezig na" + +#~ msgid "minutes using" +#~ msgstr "Minuten" + +#~ msgid "Make Away" +#~ msgstr "Toon Afwezig" + +#~ msgid "Privacy Options" +#~ msgstr "Privacy-instellingen" + +#~ msgid "General" +#~ msgstr "Algemeen" + +#~ msgid "Conversations" +#~ msgstr "Gesprekken" Index: pl.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/pl.po,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- pl.po 2 Jul 2002 05:44:20 -0000 1.18 +++ pl.po 8 Aug 2002 18:11:16 -0000 1.19 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gaim 0.60\n" -"POT-Creation-Date: 2002-06-30 01:05-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-06-30 07:59+0100\n" "Last-Translator: Przemys³aw Su³ek <pb...@li...>\n" "Language-Team: POLISH <pl...@li...>\n" @@ -22,11 +22,11 @@ msgid "Gaim Chat" msgstr "Gaim Czat" [...3272 lines suppressed...] + +#~ msgid "General" +#~ msgstr "Ogólnie" + +#~ msgid "Conversations" +#~ msgstr "Rozmowy" + #~ msgid "KFM" #~ msgstr "KFM" @@ -3600,9 +3642,6 @@ #~ msgid "Manual" #~ msgstr "Rêcznie" - -#~ msgid "Events" -#~ msgstr "Zdarzenia" #~ msgid "Sound when buddy logs in" #~ msgstr "D¼wiêk gdy kole¶ siê loguje" Index: ru.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/ru.po,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- ru.po 2 Jul 2002 05:42:26 -0000 1.10 +++ ru.po 8 Aug 2002 18:11:16 -0000 1.11 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gaim 0.48\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-03-22 14:05+0300\n" "Last-Translator: Grigory Bakunov <bl...@as...>\n" "Language-Team: RUSSIAN <RU...@li...>\n" @@ -23,11 +23,11 @@ msgid "Gaim Chat" msgstr "Gaim - þÁÔ" [...3349 lines suppressed...] +#~ msgid "minutes using" +#~ msgstr "ÍÉÎÕÔ ÉÓÐÏÌØÚÕÑ" + +#~ msgid "Messages" +#~ msgstr "óÏÏÂÝÅÎÉÑ" + +#~ msgid "Make Away" +#~ msgstr "ðÒÉÍÅÎÉÔØ" + +#~ msgid "Privacy Options" +#~ msgstr "ìÉÞÎÙÅ ÐÒÅÄÐÏÞÔÅÎÉÑ" + +#~ msgid "General" +#~ msgstr "ïÂÝÉÅ" + +#~ msgid "Conversations" +#~ msgstr "âÅÓÅÄÁ" #~ msgid "Enable sounds" #~ msgstr "òÁÚÒÅÛÉÔØ Ú×ÕË" Index: sk.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/sk.po,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- sk.po 2 Jul 2002 05:42:26 -0000 1.4 +++ sk.po 8 Aug 2002 18:11:16 -0000 1.5 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gaim 0.48\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2001-02-22 00:00\n" "Last-Translator: Daniel Re¾ný <da...@re...>\n" "Language-Team: SK <SK...@li...>\n" @@ -23,11 +23,11 @@ msgid "Gaim Chat" msgstr "Gaim - Chat" [...3362 lines suppressed...] + +#~ msgid "General" +#~ msgstr "Hlavné" + +#~ msgid "Conversations" +#~ msgstr "Konverzácie" + #~ msgid "Enable sounds" #~ msgstr "Povoli» zvuky" @@ -3658,9 +3678,6 @@ #~ msgid "Manual" #~ msgstr "Návod" - -#~ msgid "Events" -#~ msgstr "Udalosti" #~ msgid "Sound when buddy logs in" #~ msgstr "Zvuk keï sa kamarát prihlási" Index: sv.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/sv.po,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- sv.po 2 Jul 2002 05:42:26 -0000 1.6 +++ sv.po 8 Aug 2002 18:11:16 -0000 1.7 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gaim\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-05-19 03:54+0200\n" "Last-Translator: Christian Rose <me...@me...>\n" "Language-Team: Swedish <sv...@li...>\n" @@ -24,11 +24,11 @@ msgid "Gaim Chat" msgstr "Gaim-chatt" [...3347 lines suppressed...] + +#~ msgid "General" +#~ msgstr "Allmänt" + +#~ msgid "Conversations" +#~ msgstr "Konversationer" + #~ msgid "Enable sounds" #~ msgstr "Använd ljud" @@ -3689,9 +3735,6 @@ #~ msgid "Help!" #~ msgstr "Hjälp!" - -#~ msgid "Events" -#~ msgstr "Händelser" #~ msgid "Sound when buddy logs in" #~ msgstr "Ljud då kompis loggar in" Index: zh_CN.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/zh_CN.po,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- zh_CN.po 2 Jul 2002 05:42:26 -0000 1.22 +++ zh_CN.po 8 Aug 2002 18:11:17 -0000 1.23 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.9.19\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2000-06-17 17:55+08\n" "Last-Translator: hashao <ha...@ch...>\n" "Language-Team: Simplified Chinese <zh...@li...>\n" @@ -25,11 +25,11 @@ msgid "Gaim Chat" msgstr "Gaim ÁÄÌì" [...3445 lines suppressed...] @@ -3688,9 +3742,6 @@ #~ msgid "Manual" #~ msgstr "Óû§ÊÖ²á" -#~ msgid "Events" -#~ msgstr "ʼþÉùЧ" - #~ msgid "Sound when buddy logs in" #~ msgstr "ÅóÓѵǼÉù" @@ -3778,9 +3829,6 @@ #~ msgid "Tabbed Window Options" #~ msgstr "»îÒ³´°¿ÚÑ¡Ïî" - -#~ msgid "Font Style" -#~ msgstr "×ÖÌåÑùʽ" #~ msgid "Underlined Text" #~ msgstr "ϼÓÏßÎÄ×Ö" Index: zh_TW.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/zh_TW.po,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- zh_TW.po 13 Jul 2002 01:31:45 -0000 1.4 +++ zh_TW.po 8 Aug 2002 18:11:17 -0000 1.5 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Gaim\n" -"POT-Creation-Date: 2002-06-25 00:10-0400\n" +"POT-Creation-Date: 2002-08-08 02:18-0700\n" "PO-Revision-Date: 2002-07-09 17:02+0800\n" "Last-Translator: Paladin Liu <pa...@ms...>\n" "Language-Team: Chinese (Traditional) <zh...@li...>\n" @@ -16,34 +16,20 @@ "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" [...4001 lines suppressed...] +#~ msgid "Auto Away after" +#~ msgstr "èªåé¢éï¼ç¶é" + +#~ msgid "minutes using" +#~ msgstr "使ç¨çå鿏" + +#~ msgid "Messages" +#~ msgstr "è¨æ¯" + +#~ msgid "Make Away" +#~ msgstr "è¨å®çºé¢éçæ " + +#~ msgid "Privacy Options" +#~ msgstr "é±ç§é¸é " + +#~ msgid "General" +#~ msgstr "ä¸è¬" + +#~ msgid "Conversations" +#~ msgstr "交è«" |
From: Christian H. <ch...@us...> - 2002-08-08 18:11:17
|
Update of /cvsroot/gaim/gaim/intl In directory usw-pr-cvs1:/tmp/cvs-serv30767/intl Modified Files: .cvsignore Log Message: Here it is. Added gettext 0.11.x support! It should work fine, but please let me know if anything is broken in 0.10.x or 0.11.x (in my tests, it all worked fine) Index: .cvsignore =================================================================== RCS file: /cvsroot/gaim/gaim/intl/.cvsignore,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- .cvsignore 29 May 2001 22:28:18 -0000 1.3 +++ .cvsignore 8 Aug 2002 18:11:15 -0000 1.4 @@ -10,11 +10,13 @@ dcngettext.c dgettext.c dngettext.c +eval-plural.h explodename.c finddomain.c gettext.c gettext.h gettextP.h +gmo.h hash-string.h intl-compat.c l10nflist.c @@ -25,8 +27,14 @@ localcharset.c locale.alias localealias.c +localename.c ngettext.c +os2compat.c +os2compat.h +osdep.c plural.y +plural-exp.c +plural-exp.h ref-add.sin ref-del.sin textdomain.c |
From: Christian H. <ch...@us...> - 2002-08-08 17:42:12
|
Update of /cvsroot/gaim/gaim/src/protocols In directory usw-pr-cvs1:/tmp/cvs-serv22144 Modified Files: Makefile.am Log Message: Even though we don't compile libicq anymore, it does have to be in DIST_SUBDIRS, so that a make dist or make distcheck won't die on us. We should probably remove it from configure.in (the line with src/protocols/icqMakefile in AC_OUTPUT()). Then we can remove it from here. Index: Makefile.am =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/Makefile.am,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Makefile.am 7 Aug 2002 23:25:33 -0000 1.6 +++ Makefile.am 8 Aug 2002 17:42:08 -0000 1.7 @@ -1,4 +1,4 @@ -DIST_SUBDIRS = gg irc jabber msn napster oscar toc yahoo zephyr +DIST_SUBDIRS = gg icq irc jabber msn napster oscar toc yahoo zephyr if PRPLS |
From: Sean E. <sea...@us...> - 2002-08-08 16:12:08
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv26359/src Modified Files: prefs.c Log Message: <BNeuman> dammit sean Index: prefs.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/prefs.c,v retrieving revision 1.232 retrieving revision 1.233 diff -u -d -r1.232 -r1.233 --- prefs.c 6 Aug 2002 03:02:18 -0000 1.232 +++ prefs.c 8 Aug 2002 16:12:05 -0000 1.233 @@ -1050,7 +1050,7 @@ gaim_labeled_spin_button(hbox, _("Seconds before resending:"), &away_resend_new, 1, 24 * 60 * 60); gtk_widget_show(hbox); - gaim_button(_("Don't send auto-response"), &away_options, OPT_AWAY_NO_AUTO_RESP, vbox); + gaim_button(_("Don't send auto-response"), &away_options_new, OPT_AWAY_NO_AUTO_RESP, vbox); gaim_button(_("Only send auto-response when idle"), &away_options_new, OPT_AWAY_IDLE_RESP, vbox); if (away_options_new & OPT_AWAY_NO_AUTO_RESP) |
From: Sean E. <sea...@us...> - 2002-08-08 15:31:11
|
Update of /cvsroot/gaim/gaim/plugins In directory usw-pr-cvs1:/tmp/cvs-serv12189/plugins Modified Files: notify.c Log Message: a compile fix from Ben Miller Index: notify.c =================================================================== RCS file: /cvsroot/gaim/gaim/plugins/notify.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- notify.c 5 Aug 2002 07:33:08 -0000 1.9 +++ notify.c 8 Aug 2002 15:31:08 -0000 1.10 @@ -10,6 +10,7 @@ #include <gtk/gtk.h> #include <string.h> +#include <X11/Xlib.h> #include <X11/Xutil.h> #include <X11/Xatom.h> #include <gdk/gdkx.h> |
From: Sean E. <sea...@us...> - 2002-08-08 12:30:32
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv23522/src Modified Files: conversation.c Log Message: Michael Moulton says to do this. Index: conversation.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/conversation.c,v retrieving revision 1.363 retrieving revision 1.364 diff -u -d -r1.363 -r1.364 --- conversation.c 7 Aug 2002 23:25:33 -0000 1.363 +++ conversation.c 8 Aug 2002 12:30:29 -0000 1.364 @@ -2261,7 +2261,7 @@ speaker = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_CHILD_TOGGLEBUTTON, - NULL, NULL, _("Sound"), + NULL, NULL, _("Toggle Sound"), _("Sound"), speaker_p, GTK_SIGNAL_FUNC(toggle_sound), c); c->makesound = 1; |
From: Sean E. <sea...@us...> - 2002-08-07 23:29:11
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv24820 Modified Files: configure.ac configure.in Log Message: bye bye, TOC. Index: configure.ac =================================================================== RCS file: /cvsroot/gaim/gaim/configure.ac,v retrieving revision 1.73 retrieving revision 1.74 diff -u -d -r1.73 -r1.74 --- configure.ac 7 Aug 2002 23:25:33 -0000 1.73 +++ configure.ac 7 Aug 2002 23:29:09 -0000 1.74 @@ -66,7 +66,7 @@ AM_CONDITIONAL(DISTRIB, test "x$enable_distrib" = "xyes") AC_ARG_ENABLE(multi, [ --disable-multi disable multiple connections],,enable_multi=yes) AC_ARG_ENABLE(prpls, [ --disable-prpls don't build dynamic protocol plugins],,enable_prpls=yes) -AC_ARG_WITH(static-prpls, [ --with-static-prpls link in certain protocols statically],[STATIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`],STATIC_PRPLS="oscar toc") +AC_ARG_WITH(static-prpls, [ --with-static-prpls link in certain protocols statically],[STATIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`],STATIC_PRPLS="oscar") if test "x$STATIC_PRPLS" = "xall" ; then STATIC_PRPLS="gg irc jabber msn napster oscar toc yahoo zephyr" fi Index: configure.in =================================================================== RCS file: /cvsroot/gaim/gaim/configure.in,v retrieving revision 1.120 retrieving revision 1.121 diff -u -d -r1.120 -r1.121 --- configure.in 7 Aug 2002 23:25:33 -0000 1.120 +++ configure.in 7 Aug 2002 23:29:09 -0000 1.121 @@ -65,7 +65,7 @@ AM_CONDITIONAL(DISTRIB, test "x$enable_distrib" = "xyes") AC_ARG_ENABLE(multi, [ --disable-multi disable multiple connections],,enable_multi=yes) AC_ARG_ENABLE(prpls, [ --disable-prpls don't build dynamic protocol plugins],,enable_prpls=yes) -AC_ARG_WITH(static-prpls, [ --with-static-prpls link in certain protocols statically],[STATIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`],STATIC_PRPLS="oscar toc") +AC_ARG_WITH(static-prpls, [ --with-static-prpls link in certain protocols statically],[STATIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`],STATIC_PRPLS="oscar") if test "x$STATIC_PRPLS" = "xall" ; then STATIC_PRPLS="gg irc jabber msn napster oscar toc yahoo zephyr" fi |
From: Sean E. <sea...@us...> - 2002-08-07 23:25:37
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv20115/src Modified Files: conversation.c gtkimhtml.c multi.c prpl.c Log Message: No longer do we build libicq.so -- run make in src/protocols/icq if you feel you need it for some reason (you don't--use OSCAR) TOC is no longer compiled statically by default. If you need it for some reason, you can load the libtoc.so plugin. Ari Pollak fixed up some #ifdefs to get IM images to work in gtk2, and he fixed a few gtk font warnings elsewhere. Index: conversation.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/conversation.c,v retrieving revision 1.362 retrieving revision 1.363 diff -u -d -r1.362 -r1.363 --- conversation.c 7 Aug 2002 19:52:31 -0000 1.362 +++ conversation.c 7 Aug 2002 23:25:33 -0000 1.363 @@ -2628,7 +2628,9 @@ style = gtk_style_new(); if (!GTK_WIDGET_REALIZED(label)) gtk_widget_realize(label); +#if !GTK_CHECK_VERSION(1,3,0) gdk_font_unref(gtk_style_get_font(style)); +#endif gtk_style_set_font(style, gdk_font_ref(gtk_style_get_font(label->style))); style->fg[0].red = 0x0000; style->fg[0].green = 0x9999; @@ -2688,7 +2690,9 @@ style = gtk_style_new(); if (!GTK_WIDGET_REALIZED(label)) gtk_widget_realize(label); +#if !GTK_CHECK_VERSION(1,3,0) gdk_font_unref(gtk_style_get_font(style)); +#endif gtk_style_set_font(style, gdk_font_ref(gtk_style_get_font(label->style))); c->unseen = 0; gtk_widget_set_style(label, style); Index: gtkimhtml.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkimhtml.c,v retrieving revision 1.109 retrieving revision 1.110 diff -u -d -r1.109 -r1.110 --- gtkimhtml.c 5 Aug 2002 07:33:09 -0000 1.109 +++ gtkimhtml.c 7 Aug 2002 23:25:33 -0000 1.110 @@ -36,7 +36,7 @@ #include <locale.h> #endif -#if USE_PIXBUF +#if USE_PIXBUF || GTK_CHECK_VERSION(1,3,0) #include <gdk-pixbuf/gdk-pixbuf.h> #include <gdk-pixbuf/gdk-pixbuf-loader.h> #else @@ -274,7 +274,7 @@ gint width,height; GtkIMHtml *imhtml; GtkIMHtmlBit *bit; -#if USE_PIXBUF +#if USE_PIXBUF || GTK_CHECK_VERSION(1,3,0) GdkPixbuf *pb; #endif }; @@ -2673,7 +2673,7 @@ g_free (copy); } else if ((bit->type == TYPE_SMILEY) || (bit->type == TYPE_IMG)) { -#if USE_PIXBUF +#if USE_PIXBUF || GTK_CHECK_VERSION(1,3,0) if (bit->img) { GdkPixbuf *imagepb = bit->img->pb; GdkPixbuf *tmp = NULL; @@ -3405,9 +3405,12 @@ char *tmp, *imagedata, *e; const gchar *alltext; struct im_image *img; -#if USE_PIXBUF +#if USE_PIXBUF || GTK_CHECK_VERSION(1,3,0) GdkPixbufLoader *load; GdkPixbuf *imagepb = NULL; +#if GTK_CHECK_VERSION(1,3,0) + GError *err; +#endif #endif NEW_BIT (NEW_TEXT_BIT); if (!id || !datasize) @@ -3447,16 +3450,22 @@ if (img->len) { img->data = g_malloc(img->len); memcpy(img->data, imagedata, img->len); -#if USE_PIXBUF +#if USE_PIXBUF || GTK_CHECK_VERSION(1,3,0) load = gdk_pixbuf_loader_new(); + +#if GTK_CHECK_VERSION(1,3,0) + if (!gdk_pixbuf_loader_write(load, imagedata, + img->len, &err)) +#else if (!gdk_pixbuf_loader_write(load, imagedata, img->len)) +#endif g_print("IM Image corrupt or unreadable.\n"); else imagepb = gdk_pixbuf_loader_get_pixbuf(load); img->pb = imagepb; #endif } -#if USE_PIXBUF +#if USE_PIXBUF || GTK_CHECK_VERSION(1,3,0) if (imagepb) { bit = g_new0 (GtkIMHtmlBit, 1); bit->type = TYPE_IMG; @@ -3677,7 +3686,7 @@ gdk_pixmap_unref (bit->pm); if (bit->bm) gdk_bitmap_unref (bit->bm); -#if USE_PIXBUF +#if USE_PIXBUF || GTK_CHECK_VERSION(1,3,0) if (bit->img) { g_free(bit->img->filename); g_free(bit->img->data); @@ -3701,7 +3710,7 @@ imhtml->click = g_list_remove (imhtml->click, imhtml->click->data); } -#if USE_PIXBUF +#if USE_PIXBUF || GTK_CHECK_VERSION(1,3,0) while (imhtml->im_images) { imhtml->im_images = g_list_remove(imhtml->im_images, imhtml->im_images->data); } @@ -3733,7 +3742,7 @@ imhtml->scroll_timer = 0; } -#if USE_PIXBUF +#if USE_PIXBUF || GTK_CHECK_VERSION(1,3,0) g_list_free(imhtml->im_images); imhtml->im_images = NULL; #endif Index: multi.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/multi.c,v retrieving revision 1.120 retrieving revision 1.121 diff -u -d -r1.120 -r1.121 --- multi.c 5 Aug 2002 08:47:52 -0000 1.120 +++ multi.c 7 Aug 2002 23:25:33 -0000 1.121 @@ -944,9 +944,16 @@ u->gc->wants_to_die = TRUE; signoff(u->gc); } else { - do_error_dialog(_("You cannot log this account in; you do not have " - "the protocol it uses loaded, or the protocol does " - "not have a login function."), _("Login Error")); + if (u->protocol == PROTO_TOC) + do_error_dialog(_("You have attempted to login an IM account using the " + "TOC protocol. Because this protocol is inferior to " + "OSCAR, it is now compiled as a plugin by default. " + "To login, edit this account to use OSCAR or load the " + "TOC plugin."), _("Login Error")); + else + do_error_dialog(_("You cannot log this account in; you do not have " + "the protocol it uses loaded, or the protocol does " + "not have a login function."), _("Login Error")); } l = l->next; } Index: prpl.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/prpl.c,v retrieving revision 1.54 retrieving revision 1.55 diff -u -d -r1.54 -r1.55 --- prpl.c 30 May 2002 17:49:03 -0000 1.54 +++ prpl.c 7 Aug 2002 23:25:33 -0000 1.55 @@ -74,6 +74,14 @@ " successfully loaded."), _("Protocol Error")); return; } + + if (p->protocol == PROTO_ICQ) + do_error_dialog(_("Gaim has loaded the ICQ plugin. This plugin has been deprecated. " + "As such, it was probably not compiled from the same version of the " + "source as this application was, and cannot be guaranteed to work. " + "It is reccomended that you use the AIM/ICQ protocol to connect to ICQ"), + _("Protocol Warning")); + p = g_new0(struct prpl, 1); pi(p); if ((old = find_prpl(p->protocol)) != NULL) |
From: Sean E. <sea...@us...> - 2002-08-07 23:25:37
|
Update of /cvsroot/gaim/gaim/src/protocols/icq In directory usw-pr-cvs1:/tmp/cvs-serv20115/src/protocols/icq Modified Files: Makefile.am Log Message: No longer do we build libicq.so -- run make in src/protocols/icq if you feel you need it for some reason (you don't--use OSCAR) TOC is no longer compiled statically by default. If you need it for some reason, you can load the libtoc.so plugin. Ari Pollak fixed up some #ifdefs to get IM images to work in gtk2, and he fixed a few gtk font warnings elsewhere. Index: Makefile.am =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/icq/Makefile.am,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile.am 16 Dec 2001 21:35:00 -0000 1.4 +++ Makefile.am 7 Aug 2002 23:25:33 -0000 1.5 @@ -10,58 +10,6 @@ CFLAGS += -I\$(top_srcdir)/src $(st) $(DEBUG_CFLAGS) libicq_la_LDFLAGS = -module -avoid-version -if STATIC_ICQ - -st = -DSTATIC -pkg_LTLIBRARIES = -noinst_LIBRARIES = libicq.a - -libicq_a_SOURCES = chatsession.c \ - chatsession.h \ - contacts.c \ - contacts.h \ - cyrillic.c \ - eventhandle.c \ - eventhandle.h \ - filesession.c \ - filesession.h \ - icq.h \ - icqbyteorder.c \ - icqbyteorder.h \ - icqevent.c \ - icqevent.h \ - icqlib.c \ - icqlib.h \ - icqpacket.c \ - icqpacket.h \ - icqtypes.h \ - list.c \ - list.h \ - proxy.c \ - queue.c \ - queue.h \ - socketmanager.c \ - socketmanager.h \ - stdpackets.c \ - stdpackets.h \ - tcp.c \ - tcp.h \ - tcpchathandle.c \ - tcpfilehandle.c \ - tcphandle.c \ - tcplink.c \ - tcplink.h \ - timeout.c \ - timeout.h \ - udp.c \ - udp.h \ - udphandle.c \ - util.c \ - util.h \ - gaim_icq.c - -else - st = pkg_LTLIBRARIES = libicq.la noinst_LIBRARIES = @@ -109,5 +57,3 @@ util.c \ util.h \ gaim_icq.c - -endif |
From: Sean E. <sea...@us...> - 2002-08-07 23:25:37
|
Update of /cvsroot/gaim/gaim/src/protocols In directory usw-pr-cvs1:/tmp/cvs-serv20115/src/protocols Modified Files: Makefile.am Log Message: No longer do we build libicq.so -- run make in src/protocols/icq if you feel you need it for some reason (you don't--use OSCAR) TOC is no longer compiled statically by default. If you need it for some reason, you can load the libtoc.so plugin. Ari Pollak fixed up some #ifdefs to get IM images to work in gtk2, and he fixed a few gtk font warnings elsewhere. Index: Makefile.am =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/Makefile.am,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile.am 9 Mar 2002 03:11:02 -0000 1.5 +++ Makefile.am 7 Aug 2002 23:25:33 -0000 1.6 @@ -1,4 +1,4 @@ -DIST_SUBDIRS = gg irc jabber msn napster oscar toc yahoo zephyr icq +DIST_SUBDIRS = gg irc jabber msn napster oscar toc yahoo zephyr if PRPLS |