X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e556b6123603004f45cf694c375aee613c2e9be7..ab67e8874db324fab5223cc8d5dff8a8de3e2b77:/include/wx/sizer.h diff --git a/include/wx/sizer.h b/include/wx/sizer.h index 89bdf66196..7e01ff8ad9 100644 --- a/include/wx/sizer.h +++ b/include/wx/sizer.h @@ -125,6 +125,10 @@ public: wxSizerFlags& Border(int direction, int borderInPixels) { + wxCHECK_MSG( !(direction & ~wxALL), *this, + wxS("direction must be a combination of wxDirection ") + wxS("enum values.") ); + m_flags &= ~wxALL; m_flags |= direction; @@ -251,10 +255,10 @@ class WXDLLIMPEXP_CORE wxSizerItem : public wxObject public: // window wxSizerItem( wxWindow *window, - int proportion, - int flag, - int border, - wxObject* userData ); + int proportion=0, + int flag=0, + int border=0, + wxObject* userData=NULL ); // window with flags wxSizerItem(wxWindow *window, const wxSizerFlags& flags) @@ -266,10 +270,10 @@ public: // subsizer wxSizerItem( wxSizer *sizer, - int proportion, - int flag, - int border, - wxObject* userData ); + int proportion=0, + int flag=0, + int border=0, + wxObject* userData=NULL ); // sizer with flags wxSizerItem(wxSizer *sizer, const wxSizerFlags& flags) @@ -282,10 +286,10 @@ public: // spacer wxSizerItem( int width, int height, - int proportion, - int flag, - int border, - wxObject* userData); + int proportion=0, + int flag=0, + int border=0, + wxObject* userData=NULL); // spacer with flags wxSizerItem(int width, int height, const wxSizerFlags& flags) @@ -311,6 +315,10 @@ public: { return m_minSize; } wxSize GetMinSizeWithBorder() const; + wxSize GetMaxSize() const + { return IsWindow() ? m_window->GetMaxSize() : wxDefaultSize; } + wxSize GetMaxSizeWithBorder() const; + void SetMinSize(const wxSize& size) { if ( IsWindow() ) @@ -436,6 +444,10 @@ protected: void DoSetSizer(wxSizer *sizer); void DoSetSpacer(const wxSize& size); + // Add the border specified for this item to the given size + // if it's != wxDefaultSize, just return wxDefaultSize otherwise. + wxSize AddBorderToSize(const wxSize& size) const; + // discriminated union: depending on m_kind one of the fields is valid enum { @@ -601,7 +613,7 @@ public: virtual void DeleteWindows(); // Inform sizer about the first direction that has been decided (by parent item) - // Returns true if it made use of the informtion (and recalculated min size) + // Returns true if it made use of the information (and recalculated min size) virtual bool InformFirstDirection( int WXUNUSED(direction), int WXUNUSED(size), int WXUNUSED(availableOtherDir) ) { return false; } @@ -665,6 +677,10 @@ public: m_position = pos; m_size = size; Layout(); + + // This call is required for wxWrapSizer to be able to calculate its + // minimal size correctly. + InformFirstDirection(wxHORIZONTAL, size.x, size.y); } void SetDimension(int x, int y, int width, int height) { SetDimension(wxPoint(x, y), wxSize(width, height)); } @@ -1113,6 +1129,12 @@ inline void wxSizerItem::SetSpacer(int width, int height) #endif // WXWIN_COMPATIBILITY_2_8 +inline wxSizerItem* +wxSizer::Insert(size_t index, wxSizerItem *item) +{ + return DoInsert(index, item); +} + inline wxSizerItem* wxSizer::Add( wxSizerItem *item ) @@ -1274,12 +1296,6 @@ wxSizer::Insert( size_t index, int width, int height, const wxSizerFlags& flags return Insert( index, new wxSizerItem(width, height, flags) ); } -inline wxSizerItem* -wxSizer::Insert(size_t index, wxSizerItem *item) -{ - return DoInsert(index, item); -} - inline wxSizerItem* wxSizer::InsertSpacer(size_t index, int size) {