X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/53a2db124c633f80bdb16336084262037d879a2c..4f2511d706e5274a34e1521e11c1b95fed735b42:/include/wx/sizer.h diff --git a/include/wx/sizer.h b/include/wx/sizer.h index 461099389b..771fcf5f1a 100644 --- a/include/wx/sizer.h +++ b/include/wx/sizer.h @@ -58,27 +58,51 @@ public: return *this; } - wxSizerFlags& Align(int alignment) // combination of wxAlignment values + wxSizerFlags& Expand() { - m_flags &= ~wxALIGN_MASK; - m_flags |= alignment; - + m_flags |= wxEXPAND; return *this; } - wxSizerFlags& Expand() + // notice that Align() replaces the current alignment flags, use specific + // methods below such as Top(), Left() &c if you want to set just the + // vertical or horizontal alignment + wxSizerFlags& Align(int alignment) // combination of wxAlignment values { - m_flags |= wxEXPAND; + m_flags &= ~wxALIGN_MASK; + m_flags |= alignment; + return *this; } // some shortcuts for Align() wxSizerFlags& Centre() { return Align(wxALIGN_CENTRE); } wxSizerFlags& Center() { return Centre(); } - wxSizerFlags& Top() { return Align(wxALIGN_TOP); } - wxSizerFlags& Left() { return Align(wxALIGN_LEFT); } - wxSizerFlags& Right() { return Align(wxALIGN_RIGHT); } - wxSizerFlags& Bottom() { return Align(wxALIGN_BOTTOM); } + + wxSizerFlags& Top() + { + m_flags &= ~(wxALIGN_BOTTOM | wxALIGN_CENTRE_VERTICAL); + return *this; + } + + wxSizerFlags& Left() + { + m_flags &= ~(wxALIGN_RIGHT | wxALIGN_CENTRE_HORIZONTAL); + return *this; + } + + wxSizerFlags& Right() + { + m_flags = (m_flags & ~wxALIGN_CENTRE_HORIZONTAL) | wxALIGN_RIGHT; + return *this; + } + + wxSizerFlags& Bottom() + { + m_flags = (m_flags & ~wxALIGN_CENTRE_VERTICAL) | wxALIGN_BOTTOM; + return *this; + } + // default border size used by Border() below static int GetDefaultBorder() @@ -632,7 +656,14 @@ public: const wxSizerItemList& GetChildren() const { return m_children; } - void SetDimension( int x, int y, int width, int height ); + void SetDimension(const wxPoint& pos, const wxSize& size) + { + m_position = pos; + m_size = size; + Layout(); + } + void SetDimension(int x, int y, int width, int height) + { SetDimension(wxPoint(x, y), wxSize(width, height)); } wxSizerItem* GetItem( wxWindow *window, bool recursive = false ); wxSizerItem* GetItem( wxSizer *sizer, bool recursive = false ); @@ -754,6 +785,8 @@ public: void AddGrowableCol( size_t idx, int proportion = 0 ); void RemoveGrowableCol( size_t idx ); + bool IsRowGrowable( size_t idx ); + bool IsColGrowable( size_t idx ); // the sizer cells may grow in both directions, not grow at all or only // grow in one direction but not the other @@ -892,36 +925,6 @@ private: DECLARE_CLASS(wxBoxSizer) }; -//--------------------------------------------------------------------------- -// wxWrapSizer - A box sizer that can wrap items on several lines when -// widths exceed available width. -//--------------------------------------------------------------------------- - -// Borrow unused flag value -#define wxEXTEND_LAST_ON_EACH_LINE wxFULL_REPAINT_ON_RESIZE - -class WXDLLIMPEXP_CORE wxWrapSizer: public wxBoxSizer -{ -public: - wxWrapSizer( int orient=wxHORIZONTAL, int flags=wxEXTEND_LAST_ON_EACH_LINE ); - virtual ~wxWrapSizer(); - - virtual void RecalcSizes(); - virtual wxSize CalcMin(); - - virtual bool InformFirstDirection( int direction, int size, int availableOtherDir ); - -protected: - int m_prim_size_last; // Size in primary direction last time - int m_n_line; // Number of lines - wxBoxSizer m_rows; // Rows of items - int m_flags; - - void AdjustPropLastItem(wxSizer *psz, wxSizerItem *itemLast); - - DECLARE_DYNAMIC_CLASS(wxWrapSizer) -}; - //--------------------------------------------------------------------------- // wxStaticBoxSizer //---------------------------------------------------------------------------