1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: provide wxNewSizer class for layounting
4 // Author: Robert Roebling and Robin Dunn
8 // Copyright: (c) Robin Dunn, Dirk Holtwick and Robert Roebling
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
16 #pragma interface "sizer.h"
21 #include "wx/window.h"
23 #include "wx/dialog.h"
25 //---------------------------------------------------------------------------
27 //---------------------------------------------------------------------------
31 class wxBorderNewSizer
;
34 //---------------------------------------------------------------------------
36 //---------------------------------------------------------------------------
38 class WXDLLEXPORT wxNewSizerItem
: public wxObject
42 wxNewSizerItem( int width
, int height
, int option
);
45 wxNewSizerItem( wxWindow
*window
, int option
);
48 wxNewSizerItem( wxNewSizer
*sizer
, int option
);
50 virtual wxSize
GetSize();
51 virtual wxSize
CalcMin();
52 virtual void SetDimension( wxPoint pos
, wxSize size
);
58 wxWindow
*GetWindow() const
60 wxNewSizer
*GetNewSizer() const
72 //---------------------------------------------------------------------------
74 //---------------------------------------------------------------------------
76 class WXDLLEXPORT wxNewSizer
: public wxObject
82 virtual void Add( wxWindow
*window
, int option
= 0 );
83 virtual void Add( wxNewSizer
*sizer
, int option
= 0 );
84 virtual void Add( int width
, int height
, int option
= 0 );
86 void SetDimension( int x
, int y
, int width
, int height
);
91 { return m_position
; }
95 virtual void RecalcSizes() = 0;
96 virtual wxSize
CalcMin() = 0;
98 virtual void Layout();
100 void Fit( wxWindow
*window
);
101 void SetSizeHints( wxWindow
*window
);
108 wxSize
GetMinWindowSize( wxWindow
*window
);
111 //---------------------------------------------------------------------------
113 //---------------------------------------------------------------------------
115 #define wxWEST wxLEFT
116 #define wxEAST wxRIGHT
118 #define wxSOUTH wxDOWN
119 #define wxALL_DIRECTIONS (wxNORTH | wxSOUTH | wxEAST | wxWEST)
121 class WXDLLEXPORT wxBorderNewSizer
: public wxNewSizer
124 wxBorderNewSizer( int sides
= wxALL_DIRECTIONS
);
126 virtual void Add( wxWindow
*window
, int option
= 10 );
127 virtual void Add( wxNewSizer
*sizer
, int option
= 10 );
128 virtual void Add( int width
, int height
, int option
= 10 );
140 //---------------------------------------------------------------------------
142 //---------------------------------------------------------------------------
144 class WXDLLEXPORT wxBoxNewSizer
: public wxNewSizer
147 wxBoxNewSizer( int orient
);