]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/window.h
support for iPhone callbacks
[wxWidgets.git] / interface / wx / window.h
index 12d91d53c9a6e5f2562a2f0cd54aa89654f3ccba..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.
@@ -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.
 
@@ -1039,6 +1113,14 @@ public:
     */
     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.