src/gnome_applet_mgr.c

changeset 82
33bc54b6c16a
parent 79
d0d0ecf6fc03
child 83
db4f445e7841
equal deleted inserted replaced
81:3545d550575c 82:33bc54b6c16a
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
285 a); 310 a);
286 311
287 awy = awy->next; 312 awy = awy->next;
288 free(awayname); 313 free(awayname);
289 } 314 }
315
316 MRI_user_status = online;
290 } 317 }
291 318
292 void remove_applet_away() { 319 void remove_applet_away() {
293 GList *awy = away_messages; 320 GList *awy = away_messages;
294 struct away_message *a; 321 struct away_message *a;
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 _(""),
685 return 0; 714 return 0;
686 } 715 }
687 716
688 void setUserState( enum gaim_user_states state ){ 717 void setUserState( enum gaim_user_states state ){
689 MRI_user_status = state; 718 MRI_user_status = state;
690 update_applet( (gpointer *)applet ); 719 update_applet(NULL);
691 } 720 }
692 721
693 void setTotalBuddies( gint num ){ 722 void setTotalBuddies( gint num ){
694 total_num_of_buddies = num; 723 total_num_of_buddies = num;
695 } 724 }

mercurial