added support for underlined fonts

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-02-02 01:27:44 +00:00
parent 15c6269f89
commit ac6e0eb154
2 changed files with 33 additions and 0 deletions

View File

@@ -129,8 +129,34 @@ void wxStaticText::SetLabel( const wxString &label )
bool wxStaticText::SetFont( const wxFont &font )
{
const bool wasUnderlined = GetFont().GetUnderlined();
bool ret = wxControl::SetFont(font);
if ( font.GetUnderlined() != wasUnderlined )
{
// the underlines for mnemonics are incompatible with using attributes
// so turn them off when setting underlined font and restore them when
// unsetting it
gtk_label_set_use_underline(GTK_LABEL(m_widget), wasUnderlined);
if ( wasUnderlined )
{
// it's not underlined any more, remove the attributes we set
gtk_label_set_attributes(GTK_LABEL(m_widget), NULL);
}
else // the text is underlined now
{
PangoAttrList *attrs = pango_attr_list_new();
PangoAttribute *a = pango_attr_underline_new(PANGO_UNDERLINE_SINGLE);
a->start_index = 0;
a->end_index = -1;
pango_attr_list_insert(attrs, a);
gtk_label_set_attributes(GTK_LABEL(m_widget), attrs);
pango_attr_list_unref(attrs);
}
}
// adjust the label size to the new label unless disabled
if (!HasFlag(wxST_NO_AUTORESIZE))
{