view plugins/iconaway.c @ 5819:7bdf66ab4fdd

[gaim-migrate @ 6249] <javabsp> lschiere0: If you selected a browser and later uninstall it, it reverts the setting to custom <javabsp> lschiere0: If the only browser that gaim recognizes is uninstalled, you will be unable to set a custom browser without this patch <lschiere0> that sounds decidedly odd <javabsp> Because the only thing left in drop down list is Manual, and because in the config file it is not custom, the textfield is disabled <javabsp> You cannot change to another browser, so you the preference is never changed, and stuck with an unsable browser <lschiere0> oh, so you can't toggle the drop down to reset the preference, so you can't get the field to ungray <javabsp> unusable* <lschiere0> yeah, i can see that <javabsp> Right committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Mon, 09 Jun 2003 02:21:55 +0000
parents dae79aefac8d
children 059d95c67cda
line wrap: on
line source

#include "config.h"

#include "gaim.h"
#include "gtkplugin.h"

#ifdef _WIN32
#include "win32dep.h"
#endif

#define ICONAWAY_PLUGIN_ID "gtk-iconaway"

G_MODULE_IMPORT GtkWidget *imaway;
/*G_MODULE_IMPORT GtkWidget *blist;*/
/* XXX G_MODULE_IMPORT GtkWidget *all_chats; */
/*G_MODULE_IMPORT GtkWidget *all_convos;*/

#ifdef USE_APPLET
extern void applet_destroy_buddy();
#endif

void iconify_windows(GaimConnection *gc, char *state,
					 char *message, void *data) {
	GaimWindow *win;
	GList *windows;

	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 = (GaimWindow *)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(plugin, event_away, 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         */
	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);