162 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        layout.h
 | 
						|
// Purpose:     Layout sample
 | 
						|
// Author:      Julian Smart
 | 
						|
// Modified by:
 | 
						|
// Created:     04/01/98
 | 
						|
// Copyright:   (c) Julian Smart
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
// Define a new application
 | 
						|
class MyApp: public wxApp
 | 
						|
{
 | 
						|
public:
 | 
						|
    MyApp(){}
 | 
						|
    bool OnInit() wxOVERRIDE;
 | 
						|
};
 | 
						|
 | 
						|
// the main frame class
 | 
						|
class MyFrame : public wxFrame
 | 
						|
{
 | 
						|
public:
 | 
						|
    MyFrame();
 | 
						|
 | 
						|
    void TestProportions(wxCommandEvent& event);
 | 
						|
    void TestFlexSizers(wxCommandEvent& event);
 | 
						|
    void TestNotebookSizers(wxCommandEvent& event);
 | 
						|
    void TestGridBagSizer(wxCommandEvent& event);
 | 
						|
    void TestNested(wxCommandEvent& event);
 | 
						|
    void TestSetMinimal(wxCommandEvent& event);
 | 
						|
    void TestWrap(wxCommandEvent& event);
 | 
						|
 | 
						|
    void OnAbout(wxCommandEvent& event);
 | 
						|
    void OnQuit(wxCommandEvent& event);
 | 
						|
 | 
						|
private:
 | 
						|
    wxDECLARE_EVENT_TABLE();
 | 
						|
};
 | 
						|
 | 
						|
// a frame showing the box sizer proportions
 | 
						|
class MyProportionsFrame : public wxFrame
 | 
						|
{
 | 
						|
public:
 | 
						|
    MyProportionsFrame(wxFrame *parent);
 | 
						|
 | 
						|
protected:
 | 
						|
    void UpdateProportions();
 | 
						|
 | 
						|
    void OnProportionChanged(wxSpinEvent& event);
 | 
						|
    void OnProportionUpdated(wxCommandEvent& event);
 | 
						|
 | 
						|
    wxSpinCtrl *m_spins[3]; // size can be changed without changing anything else
 | 
						|
    wxSizer *m_sizer;
 | 
						|
};
 | 
						|
 | 
						|
// a frame using flex sizers for layout
 | 
						|
class MyFlexSizerFrame : public wxFrame
 | 
						|
{
 | 
						|
public:
 | 
						|
    MyFlexSizerFrame(wxFrame* parent);
 | 
						|
 | 
						|
private:
 | 
						|
    void InitFlexSizer(wxFlexGridSizer *sizer, wxWindow* parent);
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
// a dialog using notebook sizer for layout
 | 
						|
class MySizerDialog : public wxDialog
 | 
						|
{
 | 
						|
public:
 | 
						|
    MySizerDialog(wxWindow *parent, const wxString &title );
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
// a frame using wxGridBagSizer for layout
 | 
						|
class MyGridBagSizerFrame : public wxFrame
 | 
						|
{
 | 
						|
public:
 | 
						|
    MyGridBagSizerFrame(wxFrame* parent);
 | 
						|
 | 
						|
    void OnHideBtn(wxCommandEvent&);
 | 
						|
    void OnShowBtn(wxCommandEvent&);
 | 
						|
    void OnMoveBtn(wxCommandEvent&);
 | 
						|
 | 
						|
private:
 | 
						|
    wxGridBagSizer*     m_gbs;
 | 
						|
    wxPanel*            m_panel;
 | 
						|
    wxButton*           m_hideBtn;
 | 
						|
    wxButton*           m_showBtn;
 | 
						|
    wxTextCtrl*         m_hideTxt;
 | 
						|
 | 
						|
    wxButton*           m_moveBtn1;
 | 
						|
    wxButton*           m_moveBtn2;
 | 
						|
    wxGBPosition        m_lastPos;
 | 
						|
 | 
						|
    wxDECLARE_EVENT_TABLE();
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
// a frame for testing simple setting of "default size"
 | 
						|
class MySimpleSizerFrame : public wxFrame
 | 
						|
{
 | 
						|
public:
 | 
						|
    MySimpleSizerFrame(wxFrame* parent);
 | 
						|
 | 
						|
    void OnSetSmallSize( wxCommandEvent &event);
 | 
						|
    void OnSetBigSize( wxCommandEvent &event);
 | 
						|
 | 
						|
private:
 | 
						|
    wxTextCtrl  *m_target;
 | 
						|
 | 
						|
    wxDECLARE_EVENT_TABLE();
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
// a frame for testing simple setting of a frame containing
 | 
						|
// a sizer containing a panel containing a sizer containing
 | 
						|
// controls
 | 
						|
class MyNestedSizerFrame : public wxFrame
 | 
						|
{
 | 
						|
public:
 | 
						|
    MyNestedSizerFrame(wxFrame* parent);
 | 
						|
 | 
						|
 | 
						|
private:
 | 
						|
    wxTextCtrl  *m_target;
 | 
						|
};
 | 
						|
 | 
						|
// a frame with several wrapping sizers
 | 
						|
 | 
						|
class MyWrapSizerFrame: public wxFrame
 | 
						|
{
 | 
						|
public:
 | 
						|
    MyWrapSizerFrame(wxFrame* parent);
 | 
						|
 | 
						|
private:
 | 
						|
    void OnAddCheckbox(wxCommandEvent& event);
 | 
						|
    void OnRemoveCheckbox(wxCommandEvent& event);
 | 
						|
 | 
						|
    void DoAddCheckbox();
 | 
						|
 | 
						|
    wxWindow* m_checkboxParent;
 | 
						|
    wxSizer* m_wrapSizer;
 | 
						|
 | 
						|
    wxDECLARE_EVENT_TABLE();
 | 
						|
};
 | 
						|
 | 
						|
// controls and menu constants
 | 
						|
enum
 | 
						|
{
 | 
						|
    LAYOUT_TEST_SIZER = 101,
 | 
						|
    LAYOUT_TEST_NB_SIZER,
 | 
						|
    LAYOUT_TEST_GB_SIZER,
 | 
						|
    LAYOUT_TEST_PROPORTIONS,
 | 
						|
    LAYOUT_TEST_SET_MINIMAL,
 | 
						|
    LAYOUT_TEST_NESTED,
 | 
						|
    LAYOUT_TEST_WRAP,
 | 
						|
    LAYOUT_QUIT = wxID_EXIT,
 | 
						|
    LAYOUT_ABOUT = wxID_ABOUT
 | 
						|
};
 | 
						|
 |