| 38 gint num_of_buddies_online; /* how many of them are online */ |
38 gint num_of_buddies_online; /* how many of them are online */ |
| 39 |
39 |
| 40 gboolean buddy_created = FALSE; |
40 gboolean buddy_created = FALSE; |
| 41 gboolean applet_draw_open = FALSE; |
41 gboolean applet_draw_open = FALSE; |
| 42 GtkWidget *applet_popup = NULL; |
42 GtkWidget *applet_popup = NULL; |
| |
43 |
| |
44 gchar GAIM_GNOME_OFFLINE_ICON[255] = GAIM_GNOME_PENGUIN_OFFLINE; |
| |
45 gchar GAIM_GNOME_CONNECT_ICON[255] = GAIM_GNOME_PENGUIN_CONNECT; |
| |
46 gchar GAIM_GNOME_ONLINE_ICON[255] = GAIM_GNOME_PENGUIN_ONLINE; |
| 43 |
47 |
| 44 GtkWidget *applet; |
48 GtkWidget *applet; |
| 45 GtkWidget *button; |
49 GtkWidget *button; |
| 46 GtkWidget *status_label; |
50 GtkWidget *status_label; |
| 47 |
51 |
| 85 ** |
89 ** |
| 86 ****************************************************************/ |
90 ****************************************************************/ |
| 87 |
91 |
| 88 gboolean load_applet_icon( const char *name, int height, int width, GdkPixmap **pm, GdkBitmap **bm ){ |
92 gboolean load_applet_icon( const char *name, int height, int width, GdkPixmap **pm, GdkBitmap **bm ){ |
| 89 gboolean result = TRUE; |
93 gboolean result = TRUE; |
| 90 char path[255] = GAIM_GNOME_PIXMAP_DIR; |
94 char *path; |
| 91 GdkImlibImage *im; |
95 GdkImlibImage *im; |
| 92 GdkPixmap *temp_pm; |
96 GdkPixmap *temp_pm; |
| 93 GdkPixmap *temp_bm; |
97 GdkPixmap *temp_bm; |
| 94 |
98 |
| 95 strcat( path, name); |
99 path = gnome_pixmap_file(name); |
| 96 |
100 |
| 97 im=gdk_imlib_load_image( path ); |
101 im=gdk_imlib_load_image( path ); |
| 98 |
102 |
| 99 if ((*pm)!=NULL) |
103 if ((*pm)!=NULL) |
| 100 gdk_imlib_free_pixmap((*pm)); |
104 gdk_imlib_free_pixmap((*pm)); |
| 101 |
105 |
| 109 result = FALSE; |
113 result = FALSE; |
| 110 sprintf(debug_buff,"file not found: %s\n",path); |
114 sprintf(debug_buff,"file not found: %s\n",path); |
| 111 debug_print(debug_buff); |
115 debug_print(debug_buff); |
| 112 } |
116 } |
| 113 |
117 |
| |
118 free(path); |
| 114 return result; |
119 return result; |
| 115 } |
120 } |
| 116 |
121 |
| 117 /*************************************************************** |
122 /*************************************************************** |
| 118 ** |
123 ** |
| 119 ** function update_applet |
124 ** function update_applet |
| 120 ** visibility - private |
125 ** visibility - private |
| 121 ** |
126 ** |
| 122 ** input: |
127 ** input: |
| 123 ** ap - not in use |
128 ** ap - if not NULL, was called from update_pixmaps, and |
| |
129 ** should update them |
| 124 ** |
130 ** |
| 125 ** description - takes care of swapping status icons and |
131 ** description - takes care of swapping status icons and |
| 126 ** updating the status label |
132 ** updating the status label |
| 127 ** |
133 ** |
| 128 ****************************************************************/ |
134 ****************************************************************/ |
| 138 } else { |
144 } else { |
| 139 sprintf(debug_buff, "Drawer is closed\n"); |
145 sprintf(debug_buff, "Drawer is closed\n"); |
| 140 debug_print(debug_buff); |
146 debug_print(debug_buff); |
| 141 } |
147 } |
| 142 |
148 |
| 143 if( MRI_user_status != old_user_status ){ |
149 if( MRI_user_status != old_user_status || ap){ |
| 144 |
150 |
| 145 switch( MRI_user_status ){ |
151 switch( MRI_user_status ){ |
| 146 case offline: |
152 case offline: |
| 147 gtk_pixmap_set( GTK_PIXMAP(icon), |
153 gtk_pixmap_set( GTK_PIXMAP(icon), |
| 148 icon_offline_pm, |
154 icon_offline_pm, |
| 171 icon_msg_pending_bm ); |
177 icon_msg_pending_bm ); |
| 172 gtk_label_set( GTK_LABEL(status_label), "msg" ); |
178 gtk_label_set( GTK_LABEL(status_label), "msg" ); |
| 173 break; |
179 break; |
| 174 case away: |
180 case away: |
| 175 gtk_pixmap_set( GTK_PIXMAP(icon), |
181 gtk_pixmap_set( GTK_PIXMAP(icon), |
| 176 icon_away_pm, |
182 icon_online_pm, |
| 177 icon_away_bm ); |
183 icon_online_bm ); |
| 178 gtk_label_set( GTK_LABEL(status_label), "Away" ); |
184 gtk_label_set( GTK_LABEL(status_label), "Away" ); |
| 179 break; |
185 break; |
| 180 } |
186 } |
| 181 old_user_status = MRI_user_status; |
187 old_user_status = MRI_user_status; |
| 182 } |
188 } |
| 204 #endif /*_USE_BUDDY_COUNT_*/ |
210 #endif /*_USE_BUDDY_COUNT_*/ |
| 205 return TRUE; |
211 return TRUE; |
| 206 |
212 |
| 207 } |
213 } |
| 208 |
214 |
| |
215 void update_pixmaps() { |
| |
216 if (display_options & OPT_DISP_DEVIL_PIXMAPS) { |
| |
217 sprintf(GAIM_GNOME_OFFLINE_ICON, "%s", GAIM_GNOME_DEVIL_OFFLINE); |
| |
218 sprintf(GAIM_GNOME_CONNECT_ICON, "%s", GAIM_GNOME_DEVIL_CONNECT); |
| |
219 sprintf(GAIM_GNOME_ONLINE_ICON, "%s", GAIM_GNOME_DEVIL_ONLINE); |
| |
220 } else { |
| |
221 sprintf(GAIM_GNOME_OFFLINE_ICON, "%s", GAIM_GNOME_PENGUIN_OFFLINE); |
| |
222 sprintf(GAIM_GNOME_CONNECT_ICON, "%s", GAIM_GNOME_PENGUIN_CONNECT); |
| |
223 sprintf(GAIM_GNOME_ONLINE_ICON, "%s", GAIM_GNOME_PENGUIN_ONLINE); |
| |
224 } |
| |
225 load_applet_icon( GAIM_GNOME_OFFLINE_ICON, 32, 34, |
| |
226 &icon_offline_pm, &icon_offline_bm ); |
| |
227 load_applet_icon( GAIM_GNOME_CONNECT_ICON, 32, 34, |
| |
228 &icon_connect_pm, &icon_connect_bm ); |
| |
229 load_applet_icon( GAIM_GNOME_ONLINE_ICON, 32, 34, |
| |
230 &icon_online_pm, &icon_online_bm ); |
| |
231 update_applet((gpointer *)applet); |
| |
232 } |
| |
233 |
| 209 |
234 |
| 210 /*************************************************************** |
235 /*************************************************************** |
| 211 ** |
236 ** |
| 212 ** function make_buddy |
237 ** function make_buddy |
| 213 ** visibility - private |
238 ** visibility - private |
| 308 awy = awy->next; |
335 awy = awy->next; |
| 309 free(awayname); |
336 free(awayname); |
| 310 } |
337 } |
| 311 applet_widget_unregister_callback_dir(APPLET_WIDGET(applet), "away/"); |
338 applet_widget_unregister_callback_dir(APPLET_WIDGET(applet), "away/"); |
| 312 applet_widget_unregister_callback(APPLET_WIDGET(applet), "away"); |
339 applet_widget_unregister_callback(APPLET_WIDGET(applet), "away"); |
| |
340 |
| |
341 MRI_user_status = away; |
| 313 } |
342 } |
| 314 |
343 |
| 315 /*************************************************************** |
344 /*************************************************************** |
| 316 ** |
345 ** |
| 317 ** function applet_show_about |
346 ** function applet_show_about |
| 325 void applet_show_about(AppletWidget *widget, gpointer data) { |
354 void applet_show_about(AppletWidget *widget, gpointer data) { |
| 326 |
355 |
| 327 const gchar *authors[] = {"Mark Spencer <markster@marko.net>", |
356 const gchar *authors[] = {"Mark Spencer <markster@marko.net>", |
| 328 "Jim Duchek <jimduchek@ou.edu>", |
357 "Jim Duchek <jimduchek@ou.edu>", |
| 329 "Rob Flynn <rflynn@blueridge.net>", |
358 "Rob Flynn <rflynn@blueridge.net>", |
| 330 |
359 "Eric Warmenhoven <warmenhoven@yahoo.com>", |
| 331 NULL}; |
360 NULL}; |
| 332 |
361 |
| 333 GtkWidget *about=gnome_about_new(_("GAIM"), |
362 GtkWidget *about=gnome_about_new(_("GAIM"), |
| 334 _(VERSION), |
363 _(VERSION), |
| 335 _(""), |
364 _(""), |