]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/window.h
support for iPhone callbacks
[wxWidgets.git] / interface / wx / window.h
index f7d3a319388b4c9bc8b352a68de37237389c7101..d075e1178ca2af9d7d8282838de48d2149cbc69b 100644 (file)
@@ -53,6 +53,16 @@ enum wxShowEffect
 };
 
 
 };
 
 
+/**
+   flags for SendSizeEvent()
+*/
+enum
+{
+    wxSEND_EVENT_POST = 1
+};
+
+
+
 
 /**
     Struct containing all the visual attributes of a control.
 
 /**
     Struct containing all the visual attributes of a control.
@@ -339,8 +349,8 @@ public:
 
     /**
         This method may be overridden in the derived classes to return @false to
 
     /**
         This method may be overridden in the derived classes to return @false to
-        indicate that this control doesn't accept input at all (i.e. behaves like
-        e.g. wxStaticText) and so doesn't need focus.
+        indicate that this control doesn't accept input at all (i.e.\ behaves like
+        e.g.\ wxStaticText) and so doesn't need focus.
 
         @see AcceptsFocusFromKeyboard()
     */
 
         @see AcceptsFocusFromKeyboard()
     */
@@ -535,7 +545,7 @@ public:
     bool IsDescendant(wxWindowBase* win) const;
 
     /**
     bool IsDescendant(wxWindowBase* win) 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.
 
         current parent window (e.g. a non-standard toolbar in a wxFrame)
         and then re-inserted into another.
 
@@ -766,6 +776,70 @@ public:
     */
     //@{
 
     */
     //@{
 
+    /**
+        Helper for ensuring EndRepositioningChildren() is called correctly.
+
+        This class wraps the calls to BeginRepositioningChildren() and
+        EndRepositioningChildren() by performing the former in its constructor
+        and the latter in its destructor if, and only if, the first call
+        returned @true. This is the simplest way to call these methods and if
+        this class is created as a local variable, it also ensures that
+        EndRepositioningChildren() is correctly called (or not) on scope exit,
+        so its use instead of calling these methods manually is highly
+        recommended.
+
+        @since 2.9.5
+     */
+    class ChildrenRepositioningGuard
+    {
+    public:
+        /**
+            Constructor calls wxWindow::BeginRepositioningChildren().
+
+            @param win The window to call BeginRepositioningChildren() on. If
+                it is @NULL, nothing is done.
+         */
+        explicit ChildrenRepositioningGuard(wxWindow* win);
+
+        /**
+            Destructor calls wxWindow::EndRepositioningChildren() if necessary.
+
+            EndRepositioningChildren() is called only if a valid window was
+            passed to the constructor and if BeginRepositioningChildren()
+            returned @true.
+         */
+        ~ChildrenRepositioningGuard();
+    };
+
+    /**
+        Prepare for changing positions of multiple child windows.
+
+        This method should be called before changing positions of multiple
+        child windows to reduce flicker and, in MSW case, even avoid display
+        corruption in some cases. It is used internally by wxWidgets and called
+        automatically when the window size changes but it can also be useful to
+        call it from outside of the library if a repositioning involving
+        multiple children is done without changing the window size.
+
+        If this method returns @true, then EndRepositioningChildren() must be
+        called after setting all children positions. Use
+        ChildrenRepositioningGuard class to ensure that this requirement is
+        satisfied.
+
+        @since 2.9.5
+     */
+    bool BeginRepositioningChildren();
+
+    /**
+        Fix child window positions after setting all of them at once.
+
+        This method must be called if and only if the previous call to
+        BeginRepositioningChildren() returned @true.
+
+        @since 2.9.5
+     */
+    void EndRepositioningChildren();
+
     /**
         Sets the cached best size value.
 
     /**
         Sets the cached best size value.
 
@@ -952,9 +1026,40 @@ public:
     */
     virtual wxSize GetMinSize() const;
 
     */
     virtual wxSize GetMinSize() const;
 
+    /**
+        Returns the horizontal component of window minimal size.
+
+        The returned value is wxDefaultCoord if the minimal width was not set.
+
+        @see GetMinSize()
+     */
     int GetMinWidth() const;
     int GetMinWidth() const;
+
+    /**
+        Returns the vertical component of window minimal size.
+
+        The returned value is wxDefaultCoord if the minimal height was not set.
+
+        @see GetMinSize()
+     */
     int GetMinHeight() const;
     int GetMinHeight() const;
