Mercurial > pidgin.yaz
changeset 18773:900b13e40471
Show current outgoing conversation formatting on the font label on
the toolbar. This makes the toolbar sometimes shift a bit as you move
across bold, italic, which probably can be worked around by setting the
size a little bigger to accomodate, but is not done yet.
The font size also doesn't affect the label formatting because I think it
would shift too much
author | Ka-Hing Cheung <khc@hxbc.us> |
---|---|
date | Thu, 02 Aug 2007 05:10:11 +0000 |
parents | d76f1a491357 |
children | 88ad571744b4 ffec8cb71858 |
files | ChangeLog pidgin/gtkimhtmltoolbar.c |
diffstat | 2 files changed, 46 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Thu Aug 02 04:18:11 2007 +0000 +++ b/ChangeLog Thu Aug 02 05:10:11 2007 +0000 @@ -6,6 +6,10 @@ * Added support for Unicode status messages in Yahoo. * Server-stored aliases for Yahoo. (John Moody) + Pidgin: + * Show current outgoing conversation formatting on the font label on + the toolbar + version 2.1.0 (07/28/2007): libpurple: * Core changes to allow UIs to use second-granularity for scheduling.
--- a/pidgin/gtkimhtmltoolbar.c Thu Aug 02 04:18:11 2007 +0000 +++ b/pidgin/gtkimhtmltoolbar.c Thu Aug 02 05:10:11 2007 +0000 @@ -815,6 +815,9 @@ gboolean bold, italic, underline; char *tmp; char *tmp2; + GtkLabel *label = g_object_get_data(G_OBJECT(toolbar), "font_label"); + + gtk_label_set_label(label, _("_Font")); gtk_imhtml_get_current_format(GTK_IMHTML(toolbar->imhtml), &bold, &italic, &underline); @@ -822,7 +825,6 @@ if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->bold)) != bold) toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->bold), bold, toolbar); - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->italic)) != italic) toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->italic), italic, toolbar); @@ -835,20 +837,57 @@ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->smaller_size), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->larger_size), FALSE); + if (bold) { + gchar *markup = g_strdup_printf("<b>%s</b>", + gtk_label_get_label(label)); + gtk_label_set_markup_with_mnemonic(label, markup); + g_free(markup); + } + if (italic) { + gchar *markup = g_strdup_printf("<i>%s</i>", + gtk_label_get_label(label)); + gtk_label_set_markup_with_mnemonic(label, markup); + g_free(markup); + } + if (underline) { + gchar *markup = g_strdup_printf("<u>%s</u>", + gtk_label_get_label(label)); + gtk_label_set_markup_with_mnemonic(label, markup); + g_free(markup); + } + tmp = gtk_imhtml_get_current_fontface(GTK_IMHTML(toolbar->imhtml)); toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->font), (tmp != NULL), toolbar); + if (tmp != NULL) { + gchar *markup = g_strdup_printf("<span font_desc=\"%s\">%s</span>", + tmp, gtk_label_get_label(label)); + gtk_label_set_markup_with_mnemonic(label, markup); + g_free(markup); + } g_free(tmp); tmp = gtk_imhtml_get_current_forecolor(GTK_IMHTML(toolbar->imhtml)); toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->fgcolor), (tmp != NULL), toolbar); + if (tmp != NULL) { + gchar *markup = g_strdup_printf("<span foreground=\"%s\">%s</span>", + tmp, gtk_label_get_label(label)); + gtk_label_set_markup_with_mnemonic(label, markup); + g_free(markup); + } g_free(tmp); tmp = gtk_imhtml_get_current_backcolor(GTK_IMHTML(toolbar->imhtml)); tmp2 = gtk_imhtml_get_current_background(GTK_IMHTML(toolbar->imhtml)); toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->bgcolor), (tmp != NULL || tmp2 != NULL), toolbar); + if (tmp != NULL) { + gchar *markup = g_strdup_printf("<span background=\"%s\">%s</span>", + tmp, gtk_label_get_label(label)); + gtk_label_set_markup_with_mnemonic(label, markup); + g_free(markup); + } g_free(tmp); g_free(tmp2); } @@ -1100,6 +1139,8 @@ image = gtk_image_new_from_stock(GTK_STOCK_BOLD, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); label = gtk_label_new_with_mnemonic(_("_Font")); + gtk_label_set_use_markup(GTK_LABEL(label), TRUE); + g_object_set_data(G_OBJECT(hbox), "font_label", label); gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), font_button, FALSE, FALSE, 0); gtk_widget_show_all(font_button);