Replace wxST_MARKUP style with wxControl::SetLabelMarkup().
This is an incompatible change which removes the wxStaticText-specific wxST_MARKUP style and adds wxControl::SetLabelMarkup() replacing it. It doesn't actually change anything yet but it simplifies wxStaticText code a lot by getting rid of many markup-related functions in it which had to behave differently depending on whether wxST_MARKUP was used or not and also paves way for adding markup support for the other controls in the future. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67055 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -138,6 +138,166 @@ public:
|
||||
*/
|
||||
void SetLabelText(const wxString& text);
|
||||
|
||||
// NB: when writing docs for the following function remember that Doxygen
|
||||
// will always expand HTML entities (e.g. ") and thus we need to
|
||||
// write e.g. "&lt;" to have in the output the "<" string.
|
||||
|
||||
/**
|
||||
Sets the controls label to a string using markup.
|
||||
|
||||
Simple markup supported by this function can be used to apply different
|
||||
fonts or colours to different parts of the control label when supported
|
||||
(currently only wxStaticText under GTK+ 2). If markup is not supported
|
||||
by the control or platform, it is simply stripped and SetLabel() is
|
||||
used with the resulting string.
|
||||
|
||||
For example,
|
||||
@code
|
||||
wxStaticText *text;
|
||||
...
|
||||
text->SetLabelMarkup("<b>&Bed</b> &mp; "
|
||||
"<span foreground='red'>breakfast</span> "
|
||||
"available <big>HERE</big>");
|
||||
@endcode
|
||||
would show the string using bold, red and big for the corresponding
|
||||
words under wxGTK but will simply show the string "Bed & breakfast
|
||||
available HERE" on the other platforms. In any case, the "B" of "Bed"
|
||||
will be underlined to indicate that it can be used as a mnemonic for
|
||||
this control.
|
||||
|
||||
The supported tags are:
|
||||
<TABLE>
|
||||
<TR>
|
||||
<TD><b>Tag</b></TD>
|
||||
<TD><b>Description</b></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD><b></TD>
|
||||
<TD>bold text</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD><big></TD>
|
||||
<TD>bigger text</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD><i></TD>
|
||||
<TD>italic text</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD><s></TD>
|
||||
<TD>strike-through text</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD><small></TD>
|
||||
<TD>smaller text</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD><tt></TD>
|
||||
<TD>monospaced text</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD><u></TD>
|
||||
<TD>underlined text</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD><span></TD>
|
||||
<TD>generic formatter tag, see the table below for supported
|
||||
attributes.
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
Supported @c <span> attributes:
|
||||
<TABLE>
|
||||
<TR>
|
||||
<TD><b>Name</b></TD>
|
||||
<TD><b>Description</b></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>foreground, fgcolor, color</TD>
|
||||
<TD>Foreground text colour, can be a name or RGB value.</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>background, bgcolor</TD>
|
||||
<TD>Background text colour, can be a name or RGB value.</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>font_family, face</TD>
|
||||
<TD>Font face name.</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>font_weight, weight</TD>
|
||||
<TD>Numeric value in 0..900 range or one of "ultralight",
|
||||
"light", "normal" (all meaning non-bold), "bold", "ultrabold"
|
||||
and "heavy" (all meaning bold).</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>font_style, style</TD>
|
||||
<TD>Either "oblique" or "italic" (both with the same meaning)
|
||||
or "normal".</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>size</TD>
|
||||
<TD>The font size can be specified either as "smaller" or
|
||||
"larger" relatively to the current font, as a CSS font size
|
||||
name ("xx-small", "x-small", "small", "medium", "large",
|
||||
"x-large" or "xx-large") or as a number giving font size in
|
||||
1024th parts of a point, i.e. 10240 for a 10pt font.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
This markup language is a strict subset of Pango markup (described at
|
||||
http://library.gnome.org/devel/pango/unstable/PangoMarkupFormat.html)
|
||||
and any tags and span attributes not documented above can't be used
|
||||
under non-GTK platforms.
|
||||
|
||||
Also note that you need to escape the following special characters:
|
||||
<TABLE>
|
||||
<TR>
|
||||
<TD><b>Special character</b></TD>
|
||||
<TD><b>Escape as</b></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>@c &</TD>
|
||||
<TD>@c &amp; or as @c &&</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>@c '</TD>
|
||||
<TD>@c &apos;</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>@c "</TD>
|
||||
<TD>@c &quot;</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>@c <</TD>
|
||||
<TD>@c &lt;</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>@c ></TD>
|
||||
<TD>@c &gt;</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
The non-escaped ampersand @c & characters are interpreted as
|
||||
mnemonics as with wxControl::SetLabel.
|
||||
|
||||
|
||||
@param markup
|
||||
String containing markup for the label. It may contain newline
|
||||
characters and the markup tags described above.
|
||||
@return
|
||||
@true if the new label was set (even if markup in it was ignored)
|
||||
or @false if we failed to parse the markup. In this case the label
|
||||
remains unchanged.
|
||||
|
||||
Note that the string must be well-formed (e.g. all tags must be correctly
|
||||
closed) and won't be shown at all otherwise.
|
||||
|
||||
@since 2.9.2
|
||||
*/
|
||||
bool SetLabelMarkup(const wxString& markup);
|
||||
|
||||
|
||||
public: // static functions
|
||||
|
||||
@@ -149,9 +309,8 @@ public: // static functions
|
||||
/**
|
||||
Returns the given @a str string without mnemonics ("&" characters).
|
||||
|
||||
@note This function is identic to GetLabelText() and is provided both for symmetry
|
||||
with the wxStaticText::RemoveMarkup() function and to allow to write more
|
||||
readable code (since this function has a more descriptive name respect GetLabelText()).
|
||||
@note This function is identical to GetLabelText() and is provided
|
||||
mostly for symmetry with EscapeMnemonics().
|
||||
*/
|
||||
static wxString RemoveMnemonics(const wxString& str);
|
||||
|
||||
|
Reference in New Issue
Block a user