pidgin/gtkconv.c

changeset 20982
7504f1ef2513
parent 20920
8ff300653777
child 20995
a39ea4da4567
equal deleted inserted replaced
20977:914bdbcdc77d 20982:7504f1ef2513
6517 PurplePresence *p = NULL; 6517 PurplePresence *p = NULL;
6518 char *markup = NULL; 6518 char *markup = NULL;
6519 AtkObject *accessibility_obj; 6519 AtkObject *accessibility_obj;
6520 /* I think this is a little longer than it needs to be but I'm lazy. */ 6520 /* I think this is a little longer than it needs to be but I'm lazy. */
6521 char *style; 6521 char *style;
6522 gboolean bold = FALSE;
6522 6523
6523 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) 6524 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM)
6524 im = PURPLE_CONV_IM(conv); 6525 im = PURPLE_CONV_IM(conv);
6525 6526
6526 if ((account == NULL) || 6527 if ((account == NULL) ||
6550 g_free(esc); 6551 g_free(esc);
6551 } 6552 }
6552 gtk_list_store_set(gtkconv->infopane_model, &(gtkconv->infopane_iter), 6553 gtk_list_store_set(gtkconv->infopane_model, &(gtkconv->infopane_iter),
6553 CONV_TEXT_COLUMN, markup, -1); 6554 CONV_TEXT_COLUMN, markup, -1);
6554 /* XXX seanegan Why do I have to do this? */ 6555 /* XXX seanegan Why do I have to do this? */
6555 gtk_widget_queue_draw(gtkconv->infopane); 6556 gtk_widget_queue_draw(gtkconv->infopane);
6556 6557
6557 if (title != markup) 6558 if (title != markup)
6558 g_free(markup); 6559 g_free(markup);
6559 6560
6560 if (!GTK_WIDGET_REALIZED(gtkconv->tab_label)) 6561 if (!GTK_WIDGET_REALIZED(gtkconv->tab_label))
6569 purple_conv_im_get_typing_state(im) == PURPLE_TYPED) { 6570 purple_conv_im_get_typing_state(im) == PURPLE_TYPED) {
6570 atk_object_set_description(accessibility_obj, _("Stopped Typing")); 6571 atk_object_set_description(accessibility_obj, _("Stopped Typing"));
6571 style = "color=\"#c4a000\""; 6572 style = "color=\"#c4a000\"";
6572 } else if (gtkconv->unseen_state == PIDGIN_UNSEEN_NICK) { 6573 } else if (gtkconv->unseen_state == PIDGIN_UNSEEN_NICK) {
6573 atk_object_set_description(accessibility_obj, _("Nick Said")); 6574 atk_object_set_description(accessibility_obj, _("Nick Said"));
6574 style = "color=\"#204a87\" weight=\"bold\""; 6575 style = "color=\"#204a87\"";
6575 } else if (gtkconv->unseen_state == PIDGIN_UNSEEN_TEXT) { 6576 } else if (gtkconv->unseen_state == PIDGIN_UNSEEN_TEXT) {
6576 atk_object_set_description(accessibility_obj, _("Unread Messages")); 6577 atk_object_set_description(accessibility_obj, _("Unread Messages"));
6577 style = "color=\"#cc0000\" weight=\"bold\""; 6578 style = "color=\"#cc0000\"";
6578 } else if (gtkconv->unseen_state == PIDGIN_UNSEEN_EVENT) { 6579 } else if (gtkconv->unseen_state == PIDGIN_UNSEEN_EVENT) {
6579 atk_object_set_description(accessibility_obj, _("New Event")); 6580 atk_object_set_description(accessibility_obj, _("New Event"));
6580 style = "color=\"#888a85\" weight=\"bold\""; 6581 style = "color=\"#888a85\"";
6581 } else { 6582 } else {
6582 style = ""; 6583 style = NULL;
6583 } 6584 }
6585
6586 if (gtkconv->unseen_state == PIDGIN_UNSEEN_TEXT ||
6587 gtkconv->unseen_state == PIDGIN_UNSEEN_NICK ||
6588 gtkconv->unseen_state == PIDGIN_UNSEEN_EVENT)
6589 bold = TRUE;
6584 6590
6585 if (*style != '\0') 6591 if (style || bold)
6586 { 6592 {
6587 char *html_title,*label; 6593 char *html_title,*label;
6588 6594
6589 html_title = g_markup_escape_text(title, -1); 6595 html_title = g_markup_escape_text(title, -1);
6590 label = g_strdup_printf("<span %s>%s</span>", 6596 label = g_strdup_printf("<span %s %s>%s</span>",
6591 style, html_title); 6597 style ? style : "",
6598 bold ? "weight=\"bold\"" : "",
6599 html_title);
6592 g_free(html_title); 6600 g_free(html_title);
6593 gtk_label_set_markup(GTK_LABEL(gtkconv->tab_label), label); 6601 gtk_label_set_markup(GTK_LABEL(gtkconv->tab_label), label);
6594 g_free(label); 6602 g_free(label);
6595 } 6603 }
6596 else 6604 else
6597 gtk_label_set_text(GTK_LABEL(gtkconv->tab_label), title); 6605 gtk_label_set_text(GTK_LABEL(gtkconv->tab_label), title);
6598 6606
6599 if (pidgin_conv_window_is_active_conversation(conv)) 6607 if (pidgin_conv_window_is_active_conversation(conv))
6600 update_typing_icon(gtkconv); 6608 update_typing_icon(gtkconv);
6601 6609
6602 gtk_label_set_text(GTK_LABEL(gtkconv->menu_label), title); 6610 gtk_label_set_text(GTK_LABEL(gtkconv->menu_label), title);
6603 if (pidgin_conv_window_is_active_conversation(conv)) 6611 if (pidgin_conv_window_is_active_conversation(conv))

mercurial