2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: stattext.h
|
2008-03-10 11:24:38 -04:00
|
|
|
// Purpose: interface of wxStaticText
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Licence: wxWindows license
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
@class wxStaticText
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
A static text control displays one or more lines of read-only text.
|
2008-12-28 14:24:13 -05:00
|
|
|
wxStaticText supports the three classic text alignments, label ellipsization
|
|
|
|
and formatting markup.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@beginStyleTable
|
2008-04-06 10:43:04 -04:00
|
|
|
@style{wxALIGN_LEFT}
|
2008-12-28 16:16:00 -05:00
|
|
|
Align the text to the left.
|
2008-04-06 10:43:04 -04:00
|
|
|
@style{wxALIGN_RIGHT}
|
2008-12-28 16:16:00 -05:00
|
|
|
Align the text to the right.
|
2008-04-06 10:43:04 -04:00
|
|
|
@style{wxALIGN_CENTRE}
|
2008-12-28 16:16:00 -05:00
|
|
|
Center the text (horizontally).
|
2008-04-06 10:43:04 -04:00
|
|
|
@style{wxST_NO_AUTORESIZE}
|
2008-03-08 08:52:38 -05:00
|
|
|
By default, the control will adjust its size to exactly fit to the
|
2010-03-21 17:39:15 -04:00
|
|
|
size of the text when SetLabel() is called. If this style flag is
|
2008-03-08 08:52:38 -05:00
|
|
|
given, the control will not change its size (this style is
|
2010-03-21 17:39:15 -04:00
|
|
|
especially useful with controls which also have the @c wxALIGN_RIGHT or
|
|
|
|
the @c wxALIGN_CENTRE style because otherwise they won't make sense any
|
|
|
|
longer after a call to SetLabel()).
|
2008-04-06 10:43:04 -04:00
|
|
|
@style{wxST_ELLIPSIZE_START}
|
2008-12-28 14:24:13 -05:00
|
|
|
If the labeltext width exceeds the control width, replace the beginning
|
2008-12-28 16:16:00 -05:00
|
|
|
of the label with an ellipsis; uses wxControl::Ellipsize.
|
2008-04-06 10:43:04 -04:00
|
|
|
@style{wxST_ELLIPSIZE_MIDDLE}
|
2008-12-28 14:24:13 -05:00
|
|
|
If the label text width exceeds the control width, replace the middle
|
2008-12-28 16:16:00 -05:00
|
|
|
of the label with an ellipsis; uses wxControl::Ellipsize.
|
2008-04-06 10:43:04 -04:00
|
|
|
@style{wxST_ELLIPSIZE_END}
|
2008-12-28 14:24:13 -05:00
|
|
|
If the label text width exceeds the control width, replace the end
|
2008-12-28 16:16:00 -05:00
|
|
|
of the label with an ellipsis; uses wxControl::Ellipsize.
|
2008-04-06 10:43:04 -04:00
|
|
|
@style{wxST_MARKUP}
|
2008-12-28 16:16:00 -05:00
|
|
|
Support markup in the label; see SetLabel() for more information.
|
2008-03-08 08:52:38 -05:00
|
|
|
@endStyleTable
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@library{wxcore}
|
|
|
|
@category{ctrl}
|
2008-10-13 04:05:18 -04:00
|
|
|
@appearance{statictext.png}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-10 11:24:38 -04:00
|
|
|
@see wxStaticBitmap, wxStaticBox
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
class wxStaticText : public wxControl
|
|
|
|
{
|
|
|
|
public:
|
2008-05-29 10:10:52 -04:00
|
|
|
/**
|
|
|
|
Default constructor.
|
|
|
|
*/
|
|
|
|
wxStaticText();
|
2008-10-07 12:57:34 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
/**
|
|
|
|
Constructor, creating and showing a text control.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 09:43:31 -05:00
|
|
|
@param parent
|
2008-03-09 08:33:59 -04:00
|
|
|
Parent window. Should not be @NULL.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param id
|
2008-03-09 08:33:59 -04:00
|
|
|
Control identifier. A value of -1 denotes a default value.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param label
|
2008-03-09 08:33:59 -04:00
|
|
|
Text label.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param pos
|
2008-03-09 08:33:59 -04:00
|
|
|
Window position.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param size
|
2008-03-09 08:33:59 -04:00
|
|
|
Window size.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param style
|
2008-03-09 08:33:59 -04:00
|
|
|
Window style. See wxStaticText.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param name
|
2008-03-09 08:33:59 -04:00
|
|
|
Window name.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
@see Create()
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-08 09:43:31 -05:00
|
|
|
wxStaticText(wxWindow* parent, wxWindowID id,
|
|
|
|
const wxString& label,
|
|
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
|
|
const wxSize& size = wxDefaultSize,
|
|
|
|
long style = 0,
|
2008-11-13 16:32:53 -05:00
|
|
|
const wxString& name = wxStaticTextNameStr);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Creation function, for two-step construction. For details see wxStaticText().
|
|
|
|
*/
|
2008-10-28 11:36:26 -04:00
|
|
|
bool Create(wxWindow* parent, wxWindowID id, const wxString& label,
|
2008-03-08 08:52:38 -05:00
|
|
|
const wxPoint& pos = wxDefaultPosition,
|
2008-10-28 11:36:26 -04:00
|
|
|
const wxSize& size = wxDefaultSize, long style = 0,
|
|
|
|
const wxString& name = wxStaticTextNameStr);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the contents of the control.
|
2008-10-07 12:57:34 -04:00
|
|
|
|
2010-03-29 17:31:27 -04:00
|
|
|
Note that the returned string may contain both mnemonics (@& characters),
|
|
|
|
and markup tags, if they were passed to the SetLabel() function.
|
|
|
|
|
|
|
|
Use GetLabelText() if only the label text, without mnemonics and without
|
|
|
|
markup if the @c wxST_MARKUP style is set, is needed.
|
|
|
|
|
|
|
|
Also note that the returned string is always the string which was passed to
|
|
|
|
SetLabel() but may be different from the string passed to SetLabelText()
|
|
|
|
(since this last one escapes mnemonic characters and eventually markup).
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetLabel() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-10-07 12:57:34 -04:00
|
|
|
This method returns the control's label without the mnemonics characters
|
2010-03-29 17:31:27 -04:00
|
|
|
(if any) and without the markup (if the control has the @c wxST_MARKUP style).
|
|
|
|
|
|
|
|
Note that because of the stripping of the mnemonics and markup the returned
|
|
|
|
string may differ from the string which was passed to SetLabel() but should
|
|
|
|
always be the same which was passed to SetLabelText().
|
2008-10-07 12:57:34 -04:00
|
|
|
*/
|
|
|
|
wxString GetLabelText() const;
|
|
|
|
|
2008-12-28 14:24:13 -05:00
|
|
|
/**
|
|
|
|
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;
|
|
|
|
|
2010-03-21 17:39:15 -04:00
|
|
|
// 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.
|
2008-12-28 14:24:13 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
/**
|
|
|
|
Sets the static text label and updates the controls size to exactly fit the
|
2010-03-21 17:39:15 -04:00
|
|
|
label unless the control has @c wxST_NO_AUTORESIZE flag.
|
2008-10-07 12:57:34 -04:00
|
|
|
|
2010-03-29 17:31:27 -04:00
|
|
|
This function allows to set decorated static label text, when the @c wxST_MARKUP
|
|
|
|
style is used, on those platforms which support it (currently only GTK+ 2).
|
|
|
|
For the other platforms or when @c wxST_MARKUP is not used, the markup is ignored.
|
2008-10-07 12:57:34 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
The supported tags are:
|
2008-08-29 08:15:59 -04:00
|
|
|
<TABLE>
|
2010-03-21 17:39:15 -04:00
|
|
|
<TR>
|
|
|
|
<TD><b>Tag</b></TD>
|
|
|
|
<TD><b>Description</b></TD>
|
|
|
|
</TR>
|
2008-08-29 08:15:59 -04:00
|
|
|
<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>
|
2008-10-07 12:57:34 -04:00
|
|
|
<TD>generic formatter tag; see Pango Markup
|
|
|
|
(http://library.gnome.org/devel/pango/unstable/PangoMarkupFormat.html)
|
|
|
|
for more information.</TD>
|
2008-08-29 08:15:59 -04:00
|
|
|
</TR>
|
|
|
|
</TABLE>
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Note that the string must be well-formed (e.g. all tags must be correctly
|
2008-10-07 12:57:34 -04:00
|
|
|
closed) otherwise it can be not shown correctly or at all.
|
2008-03-08 08:52:38 -05:00
|
|
|
Also note that you need to escape the following special characters:
|
2008-10-07 12:57:34 -04:00
|
|
|
|
2008-08-29 08:15:59 -04:00
|
|
|
<TABLE>
|
|
|
|
<TR>
|
2008-12-29 09:14:39 -05:00
|
|
|
<TD><b>Special character</b></TD>
|
|
|
|
<TD><b>Escape as</b></TD>
|
2008-08-29 08:15:59 -04:00
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD>@c &</TD>
|
2008-12-29 09:14:39 -05:00
|
|
|
<TD>@c &amp; or as @c &&</TD>
|
2008-08-29 08:15:59 -04:00
|
|
|
</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>
|
2008-10-07 12:57:34 -04:00
|
|
|
|
2008-08-29 08:15:59 -04:00
|
|
|
The non-escaped ampersand @c & characters are interpreted as
|
2008-03-08 08:52:38 -05:00
|
|
|
mnemonics; see wxControl::SetLabel.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Example:
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 09:43:31 -05:00
|
|
|
@param label
|
2008-10-07 12:57:34 -04:00
|
|
|
The new label to set.
|
|
|
|
It may contain newline characters and the markup tags described above.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
virtual void SetLabel(const wxString& label);
|
2010-03-21 17:39:15 -04:00
|
|
|
|
|
|
|
/**
|
2010-03-29 17:31:27 -04:00
|
|
|
Sets the control's label to exactly the given string.
|
2010-03-21 17:39:15 -04:00
|
|
|
|
|
|
|
Unlike SetLabel(), this function shows exactly the @a text passed to it
|
2010-03-29 17:31:27 -04:00
|
|
|
in the control, without interpreting ampersands in it in any way and,
|
|
|
|
if @c wxST_MARKUP is used, without interpreting markup tags.
|
|
|
|
Notice that it means that the control can't have any mnemonic nor markup defined
|
2010-03-21 17:39:15 -04:00
|
|
|
for it using this function.
|
|
|
|
|
2010-03-29 17:31:27 -04:00
|
|
|
@see EscapeMarkup()
|
2010-03-21 17:39:15 -04:00
|
|
|
*/
|
|
|
|
virtual void SetLabelText(const wxString& text);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
This functions wraps the controls label so that each of its lines becomes at
|
2008-03-09 08:33:59 -04:00
|
|
|
most @a width pixels wide if possible (the lines are broken at words
|
2008-10-07 12:57:34 -04:00
|
|
|
boundaries so it might not be the case if words are too long).
|
|
|
|
|
|
|
|
If @a width is negative, no wrapping is done. Note that this width is not
|
2008-05-12 08:47:59 -04:00
|
|
|
necessarily the total width of the control, since a few pixels for the
|
|
|
|
border (depending on the controls border style) may be added.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-04-21 06:34:23 -04:00
|
|
|
@since 2.6.2
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
void Wrap(int width);
|
2010-03-21 17:39:15 -04:00
|
|
|
|
|
|
|
|
|
|
|
public: // static functions
|
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the given @a label string without the mnemonics characters (if any)
|
|
|
|
and without the markup.
|
|
|
|
|
|
|
|
Note that since this function is static it will always remove markup
|
|
|
|
(since it cannot check @c wxST_MARKUP presence/absence!).
|
|
|
|
*/
|
|
|
|
static wxString GetLabelText(const wxString& label);
|
|
|
|
|
|
|
|
/**
|
|
|
|
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
|
|
|
|
(&lt; &gt; &quot; &apos; &amp;).
|
|
|
|
*/
|
|
|
|
static wxString EscapeMarkup(const wxString& str);
|
|
|
|
|
|
|
|
/**
|
|
|
|
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);
|
2008-03-08 08:52:38 -05:00
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|