Added wxWrapSizer (modified patch: [1826950] Wrapping Sizer) from Arne Steinarson
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -66,6 +66,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
||||
EVT_MENU(LAYOUT_TEST_GB_SIZER, MyFrame::TestGridBagSizer)
|
||||
EVT_MENU(LAYOUT_TEST_SET_MINIMAL, MyFrame::TestSetMinimal)
|
||||
EVT_MENU(LAYOUT_TEST_NESTED, MyFrame::TestNested)
|
||||
EVT_MENU(LAYOUT_TEST_WRAP, MyFrame::TestWrap)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
// Define my frame constructor
|
||||
@@ -83,6 +84,7 @@ MyFrame::MyFrame()
|
||||
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->Append(LAYOUT_TEST_NESTED, _T("Test nested sizer in a wxPanel...\tF6"));
|
||||
file_menu->Append(LAYOUT_TEST_WRAP, _T("Test wrap sizers...\tF6"));
|
||||
|
||||
file_menu->AppendSeparator();
|
||||
file_menu->Append(LAYOUT_QUIT, _T("E&xit"), _T("Quit program"));
|
||||
@@ -211,6 +213,12 @@ void MyFrame::TestNested(wxCommandEvent& WXUNUSED(event) )
|
||||
newFrame->Show(true);
|
||||
}
|
||||
|
||||
void MyFrame::TestWrap(wxCommandEvent& WXUNUSED(event) )
|
||||
{
|
||||
MyWrapSizerFrame *newFrame = new MyWrapSizerFrame(_T("Wrap Sizer Test Frame"), 50, 50);
|
||||
newFrame->Show(true);
|
||||
}
|
||||
|
||||
|
||||
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event) )
|
||||
{
|
||||
@@ -306,7 +314,7 @@ void MyFlexSizerFrame::InitFlexSizer(wxFlexGridSizer *sizer, wxWindow* parent)
|
||||
}
|
||||
}
|
||||
|
||||
MyFlexSizerFrame::MyFlexSizerFrame(const wxChar *title, int x, int y )
|
||||
MyFlexSizerFrame::MyFlexSizerFrame(const wxString &title, int x, int y )
|
||||
: wxFrame(NULL, wxID_ANY, title, wxPoint(x, y) )
|
||||
{
|
||||
wxFlexGridSizer *sizerFlex;
|
||||
@@ -387,7 +395,7 @@ MyFlexSizerFrame::MyFlexSizerFrame(const wxChar *title, int x, int y )
|
||||
// MySizerDialog
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
MySizerDialog::MySizerDialog(wxWindow *parent, const wxChar *title)
|
||||
MySizerDialog::MySizerDialog(wxWindow *parent, const wxString &title)
|
||||
: wxDialog(parent, wxID_ANY, wxString(title))
|
||||
{
|
||||
// Begin with first hierarchy: a notebook at the top and
|
||||
@@ -461,7 +469,7 @@ BEGIN_EVENT_TABLE(MyGridBagSizerFrame, wxFrame)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
|
||||
MyGridBagSizerFrame::MyGridBagSizerFrame(const wxChar *title, int x, int y )
|
||||
MyGridBagSizerFrame::MyGridBagSizerFrame(const wxString &title, int x, int y )
|
||||
: wxFrame( NULL, wxID_ANY, title, wxPoint(x, y) )
|
||||
{
|
||||
wxPanel* p = new wxPanel(this, wxID_ANY);
|
||||
@@ -575,7 +583,7 @@ BEGIN_EVENT_TABLE(MySimpleSizerFrame, wxFrame)
|
||||
EVT_MENU( ID_SET_BIG, MySimpleSizerFrame::OnSetBigSize)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
MySimpleSizerFrame::MySimpleSizerFrame(const wxChar *title, int x, int y )
|
||||
MySimpleSizerFrame::MySimpleSizerFrame(const wxString &title, int x, int y )
|
||||
: wxFrame( NULL, wxID_ANY, title, wxPoint(x, y) )
|
||||
{
|
||||
wxMenu *menu = new wxMenu;
|
||||
@@ -621,7 +629,7 @@ void MySimpleSizerFrame::OnSetBigSize( wxCommandEvent& WXUNUSED(event))
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
|
||||
MyNestedSizerFrame::MyNestedSizerFrame(const wxChar *title, int x, int y )
|
||||
MyNestedSizerFrame::MyNestedSizerFrame(const wxString &title, int x, int y )
|
||||
: wxFrame( NULL, wxID_ANY, title, wxPoint(x, y) )
|
||||
{
|
||||
wxMenu *menu = new wxMenu;
|
||||
@@ -661,3 +669,47 @@ MyNestedSizerFrame::MyNestedSizerFrame(const wxChar *title, int x, int y )
|
||||
GetSizer()->SetSizeHints( this );
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// MyWrapSizerFrame
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
|
||||
MyWrapSizerFrame::MyWrapSizerFrame(const wxString &title, int x, int y )
|
||||
: wxFrame( NULL, wxID_ANY, title, wxPoint(x, y) )
|
||||
{
|
||||
wxMenu *menu = new wxMenu;
|
||||
|
||||
menu->Append(wxID_ABOUT, "Do nothing");
|
||||
|
||||
wxMenuBar *menu_bar = new wxMenuBar;
|
||||
menu_bar->Append(menu, "&File");
|
||||
|
||||
SetMenuBar( menu_bar );
|
||||
|
||||
wxBoxSizer *root = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
// A number of checkboxes inside a wrap sizer
|
||||
wxSizer *ps_mid = new wxStaticBoxSizer( wxVERTICAL, this, "Wrapping check-boxes" );
|
||||
wxSizer *ps_mid_wrap = new wxWrapSizer(wxHORIZONTAL);
|
||||
ps_mid->Add( ps_mid_wrap, 100, wxEXPAND );
|
||||
for( int ix=0; ix<6; ix++ )
|
||||
ps_mid_wrap->Add( new wxCheckBox(this,wxID_ANY,wxString::Format("Option %d",ix+1)), 0, wxALIGN_CENTRE|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
root->Add( ps_mid, 0, wxEXPAND | wxALL, 5 );
|
||||
|
||||
// A shaped item inside a box sizer
|
||||
wxSizer *ps_bottom = new wxStaticBoxSizer( wxVERTICAL, this, "With wxSHAPED item" );
|
||||
wxSizer *ps_bottom_box = new wxBoxSizer(wxHORIZONTAL);
|
||||
ps_bottom->Add( ps_bottom_box, 100, wxEXPAND );
|
||||
ps_bottom_box->Add( new wxListBox(this,wxID_ANY,wxPoint(0,0),wxSize(70,70)), 0, wxEXPAND|wxSHAPED );
|
||||
ps_bottom_box->Add( 10,10 );
|
||||
ps_bottom_box->Add( new wxCheckBox(this,wxID_ANY,"A much longer option..."), 100, 0, 5 );
|
||||
|
||||
root->Add( ps_bottom, 1, wxEXPAND | wxALL, 5 );
|
||||
|
||||
// Set sizer for window
|
||||
SetSizer( root );
|
||||
root->Fit( this );
|
||||
root->SetSizeHints( this );
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user