X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/526954c5968baa29218c994ec48e476ae2bd4b9f..7344108e8a129a3f9b4df5ab0f98a1713db03b89:/interface/wx/control.h?ds=inline
diff --git a/interface/wx/control.h b/interface/wx/control.h
index 3c77c72a9a..32fd306b6e 100644
--- a/interface/wx/control.h
+++ b/interface/wx/control.h
@@ -86,6 +86,44 @@ enum wxEllipsizeMode
class wxControl : public wxWindow
{
public:
+
+ /**
+ Constructs a control.
+
+ @param parent
+ Pointer to a parent window.
+ @param id
+ Control identifier. If wxID_ANY, will automatically create an identifier.
+ @param pos
+ Control position. wxDefaultPosition indicates that wxWidgets
+ should generate a default position for the control.
+ @param size
+ Control size. wxDefaultSize indicates that wxWidgets should generate
+ a default size for the window. If no suitable size can be found, the
+ window will be sized to 20x20 pixels so that the window is visible but
+ obviously not correctly sized.
+ @param style
+ Control style. For generic window styles, please see wxWindow.
+ @param name
+ Control name.
+ */
+ wxControl(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxControlNameStr);
+
+ /**
+ Default constructor to allow 2-phase creation.
+ */
+ wxControl();
+
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxControlNameStr);
+
/**
Simulates the effect of the user issuing a command to the item.
@@ -121,7 +159,7 @@ public:
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
+ to double it, i.e. use "&&". If this behaviour is undesirable, use
SetLabelText() instead.
*/
void SetLabel(const wxString& label);
@@ -138,6 +176,172 @@ public:
*/
void SetLabelText(const wxString& text);
+ // 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. "<" to have in the output the "<" string.
+
+ /**
+ Sets the controls label to a string using markup.
+
+ Simple markup supported by this function can be used to apply different
+ fonts or colours to different parts of the control label when supported.
+ If markup is not supported by the control or platform, it is simply
+ stripped and SetLabel() is used with the resulting string.
+
+ For example,
+ @code
+ wxStaticText *text;
+ ...
+ text->SetLabelMarkup("&Bed ∓ "
+ "breakfast "
+ "available HERE");
+ @endcode
+ would show the string using bold, red and big for the corresponding
+ words under wxGTK but will simply show the string "Bed & breakfast
+ available HERE" on the other platforms. In any case, the "B" of "Bed"
+ will be underlined to indicate that it can be used as a mnemonic for
+ this control.
+
+ The supported tags are:
+
+
+ Tag |
+ Description |
+
+
+ <b> |
+ bold text |
+
+
+ <big> |
+ bigger text |
+
+
+ <i> |
+ italic text |
+
+
+ <s> |
+ strike-through text |
+
+
+ <small> |
+ smaller text |
+
+
+ <tt> |
+ monospaced text |
+
+
+ <u> |
+ underlined text |
+
+
+ <span> |
+ generic formatter tag, see the table below for supported
+ attributes.
+ |
+
+
+
+ Supported @c <span> attributes:
+
+
+ Name |
+ Description |
+
+
+ foreground, fgcolor, color |
+ Foreground text colour, can be a name or RGB value. |
+
+
+ background, bgcolor |
+ Background text colour, can be a name or RGB value. |
+
+
+ font_family, face |
+ Font face name. |
+
+
+ font_weight, weight |
+ Numeric value in 0..900 range or one of "ultralight",
+ "light", "normal" (all meaning non-bold), "bold", "ultrabold"
+ and "heavy" (all meaning bold). |
+
+
+ font_style, style |
+ Either "oblique" or "italic" (both with the same meaning)
+ or "normal". |
+
+
+ size |
+ The font size can be specified either as "smaller" or
+ "larger" relatively to the current font, as a CSS font size
+ name ("xx-small", "x-small", "small", "medium", "large",
+ "x-large" or "xx-large") or as a number giving font size in
+ 1024th parts of a point, i.e. 10240 for a 10pt font. |
+
+
+
+ This markup language is a strict subset of Pango markup (described at
+ http://library.gnome.org/devel/pango/unstable/PangoMarkupFormat.html)
+ and any tags and span attributes not documented above can't be used
+ under non-GTK platforms.
+
+ Also note that you need to escape the following special characters:
+
+
+ Special character |
+ Escape as |
+
+
+ @c & |
+ @c & or as @c && |
+
+
+ @c ' |
+ @c ' |
+
+
+ @c " |
+ @c " |
+
+
+ @c < |
+ @c < |
+
+
+ @c > |
+ @c > |
+
+
+
+ The non-escaped ampersand @c & characters are interpreted as
+ mnemonics as with wxControl::SetLabel.
+
+
+ @param markup
+ String containing markup for the label. It may contain markup tags
+ described above and newline characters but currently only wxGTK and
+ wxOSX support multiline labels with markup, the generic
+ implementation (also used in wxMSW) only handles single line markup
+ labels. Notice that the string must be well-formed (e.g. all tags
+ must be correctly closed) and won't be shown at all otherwise.
+ @return
+ @true if the new label was set (even if markup in it was ignored)
+ or @false if we failed to parse the markup. In this case the label
+ remains unchanged.
+
+
+ Currently wxButton supports markup in all major ports (wxMSW, wxGTK and
+ wxOSX/Cocoa) while wxStaticText supports it in wxGTK and wxOSX and its
+ generic version (which can be used under MSW if markup support is
+ required). Extending support to more controls is planned in the future.
+
+ @since 2.9.2
+ */
+ bool SetLabelMarkup(const wxString& markup);
+
public: // static functions
@@ -149,9 +353,8 @@ public: // static functions
/**
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()).
+ @note This function is identical to GetLabelText() and is provided
+ mostly for symmetry with EscapeMnemonics().
*/
static wxString RemoveMnemonics(const wxString& str);
@@ -179,11 +382,11 @@ public: // static functions
/**
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.
+ that it fits into @a maxWidth pixels if possible.
+
+ Note that this function does @em not guarantee that the returned string
+ will always be shorter than @a maxWidth; if @a maxWidth is extremely
+ small, ellipsized text may be larger.
@param label
The string to ellipsize