view plugins/iconaway.c @ 7982:58af482c89f7

[gaim-migrate @ 8659] " When any error condition is returned by a socks5 proxy, the debug window just shows "Bad data". This patch shows the error message corresponding to the returned error code, so that the user may know why the socks5 proxy is refusing to process the request. Background: I'd been trying to establish why I couldn't connect to MSN through SOCKS5. Adding this patch enabled me to see that it wsan't a bug in gaim as I'd originally thought, but that the proxy server I was using was configured to deny connections to nexus.passport.com:443." --Gavan Fantom (gavan) committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Sun, 04 Jan 2004 04:27:17 +0000
parents bf630f7dfdcd
children d7b8eb1f0a18
line wrap: on
line source

#include "gtkinternal.h"

#include "conversation.h"
#include "signals.h"

#include "gtkconv.h"
#include "gtkplugin.h"

#define ICONAWAY_PLUGIN_ID "gtk-iconaway"

#ifdef _WIN32
__declspec(dllimport) GtkWidget *imaway;
#else
G_MODULE_IMPORT GtkWidget *imaway;
#endif

#ifdef USE_APPLET
extern void applet_destroy_buddy();
#endif

static void
iconify_windows(GaimAccount *account, char *state, char *message, void *data)
{
	GaimConvWindow *win;
	GList *windows;
	GaimConnection *gc;

	gc = gaim_account_get_connection(account);

	if (!imaway || !gc->away)
		return;

	gtk_window_iconify(GTK_WINDOW(imaway));
	gaim_blist_set_visible(FALSE);

	for (windows = gaim_get_windows();
		 windows != NULL;
		 windows = windows->next) {

		win = (GaimConvWindow *)windows->data;

		if (GAIM_IS_GTK_WINDOW(win)) {
			GaimGtkWindow *gtkwin;

			gtkwin = GAIM_GTK_WINDOW(win);

			gtk_window_iconify(GTK_WINDOW(gtkwin->window));
		}
	}
}

/*
 *  EXPORTED FUNCTIONS
 */

static gboolean
plugin_load(GaimPlugin *plugin)
{
	gaim_signal_connect(gaim_accounts_get_handle(), "account-away",
						plugin, GAIM_CALLBACK(iconify_windows), NULL);

	return TRUE;
}

static GaimGtkPluginUiInfo ui_info =
{
	NULL                                            /**< get_config_frame */
};

static GaimPluginInfo info =
{
	2,                                                /**< api_version    */
	GAIM_PLUGIN_STANDARD,                             /**< type           */
	GAIM_GTK_PLUGIN_TYPE,                             /**< ui_requirement */
	0,                                                /**< flags          */
	NULL,                                             /**< dependencies   */
	GAIM_PRIORITY_DEFAULT,                            /**< priority       */

	ICONAWAY_PLUGIN_ID,                               /**< id             */
	N_("Iconify on Away"),                            /**< name           */
	VERSION,                                          /**< version        */
	                                                  /**  summary        */
	N_("Iconifies the buddy list and your conversations when you go away."),
	                                                  /**  description    */
	N_("Iconifies the buddy list and your conversations when you go away."),
	"Eric Warmenhoven <eric@warmenhoven.org>",        /**< author         */
	GAIM_WEBSITE,                                     /**< homepage       */

	plugin_load,                                      /**< load           */
	NULL,                                             /**< unload         */
	NULL,                                             /**< destroy        */

	&ui_info,                                         /**< ui_info        */
	NULL                                              /**< extra_info     */
};

static void
init_plugin(GaimPlugin *plugin)
{
}

GAIM_INIT_PLUGIN(iconaway, init_plugin, info)