/**
- 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;
};
@see GetNextSibling()
*/
wxWindow* GetPrevSibling() const;
+
+ /**
+ Check if the specified window is a descendant of this one.
+
+ Returns @true if the window is a descendant (i.e. a child or
+ grand-child or grand-grand-child or ...) of this one.
+
+ Notice that a window can never be a descendant of another one if they
+ are in different top level windows, i.e. a child of a wxDialog is not
+ considered to be a descendant of dialogs parent wxFrame.
+
+ @param win Any window, possible @NULL (@false is always returned then).
+
+ @since 2.9.4
+ */
+ bool IsDescendant(wxWindowBase* win) const;
+
/**
Reparents the window, i.e. the window will be removed from its
current parent window (e.g. a non-standard toolbar in a wxFrame)
@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,
*/
virtual bool IsTopLevel() const;
- /**
- Disables all other windows in the application so that
- the user can only interact with this window.
-
- @param modal
- If @true, this call disables all other windows in the application so that
- the user can only interact with this window. If @false, the effect is
- reversed.
- */
- virtual void MakeModal(bool modal = true);
-
/**
This virtual function is normally only used internally, but