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
|
|
|
|
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
|
2008-12-28 16:16:00 -05:00
|
|
|
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
|
|
|
|
2009-12-20 10:07:08 -05: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
|
|
|
/**
|
2009-12-20 10:07:08 -05:00
|
|
|
Escapes all the symbols of @a str that have a special meaning (<tt><>"'&</tt>) for
|
2008-12-28 14:24:13 -05:00
|
|
|
wxStaticText objects with the @c wxST_MARKUP style.
|
2009-12-20 10:07:08 -05:00
|
|
|
|
|
|
|
Those symbols are replaced the corresponding entities
|
|
|
|
(&lt; &gt; &quot; &apos; &amp;).
|
2008-12-28 14:24:13 -05:00
|
|
|
*/
|
|
|
|
static wxString EscapeMarkup(const wxString& str);
|
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
/**
|
|
|
|
Returns the contents of the control.
|
2008-10-07 12:57:34 -04:00
|
|
|
|
|
|
|
Note that the returned string contains both the mnemonics (@& characters),
|
2008-03-08 08:52:38 -05:00
|
|
|
if any, and markup tags, if any.
|
2008-10-07 12:57:34 -04:00
|
|
|
Use GetLabelText() if only the label text is needed.
|
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
|
|
|
|
(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.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-10-07 12:57:34 -04:00
|
|
|
static wxString GetLabelText(const wxString& label);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
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;
|
|
|
|
|
|
|
|
/**
|
|
|
|
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
|
|
|
/**
|
|
|
|
Sets the static text label and updates the controls size to exactly fit the
|
|
|
|
label unless the control has wxST_NO_AUTORESIZE flag.
|
2008-10-07 12:57:34 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
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.
|
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>
|
|
|
|
<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);
|
|
|
|
|
|
|
|
/**
|
|
|
|
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);
|
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|