// Purpose: interface of wxStaticText
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
+#define wxST_NO_AUTORESIZE 0x0001
+#define wxST_ELLIPSIZE_START 0x0004
+#define wxST_ELLIPSIZE_MIDDLE 0x0008
+#define wxST_ELLIPSIZE_END 0x0010
+
/**
@class wxStaticText
A static text control displays one or more lines of read-only text.
- wxStaticText supports the three classic text alignments, label ellipsization
- and formatting markup.
+ wxStaticText supports the three classic text alignments, label
+ ellipsization i.e. replacing parts of the text with the ellipsis ("...") if
+ the label doesn't fit into the provided space and also formatting markup
+ with wxControl::SetLabelMarkup().
@beginStyleTable
@style{wxALIGN_LEFT}
Align the text to the left.
@style{wxALIGN_RIGHT}
Align the text to the right.
- @style{wxALIGN_CENTRE}
+ @style{wxALIGN_CENTRE_HORIZONTAL}
Center the text (horizontally).
@style{wxST_NO_AUTORESIZE}
By default, the control will adjust its size to exactly fit to the
- size of the text when SetLabel is called. If this style flag is
+ size of the text when SetLabel() is called. If this style flag is
given, the control will not change its size (this style is
- especially useful with controls which also have wxALIGN_RIGHT or
- CENTER style because otherwise they won't make sense any longer
- after a call to SetLabel).
+ especially useful with controls which also have the @c wxALIGN_RIGHT or
+ the @c wxALIGN_CENTRE_HORIZONTAL style because otherwise they won't make sense any
+ longer after a call to SetLabel()).
@style{wxST_ELLIPSIZE_START}
If the labeltext width exceeds the control width, replace the beginning
of the label with an ellipsis; uses wxControl::Ellipsize.
@style{wxST_ELLIPSIZE_END}
If the label text width exceeds the control width, replace the end
of the label with an ellipsis; uses wxControl::Ellipsize.
- @style{wxST_MARKUP}
- Support markup in the label; see SetLabel() for more information.
@endStyleTable
@library{wxcore}
const wxSize& size = wxDefaultSize, long style = 0,
const wxString& name = wxStaticTextNameStr);
- /**
- Escapes all the symbols of @a str that have a special meaning (<tt><>"'&</tt>) for
- wxStaticText objects with the @c wxST_MARKUP style.
- Those symbols are replaced the corresponding entities (< > " ' &).
- */
- static wxString EscapeMarkup(const wxString& str);
-
- /**
- Returns the contents of the control.
-
- Note that the returned string contains both the mnemonics (@& characters),
- if any, and markup tags, if any.
- Use GetLabelText() if only the label text is needed.
- */
- wxString GetLabel() const;
-
- /**
- This method returns the control's label without the mnemonics characters
- (if any) and without the markup (if the control has @c wxST_MARKUP style).
- */
- wxString GetLabelText() const;
-
- /**
- This overload returns the given @a label string without the
- mnemonics characters (if any) and without the markup.
- */
- static wxString GetLabelText(const wxString& label);
-
/**
Returns @true if the window styles for this control contains one of the
@c wxST_ELLIPSIZE_START, @c wxST_ELLIPSIZE_MIDDLE or @c wxST_ELLIPSIZE_END styles.
*/
bool IsEllipsized() const;
- /**
- Removes the markup accepted by wxStaticText when the @c wxST_MARKUP style is used,
- and then returns the cleaned string.
-
- See SetLabel() for more info about the markup.
- */
- static wxString RemoveMarkup(const wxString& str);
-
- /**
- Sets the static text label and updates the controls size to exactly fit the
- label unless the control has wxST_NO_AUTORESIZE flag.
-
- This function allows to set decorated static label text on platforms which
- support it (currently only GTK+ 2). For the other platforms, the markup is
- ignored.
-
- The supported tags are:
- <TABLE>
- <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><sub></TD>
- <TD>subscript text</TD>
- </TR>
- <TR>
- <TD><sup></TD>
- <TD>superscript 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 Pango Markup
- (http://library.gnome.org/devel/pango/unstable/PangoMarkupFormat.html)
- for more information.</TD>
- </TR>
- </TABLE>
-
- Note that the string must be well-formed (e.g. all tags must be correctly
- closed) otherwise it can be not shown correctly or at all.
- 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; see wxControl::SetLabel.
-
- Example:
-
- @param label
- The new label to set.
- It may contain newline characters and the markup tags described above.
- */
- virtual void SetLabel(const wxString& label);
-
/**
This functions wraps the controls label so that each of its lines becomes at
most @a width pixels wide if possible (the lines are broken at words