Mercurial > pidgin.yaz
changeset 16323:cf62255b0a74
merge of 'b2ed97746412540812181f94bcb3e2f077321052'
and 'e3a16be06e623901a0b1943a8dd9fa206d02874f'
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Mon, 23 Apr 2007 07:44:12 +0000 |
parents | a32325c04158 (current diff) 6349d702bab6 (diff) |
children | ea82f4e6321e |
files | pidgin/gtkstatusbox.c |
diffstat | 52 files changed, 840 insertions(+), 120 deletions(-) [+] |
line wrap: on
line diff
--- a/configure.ac Mon Apr 23 07:03:53 2007 +0000 +++ b/configure.ac Mon Apr 23 07:44:12 2007 +0000 @@ -1953,6 +1953,8 @@ pidgin/pixmaps/toolbar/Makefile pidgin/pixmaps/toolbar/16/Makefile pidgin/pixmaps/toolbar/16/scalable/Makefile + pidgin/pixmaps/toolbar/22/Makefile + pidgin/pixmaps/toolbar/22/scalable/Makefile pidgin/pixmaps/tray/Makefile pidgin/pixmaps/tray/16/Makefile pidgin/pixmaps/tray/22/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/pidgin-arch.fig Mon Apr 23 07:44:12 2007 +0000 @@ -0,0 +1,141 @@ +#FIG 3.2 Produced by xfig version 3.2.5-alpha5 +Landscape +Center +Inches +A4 +100.00 +Single +-2 +1200 2 +5 1 0 1 0 7 50 -1 -1 0.000 0 0 1 0 2400.000 -4500.000 6900 1500 4500 2700 2400 3000 + 1 1 1.00 60.00 120.00 +6 4800 825 6300 1275 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 4800 825 6300 825 6300 1275 4800 1275 4800 825 +4 0 0 50 -1 0 12 0.0000 4 135 1050 5025 1125 Event Hooks\001 +-6 +6 525 375 6300 675 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 525 375 6300 375 6300 675 525 675 525 375 +4 0 0 50 -1 0 12 0.0000 4 135 1590 2700 600 User Interface Code\001 +-6 +6 4800 2925 6300 3375 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 4800 2925 6300 2925 6300 3375 4800 3375 4800 2925 +4 0 0 50 -1 0 12 0.0000 4 135 1050 5025 3225 Event Hooks\001 +-6 +6 300 3900 2400 6300 +6 600 4800 2100 5250 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 600 4800 2100 4800 2100 5250 600 5250 600 4800 +4 0 0 50 -1 0 12 0.0000 4 180 1185 750 5100 PrplInfo Struct\001 +-6 +6 525 5925 2175 6225 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 525 6225 2175 6225 2175 5925 525 5925 525 6225 +4 0 0 50 -1 0 12 0.0000 4 135 1170 750 6150 Protocol Code\001 +-6 +6 300 4500 2400 6300 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5 + 2400 6300 2400 4500 300 4500 300 6300 2400 6300 +4 0 0 50 -1 0 12 0.0000 4 180 1275 750 5625 Protocol Plugin\001 +-6 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 1050 4500 1050 3900 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 1350 4200 1350 4800 +-6 +6 3000 1350 4500 1800 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 3000 1350 4500 1350 4500 1800 3000 1800 3000 1350 +4 0 0 50 -1 0 12 0.0000 4 135 810 3300 1650 Callbacks\001 +-6 +6 7200 1425 8700 1875 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 7200 1425 8700 1425 8700 1875 7200 1875 7200 1425 +4 0 0 50 -1 0 12 0.0000 4 135 810 7500 1725 Callbacks\001 +-6 +6 7200 3525 8700 3975 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 7200 3525 8700 3525 8700 3975 7200 3975 7200 3525 +4 0 0 50 -1 0 12 0.0000 4 135 810 7500 3825 Callbacks\001 +-6 +6 2100 3900 4800 6300 +6 3000 4800 4500 5250 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 3000 4800 4500 4800 4500 5250 3000 5250 3000 4800 +4 0 0 50 -1 0 12 0.0000 4 180 1185 3150 5100 PrplInfo Struct\001 +-6 +6 2925 5925 4575 6225 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 2925 6225 4575 6225 4575 5925 2925 5925 2925 6225 +4 0 0 50 -1 0 12 0.0000 4 135 1170 3150 6150 Protocol Code\001 +-6 +6 2700 4500 4800 6300 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5 + 4800 6300 4800 4500 2700 4500 2700 6300 4800 6300 +4 0 0 50 -1 0 12 0.0000 4 180 1275 3150 5625 Protocol Plugin\001 +-6 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 3750 4200 3750 4800 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 3000 4500 2100 3900 +-6 +6 600 2700 2400 3900 +6 900 3075 2025 3525 +4 0 0 50 -1 0 12 0.0000 4 180 975 975 3225 Pidgin Core\001 +4 0 0 50 -1 0 12 0.0000 4 180 1110 900 3450 Functionality\001 +-6 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 600 2700 2400 2700 2400 3900 600 3900 600 2700 +-6 +6 4800 1350 6300 1800 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 4800 1350 6300 1350 6300 1800 4800 1800 4800 1350 +4 0 0 50 -1 0 12 0.0000 4 180 1365 4875 1650 UiOps Structures\001 +-6 +6 6900 2400 9000 4200 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5 + 9000 4200 9000 2400 6900 2400 6900 4200 9000 4200 +4 0 0 50 -1 0 12 0.0000 4 180 975 7500 2925 Core Plugin\001 +-6 +6 6900 300 9000 2100 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5 + 9000 2100 9000 300 6900 300 6900 2100 9000 2100 +4 0 0 50 -1 0 12 0.0000 4 180 780 7500 825 UI Plugin\001 +-6 +6 5700 4950 8625 5550 +4 0 0 50 -1 0 16 0.0000 4 180 1965 6150 5175 A Brief Overview\001 +4 0 0 50 -1 0 16 0.0000 4 240 2895 5700 5475 Of the Pidgin Architecture\001 +-6 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5 + 6600 2100 6600 300 300 300 300 2100 6600 2100 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 5550 2400 5550 1800 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 4200 1800 5100 2925 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 1050 2100 1050 2700 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5 + 6600 4200 6600 2400 300 2400 300 4200 6600 4200 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 6900 3600 2400 3600 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 7200 1575 6300 1050 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 7200 1725 6300 3000 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 7200 3750 6300 3150 +4 1 0 50 -1 0 12 0.0000 4 135 1110 1125 1275 User Interface\001 +4 0 0 50 -1 0 12 0.0000 4 135 390 3225 3375 Core\001
--- a/finch/gntplugin.c Mon Apr 23 07:03:53 2007 +0000 +++ b/finch/gntplugin.c Mon Apr 23 07:44:12 2007 +0000 @@ -30,9 +30,11 @@ #include <gnttree.h> #include "notify.h" +#include "request.h" #include "finch.h" #include "gntplugin.h" +#include "gntrequest.h" static struct { @@ -44,6 +46,8 @@ static GHashTable *confwins; +static void process_pref_frame(PurplePluginPrefFrame *frame); + static void decide_conf_button(PurplePlugin *plugin) { @@ -195,8 +199,7 @@ else if (plugin->info->prefs_info && plugin->info->prefs_info->get_plugin_pref_frame) { - purple_notify_info(plugin, _("..."), - _("Still need to do something about this."), NULL); + process_pref_frame(plugin->info->prefs_info->get_plugin_pref_frame(plugin)); return; } else @@ -277,3 +280,59 @@ decide_conf_button(gnt_tree_get_selection_data(GNT_TREE(tree))); } +static void +process_pref_frame(PurplePluginPrefFrame *frame) +{ + PurpleRequestField *field; + PurpleRequestFields *fields; + PurpleRequestFieldGroup *group = NULL; + GList *prefs; + + fields = purple_request_fields_new(); + + for (prefs = purple_plugin_pref_frame_get_prefs(frame); prefs; prefs = prefs->next) { + PurplePluginPref *pref = prefs->data; + const char *name = purple_plugin_pref_get_name(pref); + const char *label = purple_plugin_pref_get_label(pref); + if(name == NULL) { + if(label == NULL) + continue; + + if(purple_plugin_pref_get_type(pref) == PURPLE_PLUGIN_PREF_INFO) { + field = purple_request_field_label_new("*", purple_plugin_pref_get_label(pref)); + purple_request_field_group_add_field(group, field); + } else { + group = purple_request_field_group_new(label); + purple_request_fields_add_group(fields, group); + } + continue; + } + + field = NULL; + switch(purple_prefs_get_type(name)) { + case PURPLE_PREF_BOOLEAN: + field = purple_request_field_bool_new(name, label, purple_prefs_get_bool(name)); + break; + case PURPLE_PREF_INT: + field = purple_request_field_int_new(name, label, purple_prefs_get_int(name)); + break; + case PURPLE_PREF_STRING: + field = purple_request_field_string_new(name, label, purple_prefs_get_string(name), + purple_plugin_pref_get_format_type(pref) & PURPLE_STRING_FORMAT_TYPE_MULTILINE); + break; + default: + break; + } + if (field) { + if (group == NULL) { + group = purple_request_field_group_new(_("Preferences")); + purple_request_fields_add_group(fields, group); + } + purple_request_field_group_add_field(group, field); + } + } + + purple_request_fields(NULL, _("Preferences"), NULL, NULL, fields, + _("Save"), G_CALLBACK(finch_request_save_in_prefs), _("Cancel"), NULL, NULL); +} +
--- a/finch/gntplugin.h Mon Apr 23 07:03:53 2007 +0000 +++ b/finch/gntplugin.h Mon Apr 23 07:44:12 2007 +0000 @@ -28,6 +28,7 @@ #include <gnt.h> #include <plugin.h> +#include <pluginpref.h> #include <string.h>
--- a/finch/gntprefs.c Mon Apr 23 07:03:53 2007 +0000 +++ b/finch/gntprefs.c Mon Apr 23 07:44:12 2007 +0000 @@ -198,57 +198,7 @@ static void save_cb(void *data, PurpleRequestFields *allfields) { - GList *list; - for (list = purple_request_fields_get_groups(allfields); list; list = list->next) - { - PurpleRequestFieldGroup *group = list->data; - GList *fields = purple_request_field_group_get_fields(group); - - for (; fields ; fields = fields->next) - { - PurpleRequestField *field = fields->data; - PurpleRequestFieldType type = purple_request_field_get_type(field); - PurplePrefType pt; - gpointer val = NULL; - const char *id = purple_request_field_get_id(field); - - switch (type) - { - case PURPLE_REQUEST_FIELD_LIST: - val = purple_request_field_list_get_selected(field)->data; - break; - case PURPLE_REQUEST_FIELD_BOOLEAN: - val = GINT_TO_POINTER(purple_request_field_bool_get_value(field)); - break; - case PURPLE_REQUEST_FIELD_INTEGER: - val = GINT_TO_POINTER(purple_request_field_int_get_value(field)); - break; - case PURPLE_REQUEST_FIELD_STRING: - val = (gpointer)purple_request_field_string_get_value(field); - break; - default: - break; - } - - pt = purple_prefs_get_type(id); - switch (pt) - { - case PURPLE_PREF_INT: - if (type == PURPLE_REQUEST_FIELD_LIST) /* Lists always return string */ - sscanf(val, "%ld", (long int *)&val); - purple_prefs_set_int(id, GPOINTER_TO_INT(val)); - break; - case PURPLE_PREF_BOOLEAN: - purple_prefs_set_bool(id, GPOINTER_TO_INT(val)); - break; - case PURPLE_PREF_STRING: - purple_prefs_set_string(id, val); - break; - default: - break; - } - } - } + finch_request_save_in_prefs(data, allfields); free_strings(); }
--- a/finch/gntrequest.c Mon Apr 23 07:03:53 2007 +0000 +++ b/finch/gntrequest.c Mon Apr 23 07:44:12 2007 +0000 @@ -139,6 +139,11 @@ finch_close_request(PurpleRequestType type, gpointer ui_handle) { GntWidget *widget = GNT_WIDGET(ui_handle); + if (type == PURPLE_REQUEST_FIELDS) { + PurpleRequestFields *fields = g_object_get_data(G_OBJECT(widget), "fields"); + purple_request_fields_destroy(fields); + } + while (widget->parent) widget = widget->parent; gnt_widget_destroy(widget); @@ -243,7 +248,7 @@ gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata"); GList *list; - /* Update the data of the fields. GtkPurple does this differently. Instead of + /* Update the data of the fields. Pidgin does this differently. Instead of * updating the fields at the end like here, it updates the appropriate field * instantly whenever a change is made. That allows it to make sure the * 'required' fields are entered before the user can hit OK. It's not the case @@ -532,6 +537,8 @@ gnt_box_add_widget(GNT_BOX(window), box); gnt_widget_show(window); + + g_object_set_data(G_OBJECT(window), "fields", allfields); return window; } @@ -620,3 +627,54 @@ { } +void finch_request_save_in_prefs(gpointer null, PurpleRequestFields *allfields) +{ + GList *list; + for (list = purple_request_fields_get_groups(allfields); list; list = list->next) { + PurpleRequestFieldGroup *group = list->data; + GList *fields = purple_request_field_group_get_fields(group); + + for (; fields ; fields = fields->next) { + PurpleRequestField *field = fields->data; + PurpleRequestFieldType type = purple_request_field_get_type(field); + PurplePrefType pt; + gpointer val = NULL; + const char *id = purple_request_field_get_id(field); + + switch (type) { + case PURPLE_REQUEST_FIELD_LIST: + val = purple_request_field_list_get_selected(field)->data; + break; + case PURPLE_REQUEST_FIELD_BOOLEAN: + val = GINT_TO_POINTER(purple_request_field_bool_get_value(field)); + break; + case PURPLE_REQUEST_FIELD_INTEGER: + val = GINT_TO_POINTER(purple_request_field_int_get_value(field)); + break; + case PURPLE_REQUEST_FIELD_STRING: + val = (gpointer)purple_request_field_string_get_value(field); + break; + default: + break; + } + + pt = purple_prefs_get_type(id); + switch (pt) { + case PURPLE_PREF_INT: + if (type == PURPLE_REQUEST_FIELD_LIST) /* Lists always return string */ + sscanf(val, "%ld", (long int *)&val); + purple_prefs_set_int(id, GPOINTER_TO_INT(val)); + break; + case PURPLE_PREF_BOOLEAN: + purple_prefs_set_bool(id, GPOINTER_TO_INT(val)); + break; + case PURPLE_PREF_STRING: + purple_prefs_set_string(id, val); + break; + default: + break; + } + } + } +} +
--- a/finch/gntrequest.h Mon Apr 23 07:03:53 2007 +0000 +++ b/finch/gntrequest.h Mon Apr 23 07:44:12 2007 +0000 @@ -49,6 +49,12 @@ */ void finch_request_uninit(void); +/** + * Save the request fields in preferences where the id attribute of each field is the + * id of a preference. + */ +void finch_request_save_in_prefs(gpointer null, PurpleRequestFields *fields); + /*@}*/ #endif
--- a/finch/plugins/gntgf.c Mon Apr 23 07:03:53 2007 +0000 +++ b/finch/plugins/gntgf.c Mon Apr 23 07:44:12 2007 +0000 @@ -111,6 +111,15 @@ } #ifdef HAVE_X11 +static int +error_handler(Display *dpy, XErrorEvent *error) +{ + char buffer[1024]; + XGetErrorText(dpy, error->error_code, buffer, sizeof(buffer)); + purple_debug_error("gntgf", "Could not set urgent to the window: %s.\n", buffer); + return 0; +} + static void urgent() { @@ -130,9 +139,14 @@ if (dpy == NULL) return; + XSetErrorHandler(error_handler); hints = XGetWMHints(dpy, id); - hints->flags|=XUrgencyHint; - XSetWMHints(dpy, id, hints); + if (hints) { + hints->flags|=XUrgencyHint; + XSetWMHints(dpy, id, hints); + XFree(hints); + } + XSetErrorHandler(NULL); XFlush(dpy); XCloseDisplay(dpy);
--- a/libpurple/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -13,7 +13,7 @@ ## ## INCLUDE PATHS ## -INCLUDE_PATHS = \ +INCLUDE_PATHS += \ -I$(PURPLE_TOP) \ -I$(PURPLE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) \ @@ -22,7 +22,7 @@ -I$(GTK_TOP)/lib/glib-2.0/include \ -I$(LIBXML2_TOP)/include -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(LIBXML2_TOP)/lib ##
--- a/libpurple/plugins/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/plugins/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -25,7 +25,7 @@ -I$(PURPLE_TOP) \ -I$(PURPLE_TOP)/win32 -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) ##
--- a/libpurple/plugins/perl/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/plugins/perl/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -24,7 +24,7 @@ -I$(GTK_TOP)/lib/glib-2.0/include \ -I$(PERL_LIB_TOP)/CORE -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) \ -L$(PERL_LIB_TOP)
--- a/libpurple/plugins/perl/common/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/plugins/perl/common/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -17,7 +17,7 @@ ## ## INCLUDE PATHS ## -INCLUDE_PATHS = -I. \ +INCLUDE_PATHS += -I. \ -I$(PIDGIN_TREE_TOP) \ -I$(PURPLE_TOP) \ -I$(GTK_TOP)/include \ @@ -25,7 +25,7 @@ -I$(GTK_TOP)/lib/glib-2.0/include \ -I$(PERL_LIB_TOP)/CORE -LIB_PATHS = -L$(PERL_LIB_TOP) \ +LIB_PATHS += -L$(PERL_LIB_TOP) \ -L$(PERL_PLUGIN_TOP) \ -L$(PURPLE_TOP) \ -L$(GTK_TOP)/lib
--- a/libpurple/plugins/ssl/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/plugins/ssl/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -36,7 +36,7 @@ -I$(NSS_TOP)/include \ -I$(NSPR_TOP)/include -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) \ -L$(NSS_TOP)/lib \ -L$(NSPR_TOP)/lib
--- a/libpurple/protocols/bonjour/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/bonjour/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -33,7 +33,7 @@ -I$(PURPLE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(HOWL_TOP)/lib \ -L$(PURPLE_TOP)
--- a/libpurple/protocols/gg/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/gg/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -33,7 +33,7 @@ -I$(PURPLE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) \ ##
--- a/libpurple/protocols/irc/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/irc/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -31,7 +31,7 @@ -I$(PURPLE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) ##
--- a/libpurple/protocols/jabber/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/jabber/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -34,7 +34,7 @@ -I$(PURPLE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(LIBXML2_TOP)/lib \ -L$(PURPLE_TOP) \ -L.
--- a/libpurple/protocols/jabber/auth.c Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/jabber/auth.c Mon Apr 23 07:44:12 2007 +0000 @@ -831,7 +831,7 @@ { const char *ns = xmlnode_get_namespace(packet); #ifdef HAVE_CYRUS_SASL - const int *x; + const void *x; #endif if(!ns || strcmp(ns, "urn:ietf:params:xml:ns:xmpp-sasl")) { @@ -865,9 +865,9 @@ } /* If we've negotiated a security layer, we need to enable it */ sasl_getprop(js->sasl, SASL_SSF, &x); - if (*x > 0) { + if (*(int *)x > 0) { sasl_getprop(js->sasl, SASL_MAXOUTBUF, &x); - js->sasl_maxbuf = *x; + js->sasl_maxbuf = *(int *)x; } #endif
--- a/libpurple/protocols/msn/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/msn/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -31,7 +31,7 @@ -I$(PURPLE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) ##
--- a/libpurple/protocols/novell/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/novell/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -31,7 +31,7 @@ -I$(PURPLE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) ##
--- a/libpurple/protocols/oscar/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/oscar/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -33,7 +33,7 @@ -I$(PURPLE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) \ -L.
--- a/libpurple/protocols/oscar/family_feedbag.c Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/oscar/family_feedbag.c Mon Apr 23 07:44:12 2007 +0000 @@ -132,8 +132,21 @@ do { new->gid += 0x0001; for (cur=*list, i=0; ((cur) && (!i)); cur=cur->next) - if ((cur->type == AIM_SSI_TYPE_GROUP) && (cur->gid == new->gid)) + if ((cur->type == AIM_SSI_TYPE_GROUP) && (cur->gid == new->gid)) { i=1; + break; + } + } while (i); + } + } else if (new->gid == 0x0000) { + if (new->bid == 0xFFFF) { + do { + new->bid += 0x0001; + for (cur=*list, i=0; ((cur) && (!i)); cur=cur->next) + if (((cur->bid == new->bid) && (cur->gid == new->gid)) || (cur->gid == new->bid)) { + i=1; + break; + } } while (i); } } else { @@ -141,8 +154,10 @@ do { new->bid += 0x0001; for (cur=*list, i=0; ((cur) && (!i)); cur=cur->next) - if ((cur->bid == new->bid) && (cur->gid == new->gid)) + if ((cur->bid == new->bid) && (cur->gid == new->gid)) { i=1; + break; + } } while (i); } } @@ -550,8 +565,10 @@ /* We're out of stuff to do, so tell the AIM servers we're done and exit */ if (!od->ssi.pending) { - aim_ssi_modend(od); - od->ssi.in_transaction = FALSE; + if (od->ssi.in_transaction) { + aim_ssi_modend(od); + od->ssi.in_transaction = FALSE; + } return 0; } @@ -764,7 +781,7 @@ int aim_ssi_addpermit(OscarData *od, const char *name) { - if (!od || !name) + if (!od || !name || !od->ssi.received_data) return -EINVAL; /* Make sure the master group exists */ @@ -790,7 +807,7 @@ int aim_ssi_adddeny(OscarData *od, const char *name) { - if (!od || !name) + if (!od || !name || !od->ssi.received_data) return -EINVAL; /* Make sure the master group exists */ @@ -1040,7 +1057,7 @@ { struct aim_ssi_item *tmp; - if (!od) + if (!od || !od->ssi.received_data) return -EINVAL; /* Find the PDINFO item, or add it if it does not exist */ @@ -1072,12 +1089,12 @@ * @param iconcsumlen Length of the MD5 checksum given above. Should be 0x10 bytes. * @return Return 0 if no errors, otherwise return the error number. */ -int aim_ssi_seticon(OscarData *od, const guint8 *iconsum, guint16 iconsumlen) +int aim_ssi_seticon(OscarData *od, const guint8 *iconsum, guint8 iconsumlen) { struct aim_ssi_item *tmp; guint8 *csumdata; - if (!od || !iconsum || !iconsumlen) + if (!od || !iconsum || !iconsumlen || !od->ssi.received_data) return -EINVAL; /* Find the ICONINFO item, or add it if it does not exist */ @@ -1091,7 +1108,8 @@ /* Need to add the 0x00d5 TLV to the TLV chain */ csumdata = (guint8 *)malloc((iconsumlen+2)*sizeof(guint8)); - aimutil_put16(&csumdata[0], iconsumlen); + aimutil_put8(&csumdata[0], 0x00); + aimutil_put8(&csumdata[1], iconsumlen); memcpy(&csumdata[2], iconsum, iconsumlen); aim_tlvlist_replace_raw(&tmp->data, 0x00d5, (iconsumlen+2) * sizeof(guint8), csumdata); free(csumdata); @@ -1134,7 +1152,7 @@ int aim_ssi_setpresence(OscarData *od, guint32 presence) { struct aim_ssi_item *tmp; - if (!od) + if (!od || !od->ssi.received_data) return -EINVAL; /* Find the PRESENCEPREFS item, or add it if it does not exist */
--- a/libpurple/protocols/oscar/family_locate.c Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/oscar/family_locate.c Mon Apr 23 07:44:12 2007 +0000 @@ -294,6 +294,21 @@ cur->status_len = userinfo->status_len; } + if (userinfo->itmsurl != NULL) { + free(cur->itmsurl); + free(cur->itmsurl_encoding); + if (userinfo->itmsurl_len > 0) { + cur->itmsurl = (char *)malloc(userinfo->itmsurl_len); + memcpy(cur->itmsurl, userinfo->itmsurl, userinfo->itmsurl_len); + } else + cur->itmsurl = NULL; + if (userinfo->itmsurl_encoding != NULL) + cur->itmsurl_encoding = strdup(userinfo->itmsurl_encoding); + else + cur->itmsurl_encoding = NULL; + cur->itmsurl_len = userinfo->itmsurl_len; + } + if (userinfo->away != NULL) { free(cur->away); free(cur->away_encoding); @@ -577,6 +592,8 @@ free(info->info_encoding); free(info->status); free(info->status_encoding); + free(info->itmsurl); + free(info->itmsurl_encoding); free(info->away); free(info->away_encoding); } @@ -841,6 +858,28 @@ } } break; + case 0x0009: { /* An iTunes Music Store link */ + free(outinfo->itmsurl); + free(outinfo->itmsurl_encoding); + if (length2 >= 4) { + outinfo->itmsurl_len = byte_stream_get16(bs); + outinfo->itmsurl = byte_stream_getstr(bs, outinfo->itmsurl_len); + if (byte_stream_get16(bs) == 0x0001) { + /* We have an encoding */ + byte_stream_get16(bs); + outinfo->itmsurl_encoding = byte_stream_getstr(bs, byte_stream_get16(bs)); + } else { + /* No explicit encoding, client should use UTF-8 */ + outinfo->itmsurl_encoding = NULL; + } + } else { + byte_stream_advance(bs, length2); + outinfo->itmsurl_len = 0; + outinfo->itmsurl = g_strdup(""); + outinfo->itmsurl_encoding = NULL; + } + } break; + default: { byte_stream_advance(bs, length2); } break;
--- a/libpurple/protocols/oscar/oscar.c Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/oscar/oscar.c Mon Apr 23 07:44:12 2007 +0000 @@ -1778,8 +1778,20 @@ if (have_status_message) { - purple_prpl_got_user_status(account, info->sn, status_id, - "message", message, NULL); + if ((status_id == OSCAR_STATUS_ID_AVAILABLE) && (info->itmsurl != NULL)) + { + char *itmsurl; + itmsurl = oscar_encoding_to_utf8(info->itmsurl_encoding, + info->itmsurl, info->itmsurl_len); + purple_prpl_got_user_status(account, info->sn, status_id, + "message", message, "itmsurl", itmsurl, NULL); + g_free(itmsurl); + } + else + { + purple_prpl_got_user_status(account, info->sn, status_id, + "message", message, NULL); + } g_free(message); } else @@ -2890,6 +2902,25 @@ g_free(tmp); } +#if 0 + /* + * TODO: This code is disabled because it's kind of stupid. iTunes + * doesn't run in Linux. It'd be cool if we surfaced this URL + * to Windows users, but it would be better to just linkify + * the available message, above. + */ + + /* iTunes Music Store link */ + if (userinfo->itmsurl != NULL) + { + if (userinfo->itmsurl[0] != '\0') + tmp = oscar_encoding_to_utf8(userinfo->itmsurl_encoding, + userinfo->itmsurl, userinfo->itmsurl_len); + oscar_user_info_add_pair(user_info, _("iTunes Music Store Link"), tmp); + g_free(tmp); + } +#endif + /* Away message */ if ((userinfo->flags & AIM_FLAG_AWAY) && (userinfo->away_len > 0) && (userinfo->away != NULL) && (userinfo->away_encoding != NULL)) { tmp = oscar_encoding_extract(userinfo->away_encoding);
--- a/libpurple/protocols/oscar/oscar.h Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/oscar/oscar.h Mon Apr 23 07:44:12 2007 +0000 @@ -1001,6 +1001,10 @@ char *status_encoding; guint16 status_len; + char *itmsurl; + char *itmsurl_encoding; + guint16 itmsurl_len; + char *away; char *away_encoding; guint16 away_len; @@ -1214,7 +1218,7 @@ int aim_ssi_deletelist(OscarData *od); int aim_ssi_setpermdeny(OscarData *od, guint8 permdeny, guint32 vismask); int aim_ssi_setpresence(OscarData *od, guint32 presence); -int aim_ssi_seticon(OscarData *od, const guint8 *iconsum, guint16 iconsumlen); +int aim_ssi_seticon(OscarData *od, const guint8 *iconsum, guint8 iconsumlen); int aim_ssi_delicon(OscarData *od);
--- a/libpurple/protocols/qq/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/qq/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -31,7 +31,7 @@ -I$(PURPLE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = \ +LIB_PATHS += \ -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP)
--- a/libpurple/protocols/sametime/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/sametime/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -33,7 +33,7 @@ -I$(PURPLE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(MEANWHILE_TOP)/lib \ -L$(PURPLE_TOP)
--- a/libpurple/protocols/silc/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/silc/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -34,7 +34,7 @@ -I$(PIDGIN_TREE_TOP) \ -I$(SILC_TOOLKIT)/include -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) \ -L$(SILC_TOOLKIT)/lib
--- a/libpurple/protocols/silc/wb.c Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/silc/wb.c Mon Apr 23 07:44:12 2007 +0000 @@ -433,7 +433,7 @@ wb->proto_data = NULL; } -void silcpurple_wb_get_dimensions(PurpleWhiteboard *wb, int *width, int *height) +void silcpurple_wb_get_dimensions(const PurpleWhiteboard *wb, int *width, int *height) { SilcPurpleWb wbs = wb->proto_data; *width = wbs->width; @@ -452,7 +452,7 @@ purple_whiteboard_set_dimensions(wb, wbs->width, wbs->height); } -void silcpurple_wb_get_brush(PurpleWhiteboard *wb, int *size, int *color) +void silcpurple_wb_get_brush(const PurpleWhiteboard *wb, int *size, int *color) { SilcPurpleWb wbs = wb->proto_data; *size = wbs->brush_size;
--- a/libpurple/protocols/silc/wb.h Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/silc/wb.h Mon Apr 23 07:44:12 2007 +0000 @@ -39,9 +39,9 @@ SilcUInt32 message_len); void silcpurple_wb_start(PurpleWhiteboard *wb); void silcpurple_wb_end(PurpleWhiteboard *wb); -void silcpurple_wb_get_dimensions(PurpleWhiteboard *wb, int *width, int *height); +void silcpurple_wb_get_dimensions(const PurpleWhiteboard *wb, int *width, int *height); void silcpurple_wb_set_dimensions(PurpleWhiteboard *wb, int width, int height); -void silcpurple_wb_get_brush(PurpleWhiteboard *wb, int *size, int *color); +void silcpurple_wb_get_brush(const PurpleWhiteboard *wb, int *size, int *color); void silcpurple_wb_set_brush(PurpleWhiteboard *wb, int size, int color); void silcpurple_wb_send(PurpleWhiteboard *wb, GList *draw_list); void silcpurple_wb_clear(PurpleWhiteboard *wb);
--- a/libpurple/protocols/simple/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/simple/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -31,7 +31,7 @@ -I$(PURPLE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) ##
--- a/libpurple/protocols/toc/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/toc/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -31,7 +31,7 @@ -I$(LIBPIDGIN_TREE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(LIBPIDGIN_TREE_TOP) ##
--- a/libpurple/protocols/yahoo/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/yahoo/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -31,7 +31,7 @@ -I$(PURPLE_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) ##
--- a/libpurple/protocols/zephyr/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/libpurple/protocols/zephyr/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -42,7 +42,7 @@ INCLUDE_PATHS += -I$(KRB4_TOP)/inc/krb4 endif -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) ifeq ($(USE_KRB4), true)
--- a/pidgin/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/pidgin/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -31,7 +31,7 @@ -I$(GTK_TOP)/include/glib-2.0 \ -I$(GTK_TOP)/lib/glib-2.0/include -INCLUDE_PATHS = \ +INCLUDE_PATHS += \ $(PURPLE_INCLUDE_PATHS) \ -I$(PIDGIN_IDLETRACK_TOP) \ -I$(PIDGIN_TOP) \ @@ -44,7 +44,7 @@ -I$(GTKSPELL_TOP) \ -I$(ASPELL_TOP)/include -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) \ -L$(PIDGIN_TOP) \ -L$(PIDGIN_IDLETRACK_TOP) \
--- a/pidgin/gtkaccount.c Mon Apr 23 07:03:53 2007 +0000 +++ b/pidgin/gtkaccount.c Mon Apr 23 07:44:12 2007 +0000 @@ -229,8 +229,8 @@ if (pixbuf == NULL) { /* Show a placeholder icon */ - GtkIconSize icon_size = gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL); - pixbuf = gtk_widget_render_icon(dialog->window, PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE, + GtkIconSize icon_size = gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_SMALL); + pixbuf = gtk_widget_render_icon(dialog->window, PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR, icon_size, "PidginAccount"); }
--- a/pidgin/gtkconv.c Mon Apr 23 07:03:53 2007 +0000 +++ b/pidgin/gtkconv.c Mon Apr 23 07:44:12 2007 +0000 @@ -2002,6 +2002,8 @@ (event->keyval == GDK_F10) || (event->keyval == GDK_Shift_L) || (event->keyval == GDK_Shift_R) || + (event->keyval == GDK_Control_L) || + (event->keyval == GDK_Control_R) || (event->keyval == GDK_Escape) || (event->keyval == GDK_Up) || (event->keyval == GDK_Down) || @@ -2205,25 +2207,25 @@ if (l) return l; filename = g_strdup_printf("%s.png", prpl); - + path = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", "16", filename, NULL); pixbuf = gdk_pixbuf_new_from_file(path, NULL); if (pixbuf) l = g_list_append(l, pixbuf); g_free(path); - + path = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", "22", filename, NULL); pixbuf = gdk_pixbuf_new_from_file(path, NULL); if (pixbuf) l = g_list_append(l, pixbuf); g_free(path); - + path = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", "48", filename, NULL); pixbuf = gdk_pixbuf_new_from_file(path, NULL); if (pixbuf) l = g_list_append(l, pixbuf); g_free(path); - + g_hash_table_insert(prpl_lists, g_strdup(prpl), l); return l; } @@ -2308,7 +2310,7 @@ { PidginConversation *gtkconv; PidginWindow *win; - GList *l; + GList *l; GdkPixbuf *status = NULL; g_return_if_fail(conv != NULL); @@ -3159,7 +3161,7 @@ } if (gtkwin->menu.typing_icon == NULL) - { + { gtkwin->menu.typing_icon = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_MENU); pidgin_menu_tray_append(PIDGIN_MENU_TRAY(gtkwin->menu.tray), gtkwin->menu.typing_icon, @@ -3465,7 +3467,7 @@ pixbuf = gtk_widget_render_icon (gtkconv->tab_cont, image, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL), "GtkTreeView"); - + if (!pixbuf) return NULL; @@ -3473,6 +3475,7 @@ g_object_unref(pixbuf); if (flags && purple_conv_chat_is_user_ignored(chat, name)) { +/* TODO: the .../status/default directory isn't installed, should it be? */ filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "status", "default", "ignored.png", NULL); pixbuf = gdk_pixbuf_new_from_file(filename, NULL); g_free(filename); @@ -7848,7 +7851,7 @@ return window_list; } -static GList* +static GList* make_status_icon_list(const char *stock, GtkWidget *w) { GList *l = NULL; @@ -7863,8 +7866,8 @@ return l; } -static void -create_icon_lists(GtkWidget *w) +static void +create_icon_lists(GtkWidget *w) { available_list = make_status_icon_list(PIDGIN_STOCK_STATUS_AVAILABLE, w); busy_list = make_status_icon_list(PIDGIN_STOCK_STATUS_BUSY, w);
--- a/pidgin/gtkstatusbox.c Mon Apr 23 07:03:53 2007 +0000 +++ b/pidgin/gtkstatusbox.c Mon Apr 23 07:44:12 2007 +0000 @@ -2047,9 +2047,9 @@ if (status_box->buddy_icon == NULL) { /* Show a placeholder icon */ - GtkIconSize icon_size = gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL); + GtkIconSize icon_size = gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_SMALL); status_box->buddy_icon = gtk_widget_render_icon(GTK_WIDGET(status_box), - PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE, + PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR, icon_size, "PidginStatusBox"); }
--- a/pidgin/pidginstock.c Mon Apr 23 07:03:53 2007 +0000 +++ b/pidgin/pidginstock.c Mon Apr 23 07:44:12 2007 +0000 @@ -161,6 +161,7 @@ { PIDGIN_STOCK_TOOLBAR_PLUGINS, "toolbar", "plugins.png", TRUE, FALSE, FALSE, FALSE, FALSE, FALSE }, { PIDGIN_STOCK_TOOLBAR_TYPING, "toolbar", "typing.png", TRUE, FALSE, FALSE, FALSE, FALSE, FALSE }, { PIDGIN_STOCK_TOOLBAR_UNBLOCK, "toolbar", "unblock.png", TRUE, FALSE, FALSE, FALSE, FALSE, FALSE }, + { PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR, "toolbar", "select-avatar.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE }, { PIDGIN_STOCK_TRAY_AVAILABLE, "tray", "tray-online.png", TRUE, TRUE, FALSE, FALSE, FALSE, FALSE }, { PIDGIN_STOCK_TRAY_AWAY, "tray", "tray-away.png", TRUE, TRUE, FALSE, FALSE, FALSE, FALSE },
--- a/pidgin/pidginstock.h Mon Apr 23 07:03:53 2007 +0000 +++ b/pidgin/pidginstock.h Mon Apr 23 07:44:12 2007 +0000 @@ -123,6 +123,7 @@ #define PIDGIN_STOCK_TOOLBAR_TYPING "pidgin-typing" #define PIDGIN_STOCK_TOOLBAR_USER_INFO "pidgin-info" #define PIDGIN_STOCK_TOOLBAR_UNBLOCK "pidgin-unblock" +#define PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR "pidgin-select-avatar" /* Tray icons */ #define PIDGIN_STOCK_TRAY_AVAILABLE "pidgin-tray-available"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/toolbar/22/Makefile.am Mon Apr 23 07:44:12 2007 +0000 @@ -0,0 +1,7 @@ +SUBDIRS = scalable + +EXTRA_DIST = select-avatar.png + +pidgintoolbarpixdir = $(datadir)/pixmaps/pidgin/toolbar/22 +pidgintoolbarpix_DATA = $(EXTRA_DIST) +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/toolbar/22/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -0,0 +1,20 @@ +# +# Makefile.mingw +# +# Description: Makefile for win32 (mingw) version of Pidgin pixmaps +# + +PIDGIN_TREE_TOP := ../../../.. +include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak + +datadir = $(PIDGIN_INSTALL_DIR) +include ./Makefile.am + +.PHONY: install + +install: + if test '$(pidgintoolbarpix_DATA)'; then \ + mkdir -p $(pidgintoolbarpixdir); \ + cp $(pidgintoolbarpix_DATA) $(pidgintoolbarpixdir); \ + fi; +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/toolbar/22/scalable/Makefile.am Mon Apr 23 07:44:12 2007 +0000 @@ -0,0 +1,1 @@ +EXTRA_DIST = select-avatar.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/toolbar/22/scalable/select-avatar.svg Mon Apr 23 07:44:12 2007 +0000 @@ -0,0 +1,362 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="32px" + height="32px" + id="svg4220" + sodipodi:version="0.32" + inkscape:version="0.44.1" + sodipodi:docbase="/home/hbons/Desktop" + sodipodi:docname="select-avatar.svg" + inkscape:export-filename="/home/hbons/Desktop/select-avatar.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs4222"> + <linearGradient + inkscape:collect="always" + id="linearGradient5456"> + <stop + style="stop-color:#eeeeec;stop-opacity:1;" + offset="0" + id="stop5458" /> + <stop + style="stop-color:#eeeeec;stop-opacity:0;" + offset="1" + id="stop5460" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient5448"> + <stop + style="stop-color:#204a87;stop-opacity:1;" + offset="0" + id="stop5450" /> + <stop + style="stop-color:#204a87;stop-opacity:0;" + offset="1" + id="stop5452" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient5430"> + <stop + style="stop-color:#eeeeec;stop-opacity:1;" + offset="0" + id="stop5432" /> + <stop + style="stop-color:#eeeeec;stop-opacity:0;" + offset="1" + id="stop5434" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient7300"> + <stop + style="stop-color:#eeeeec;stop-opacity:1;" + offset="0" + id="stop7302" /> + <stop + style="stop-color:#eeeeec;stop-opacity:0;" + offset="1" + id="stop7304" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient7300" + id="radialGradient7306" + cx="24.248138" + cy="27.184834" + fx="24.248138" + fy="27.184834" + r="12.499089" + gradientTransform="matrix(0.964825,0,0,0.631898,0.954495,11.94073)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient3800"> + <stop + style="stop-color:#f4d9b1;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop3802" /> + <stop + style="stop-color:#df9725;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop3804" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3800" + id="radialGradient4171" + gradientUnits="userSpaceOnUse" + cx="27.702486" + cy="14.540437" + fx="27.702486" + fy="14.540437" + r="9.1620579" + gradientTransform="matrix(1.191087,0,0,1.124022,-5.086983,-1.361697)" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3816"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop3818" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop3820" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3816" + id="radialGradient4179" + gradientUnits="userSpaceOnUse" + cx="31.112698" + cy="19.008621" + fx="31.112698" + fy="19.008621" + r="8.6620579" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5235"> + <stop + style="stop-color:#2e3436;stop-opacity:1;" + offset="0" + id="stop5237" /> + <stop + style="stop-color:#2e3436;stop-opacity:0;" + offset="1" + id="stop5239" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5235" + id="radialGradient5241" + cx="23.234518" + cy="40.688972" + fx="23.234518" + fy="40.688972" + r="16.956987" + gradientTransform="matrix(1,0,0,0.133183,0,35.2699)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5430" + id="linearGradient5436" + x1="21.923523" + y1="5.3572826" + x2="21.923523" + y2="8.2855873" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5448" + id="linearGradient5454" + x1="19.647484" + y1="20.087271" + x2="19.647484" + y2="16.317591" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5456" + id="radialGradient5462" + cx="23.841593" + cy="5.5049477" + fx="23.841593" + fy="5.5049477" + r="12.434912" + gradientTransform="matrix(1,0,0,0.455294,0,5.588267)" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="12.862897" + inkscape:cx="9.3284133" + inkscape:cy="23.609005" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="1274" + inkscape:window-height="966" + inkscape:window-x="3" + inkscape:window-y="25" /> + <metadata + id="metadata4225"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <rect + style="opacity:0.18777293;fill:#2e3436;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5241" + width="28.220703" + height="4.7880888" + x="3.4984343" + y="29" + rx="1.9791059" + ry="2.0652294" + transform="matrix(1.133919,0,0,0.835407,-3.966942,3.773208)" /> + <rect + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:#787878;stroke-width:1.02434373;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4228" + width="30.345438" + height="29.079981" + x="1" + y="1" + transform="matrix(0.955663,0,0,0.99725,0.544337,0.50275)" + rx="0.85753107" + ry="0.85753107" /> + <rect + style="opacity:1;fill:#3465a4;fill-opacity:1;stroke:#204a87;stroke-width:0.7288478;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5398" + width="24.065218" + height="10.518487" + x="4" + y="5" + rx="0" + ry="0" + transform="matrix(1.04083,0,0,1.808617,-0.687226,-5.543083)" /> + <path + sodipodi:type="arc" + style="opacity:0.52838428;fill:url(#radialGradient5241);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path4340" + sodipodi:cx="23.234518" + sodipodi:cy="40.688972" + sodipodi:rx="16.956987" + sodipodi:ry="2.2583797" + d="M 40.191505 40.688972 A 16.956987 2.2583797 0 1 1 6.2775307,40.688972 A 16.956987 2.2583797 0 1 1 40.191505 40.688972 z" + transform="matrix(1.208941,0,0,1.980928,-23.06784,1.364833)" /> + <path + transform="matrix(2.539812,0,0,0.410815,-78.49908,61.24256)" + sodipodi:type="arc" + style="opacity:1;color:black;fill:url(#radialGradient4179);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path4306" + sodipodi:cx="31.112698" + sodipodi:cy="19.008621" + sodipodi:rx="8.6620579" + sodipodi:ry="8.6620579" + d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.45064,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z" /> + <rect + style="opacity:1;fill:#729fcf;fill-opacity:1;stroke:none;stroke-width:0.75000709;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5243" + width="24.065218" + height="10.518487" + x="4" + y="5" + rx="0" + ry="0" + transform="matrix(0.99729,0,0,1.711273,1.083923e-2,-4.556362)" /> + <rect + style="opacity:1;fill:url(#linearGradient5454);fill-opacity:1.0;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5400" + width="9.617548" + height="3.7166083" + x="14.382452" + y="16" + transform="matrix(2.495439,0,0,1.883437,-31.89053,-15.13499)" /> + <path + style="opacity:1;color:black;fill:#ad7fa8;fill-opacity:1;fill-rule:evenodd;stroke:#5c3566;stroke-width:2.18258166px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 25.986174,41.636039 L 36.592776,41.636039 C 39.59798,41.636039 42.57326,40.534107 43.663843,37.393398 C 44.699482,34.410922 43.84062,28.73134 37.123106,24.135146 L 24.57196,24.135146 C 17.854446,28.377786 17.014969,34.179977 18.561553,37.570174 C 20.137148,41.023964 22.804193,41.636039 25.986174,41.636039 z " + id="path4308" + sodipodi:nodetypes="cczcczc" + transform="matrix(0.45923,0,0,0.45712,-2.719922,3.467345)" /> + <path + sodipodi:type="inkscape:offset" + inkscape:radius="-1.1784238" + inkscape:original="M 24.5625 24.125 C 17.844986 28.367641 17.015916 34.172303 18.5625 37.5625 C 20.138096 41.016289 22.818019 41.625 26 41.625 L 36.59375 41.625 C 39.598953 41.624999 42.565667 40.546959 43.65625 37.40625 C 44.691891 34.423774 43.842514 28.721194 37.125 24.125 L 24.5625 24.125 z " + style="opacity:0.45454544;color:black;fill:url(#radialGradient7306);fill-opacity:1;fill-rule:evenodd;stroke:#eeeeec;stroke-width:2.44687629px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path7281" + d="M 24.96875,25.3125 C 18.887883,29.293056 18.373983,34.320202 19.625,37.0625 C 20.318936,38.583645 21.166625,39.341162 22.1875,39.8125 C 23.208375,40.283838 24.484153,40.4375 26,40.4375 L 36.59375,40.4375 C 37.955442,40.4375 39.252462,40.19959 40.28125,39.65625 C 41.310038,39.11291 42.08087,38.328274 42.53125,37.03125 C 43.335253,34.715853 42.805994,29.63256 36.71875,25.3125 L 24.96875,25.3125 z " + transform="matrix(0.421035,0,0,0.396694,-1.530147,5.45867)" /> + <path + transform="matrix(0.813375,0,0,0.652798,-1.018657,5.456654)" + style="opacity:0.78977272;fill:#eeeeec;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1" + d="M 20.091094,19.980694 C 20.091094,21.249084 17.671238,21.620929 15.495478,22.278502 C 12.417166,21.65961 10.899861,21.249084 10.899861,19.980694 C 10.899861,18.712304 12.958697,17.682885 15.495478,17.682885 C 18.032258,17.682885 20.091094,18.712304 20.091094,19.980694 z " + id="path7285" + sodipodi:nodetypes="ccssc" /> + <path + sodipodi:type="arc" + style="opacity:1;color:black;fill:url(#radialGradient4171);fill-opacity:1;fill-rule:evenodd;stroke:#9a6308;stroke-width:1.44367862px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path4320" + sodipodi:cx="31.112698" + sodipodi:cy="19.008621" + sodipodi:rx="8.6620579" + sodipodi:ry="8.6620579" + d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.45064,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z" + transform="matrix(0.692676,0,0,0.692676,-10.051,-0.666813)" /> + <path + d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.45064,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z" + sodipodi:ry="8.6620579" + sodipodi:rx="8.6620579" + sodipodi:cy="19.008621" + sodipodi:cx="31.112698" + id="path4322" + style="opacity:0.25;color:black;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:1.73241353px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" + transform="matrix(0.57723,0,0,0.577231,-6.45918,1.527648)" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:0.53914499;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5426" + sodipodi:cx="21.923523" + sodipodi:cy="6.8501439" + sodipodi:rx="2.0990605" + sodipodi:ry="2.2156751" + d="M 24.022583 6.8501439 A 2.0990605 2.2156751 0 1 1 19.824462,6.8501439 A 2.0990605 2.2156751 0 1 1 24.022583 6.8501439 z" + transform="matrix(1.905614,0,0,1.805319,-18.27777,-2.866695)" /> + <path + sodipodi:type="arc" + style="opacity:0.48908296;fill:url(#linearGradient5436);fill-opacity:1;stroke:white;stroke-width:0.71885967;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5428" + sodipodi:cx="21.923523" + sodipodi:cy="6.8501439" + sodipodi:rx="2.0990605" + sodipodi:ry="2.2156751" + d="M 24.022583 6.8501439 A 2.0990605 2.2156751 0 1 1 19.824462,6.8501439 A 2.0990605 2.2156751 0 1 1 24.022583 6.8501439 z" + transform="matrix(1.429212,0,0,1.353989,-7.83336,0.224977)" /> + <rect + style="opacity:0.46724891;fill:url(#radialGradient5462);fill-opacity:1.0;stroke:white;stroke-width:0.80460578;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5438" + width="24.065218" + height="10.518487" + x="4" + y="5" + rx="0" + ry="0" + transform="matrix(0.955736,0,0,1.616202,0.677056,-3.581013)" /> + <rect + style="opacity:1;fill:none;fill-opacity:1;stroke:white;stroke-width:1.10022128;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5464" + width="30.345438" + height="29.079981" + x="1" + y="1" + transform="matrix(0.889755,0,0,0.928474,1.610245,1.571526)" + rx="0" + ry="0" /> + </g> +</svg>
--- a/pidgin/pixmaps/toolbar/Makefile.am Mon Apr 23 07:03:53 2007 +0000 +++ b/pidgin/pixmaps/toolbar/Makefile.am Mon Apr 23 07:44:12 2007 +0000 @@ -1,1 +1,1 @@ -SUBDIRS = 16 +SUBDIRS = 16 22
--- a/pidgin/plugins/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/pidgin/plugins/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -33,7 +33,7 @@ -I$(PIDGIN_TOP) \ -I$(PIDGIN_TOP)/win32 -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) \ -L$(PIDGIN_TOP)
--- a/pidgin/plugins/perl/common/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/pidgin/plugins/perl/common/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -29,7 +29,7 @@ -I$(GTK_TOP)/lib/gtk-2.0/include \ -I$(PERL_LIB_TOP)/CORE -LIB_PATHS = -L$(PERL_LIB_TOP) \ +LIB_PATHS += -L$(PERL_LIB_TOP) \ -L$(PURPLE_TOP) \ -L$(PIDGIN_TOP) \ -L$(PURPLE_PERL_TOP) \
--- a/pidgin/plugins/ticker/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/pidgin/plugins/ticker/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -27,7 +27,7 @@ -I$(PIDGIN_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) \ -L$(PIDGIN_TOP)
--- a/pidgin/plugins/win32/transparency/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/pidgin/plugins/win32/transparency/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -28,7 +28,7 @@ -I$(PIDGIN_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) \ -L$(PIDGIN_TOP)
--- a/pidgin/plugins/win32/winprefs/Makefile.mingw Mon Apr 23 07:03:53 2007 +0000 +++ b/pidgin/plugins/win32/winprefs/Makefile.mingw Mon Apr 23 07:44:12 2007 +0000 @@ -28,7 +28,7 @@ -I$(PIDGIN_TOP)/win32 \ -I$(PIDGIN_TREE_TOP) -LIB_PATHS = -L$(GTK_TOP)/lib \ +LIB_PATHS += -L$(GTK_TOP)/lib \ -L$(PURPLE_TOP) \ -L$(PIDGIN_TOP)
--- a/po/POTFILES.in Mon Apr 23 07:03:53 2007 +0000 +++ b/po/POTFILES.in Mon Apr 23 07:44:12 2007 +0000 @@ -36,6 +36,7 @@ libpurple/connection.c libpurple/conversation.c libpurple/dbus-server.c +libpurple/dbus-server.h libpurple/desktopitem.c libpurple/dnsquery.c libpurple/ft.c @@ -77,6 +78,7 @@ libpurple/protocols/jabber/buddy.c libpurple/protocols/jabber/chat.c libpurple/protocols/jabber/jabber.c +libpurple/protocols/jabber/libxmpp.c libpurple/protocols/jabber/message.c libpurple/protocols/jabber/parser.c libpurple/protocols/jabber/presence.c