X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4c51a665c649f7579fb39e62070cef4f66b3210d..3fc2ee048d6b937017b56104061ad1fff08de09a:/interface/wx/sizer.h diff --git a/interface/wx/sizer.h b/interface/wx/sizer.h index ec02ec9e3c..8cc1117c74 100644 --- a/interface/wx/sizer.h +++ b/interface/wx/sizer.h @@ -49,12 +49,6 @@ window, the library wouldn't be able to delete such an orphan sizer and in this, and only this, case it should be deleted explicitly. - @beginWxPythonOnly - If you wish to create a sizer class in wxPython you should - derive the class from @c wxPySizer in order to get Python-aware - capabilities for the various virtual methods. - @endWxPythonOnly - @section wxsizer_flags wxSizer flags The "flag" argument accepted by wxSizeItem constructors and other @@ -289,7 +283,22 @@ public: int flag = 0, int border = 0, wxObject* userData = NULL); + + /** + Appends a spacer child to the sizer. + @param width + Width of the spacer. + @param height + Height of the spacer. + @param flags + A wxSizerFlags object that enables you to specify most of the other + parameters more conveniently. + */ + wxSizerItem* Add( int width, int height, const wxSizerFlags& flags); + + wxSizerItem* Add(wxSizerItem* item); + /** This base function adds non-stretchable space to both the horizontal and vertical orientation of the sizer. @@ -406,6 +415,14 @@ public: */ void FitInside(wxWindow* window); + /** + Inform sizer about the first direction that has been decided (by + parent item). Returns true if it made use of the information (and + recalculated min size). + */ + virtual bool InformFirstDirection(int direction, int size, int availableOtherDir); + + //@{ /** Returns the list of the items in this sizer. @@ -422,6 +439,11 @@ public: */ wxWindow* GetContainingWindow() const; + /** + Set the window this sizer is used in. + */ + void SetContainingWindow(wxWindow *window); + /** Returns the number of items in the sizer. @@ -567,7 +589,18 @@ public: int flag = 0, int border = 0, wxObject* userData = NULL); + /** + Insert a child into the sizer before any existing item at @a index. + + See Add() for the meaning of the other parameters. + */ + wxSizerItem* Insert(size_t index, + int width, + int height, + const wxSizerFlags& flags); + wxSizerItem* Insert(size_t index, wxSizerItem* item); + /** Inserts non-stretchable space to the sizer. More readable way of calling wxSizer::Insert(index, size, size). @@ -609,7 +642,7 @@ public: bool IsShown(size_t index) const; /** - Call this to force layout of the children anew, e.g. after having added a child + Call this to force layout of the children anew, e.g.\ after having added a child to or removed a child (window, other sizer or space) from the sizer while keeping the current dimension. */ @@ -656,6 +689,14 @@ public: int border = 0, wxObject* userData = NULL); + /** + Same as Add(), but prepends the items to the beginning of the + list of items (windows, subsizers or spaces) owned by this sizer. + */ + wxSizerItem* Prepend(int width, int height, const wxSizerFlags& flags); + + wxSizerItem* Prepend(wxSizerItem* item); + /** Prepends non-stretchable space to the sizer. More readable way of calling wxSizer::Prepend(size, size, 0). @@ -885,6 +926,13 @@ public: @see Hide(), IsShown() */ bool Show(size_t index, bool show = true); + + + /** + Show or hide all items managed by the sizer. + */ + virtual void ShowItems(bool show); + }; @@ -967,6 +1015,9 @@ public: outlined above. */ void SetNegativeButton(wxButton* button); + + virtual void RecalcSizes(); + virtual wxSize CalcMin(); }; @@ -990,27 +1041,27 @@ public: /** Construct a sizer item for tracking a spacer. */ - wxSizerItem(int width, int height, int proportion, int flag, - int border, wxObject* userData); + wxSizerItem(int width, int height, int proportion=0, int flag=0, + int border=0, wxObject* userData=NULL); //@{ /** Construct a sizer item for tracking a window. */ wxSizerItem(wxWindow* window, const wxSizerFlags& flags); - wxSizerItem(wxWindow* window, int proportion, int flag, - int border, - wxObject* userData); + wxSizerItem(wxWindow* window, int proportion=0, int flag=0, + int border=0, + wxObject* userData=NULL); //@} //@{ /** Construct a sizer item for tracking a subsizer. */ - wxSizerItem(wxSizer* window, const wxSizerFlags& flags); - wxSizerItem(wxSizer* sizer, int proportion, int flag, - int border, - wxObject* userData); + wxSizerItem(wxSizer* sizer, const wxSizerFlags& flags); + wxSizerItem(wxSizer* sizer, int proportion=0, int flag=0, + int border=0, + wxObject* userData=NULL); //@} /** @@ -1039,7 +1090,7 @@ public: Old spacer, if any, is deleted. */ void AssignSpacer(const wxSize& size); - void AssignSpacer(int w, int h) { AssignSpacer(wxSize(w, h)); } + void AssignSpacer(int w, int h); //@} /** @@ -1225,6 +1276,8 @@ public: */ void SetSpacer(const wxSize& size); + void SetUserData(wxObject* userData); + /** Set the window to be tracked by this item. @deprecated @todo provide deprecation description @@ -1581,6 +1634,10 @@ public: Note that this method does not trigger relayout. */ void SetNonFlexibleGrowMode(wxFlexSizerGrowMode mode); + + virtual void RecalcSizes(); + virtual wxSize CalcMin(); + }; @@ -1703,6 +1760,9 @@ public: Sets the vertical gap (in pixels) between the cells in the sizer. */ void SetVGap(int gap); + + virtual wxSize CalcMin(); + virtual void RecalcSizes(); }; @@ -1763,6 +1823,9 @@ public: Returns the static box associated with the sizer. */ wxStaticBox* GetStaticBox() const; + + virtual wxSize CalcMin(); + virtual void RecalcSizes(); }; @@ -1820,6 +1883,12 @@ public: */ int GetOrientation() const; + /** + Sets the orientation of the box sizer, either wxVERTICAL + or wxHORIZONTAL. + */ + void SetOrientation(int orient); + /** Implements the calculation of a box sizer's dimensions and then sets the size of its children (calling wxWindow::SetSize if the child is a window). @@ -1827,6 +1896,6 @@ public: It is used internally only and must not be called by the user (call Layout() if you want to resize). Documented for information. */ - void RecalcSizes(); + virtual void RecalcSizes(); };