comparison plugins/iconaway.c @ 12665:cdbef02c91e9

[gaim-migrate @ 15008] SF Patch #1390129 from Sadrul "I have never used this plugin. But I have been noticing a warning about this iconaway plugin in the debug-window for a long time. This patch at least gets rid of that. This patch may also make it work as was intended. But I am not sure." I don't use this plugin either. This looks correct to me. Someone that really uses it should verify. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Wed, 28 Dec 2005 09:01:41 +0000
parents 5db4ae4c94a1
children
comparison
equal deleted inserted replaced
12664:4669a779341c 12665:cdbef02c91e9
28 #include "gtkconv.h" 28 #include "gtkconv.h"
29 #include "gtkplugin.h" 29 #include "gtkplugin.h"
30 30
31 #define ICONAWAY_PLUGIN_ID "gtk-iconaway" 31 #define ICONAWAY_PLUGIN_ID "gtk-iconaway"
32 32
33 #ifdef _WIN32 33 static void
34 __declspec(dllimport) GtkWidget *imaway; 34 iconify_windows(GaimAccount *account, GaimStatus *old, GaimStatus *newstatus)
35 #else 35 {
36 G_MODULE_IMPORT GtkWidget *imaway; 36 GaimPresence *presence;
37 #endif 37 GaimGtkWindow *win;
38 GList *windows;
38 39
39 #ifdef USE_APPLET 40 presence = gaim_status_get_presence(newstatus);
40 extern void applet_destroy_buddy();
41 #endif
42 41
43 static void 42 if (gaim_presence_is_available(presence))
44 iconify_windows(GaimAccount *account, char *state, char *message, void *data)
45 {
46 #if 0 /* XXX TODO STATUS */
47 GaimConvWindow *win;
48 GList *windows;
49 GaimConnection *gc;
50
51 gc = gaim_account_get_connection(account);
52
53 if (!imaway || !gc->away)
54 return; 43 return;
55 44
56 gtk_window_iconify(GTK_WINDOW(imaway));
57 gaim_blist_set_visible(FALSE); 45 gaim_blist_set_visible(FALSE);
58 46
59 for (windows = gaim_get_windows(); 47 for (windows = gaim_gtk_conv_windows_get_list();
60 windows != NULL; 48 windows != NULL;
61 windows = windows->next) { 49 windows = windows->next) {
62 50
63 win = (GaimConvWindow *)windows->data; 51 win = (GaimGtkWindow *)windows->data;
64 52
65 if (GAIM_IS_GTK_WINDOW(win)) { 53 gtk_window_iconify(GTK_WINDOW(win->window));
66 GaimGtkWindow *gtkwin;
67
68 gtkwin = GAIM_GTK_WINDOW(win);
69
70 gtk_window_iconify(GTK_WINDOW(gtkwin->window));
71 }
72 } 54 }
73 #endif /* XXX TODO STATUS */
74 } 55 }
75 56
76 /* 57 /*
77 * EXPORTED FUNCTIONS 58 * EXPORTED FUNCTIONS
78 */ 59 */
79 60
80 static gboolean 61 static gboolean
81 plugin_load(GaimPlugin *plugin) 62 plugin_load(GaimPlugin *plugin)
82 { 63 {
83 gaim_signal_connect(gaim_accounts_get_handle(), "account-away", 64 gaim_signal_connect(gaim_accounts_get_handle(), "account-status-changed",
84 plugin, GAIM_CALLBACK(iconify_windows), NULL); 65 plugin, GAIM_CALLBACK(iconify_windows), NULL);
85 66
86 return TRUE; 67 return TRUE;
87 } 68 }
88 69