+ // the sizer cells may grow in both directions, not grow at all or only
+ // grow in one direction but not the other
+
+ // the direction may be wxVERTICAL, wxHORIZONTAL or wxBOTH (default)
+ void SetFlexibleDirection(int direction) { m_flexDirection = direction; }
+ int GetFlexibleDirection() const { return m_flexDirection; }
+
+ // note that the grow mode only applies to the direction which is not
+ // flexible
+ void SetNonFlexibleGrowMode(wxFlexSizerGrowMode mode) { m_growMode = mode; }
+ wxFlexSizerGrowMode GetNonFlexibleGrowMode() const { return m_growMode; }
+
+
+ // implementation
+ virtual void RecalcSizes();
+ virtual wxSize CalcMin();
+
+protected:
+ // the heights/widths of all rows/columns
+ wxArrayInt m_rowHeights,
+ m_colWidths;
+
+ // indices of the growable columns and rows
+ wxArrayInt m_growableRows,
+ m_growableCols;
+
+ // parameters describing whether the growable cells should be resized in
+ // both directions or only one
+ int m_flexDirection;
+ wxFlexSizerGrowMode m_growMode;