]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/window.h
Make the CreateTool factories be public so they can be used from application code
[wxWidgets.git] / interface / wx / window.h
index 0a3043e994f8b9b517e159752544fa763d47d9d3..83725acb3365c92719033deba44234cf7f739df8 100644 (file)
@@ -53,18 +53,21 @@ enum wxShowEffect
 
 
 /**
-   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;
 };
 
@@ -491,10 +494,13 @@ public:
     */
     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.
     */
@@ -1694,13 +1700,18 @@ public:
 
     /**
         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
@@ -1747,11 +1758,57 @@ public:
         @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,
@@ -1777,6 +1834,13 @@ public:
 
     /**
         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().
 
@@ -1784,9 +1848,6 @@ public:
             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.
 
@@ -2083,7 +2144,7 @@ public:
 
     /**
         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.
@@ -2407,7 +2468,7 @@ public:
 
         @see GetToolTip(), wxToolTip
     */
-    void SetToolTip(const wxString& tip);
+    void SetToolTip(const wxString& tipString);
 
     /**
         @overload
@@ -2787,7 +2848,7 @@ public:
 
 
     /**
-        @name Constraints, sizers and window layouting functions
+        @name Constraints, sizers and window layout functions
     */
     //@{
 
@@ -2830,7 +2891,7 @@ public:
         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);
 
@@ -3030,7 +3091,7 @@ public:
     /**
         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.
@@ -3111,17 +3172,6 @@ public:
     */
     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
@@ -3369,7 +3419,7 @@ protected:
 
         @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);