]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/window.h
Improved documentation for wxPGProperty::DoSetAttribute()
[wxWidgets.git] / interface / wx / window.h
index 4835c550b8a720608b2ceb76051aa64bbacc9476..ed15f4adb039c6fe16c3c92673fc206a3a0e6a5d 100644 (file)
 */
 enum wxShowEffect
 {
+    /**
+        No effect, equivalent to normal wxWindow::Show() or Hide() call.
+
+        @since 2.9.1
+     */
+    wxSHOW_EFFECT_NONE,
+
     /// Roll window to the left
     wxSHOW_EFFECT_ROLL_TO_LEFT,
 
@@ -513,7 +520,23 @@ public:
     virtual int GetScrollThumb(int orientation) const;
 
     /**
-        Returns @true if this window has a scroll bar for this orientation.
+        Returns @true if this window can have a scroll bar in this orientation.
+
+        @param orient
+            Orientation to check, either wxHORIZONTAL or wxVERTICAL.
+
+        @since 2.9.1
+    */
+    bool CanScroll(int orient) const;
+
+    /**
+        Returns @true if this window currently has a scroll bar for this
+        orientation.
+
+        This method may return @false even when CanScroll() for the same
+        orientation returns @true, but if CanScroll() returns @false, i.e.
+        scrolling in this direction is not enabled at all, HasScrollbar()
+        always returns @false as well.
 
         @param orient
             Orientation to check, either wxHORIZONTAL or wxVERTICAL.
@@ -759,6 +782,11 @@ public:
         Note that if this window is a top-level one and it is currently minimized, the
         return size is empty (both width and height are 0).
 
+        @beginWxPerlOnly
+        In wxPerl this method takes no parameters and returns
+        a 2-element list (width, height).
+        @endWxPerlOnly
+
         @see GetSize(), GetVirtualSize()
     */
     void GetClientSize(int* width, int* height) const;
@@ -835,6 +863,11 @@ public:
         @param height
             Receives the window height.
 
+        @beginWxPerlOnly
+        In wxPerl this method is implemented as GetSizeWH() returning
+        a 2-element list (width, height).
+        @endWxPerlOnly
+
         @see GetClientSize(), GetVirtualSize(), @ref overview_windowsizing
     */
     void GetSize(int* width, int* height) const;
@@ -1174,6 +1207,11 @@ public:
         @param y
             Receives the y position of the window if non-@NULL.
 
+        @beginWxPerlOnly
+        In wxPerl this method is implemented as GetPositionXY() returning
+        a 2-element list (x, y).
+        @endWxPerlOnly
+
         @see GetScreenPosition()
     */
     void GetPosition(int* x, int* y) const;
@@ -1282,6 +1320,11 @@ public:
             - ClientToScreen(point): Accepts and returns a wxPoint
             - ClientToScreenXY(x, y): Returns a 2-tuple, (x, y)
         @endWxPythonOnly
+
+        @beginWxPerlOnly
+        In wxPerl this method returns a 2-element list instead of
+        modifying its parameters.
+        @endWxPerlOnly
     */
     void ClientToScreen(int* x, int* y) const;
 
@@ -1418,12 +1461,12 @@ public:
 
     /**
         Returns the background style of the window.
-        The background style can be one of the wxBackgroundStyle.
 
         @see SetBackgroundColour(), GetForegroundColour(),
              SetBackgroundStyle(), SetTransparent()
     */
     virtual wxBackgroundStyle GetBackgroundStyle() const;
+
     /**
         Returns the character height for this window.
     */
@@ -1488,11 +1531,18 @@ public:
             Return value for external leading (optional).
         @param font
             Font to use instead of the current window font (optional).
+
+        @beginWxPerlOnly
+        In wxPerl this method takes only the @a string and optionally
+        @a font parameters, and returns a 4-element list
+        (x, y, descent, externalLeading).
+        @endWxPerlOnly
     */
-    virtual void GetTextExtent(const wxString& string, int* w, int* h,
-                               int* descent = NULL,
-                               int* externalLeading = NULL,
-                               const wxFont* font = NULL) const;
+    void GetTextExtent(const wxString& string,
+                        int* w, int* h,
+                       int* descent = NULL,
+                       int* externalLeading = NULL,
+                       const wxFont* font = NULL) const;
 
     /**
         Gets the dimensions of the string as it would be drawn on the
@@ -1575,6 +1625,9 @@ public:
                  usually the themes represent the appearance chosen by the user
                  to be used for all applications on the system.
 
+        @return @true if the colour was really changed, @false if it was already set
+                to this colour and nothing was done.
+
         @see GetBackgroundColour(), SetForegroundColour(),
              GetForegroundColour(), ClearBackground(),
              Refresh(), wxEraseEvent
@@ -1582,8 +1635,28 @@ public:
     virtual bool SetBackgroundColour(const wxColour& colour);
 
     /**
-        Sets the background style of the window. see GetBackgroundStyle() for
-        the description of the possible style values.
+        Sets the background style of the window.
+
+        The default background style is wxBG_STYLE_ERASE which indicates that
+        the window background may be erased in EVT_ERASE_BACKGROUND handler.
+        This is a safe compatibility default however you may want to change it
+        to wxBG_STYLE_SYSTEM if you don't define any erase background event
+        handlers at all to avoid unnecessary generation of erase background
+        events and always let system erase the background. And you should
+        change the background style to wxBG_STYLE_PAINT if you define an
+        EVT_PAINT handler which completely overwrites the window background as
+        in this case erasing it previously, either in EVT_ERASE_BACKGROUND
+        handler or in the system default handler, would result in flicker as
+        the background pixels will be repainted twice every time the window is
+        redrawn. Do ensure that the background is entirely erased by your
+        EVT_PAINT handler in this case however as otherwise garbage may be left
+        on screen.
+
+        Notice that in previous versions of wxWidgets a common way to work
+        around the above mentioned flickering problem was to define an empty
+        EVT_ERASE_BACKGROUND handler. Setting background style to
+        wxBG_STYLE_PAINT is a simpler and more efficient solution to the same
+        problem.
 
         @see SetBackgroundColour(), GetForegroundColour(),
              SetTransparent()
@@ -1606,8 +1679,8 @@ public:
             Font to associate with this window, pass
             wxNullFont to reset to the default font.
 
-        @return @true if the want was really changed, @false if it was already set
-                to this  font and so nothing was done.
+        @return @true if the font was really changed, @false if it was already set
+                to this font and nothing was done.
 
         @see GetFont(), InheritAttributes()
     */
@@ -1626,6 +1699,9 @@ public:
                  interpretation 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.
+
         @see GetForegroundColour(), SetBackgroundColour(),
              GetBackgroundColour(), ShouldInheritColours()
     */
@@ -2141,8 +2217,10 @@ public:
             milliseconds. If the default value of 0 is used, the default
             animation time for the current platform is used.
 
-        @note Currently this function is only implemented in wxMSW and does the
-              same thing as Show() in the other ports.
+        @note Currently this function is only implemented in wxMSW and wxOSX
+              (for wxTopLevelWindows only in Carbon version and for any kind of
+              windows in Cocoa) and does the same thing as Show() in the other
+              ports.
 
         @since 2.9.0
 
@@ -2195,6 +2273,11 @@ public:
     */
     wxToolTip* GetToolTip() const;
 
+    /**
+        Get the text of the associated tooltip or empty string if none.
+     */
+    wxString GetToolTipText() const;
+
     /**
         Attach a tooltip to the window.
 
@@ -2760,8 +2843,10 @@ public:
     /**
         Moves the pointer to the given position on the window.
 
-        @note This function is not supported under Mac because Apple Human
-              Interface Guidelines forbid moving the mouse cursor programmatically.
+        @note Apple Human Interface Guidelines forbid moving the mouse cursor
+              programmatically so you should avoid using this function in Mac
+              applications (and probably avoid using it under the other
+              platforms without good reason as well).
 
         @param x
             The new x position for the cursor.
@@ -2808,6 +2893,10 @@ 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.
+
+        @beginWxPerlOnly
+        This method will return an integer in wxPerl.
+        @endWxPerlOnly
     */
     virtual WXWidget GetHandle() const;