X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/89064717333f33c6ec477cf25e5692e3f4d6a1dd..736fe67c66e0f5a552f3b45e13d288f5c650c46e:/include/wx/sizer.h diff --git a/include/wx/sizer.h b/include/wx/sizer.h index cb1bf05439..4b88513ecb 100644 --- a/include/wx/sizer.h +++ b/include/wx/sizer.h @@ -20,10 +20,10 @@ // classes //--------------------------------------------------------------------------- -class WXDLLEXPORT wxButton; -class WXDLLEXPORT wxBoxSizer; -class WXDLLEXPORT wxSizerItem; -class WXDLLEXPORT wxSizer; +class WXDLLIMPEXP_FWD_CORE wxButton; +class WXDLLIMPEXP_FWD_CORE wxBoxSizer; +class WXDLLIMPEXP_FWD_CORE wxSizerItem; +class WXDLLIMPEXP_FWD_CORE wxSizer; #ifndef wxUSE_BORDER_BY_DEFAULT #ifdef __SMARTPHONE__ @@ -298,6 +298,11 @@ public: virtual wxRect GetRect() { return m_rect; } + // set a sizer item id (different from a window id, all sizer items, + // including spacers, can have an associated id) + void SetId(int id) { m_id = id; } + int GetId() const { return m_id; } + bool IsWindow() const { return m_kind == Item_Window; } bool IsSizer() const { return m_kind == Item_Sizer; } bool IsSpacer() const { return m_kind == Item_Spacer; } @@ -407,6 +412,7 @@ protected: int m_proportion; int m_border; int m_flag; + int m_id; // on screen rectangle of this item (not including borders) wxRect m_rect; @@ -456,6 +462,7 @@ public: wxObject* userData = NULL); wxSizerItem* Add( wxWindow *window, const wxSizerFlags& flags); wxSizerItem* Add( wxSizer *sizer, const wxSizerFlags& flags); + wxSizerItem* Add( int width, int height, const wxSizerFlags& flags); wxSizerItem* Add( wxSizerItem *item); wxSizerItem* AddSpacer(int size); @@ -486,6 +493,10 @@ public: wxSizerItem* Insert(size_t index, wxSizer *sizer, const wxSizerFlags& flags); + wxSizerItem* Insert(size_t index, + int width, + int height, + const wxSizerFlags& flags); virtual wxSizerItem* Insert( size_t index, wxSizerItem *item); wxSizerItem* InsertSpacer(size_t index, int size); @@ -509,6 +520,7 @@ public: wxObject* userData = NULL); wxSizerItem* Prepend(wxWindow *window, const wxSizerFlags& flags); wxSizerItem* Prepend(wxSizer *sizer, const wxSizerFlags& flags); + wxSizerItem* Prepend(int width, int height, const wxSizerFlags& flags); wxSizerItem* Prepend(wxSizerItem *item); wxSizerItem* PrependSpacer(int size); @@ -593,6 +605,7 @@ public: wxSizerItem* GetItem( wxWindow *window, bool recursive = false ); wxSizerItem* GetItem( wxSizer *sizer, bool recursive = false ); wxSizerItem* GetItem( size_t index ); + wxSizerItem* GetItemById( int id, bool recursive = false ); // Manage whether individual scene items are considered // in the layout calculations or not. @@ -734,8 +747,7 @@ public: protected: void AdjustForFlexDirection(); - void AdjustForGrowables(const wxSize& sz, const wxSize& minsz, - int nrows, int ncols); + void AdjustForGrowables(const wxSize& sz); // the heights/widths of all rows/columns wxArrayInt m_rowHeights, @@ -854,7 +866,7 @@ private: #if wxUSE_STATBOX -class WXDLLEXPORT wxStaticBox; +class WXDLLIMPEXP_FWD_CORE wxStaticBox; class WXDLLEXPORT wxStaticBoxSizer: public wxBoxSizer { @@ -1000,6 +1012,12 @@ wxSizer::Add( wxSizer *sizer, const wxSizerFlags& flags ) return Add( new wxSizerItem(sizer, flags) ); } +inline wxSizerItem* +wxSizer::Add( int width, int height, const wxSizerFlags& flags ) +{ + return Add( new wxSizerItem(width, height, flags) ); +} + inline wxSizerItem* wxSizer::AddSpacer(int size) { @@ -1060,6 +1078,12 @@ wxSizer::Prepend( wxSizer *sizer, const wxSizerFlags& flags ) return Prepend( new wxSizerItem(sizer, flags) ); } +inline wxSizerItem* +wxSizer::Prepend( int width, int height, const wxSizerFlags& flags ) +{ + return Prepend( new wxSizerItem(width, height, flags) ); +} + inline wxSizerItem* wxSizer::Insert( size_t index, wxWindow *window, @@ -1106,6 +1130,12 @@ wxSizer::Insert( size_t index, wxSizer *sizer, const wxSizerFlags& flags ) return Insert( index, new wxSizerItem(sizer, flags) ); } +inline wxSizerItem* +wxSizer::Insert( size_t index, int width, int height, const wxSizerFlags& flags ) +{ + return Insert( index, new wxSizerItem(width, height, flags) ); +} + inline wxSizerItem* wxSizer::InsertSpacer(size_t index, int size) {