X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/83edc0a574d4311c536c9e263f512b494130fef3..4087064a382ca938e9b7889a9aafd6340b54d6c5:/samples/layout/layout.cpp diff --git a/samples/layout/layout.cpp b/samples/layout/layout.cpp index 312c164692..fbec3d7dc0 100644 --- a/samples/layout/layout.cpp +++ b/samples/layout/layout.cpp @@ -182,7 +182,7 @@ END_EVENT_TABLE() void MyFrame::LoadFile(wxCommandEvent& WXUNUSED(event) ) { - wxString s = wxFileSelector( _T("Load text file"), (const wxChar *) NULL, + wxString s = wxFileSelector( _T("Load text file"), (const wxChar *) NULL, (const wxChar *) NULL, (const wxChar *) NULL, _T("*.txt") ); if (s != "") { @@ -205,47 +205,47 @@ void MyFrame::TestSizers(wxCommandEvent& WXUNUSED(event) ) void MyFrame::TestNotebookSizers(wxCommandEvent& WXUNUSED(event) ) { - wxDialog dialog( this, -1, "Notebook Sizer Test Dialog" ); + wxDialog dialog( this, -1, wxString("Notebook Sizer Test Dialog") ); // Begin with first hierarchy: a notebook at the top and // and OK button at the bottom. wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - + wxNotebook *notebook = new wxNotebook( &dialog, -1 ); wxNotebookSizer *nbs = new wxNotebookSizer( notebook ); topsizer->Add( nbs, 1, wxGROW ); - + wxButton *button = new wxButton( &dialog, wxID_OK, "OK" ); topsizer->Add( button, 0, wxALIGN_RIGHT | wxALL, 10 ); // First page: one big text ctrl wxTextCtrl *multi = new wxTextCtrl( notebook, -1, "TextCtrl.", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); notebook->AddPage( multi, "Page One" ); - + // Second page: a text ctrl and a button wxPanel *panel = new wxPanel( notebook, -1 ); notebook->AddPage( panel, "Page Two" ); - - wxBoxSizer *panelsizer = new wxBoxSizer( wxVERTICAL ); - + + wxSizer *panelsizer = new wxBoxSizer( wxVERTICAL ); + wxTextCtrl *text = new wxTextCtrl( panel, -1, "TextLine 1.", wxDefaultPosition, wxSize(250,-1) ); panelsizer->Add( text, 0, wxGROW|wxALL, 30 ); text = new wxTextCtrl( panel, -1, "TextLine 2.", wxDefaultPosition, wxSize(250,-1) ); panelsizer->Add( text, 0, wxGROW|wxALL, 30 ); wxButton *button2 = new wxButton( panel, -1, "Hallo" ); panelsizer->Add( button2, 0, wxALIGN_RIGHT | wxLEFT|wxRIGHT|wxBOTTOM, 30 ); - + panel->SetAutoLayout( TRUE ); panel->SetSizer( panelsizer ); - + // Tell dialog to use sizer - + dialog.SetAutoLayout( TRUE ); - topsizer->Fit( &dialog ); - topsizer->SetSizeHints( &dialog ); dialog.SetSizer( topsizer ); - + topsizer->Fit( &dialog ); + topsizer->SetSizeHints( &dialog ); + dialog.ShowModal(); } @@ -275,7 +275,9 @@ void MyFrame::Draw(wxDC& dc, bool WXUNUSED(draw_bitmaps) ) dc.DrawRoundedRectangle(150, 150, 100, 50, 20); dc.DrawEllipse(250, 250, 100, 50); +#if wxUSE_SPLINES dc.DrawSpline(50, 200, 50, 100, 200, 10); +#endif // wxUSE_SPLINES dc.DrawLine(50, 230, 200, 230); dc.SetPen(* wxBLACK_PEN); @@ -319,9 +321,9 @@ MySizerFrame::MySizerFrame(wxFrame *frame, char *title, int x, int y ): // two buttons which. wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - + // 1) top: create wxStaticText with minimum size equal to its default size - topsizer->Add( + topsizer->Add( new wxStaticText( this, -1, "An explanation (wxALIGN_RIGHT)." ), 0, // make vertically unstretchable wxALIGN_RIGHT | // right align text @@ -329,7 +331,7 @@ MySizerFrame::MySizerFrame(wxFrame *frame, char *title, int x, int y ): 5 ); // set border width to 5 // 2) top: create wxTextCtrl with minimum size (100x60) - topsizer->Add( + topsizer->Add( new wxTextCtrl( this, -1, "My text (wxEXPAND).", wxDefaultPosition, wxSize(100,60), wxTE_MULTILINE), 1, // make vertically stretchable wxEXPAND | // make horizontally stretchable @@ -348,42 +350,58 @@ MySizerFrame::MySizerFrame(wxFrame *frame, char *title, int x, int y ): 30); topsizer->Add(statsizer, 1, wxEXPAND | wxALL, 10); + // 2.7) And a test of wxGridSizer + wxGridSizer *gridsizer = new wxGridSizer(2, 5, 5); + gridsizer->Add(new wxStaticText(this, -1, "Label"), 0, + wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL); + gridsizer->Add(new wxTextCtrl(this, -1, "Grid sizer demo"), 1, + wxGROW | wxALIGN_CENTER_VERTICAL); + gridsizer->Add(new wxStaticText(this, -1, "Another label"), 0, + wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL); + gridsizer->Add(new wxTextCtrl(this, -1, "More text"), 1, + wxGROW | wxALIGN_CENTER_VERTICAL); + gridsizer->Add(new wxStaticText(this, -1, "Final label"), 0, + wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL); + gridsizer->Add(new wxTextCtrl(this, -1, "And yet more text"), 1, + wxGROW | wxALIGN_CENTER_VERTICAL); + topsizer->Add(gridsizer, 1, wxGROW | wxALL, 10); + // 3) middle: create wxStaticLine with minimum size (3x3) - topsizer->Add( - new wxStaticLine( this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), + topsizer->Add( + new wxStaticLine( this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), 0, // make vertically unstretchable wxEXPAND | // make horizontally stretchable wxALL, // and make border all around 5 ); // set border width to 5 - - // 4) bottom: create two centred wxButtons + + // 4) bottom: create two centred wxButtons wxBoxSizer *button_box = new wxBoxSizer( wxHORIZONTAL ); button_box->Add( - new wxButton( this, -1, "Two buttons in a box" ), + new wxButton( this, -1, "Two buttons in a box" ), 0, // make horizontally unstretchable wxALL, // make border all around 7 ); // set border width to 7 button_box->Add( - new wxButton( this, -1, "(wxCENTER)" ), + new wxButton( this, -1, "(wxCENTER)" ), 0, // make horizontally unstretchable wxALL, // make border all around 7 ); // set border width to 7 - - topsizer->Add( + + topsizer->Add( button_box, 0, // make vertically unstretchable wxCENTER ); // no border and centre horizontally SetAutoLayout( TRUE ); - + // set frame to minimum size - topsizer->Fit( this ); - + topsizer->Fit( this ); + // don't allow frame to get smaller than what the sizers tell ye - topsizer->SetSizeHints( this ); - + topsizer->SetSizeHints( this ); + SetSizer( topsizer ); }