+
+    /**
+        Returns the horizontal component of window maximal size.
+
+        The returned value is wxDefaultCoord if the maximal width was not set.
+
+        @see GetMaxSize()
+     */
     int GetMaxWidth() const;
     int GetMaxWidth() const;
+
+    /**
+        Returns the vertical component of window maximal size.
+
+        The returned value is wxDefaultCoord if the maximal width was not set.
+
+        @see GetMaxSize()
+     */
     int GetMaxHeight() const;
 
     /**
     int GetMaxHeight() const;
 
     /**
@@ -1008,6 +1113,14 @@ public:
     */
     virtual wxSize GetBestVirtualSize() const;
 
     */
     virtual wxSize GetBestVirtualSize() const;
 
+    /**
+       Returns the magnification of the backing store of this window, eg 2.0
+       for a window on a retina screen.
+
+       @since 2.9.5
+    */
+    virtual double GetContentScaleFactor() const;
+    
     /**
         Returns the size of the left/right and top/bottom borders of this window in x
         and y components of the result respectively.
     /**
         Returns the size of the left/right and top/bottom borders of this window in x
         and y components of the result respectively.
@@ -1401,7 +1514,7 @@ public:
     virtual wxPoint GetClientAreaOrigin() const;
 
     /**
     virtual wxPoint GetClientAreaOrigin() const;
 
     /**
-       Get the client rectangle in window (i.e. client) coordinates
+       Get the client rectangle in window (i.e.\ client) coordinates
     */
     wxRect GetClientRect() const;
 
     */
     wxRect GetClientRect() const;
 
@@ -2364,7 +2477,7 @@ public:
     virtual bool HideWithEffect(wxShowEffect effect,
                                 unsigned int timeout = 0);
     /**
     virtual bool HideWithEffect(wxShowEffect effect,
                                 unsigned int timeout = 0);
     /**
-        Returns @true if the window is enabled, i.e. if it accepts user input,
+        Returns @true if the window is enabled, i.e.\ if it accepts user input,
         @false otherwise.
 
         Notice that this method can return @false even if this window itself hadn't
         @false otherwise.
 
         Notice that this method can return @false even if this window itself hadn't
@@ -2404,7 +2517,7 @@ public:
     virtual bool IsShown() const;
 
     /**
     virtual bool IsShown() const;
 
     /**
-        Returns @true if the window is physically visible on the screen, i.e. it
+        Returns @true if the window is physically visible on the screen, i.e.\ it
         is shown and all its parents up to the toplevel window are shown as well.
 
         @see IsShown()
         is shown and all its parents up to the toplevel window are shown as well.
 
         @see IsShown()
@@ -3223,7 +3336,7 @@ public:
     virtual void InitDialog();
 
     /**
     virtual void InitDialog();
 
     /**
-        Returns @true if the window contents is double-buffered by the system, i.e. if
+        Returns @true if the window contents is double-buffered by the system, i.e.\ if
         any drawing done on the window is really done on a temporary backing surface
         and transferred to the screen all at once later.
 
         any drawing done on the window is really done on a temporary backing surface
         and transferred to the screen all at once later.
 
@@ -3245,7 +3358,7 @@ public:
 
     /**
         Returns @true if this window is intrinsically enabled, @false otherwise,
 
     /**
         Returns @true if this window is intrinsically enabled, @false otherwise,
-        i.e. if @ref Enable() Enable(@false) had been called. This method is
+        i.e.\ if @ref Enable() Enable(@false) had been called. This method is
         mostly used for wxWidgets itself, user code should normally use
         IsEnabled() instead.
     */
         mostly used for wxWidgets itself, user code should normally use
         IsEnabled() instead.
     */
@@ -3599,7 +3712,7 @@ protected:
     virtual int DoGetBestClientWidth(int height) const;
 
     /**
     virtual int DoGetBestClientWidth(int height) const;
 
     /**
-        Sets the initial window size if none is given (i.e. at least one of the
+        Sets the initial window size if none is given (i.e.\ at least one of the
         components of the size passed to ctor/Create() is wxDefaultCoord).
         @deprecated Use SetInitialSize() instead.
     */
         components of the size passed to ctor/Create() is wxDefaultCoord).
         @deprecated Use SetInitialSize() instead.
     */