From 92c0c17272f3cf7c8e54c17e1799d3813dbb459c Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Tue, 10 Oct 2006 08:57:46 +0000 Subject: [PATCH] Add test for SetItemMinSize() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/layout/layout.cpp | 64 +++++++++++++++++++++++++++++++++++++++ samples/layout/layout.h | 15 +++++++++ 2 files changed, 79 insertions(+) diff --git a/samples/layout/layout.cpp b/samples/layout/layout.cpp index 58762c05fe..a732022995 100644 --- a/samples/layout/layout.cpp +++ b/samples/layout/layout.cpp @@ -61,6 +61,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(LAYOUT_TEST_SIZER, MyFrame::TestFlexSizers) EVT_MENU(LAYOUT_TEST_NB_SIZER, MyFrame::TestNotebookSizers) EVT_MENU(LAYOUT_TEST_GB_SIZER, MyFrame::TestGridBagSizer) + EVT_MENU(LAYOUT_TEST_SET_MINIMAL, MyFrame::TestSetMinimal) END_EVENT_TABLE() // Define my frame constructor @@ -76,6 +77,7 @@ MyFrame::MyFrame() file_menu->Append(LAYOUT_TEST_SIZER, _T("Test wx&FlexSizer...\tF2")); file_menu->Append(LAYOUT_TEST_NB_SIZER, _T("Test ¬ebook sizers...\tF3")); file_menu->Append(LAYOUT_TEST_GB_SIZER, _T("Test &gridbag sizer...\tF4")); + file_menu->Append(LAYOUT_TEST_SET_MINIMAL, _T("Test Set&ItemMinSize...\tF5")); file_menu->AppendSeparator(); file_menu->Append(LAYOUT_QUIT, _T("E&xit"), _T("Quit program")); @@ -192,6 +194,12 @@ void MyFrame::TestNotebookSizers(wxCommandEvent& WXUNUSED(event) ) dialog.ShowModal(); } +void MyFrame::TestSetMinimal(wxCommandEvent& WXUNUSED(event) ) +{ + MySimpleSizerFrame *newFrame = new MySimpleSizerFrame(_T("Simple Sizer Test Frame"), 50, 50); + newFrame->Show(true); +} + void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) { @@ -540,3 +548,59 @@ when compiled in debug mode."), _T("Warning"), wxOK | wxICON_INFORMATION); } m_gbs->Layout(); } + +// ---------------------------------------------------------------------------- +// MySimpleSizerFrame +// ---------------------------------------------------------------------------- + +// Some IDs +enum { + ID_SET_SMALL = 1300, + ID_SET_BIG +}; + +BEGIN_EVENT_TABLE(MySimpleSizerFrame, wxFrame) + EVT_MENU( ID_SET_SMALL, MySimpleSizerFrame::OnSetSmallSize) + EVT_MENU( ID_SET_BIG, MySimpleSizerFrame::OnSetBigSize) +END_EVENT_TABLE() + +MySimpleSizerFrame::MySimpleSizerFrame(const wxChar *title, int x, int y ) + : wxFrame( NULL, wxID_ANY, title, wxPoint(x, y) ) +{ + wxMenu *menu = new wxMenu; + menu->Append(ID_SET_SMALL, _T("Make text control small\tF4")); + menu->Append(ID_SET_BIG, _T("Make text control big\tF5")); + + wxMenuBar *menu_bar = new wxMenuBar; + menu_bar->Append(menu, _T("&File")); + + SetMenuBar( menu_bar ); + + wxBoxSizer *main_sizer = new wxBoxSizer( wxHORIZONTAL ); + + m_target = new wxTextCtrl( this, -1, wxEmptyString, wxDefaultPosition, wxSize( 80, -1 ) ); + main_sizer->Add( m_target, 1, wxALL, 5 ); + + main_sizer->Add( new wxStaticText( this, -1, wxT("Set alternating sizes using F4 and F5") ), 0, wxALL, 5 ); + + SetSizer( main_sizer); + + Layout(); + GetSizer()->Fit( this ); +} + +void MySimpleSizerFrame::OnSetSmallSize( wxCommandEvent &event) +{ + GetSizer()->SetItemMinSize( m_target, 40, -1 ); + Layout(); + GetSizer()->Fit( this ); +} + +void MySimpleSizerFrame::OnSetBigSize( wxCommandEvent &event) +{ + GetSizer()->SetItemMinSize( m_target, 140, -1 ); + Layout(); + GetSizer()->Fit( this ); +} + + diff --git a/samples/layout/layout.h b/samples/layout/layout.h index f66fbec37b..965bcfc5ad 100644 --- a/samples/layout/layout.h +++ b/samples/layout/layout.h @@ -27,6 +27,7 @@ public: void TestFlexSizers(wxCommandEvent& event); void TestNotebookSizers(wxCommandEvent& event); void TestGridBagSizer(wxCommandEvent& event); + void TestSetMinimal(wxCommandEvent& event); void OnAbout(wxCommandEvent& event); void OnQuit(wxCommandEvent& event); @@ -95,7 +96,20 @@ private: }; +// a frame for testing simple setting of "default size" +class MySimpleSizerFrame : public wxFrame +{ +public: + MySimpleSizerFrame(const wxChar *title, int x, int y ); + + void OnSetSmallSize( wxCommandEvent &event); + void OnSetBigSize( wxCommandEvent &event); + +private: + wxTextCtrl *m_target; + DECLARE_EVENT_TABLE() +}; // controls and menu constants @@ -105,6 +119,7 @@ enum LAYOUT_TEST_NB_SIZER, LAYOUT_TEST_GB_SIZER, LAYOUT_TEST_PROPORTIONS, + LAYOUT_TEST_SET_MINIMAL, LAYOUT_QUIT = wxID_EXIT, LAYOUT_ABOUT = wxID_ABOUT };