Mercurial > pidgin.yaz
diff pidgin/gtkblist.c @ 27933:f44832c6a65b
propagate from branch 'im.pidgin.pidgin' (head a840b7a77c7e395db5e7877fab90763d91f70b3a)
to branch 'im.pidgin.pidgin.yaz' (head 42d24988b115ba197f27a95547b1445c10f06d2c)
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Sun, 08 Mar 2009 20:38:09 +0000 |
parents | d8e6a2d592a4 c0115655a94e |
children | 1688f7e15530 |
line wrap: on
line diff
--- a/pidgin/gtkblist.c Tue Mar 03 08:03:11 2009 +0000 +++ b/pidgin/gtkblist.c Sun Mar 08 20:38:09 2009 +0000 @@ -4002,7 +4002,7 @@ } else if (!purple_presence_is_online(presence)) { if (theme) pair = pidgin_blist_theme_get_offline_text_info(theme); - name_color = (pair != NULL && pair->color != NULL) ? pair->color : "black"; + name_color = (pair != NULL && pair->color != NULL) ? pair->color : NULL; name_font = (pair != NULL && pair->font != NULL) ? pair->font : ""; if (theme) @@ -4013,7 +4013,7 @@ } else if (purple_presence_is_available(presence)) { if (theme) pair = pidgin_blist_theme_get_online_text_info(theme); - name_color = (pair != NULL && pair->color != NULL) ? pair->color : "black"; + name_color = (pair != NULL && pair->color != NULL) ? pair->color : NULL; name_font = (pair != NULL && pair->font != NULL) ? pair->font : ""; if (theme) @@ -4024,7 +4024,7 @@ } else { if (theme) pair = pidgin_blist_theme_get_away_text_info(theme); - name_color = (pair != NULL && pair->color != NULL) ? pair->color : "black"; + name_color = (pair != NULL && pair->color != NULL) ? pair->color : NULL; name_font = (pair != NULL && pair->font != NULL) ? pair->font : ""; if (theme) @@ -4034,23 +4034,49 @@ } if (aliased && selected) { - name_color = "black"; - status_color = "black"; + if (theme) { + name_color = "black"; + status_color = "black"; + } else { + name_color = NULL; + status_color = NULL; + } } /* Put it all together */ if (aliased && biglist && (statustext || idletime)) { /* using <span size='smaller'> breaks the status, so it must be seperated into <small><span>*/ - text = g_strdup_printf("<span font_desc='%s' foreground='%s'>%s</span>\n" - "<small><span font_desc='%s' foreground='%s'>%s%s%s</span></small>", - name_font, name_color, nametext, status_font, status_color, - idletime != NULL ? idletime : "", - (idletime != NULL && statustext != NULL) ? " - " : "", - statustext != NULL ? statustext : ""); - - } else - text = g_strdup_printf("<span font_desc='%s' color='%s'>%s</span>", name_font, name_color, nametext); - + if (name_color) { + text = g_strdup_printf("<span font_desc='%s' foreground='%s'>%s</span>\n" + "<small><span font_desc='%s' foreground='%s'>%s%s%s</span></small>", + name_font, name_color, nametext, status_font, status_color, + idletime != NULL ? idletime : "", + (idletime != NULL && statustext != NULL) ? " - " : "", + statustext != NULL ? statustext : ""); + } else if (status_color) { + text = g_strdup_printf("<span font_desc='%s'>%s</span>\n" + "<small><span font_desc='%s' foreground='%s'>%s%s%s</span></small>", + name_font, nametext, status_font, status_color, + idletime != NULL ? idletime : "", + (idletime != NULL && statustext != NULL) ? " - " : "", + statustext != NULL ? statustext : ""); + } else { + text = g_strdup_printf("<span font_desc='%s'>%s</span>\n" + "<small><span font_desc='%s'>%s%s%s</span></small>", + name_font, nametext, status_font, + idletime != NULL ? idletime : "", + (idletime != NULL && statustext != NULL) ? " - " : "", + statustext != NULL ? statustext : ""); + } + } else { + if (name_color) { + text = g_strdup_printf("<span font_desc='%s' color='%s'>%s</span>", + name_font, name_color, nametext); + } else { + text = g_strdup_printf("<span font_desc='%s'>%s</span>", name_font, + nametext); + } + } g_free(nametext); g_free(statustext); g_free(idletime); @@ -4818,8 +4844,9 @@ #define SSL_FAQ_URI "http://d.pidgin.im/wiki/FAQssl" static void -ssl_faq_clicked_cb(GtkButton *button, - PurpleAccount *account) +ssl_faq_clicked_cb(PidginMiniDialog *mini_dialog, + GtkButton *button, + gpointer ignored) { purple_notify_uri(NULL, SSL_FAQ_URI); } @@ -4852,25 +4879,9 @@ g_object_set_data(G_OBJECT(mini_dialog), OBJECT_DATA_KEY_ACCOUNT, account); - if(err->type == PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT) { - GtkWidget *faq_button = gtk_button_new(); - GtkWidget *faq_label = gtk_label_new(NULL); - gtk_label_set_markup(GTK_LABEL(faq_label), - "<span underline=\"single\" foreground=\"blue\"" - " size=\"smaller\">" SSL_FAQ_URI "</span>"); -#if GTK_CHECK_VERSION(2,6,0) - g_object_set(G_OBJECT(faq_label), "ellipsize", - PANGO_ELLIPSIZE_MIDDLE, NULL); -#endif - gtk_container_add(GTK_CONTAINER(faq_button), faq_label); - gtk_button_set_relief(GTK_BUTTON(faq_button), GTK_RELIEF_NONE); - - g_signal_connect(faq_button, "clicked", - (GCallback)ssl_faq_clicked_cb, account); - - gtk_box_pack_start(PIDGIN_MINI_DIALOG(mini_dialog)->contents, - faq_button, FALSE, FALSE, 0); - } + if(err->type == PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT) + pidgin_mini_dialog_add_button(PIDGIN_MINI_DIALOG(mini_dialog), + _("SSL FAQs"), ssl_faq_clicked_cb, NULL); g_signal_connect_after(mini_dialog, "destroy", (GCallback)generic_error_destroy_cb, @@ -6165,12 +6176,17 @@ pair = pidgin_blist_theme_get_collapsed_text_info(theme); - text_color = (selected || pair == NULL || pair->color == NULL) ? "black" : pair->color; + text_color = (selected || pair == NULL || pair->color == NULL) ? NULL : pair->color; text_font = (pair == NULL || pair->font == NULL) ? "" : pair->font; esc = g_markup_escape_text(group->name, -1); - mark = g_strdup_printf("<span foreground='%s' font_desc='%s'><b>%s</b>%s</span>", + if (text_color) { + mark = g_strdup_printf("<span foreground='%s' font_desc='%s'><b>%s</b>%s</span>", text_color, text_font, esc ? esc : "", group_count); + } else { + mark = g_strdup_printf("<span font_desc='%s'><b>%s</b>%s</span>", + text_font, esc ? esc : "", group_count); + } g_free(esc); return mark; @@ -6231,10 +6247,17 @@ if (!selected && theme != NULL && (pair = pidgin_blist_theme_get_idle_text_info(theme)) != NULL && pair->color != NULL) textcolor = pair->color; else - textcolor = "black"; - - idle = g_strdup_printf("<span color='%s' font_desc='%s'>%d:%02d</span>", textcolor, - (pair == NULL || pair->font == NULL) ? "" : pair->font, ihrs, imin); + textcolor = NULL; + + if (textcolor) { + idle = g_strdup_printf("<span color='%s' font_desc='%s'>%d:%02d</span>", + textcolor, (pair == NULL || pair->font == NULL) ? "" : pair->font, + ihrs, imin); + } else { + idle = g_strdup_printf("<span font_desc='%s'>%d:%02d</span>", + (pair == NULL || pair->font == NULL) ? "" : pair->font, + ihrs, imin); + } } } @@ -6331,10 +6354,15 @@ } font = (pair == NULL || pair->font == NULL) ? "" : pair->font; - fg_color = (selected || pair == NULL || pair->color == NULL) ? "black" : pair->color; - - tmp = g_strdup_printf("<span font_desc='%s' color='%s'>%s</span>", + fg_color = (selected || pair == NULL || pair->color == NULL) ? NULL : pair->color; + + if (fg_color) { + tmp = g_strdup_printf("<span font_desc='%s' color='%s'>%s</span>", font, fg_color, mark); + } else { + tmp = g_strdup_printf("<span font_desc='%s'>%s</span>", font, + mark); + } g_free(mark); mark = tmp; @@ -6464,13 +6492,17 @@ font = (pair == NULL || pair->font == NULL) ? "" : pair->font; if (selected || pair == NULL || pair->color == NULL) /* nick_said color is the same as gtkconv:tab-label-attention */ - color = (nick_said ? "#006aff" : "black"); + color = (nick_said ? "#006aff" : NULL); else color = pair->color; - tmp = g_strdup_printf("<span font_desc='%s' color='%s' weight='%s'>%s</span>", - font, color, hidden ? "bold" : "normal", mark); - + if (color) { + tmp = g_strdup_printf("<span font_desc='%s' color='%s' weight='%s'>%s</span>", + font, color, hidden ? "bold" : "normal", mark); + } else { + tmp = g_strdup_printf("<span font_desc='%s' weight='%s'>%s</span>", + font, hidden ? "bold" : "normal", mark); + } g_free(mark); mark = tmp;