- Any "&" characters in the @a label are special and indicate that the
- following character is a 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 "&&".
+ /**
+ 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.
+
+ Note that this functions is guaranteed to always returns a string
+ whose rendering on the given DC takes less than @a maxWidth pixels
+ in horizontal.
+
+ @param label
+ The string to ellipsize
+ @param dc
+ The DC used to retrieve the character widths through the
+ wxDC::GetPartialTextExtents() function.
+ @param mode
+ The ellipsization mode. This is the setting which determines
+ which part of the string should be replaced by the ellipsis.
+ See ::wxEllipsizeMode enumeration values for more info.
+ @param maxWidth
+ The maximum width of the returned string in pixels.
+ This argument determines how much characters of the string need to
+ be removed (and replaced by ellipsis).
+ @param flags
+ One or more of the ::wxEllipsizeFlags enumeration values combined.