void Markup(GtkWidget * widget, const XAP_StringSet * /*pSS*/, char *string) { gchar * unixstr = NULL; // used for conversions UT_XML_cloneNoAmpersands(unixstr, string); UT_String markupStr(UT_String_sprintf(gtk_label_get_label (GTK_LABEL(widget)), unixstr)); gtk_label_set_markup (GTK_LABEL(widget), markupStr.c_str()); FREEP(unixstr); }
/*! * Localizes the label of a widget given the string id * It formats the label using the current label of the widget as a format * string. The current label is assumed to be something like * "<span size="larger">%s</span>". */ void localizeLabelMarkup(GtkWidget * widget, const XAP_StringSet * pSS, XAP_String_Id id) { gchar * unixstr = NULL; // used for conversions UT_UTF8String s; pSS->getValueUTF8(id,s); UT_XML_cloneNoAmpersands(unixstr, s.utf8_str()); UT_String markupStr(UT_String_sprintf(gtk_label_get_label (GTK_LABEL(widget)), unixstr)); gtk_label_set_markup (GTK_LABEL(widget), markupStr.c_str()); FREEP(unixstr); }
/*! * Localizes a button given the string id * It formats its label using the current button label as a format * string. It is assumed to be something like * "<span size="larger">%s</span>". * Note that in addition to doing markup, ampersands will be converted * to underscores/mnemonic since this makes sense for buttons */ void localizeButtonMarkup(GtkWidget * widget, const XAP_StringSet * pSS, XAP_String_Id id) { UT_UTF8String s; pSS->getValueUTF8(id,s); gchar * newlbl = g_strdup(s.utf8_str()); UT_ASSERT(newlbl); convertMnemonics(newlbl); UT_String markupStr(UT_String_sprintf(gtk_button_get_label (GTK_BUTTON(widget)), newlbl)); gtk_button_set_use_underline (GTK_BUTTON(widget), TRUE); gtk_button_set_label (GTK_BUTTON(widget), markupStr.c_str()); // by default, they don't like markup, so we teach them GtkWidget * button_child = gtk_bin_get_child (GTK_BIN(widget)); if (GTK_IS_LABEL (button_child)) gtk_label_set_use_markup (GTK_LABEL(button_child), TRUE); FREEP(newlbl); }