reorder GetLabel(), GetLabelText(), SetLabel() and SetLabelText() function declarations, implementations and relative documentations.
Add wxStaticTextBase::GetLabelWithoutMarkup() and use it in the wxMSW implementation of wxStaticText::SetLabel() to close bug #11446; the function RemoveMarkup() which was previously used in fact could not check for presence/absence of wxST_MARKUP style since it's a static function. Add wxStaticTextBase::SetLabelText() functions for symmetry with wxControlBase::SetLabelText() Add test unit for both wxControl::*Label* and wxStaticText::*Label* functions. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -93,6 +93,89 @@ public:
|
||||
*/
|
||||
virtual void Command(wxCommandEvent& event);
|
||||
|
||||
/**
|
||||
Returns the control's label, as it was passed to SetLabel().
|
||||
|
||||
Note that the returned string may contains mnemonics ("&" characters) if they were
|
||||
passed to the SetLabel() function; use GetLabelText() if they are undesired.
|
||||
|
||||
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).
|
||||
*/
|
||||
wxString GetLabel() const;
|
||||
|
||||
/**
|
||||
Returns the control's label without mnemonics.
|
||||
|
||||
Note that because of the stripping of the mnemonics the returned string may differ
|
||||
from the string which was passed to SetLabel().
|
||||
*/
|
||||
wxString GetLabelText() const;
|
||||
|
||||
/**
|
||||
Sets the control's label.
|
||||
|
||||
All "&" characters in the @a label are special and indicate that the
|
||||
following character is a @e mnemonic for this control and can be used to
|
||||
activate it from the keyboard (typically by using @e Alt key in
|
||||
combination with it). To insert a literal ampersand character, you need
|
||||
to double it, i.e. use use "&&". If this behaviour is undesirable, use
|
||||
SetLabelText() instead.
|
||||
*/
|
||||
void SetLabel(const wxString& label);
|
||||
|
||||
/**
|
||||
Sets the control's label to exactly the given string.
|
||||
|
||||
Unlike SetLabel(), this function shows exactly the @a text passed to it
|
||||
in the control, without interpreting ampersands in it in any way.
|
||||
Notice that it means that the control can't have any mnemonic defined
|
||||
for it using this function.
|
||||
|
||||
@see EscapeMnemonics()
|
||||
*/
|
||||
void SetLabelText(const wxString& text);
|
||||
|
||||
|
||||
public: // static functions
|
||||
|
||||
/**
|
||||
Returns the given @a label string without mnemonics ("&" characters).
|
||||
*/
|
||||
static wxString GetLabelText(const wxString& label);
|
||||
|
||||
/**
|
||||
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()).
|
||||
*/
|
||||
static wxString RemoveMnemonics(const wxString& str);
|
||||
|
||||
/**
|
||||
Escapes the special mnemonics characters ("&") in the given string.
|
||||
|
||||
This function can be helpful if you need to set the controls label to a
|
||||
user-provided string. If the string contains ampersands, they wouldn't
|
||||
appear on the display but be used instead to indicate that the
|
||||
character following the first of them can be used as a control mnemonic.
|
||||
While this can sometimes be desirable (e.g. to allow the user to
|
||||
configure mnemonics of the controls), more often you will want to use
|
||||
this function before passing a user-defined string to SetLabel().
|
||||
Alternatively, if the label is entirely user-defined, you can just call
|
||||
SetLabelText() directly -- but this function must be used if the label
|
||||
is a combination of a part defined by program containing the control
|
||||
mnemonics and a user-defined part.
|
||||
|
||||
@param text
|
||||
The string such as it should appear on the display.
|
||||
@return
|
||||
The same string with the ampersands in it doubled.
|
||||
*/
|
||||
static wxString EscapeMnemonics(const wxString& text);
|
||||
|
||||
/**
|
||||
Replaces parts of the @a label string with ellipsis, if needed, so
|
||||
that it doesn't exceed @a maxWidth.
|
||||
@@ -120,74 +203,5 @@ public:
|
||||
static wxString Ellipsize(const wxString& label, const wxDC& dc,
|
||||
wxEllipsizeMode mode, int maxWidth,
|
||||
int flags = wxELLIPSIZE_FLAGS_DEFAULT);
|
||||
|
||||
/**
|
||||
Returns the control's text.
|
||||
|
||||
@note The returned string contains mnemonics ("&" characters) if it has
|
||||
any, use GetLabelText() if they are undesired.
|
||||
*/
|
||||
wxString GetLabel() const;
|
||||
|
||||
/**
|
||||
Returns the control's label without mnemonics.
|
||||
*/
|
||||
wxString GetLabelText() const;
|
||||
|
||||
/**
|
||||
Returns the given @a label string without mnemonics ("&" characters).
|
||||
*/
|
||||
static wxString GetLabelText(const wxString& label);
|
||||
|
||||
/**
|
||||
Removes the mnemonics ("&" characters) from the given string.
|
||||
*/
|
||||
static wxString RemoveMnemonics(const wxString& str);
|
||||
|
||||
/**
|
||||
Escape the special mnemonics characters ("&") in the given string.
|
||||
|
||||
This function can be helpful if you need to set the controls label to a
|
||||
user-provided string. If the string contains ampersands, they wouldn't
|
||||
appear on the display but be used instead to indicate that the
|
||||
character following the first of them can be used as a control mnemonic.
|
||||
While this can sometimes be desirable (e.g. to allow the user to
|
||||
configure mnemonics of the controls), more often you will want to use
|
||||
this function before passing a user-defined string to SetLabel().
|
||||
Alternatively, if the label is entirely user-defined, you can just call
|
||||
SetLabelText() directly -- but this function must be used if the label
|
||||
is a combination of a part defined by program containing the control
|
||||
mnemonics and a user-defined part.
|
||||
|
||||
@param text
|
||||
The string such as it should appear on the display.
|
||||
@return
|
||||
The same string with the ampersands in it doubled.
|
||||
*/
|
||||
static wxString EscapeMnemonics(const wxString& text);
|
||||
|
||||
/**
|
||||
Sets the item's text.
|
||||
|
||||
Any "&" characters in the @a label are special and indicate that the
|
||||
following character is a @e mnemonic for this control and can be used to
|
||||
activate it from the keyboard (typically by using @e Alt key in
|
||||
combination with it). To insert a literal ampersand character, you need
|
||||
to double it, i.e. use use "&&". If this behaviour is undesirable, use
|
||||
SetLabelText() instead.
|
||||
*/
|
||||
void SetLabel(const wxString& label);
|
||||
|
||||
/**
|
||||
Sets the item's text to exactly the given string.
|
||||
|
||||
Unlike SetLabel(), this function shows exactly the @a text passed to it
|
||||
in the control, without interpreting ampersands in it in any way.
|
||||
Notice that it means that the control can't have any mnemonic defined
|
||||
for it using this function.
|
||||
|
||||
@see EscapeMnemonics()
|
||||
*/
|
||||
void SetLabelText(const wxString& text);
|
||||
};
|
||||
|
||||
|
@@ -22,11 +22,11 @@
|
||||
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 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.
|
||||
@@ -89,23 +89,12 @@ public:
|
||||
const wxSize& size = wxDefaultSize, long style = 0,
|
||||
const wxString& name = wxStaticTextNameStr);
|
||||
|
||||
// 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.
|
||||
/**
|
||||
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);
|
||||
|
||||
/**
|
||||
Returns the contents of the control.
|
||||
|
||||
Note that the returned string contains both the mnemonics (@& characters),
|
||||
Note that the returned string may contain both the mnemonics (@& characters),
|
||||
if any, and markup tags, if any.
|
||||
|
||||
Use GetLabelText() if only the label text is needed.
|
||||
*/
|
||||
wxString GetLabel() const;
|
||||
@@ -116,29 +105,19 @@ public:
|
||||
*/
|
||||
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);
|
||||
// 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 static text label and updates the controls size to exactly fit the
|
||||
label unless the control has wxST_NO_AUTORESIZE flag.
|
||||
label unless the control has @c 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
|
||||
@@ -146,6 +125,10 @@ public:
|
||||
|
||||
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>
|
||||
@@ -231,6 +214,17 @@ public:
|
||||
It may contain newline characters and the markup tags described above.
|
||||
*/
|
||||
virtual void SetLabel(const wxString& label);
|
||||
|
||||
/**
|
||||
Sets the control's label to exactly the given string.
|
||||
|
||||
Unlike SetLabel(), this function shows exactly the @a text passed to it
|
||||
in the control, without interpreting ampersands in it in any way.
|
||||
Notice that it means that the control can't have any mnemonic defined
|
||||
for it using this function.
|
||||
|
||||
*/
|
||||
virtual void SetLabelText(const wxString& text);
|
||||
|
||||
/**
|
||||
This functions wraps the controls label so that each of its lines becomes at
|
||||
@@ -244,5 +238,34 @@ public:
|
||||
@since 2.6.2
|
||||
*/
|
||||
void Wrap(int width);
|
||||
|
||||
|
||||
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);
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user