comparison src/away.c @ 5160:91ea5ef2278b

[gaim-migrate @ 5524] 1) Added neat little protocol icons next to the set away message menu when you have more than one account signed on. I basically just copied Nathan's code, so it should be ok. 2) Changed the horizontal rules in the away message menu so they show up for me. This is how horizontal rules are done in other menus, I'm not sure why the away message menu was different. 3) Moved 2 gtkish functions from util.c to gtkutils.c. Earlier I used one of these functions, and then earlier, but not as early, I realized that gtkutils.c existed, so I put 2 and 2 together and realized you were probably flying somewhere. Well then, let's put another shrimp on the barbi'! committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Fri, 18 Apr 2003 02:28:06 +0000
parents 8e55a4d362a3
children 777f56b95a92
comparison
equal deleted inserted replaced
5159:6b845e0cea87 5160:91ea5ef2278b
340 { 340 {
341 GtkWidget *menuitem; 341 GtkWidget *menuitem;
342 GtkWidget *remmenu; 342 GtkWidget *remmenu;
343 GtkWidget *submenu, *submenu2; 343 GtkWidget *submenu, *submenu2;
344 GtkWidget *remitem; 344 GtkWidget *remitem;
345 GtkWidget *sep; 345 GtkWidget *image;
346 GdkPixbuf *pixbuf, *scale;
346 GList *l; 347 GList *l;
347 GSList *awy = away_messages; 348 GSList *awy = away_messages;
348 struct away_message *a; 349 struct away_message *a;
349 GSList *con = connections; 350 GSList *con = connections;
350 struct gaim_connection *gc = NULL; 351 struct gaim_connection *gc = NULL;
399 gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem); 400 gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
400 gtk_widget_show(menuitem); 401 gtk_widget_show(menuitem);
401 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), remmenu); 402 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), remmenu);
402 gtk_widget_show(remmenu); 403 gtk_widget_show(remmenu);
403 404
404 sep = gtk_hseparator_new(); 405 gaim_separator(awaymenu);
405 menuitem = gtk_menu_item_new();
406 gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
407 gtk_container_add(GTK_CONTAINER(menuitem), sep);
408 gtk_widget_set_sensitive(menuitem, FALSE);
409 gtk_widget_show(menuitem);
410 gtk_widget_show(sep);
411 406
412 while (con) { 407 while (con) {
413 gc = con->data; 408 gc = con->data;
414 if (gc->prpl->away_states &&gc->prpl->set_away) 409 if (gc->prpl->away_states &&gc->prpl->set_away)
415 count++; 410 count++;
492 if (!gc->prpl->away_states ||!gc->prpl->set_away) { 487 if (!gc->prpl->away_states ||!gc->prpl->set_away) {
493 con = con->next; 488 con = con->next;
494 continue; 489 continue;
495 } 490 }
496 491
492 pixbuf = create_prpl_icon(gc->account);
493 if (pixbuf) {
494 scale = gdk_pixbuf_scale_simple(pixbuf, 16, 16, GDK_INTERP_BILINEAR);
495 image = gtk_image_new_from_pixbuf(scale);
496 g_object_unref(G_OBJECT(pixbuf));
497 g_object_unref(G_OBJECT(scale));
498 } else {
499 image = gtk_image_new();
500 }
501 gtk_widget_show(image);
502
497 g_snprintf(buf, sizeof(buf), "%s (%s)", 503 g_snprintf(buf, sizeof(buf), "%s (%s)",
498 gc->username, gc->prpl->name); 504 gc->username, gc->prpl->name);
499 menuitem = gtk_menu_item_new_with_label(buf); 505 menuitem = gtk_image_menu_item_new_with_label(buf);
506 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image);
500 gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem); 507 gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
501 gtk_widget_show(menuitem); 508 gtk_widget_show(menuitem);
502 509
503 submenu = gtk_menu_new(); 510 submenu = gtk_menu_new();
504 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); 511 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
512 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); 519 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
513 gtk_widget_show(menuitem); 520 gtk_widget_show(menuitem);
514 g_signal_connect(GTK_OBJECT(menuitem), "activate", 521 g_signal_connect(GTK_OBJECT(menuitem), "activate",
515 G_CALLBACK(set_gc_away), gc); 522 G_CALLBACK(set_gc_away), gc);
516 523
517 sep = gtk_hseparator_new(); 524 gaim_separator(submenu);
518 menuitem = gtk_menu_item_new();
519 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
520 gtk_container_add(GTK_CONTAINER(menuitem), sep);
521 gtk_widget_set_sensitive(menuitem, FALSE);
522 gtk_widget_show(menuitem);
523 gtk_widget_show(sep);
524 525
525 awy = away_messages; 526 awy = away_messages;
526 527
527 while (awy) { 528 while (awy) {
528 a = (struct away_message *)awy->data; 529 a = (struct away_message *)awy->data;