X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b9fc07ba8b7472e88089414e1d42e3df1774e9f3..9e9574fe45b176ee74bba8fad7574cf9906145d1:/interface/wx/window.h diff --git a/interface/wx/window.h b/interface/wx/window.h index f7d3a31938..361f34cd69 100644 --- a/interface/wx/window.h +++ b/interface/wx/window.h @@ -2,7 +2,6 @@ // Name: window.h // Purpose: interface of wxWindow // Author: wxWidgets team -// RCS-ID: $Id$ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -53,6 +52,16 @@ enum wxShowEffect }; +/** + flags for SendSizeEvent() +*/ +enum +{ + wxSEND_EVENT_POST = 1 +}; + + + /** Struct containing all the visual attributes of a control. @@ -339,8 +348,8 @@ public: /** 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() */ @@ -535,7 +544,7 @@ public: 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. @@ -766,6 +775,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. @@ -952,9 +1025,40 @@ public: */ 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; + + /** + 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; + + /** + 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; + + /** + 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; /** @@ -1008,6 +1112,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. @@ -1401,7 +1513,7 @@ public: 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; @@ -2364,7 +2476,7 @@ public: 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 @@ -2404,7 +2516,7 @@ public: 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() @@ -3223,7 +3335,7 @@ public: 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. @@ -3245,7 +3357,7 @@ public: /** 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. */ @@ -3599,7 +3711,7 @@ protected: 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. */