Added wxNewSizer and wxBorderNewSizer with sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3319 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: sizer.h
|
||||
// Purpose: provide wxSizer class for layounting
|
||||
// Purpose: provide wxNewSizer class for layounting
|
||||
// Author: Robert Roebling and Robin Dunn
|
||||
// Modified by:
|
||||
// Created:
|
||||
@@ -26,62 +26,63 @@
|
||||
// classes
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
class wxSizerItem;
|
||||
class wxSizer;
|
||||
class wxBoxSizer;
|
||||
class wxNewSizerItem;
|
||||
class wxNewSizer;
|
||||
class wxBoxNewSizer;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// wxSizerItem
|
||||
// wxNewSizerItem
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxSizerItem: wxObject
|
||||
class WXDLLEXPORT wxNewSizerItem: public wxObject
|
||||
{
|
||||
public:
|
||||
// spacer
|
||||
wxSizerItem( int width, int height, int option )
|
||||
wxNewSizerItem( int width, int height, int option );
|
||||
|
||||
// window
|
||||
wxSizerItem( wxWindow *window, int option );
|
||||
wxNewSizerItem( wxWindow *window, int option );
|
||||
|
||||
// subsizer
|
||||
wxSizerItem( wxSizer *sizer, int option );
|
||||
wxNewSizerItem( wxNewSizer *sizer, int option );
|
||||
|
||||
virtual wxSize GetMinSize();
|
||||
virtual wxSize GetSize();
|
||||
virtual wxSize CalcMin();
|
||||
virtual void SetDimension( wxPoint pos, wxSize size );
|
||||
|
||||
bool IsWindow();
|
||||
bool IsSizer();
|
||||
bool IsNewSizer();
|
||||
bool IsSpacer();
|
||||
|
||||
wxWindow *GetWindow() const
|
||||
{ return m_window; }
|
||||
wxSizer *GetSizer() const
|
||||
wxNewSizer *GetNewSizer() const
|
||||
{ return m_sizer; }
|
||||
int GetOption() const
|
||||
{ return m_option; }
|
||||
|
||||
private:
|
||||
protected:
|
||||
wxWindow *m_window;
|
||||
wxSizer *m_sizer;
|
||||
wxNewSizer *m_sizer;
|
||||
wxSize m_minSize;
|
||||
int m_option;
|
||||
}
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// wxSizer
|
||||
// wxNewSizer
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxSizer: wxObject
|
||||
class WXDLLEXPORT wxNewSizer: public wxObject
|
||||
{
|
||||
public:
|
||||
wxSizer()
|
||||
~wxSizer()
|
||||
wxNewSizer();
|
||||
~wxNewSizer();
|
||||
|
||||
virtual void Add( wxWindow *window, int option = 0 );
|
||||
virtual void Add( wxSizer *sizer, int option = 0 );
|
||||
virtual void Add( wxNewSizer *sizer, int option = 0 );
|
||||
virtual void Add( int width, int height, int option = 0 );
|
||||
|
||||
void SetDimension( int x, int y, int width, int height )
|
||||
{ DoSetDimension( x, y, width, height ); }
|
||||
void SetDimension( int x, int y, int width, int height );
|
||||
|
||||
wxSize GetSize()
|
||||
{ return m_size; }
|
||||
@@ -89,21 +90,52 @@ public:
|
||||
{ return m_position; }
|
||||
wxSize GetMinSize()
|
||||
{ return CalcMin(); }
|
||||
|
||||
|
||||
virtual void RecalcSizes() = 0;
|
||||
virtual wxSize CalcMin() = 0;
|
||||
|
||||
virtual void Layout();
|
||||
|
||||
void Fit( wxWindow *window );
|
||||
void SetSizeHints( wxWindow *window );
|
||||
|
||||
private:
|
||||
protected:
|
||||
wxSize m_size;
|
||||
wxPoint m_position;
|
||||
wxList m_children;
|
||||
|
||||
wxSize GetMinWindowSize( wxWindow *window );
|
||||
virtual void DoSetDimension( int x, int y, int width, int height );
|
||||
}
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// wxBorderNewSizer
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#define wxWEST wxLEFT
|
||||
#define wxEAST wxRIGHT
|
||||
#define wxNORTH wxUP
|
||||
#define wxSOUTH wxDOWN
|
||||
#define wxALL_DIRECTIONS (wxNORTH | wxSOUTH | wxEAST | wxWEST)
|
||||
|
||||
class WXDLLEXPORT wxBorderNewSizer: public wxNewSizer
|
||||
{
|
||||
public:
|
||||
wxBorderNewSizer( int sides = wxALL_DIRECTIONS );
|
||||
|
||||
virtual void Add( wxWindow *window, int option = 10 );
|
||||
virtual void Add( wxNewSizer *sizer, int option = 10 );
|
||||
virtual void Add( int width, int height, int option = 10 );
|
||||
|
||||
void RecalcSizes();
|
||||
wxSize CalcMin();
|
||||
|
||||
int GetSides()
|
||||
{ return m_sides; }
|
||||
|
||||
protected:
|
||||
int m_sides;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
// __WXSIZER_H__
|
||||
|
Reference in New Issue
Block a user