-
- dialog.SetAutoLayout( TRUE );
- dialog.SetSizer( topsizer );
- topsizer->Fit( &dialog );
- topsizer->SetSizeHints( &dialog );
-
- dialog.ShowModal();
-}
-
-
-void MyFrame::About(wxCommandEvent& WXUNUSED(event) )
-{
- (void)wxMessageBox("wxWindows GUI library layout demo\n",
- "About Layout Demo", wxOK|wxCENTRE);
-}
-
-// Size the subwindows when the frame is resized
-void MyFrame::OnSize(wxSizeEvent& WXUNUSED(event) )
-{
- Layout();
-}
-
-void MyFrame::Draw(wxDC& dc, bool WXUNUSED(draw_bitmaps) )
-{
- dc.SetPen(* wxGREEN_PEN);
- dc.DrawLine(0, 0, 200, 200);
- dc.DrawLine(200, 0, 0, 200);
-
- dc.SetBrush(* wxCYAN_BRUSH);
- dc.SetPen(* wxRED_PEN);
-
- dc.DrawRectangle(100, 100, 100, 50);
- 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);
- dc.DrawArc(50, 300, 100, 250, 100, 300 );
-}
-
-//-----------------------------------------------------------------
-// MyWindow
-//-----------------------------------------------------------------
-
-BEGIN_EVENT_TABLE(MyWindow, wxWindow)
- EVT_PAINT(MyWindow::OnPaint)
-END_EVENT_TABLE()
-
-// Define a constructor for my canvas
-MyWindow::MyWindow(wxFrame *frame, int x, int y, int w, int h, long style):
- wxWindow(frame, -1, wxPoint(x, y), wxSize(w, h), style)
-{
-}
-
-MyWindow::~MyWindow()
-{
-}
-
-// Define the repainting behaviour
-void MyWindow::OnPaint(wxPaintEvent& WXUNUSED(event) )
-{
- wxPaintDC dc(this);
- frame->Draw(dc,TRUE);
-}
-
-//-----------------------------------------------------------------
-// MySizerFrame
-//-----------------------------------------------------------------
-
-MySizerFrame::MySizerFrame(wxFrame *frame, char *title, int x, int y ):
- wxFrame(frame, -1, title, wxPoint(x, y) )
-{
- // we want to get a dialog that is stretchable because it
- // has a text ctrl in the middle. at the bottom, we have
- // two buttons which.
-
- wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
-
- // 1) top: create wxStaticText with minimum size equal to its default size
- topsizer->Add(
- new wxStaticText( this, -1, "An explanation (wxALIGN_RIGHT)." ),
- 0, // make vertically unstretchable
- wxALIGN_RIGHT | // right align text
- wxTOP | wxLEFT | wxRIGHT, // make border all around except wxBOTTOM
- 5 ); // set border width to 5
-
- // 2) top: create wxTextCtrl with minimum size (100x60)
- topsizer->Add(
- new wxTextCtrl( this, -1, "My text (wxEXPAND).", wxDefaultPosition, wxSize(100,60), wxTE_MULTILINE),
- 1, // make vertically stretchable
- wxEXPAND | // make horizontally stretchable
- wxALL, // and make border all around
- 5 ); // set border width to 5
-
- // 2.5) Gratuitous test of wxStaticBoxSizers
- wxBoxSizer *statsizer = new wxStaticBoxSizer(
- new wxStaticBox(this, -1, "A wxStaticBoxSizer"),
- wxVERTICAL );
- statsizer->Add(
- new wxStaticText(this, -1, "And some TEXT inside it"),
- 0,
- wxCENTER |
- wxALL,
- 30);
- topsizer->Add(statsizer, 1, wxEXPAND | wxALL, 10);
-
-
- // 3) middle: create wxStaticLine with minimum size (3x3)
- 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
- wxBoxSizer *button_box = new wxBoxSizer( wxHORIZONTAL );
- button_box->Add(
- 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)" ),
- 0, // make horizontally unstretchable
- wxALL, // make border all around
- 7 ); // set border width to 7
-
- topsizer->Add(
- button_box,
- 0, // make vertically unstretchable
- wxCENTER ); // no border and centre horizontally
-
- SetAutoLayout( TRUE );
-
- // set frame to minimum size
- topsizer->Fit( this );
-
- // don't allow frame to get smaller than what the sizers tell ye
- topsizer->SetSizeHints( this );
-
- SetSizer( topsizer );