/**
- struct containing all the visual attributes of a control
+ Struct containing all the visual attributes of a control.
*/
struct wxVisualAttributes
{
- // the font used for control label/text inside it
+ /// The font used for control label/text inside it.
wxFont font;
- // the foreground colour
+ /// The foreground colour.
wxColour colFg;
- // the background colour, may be wxNullColour if the controls background
- // colour is not solid
+ /**
+ The background colour.
+
+ May be wxNullColour if the controls background colour is not solid.
+ */
wxColour colBg;
};
*/
wxWindow* GetPrevSibling() const;
/**
- Reparents the window, i.e the window will be removed from its
+ Reparents the window, i.e. the window will be removed from its
current parent window (e.g. a non-standard toolbar in a wxFrame)
and then re-inserted into another.
+ Notice that currently you need to explicitly call
+ wxNotebook::RemovePage() before reparenting a notebook page.
+
@param newParent
New parent.
*/
/**
Sets the background colour of the window.
+
+ Notice that as with SetForegroundColour(), setting the background
+ colour of a native control may not affect the entire control and could
+ be not supported at all depending on the control and platform.
+
Please see InheritAttributes() for explanation of the difference between
this method and SetOwnBackgroundColour().
@param colour
The colour to be used as the background colour; pass
wxNullColour to reset to the default colour.
- Note that you may want to use wxSystemSettings::GetColour() to retrieve
+ Note that you may want to use wxSystemSettings::GetColour() to retrieve
a suitable colour to use rather than setting an hard-coded one.
@remarks The background colour is usually painted by the default
@c wxBG_STYLE_PAINT is a simpler and more efficient solution to the same
problem.
+
+ Under wxGTK and wxOSX, you can use ::wxBG_STYLE_TRANSPARENT to obtain
+ full transparency of the window background. Note that wxGTK supports
+ this only since GTK 2.12 with a compositing manager enabled, call
+ IsTransparentBackgroundSupported() to check whether this is the case.
+
+ Also, on order for @c SetBackgroundStyle(wxBG_STYLE_TRANSPARENT) to
+ work, it must be called before Create(). If you're using your own
+ wxWindow-derived class you should write your code in the following way:
+ @code
+ class MyWidget : public wxWindow
+ {
+ public:
+ MyWidget(wxWindow* parent, ...)
+ : wxWindow() // Use default ctor here!
+ {
+ // Do this first:
+ SetBackgroundStyle(wxBG_STYLE_TRANSPARENT);
+
+ // And really create the window afterwards:
+ Create(parent, ...);
+ }
+ };
+ @endcode
+
@see SetBackgroundColour(), GetForegroundColour(),
- SetTransparent()
+ SetTransparent(), IsTransparentBackgroundSupported()
*/
virtual bool SetBackgroundStyle(wxBackgroundStyle style);
+ /**
+ Checks whether using transparent background might work.
+
+ If this function returns @false, calling SetBackgroundStyle() with
+ ::wxBG_STYLE_TRANSPARENT is not going to work. If it returns @true,
+ setting transparent style should normally succeed.
+
+ Notice that this function would typically be called on the parent of a
+ window you want to set transparent background style for as the window
+ for which this method is called must be fully created.
+
+ @param reason
+ If not @NULL, a reason message is provided if transparency is not
+ supported.
+
+ @return @true if background transparency is supported.
+
+ @since 2.9.4
+ */
+ virtual bool IsTransparentBackgroundSupported(wxString *reason = NULL) const;
+
/**
Sets the font for this window. This function should not be called for the
parent window if you don't want its font to be inherited by its children,
/**
Sets the foreground colour of the window.
+
+ The meaning of foreground colour varies according to the window class;
+ it may be the text colour or other colour, or it may not be used at
+ all. Additionally, not all native controls support changing their
+ foreground colour so this method may change their colour only partially
+ or even not at all.
+
Please see InheritAttributes() for explanation of the difference between
this method and SetOwnForegroundColour().
The colour to be used as the foreground colour; pass
wxNullColour to reset to the default colour.
- @remarks The meaning of foreground colour varies according to the window class;
- it may be the text colour or other colour, or it may not be used at all.
-
@return @true if the colour was really changed, @false if it was already set
to this colour and nothing was done.
/**
Sets the style of the window. Please note that some styles cannot be changed
- after the window creation and that Refresh() might need to be be called
+ after the window creation and that Refresh() might need to be called
after changing the others for the change to take place immediately.
See @ref overview_windowstyles "Window styles" for more information about flags.
@see GetToolTip(), wxToolTip
*/
- void SetToolTip(const wxString& tip);
+ void SetToolTip(const wxString& tipString);
/**
@overload
/**
- @name Constraints, sizers and window layouting functions
+ @name Constraints, sizers and window layout functions
*/
//@{
This method calls SetSizer() and then wxSizer::SetSizeHints which sets the initial
window size to the size needed to accommodate all sizer elements and sets the
size hints which, if this window is a top level one, prevent the user from
- resizing it to be less than this minimial size.
+ resizing it to be less than this minimal size.
*/
void SetSizerAndFit(wxSizer* sizer, bool deleteOld = true);
/**
Returns the platform-specific handle of the physical window.
Cast it to an appropriate handle, such as @b HWND for Windows,
- @b Widget for Motif, @b GtkWidget for GTK or @b WinHandle for PalmOS.
+ @b Widget for Motif or @b GtkWidget for GTK.
@beginWxPerlOnly
This method will return an integer in wxPerl.
@remarks This function is not meant to be called directly by user code,
but via Centre, Center, CentreOnParent, or CenterOnParent.
- This function can be overriden to fine-tune centring behaviour.
+ This function can be overridden to fine-tune centring behaviour.
*/
virtual void DoCentre(int direction);