-// Define the behaviour for the frame closing
-// - must delete all frames except for the main one.
-bool MyFrame::OnClose(void)
-{
- Show(FALSE);
-
- return TRUE;
-}
-
-SizerFrame::SizerFrame(wxFrame *frame, char *title, int x, int y, int w, int h):
- wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h))
-{
- panel = new wxPanel(this, -1, wxPoint(0, 0), wxSize(-1, -1), wxTAB_TRAVERSAL);
- panel->SetBackgroundColour(wxColour(192, 192, 192));
-
- // A sizer to fit the whole panel, plus two sizers, one
- // above the other. A button is centred on the lower
- // sizer; a rowcol containing 3 buttons is centred on the upper
- // sizer.
- wxSizer *expandSizer = new wxSizer(panel, wxSizerExpand);
- expandSizer->SetName("expandSizer");
-
- wxLayoutConstraints *c;
-
- /////// TOP OF PANEL
- ///////
- wxSizer *topSizer = new wxSizer(expandSizer);
- topSizer->SetName("topSizer");
-
- // Specify constraints for the top sizer
- c = new wxLayoutConstraints;
- c->left.SameAs (expandSizer, wxLeft);
- c->top.SameAs (expandSizer, wxTop);
- c->right.SameAs (expandSizer, wxRight);
- c->height.PercentOf (expandSizer, wxHeight, 50);
-
- topSizer->SetConstraints(c);
-
- /*
- * Add a row-col sizer and some buttons
- */
-
- // Default is layout by rows, 20 columns per row, shrink to fit.
- wxRowColSizer *rowCol = new wxRowColSizer(topSizer);
- rowCol->SetName("rowCol");
-
- wxButton *button = new wxButton(panel, -1, "Button 1");
- rowCol->AddSizerChild(button);
-
- button = new wxButton(panel, -1, "Button 2");
- rowCol->AddSizerChild(button);
-
- button = new wxButton(panel, -1, "Button 3");
- rowCol->AddSizerChild(button);
-
- // Centre the rowcol in the middle of the upper sizer
- c = new wxLayoutConstraints;
- c->centreX.SameAs (topSizer, wxCentreX);
- c->centreY.SameAs (topSizer, wxCentreY);
- c->width.AsIs();
- c->height.AsIs();
- rowCol->SetConstraints(c);
-
- /////// BOTTOM OF PANEL
- ///////
- wxSizer *bottomSizer = new wxSizer(expandSizer);
-
- // Specify constraints for the bottom sizer
- c = new wxLayoutConstraints;
- c->left.SameAs (expandSizer, wxLeft);
- c->top.PercentOf (expandSizer, wxHeight, 50);
- c->right.SameAs (expandSizer, wxRight);
- c->height.PercentOf (expandSizer, wxHeight, 50);
-
- bottomSizer->SetConstraints(c);
-
- wxButton *button2 = new wxButton(panel, -1, "Test button");
-
- // The button should be a child of the bottom sizer
- bottomSizer->AddSizerChild(button2);
-
- // Centre the button on the sizer
- c = new wxLayoutConstraints;
- c->centreX.SameAs (bottomSizer, wxCentreX);
- c->centreY.SameAs (bottomSizer, wxCentreY);
- c->width.PercentOf (bottomSizer, wxWidth, 20);
- c->height.PercentOf (bottomSizer, wxHeight, 20);
- button2->SetConstraints(c);
-}
-
-BEGIN_EVENT_TABLE(SizerFrame, wxFrame)
- EVT_SIZE(SizerFrame::OnSize)
-END_EVENT_TABLE()