From ac6e0eb1547cfc47ca72e6a293e28ca0f93f2981 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 2 Feb 2007 01:27:44 +0000 Subject: [PATCH] added support for underlined fonts git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 7 +++++++ src/gtk/stattext.cpp | 26 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/docs/changes.txt b/docs/changes.txt index e5bd0f3e5b..e472d53b51 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -21,8 +21,15 @@ Major new features in this release 2.9.0 ----- +All: + - Added wxSizerFlags::Top() and Bottom() +wxGTK: + +- Implemented support for underlined fonts in wxStaticText + + 2.8.2 ----- diff --git a/src/gtk/stattext.cpp b/src/gtk/stattext.cpp index 8d2c1e01b4..4f90978241 100644 --- a/src/gtk/stattext.cpp +++ b/src/gtk/stattext.cpp @@ -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)) { -- 2.45.2