X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/96d3780753c7f6acfa4e29c1365f8abbfaba8f8c..27d0ab24826ca90626a7417dcd8a4fff5d92e49a:/samples/notebook/test.cpp diff --git a/samples/notebook/test.cpp b/samples/notebook/test.cpp index 6413033ed4..fead54e43d 100644 --- a/samples/notebook/test.cpp +++ b/samples/notebook/test.cpp @@ -6,31 +6,33 @@ // Created: 26/10/98 // RCS-ID: $Id$ // Copyright: (c) -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop + #pragma hdrstop #endif #ifndef WX_PRECOMP -#include "wx/wx.h" + #include "wx/wx.h" #endif #include "test.h" // If 1, use a dialog. Otherwise use a frame. #define USE_TABBED_DIALOG 0 - +#if USE_TABBED_DIALOG MyDialog* dialog = (MyDialog *) NULL; +#else // !USE_TABBED_DIALOG MyFrame* frame = (MyFrame *) NULL; +#endif // USE_TABBED_DIALOG IMPLEMENT_APP(MyApp) -bool MyApp::OnInit(void) +bool MyApp::OnInit() { // Create the main window #if USE_TABBED_DIALOG @@ -41,7 +43,7 @@ bool MyApp::OnInit(void) // Quit immediately the dialog has been dismissed return FALSE; #else - frame = new MyFrame((wxFrame*) NULL, -1, (char *) "Notebook", wxPoint(-1, -1), wxSize(365, 390), wxDEFAULT_FRAME_STYLE); + frame = new MyFrame((wxFrame*) NULL, -1, "Notebook", wxPoint(-1, -1), wxSize(365, 390) ); // Problem with generic wxNotebook implementation whereby it doesn't size properly unless // you set the size again @@ -55,14 +57,18 @@ bool MyApp::OnInit(void) #endif } -void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window) +void MyApp::InitTabView(wxNotebook* notebook, wxPanel* window) { m_okButton = new wxButton(window, wxID_OK, "Close", wxPoint(-1, -1), wxSize(80, 25)); - m_cancelButton = new wxButton(window, ID_DELETE_PAGE, "Delete page", wxPoint(-1, -1), wxSize(80, 25)); - m_addPageButton = new wxButton(window, ID_ADD_PAGE, "Add page", wxPoint(-1, -1), wxSize(80, 25)); + m_cancelButton = new wxButton(window, ID_DELETE_PAGE, "&Delete page", wxPoint(-1, -1), wxSize(80, 25)); + m_addPageButton = new wxButton(window, ID_ADD_PAGE, "&Add page", wxPoint(-1, -1), wxSize(80, 25)); + m_insertPageButton = new wxButton(window, ID_INSERT_PAGE, "&Insert page", wxPoint(-1, -1), wxSize(80, 25)); + m_nextPageButton = new wxButton(window, ID_NEXT_PAGE, "&Next page", wxPoint(-1, -1), wxSize(80, 25)); m_okButton->SetDefault(); - wxLayoutConstraints* c = new wxLayoutConstraints; + wxLayoutConstraints *c; + + c = new wxLayoutConstraints; c->right.SameAs(window, wxRight, 4); c->bottom.SameAs(window, wxBottom, 4); c->height.AsIs(); @@ -74,6 +80,20 @@ void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window) c->bottom.SameAs(window, wxBottom, 4); c->height.AsIs(); c->width.AsIs(); + m_insertPageButton->SetConstraints(c); + + c = new wxLayoutConstraints; + c->right.SameAs(m_insertPageButton, wxLeft, 4); + c->bottom.SameAs(window, wxBottom, 4); + c->height.AsIs(); + c->width.AsIs(); + m_nextPageButton->SetConstraints(c); + + c = new wxLayoutConstraints; + c->right.SameAs(m_nextPageButton, wxLeft, 4); + c->bottom.SameAs(window, wxBottom, 4); + c->height.AsIs(); + c->width.AsIs(); m_cancelButton->SetConstraints(c); c = new wxLayoutConstraints; @@ -88,19 +108,39 @@ void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window) // panel1->SetBackgroundColour(wxColour("RED")); (void)new wxButton(panel1, -1, "Press me", wxPoint(10, 10)); (void)new wxTextCtrl(panel1, -1, "1234", wxPoint(10, 40), wxSize(120, 150)); - + notebook->AddPage(panel1, "Cat", TRUE); wxPanel *panel2 = new wxPanel(notebook, -1); + panel2->SetAutoLayout(TRUE); panel2->SetBackgroundColour(wxColour("BLUE")); wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" }; - (void)new wxListBox(panel2, -1, wxPoint(5, 5), wxSize(170, 80), 5, animals); + wxRadioBox *radiobox = new wxRadioBox(panel2, -1, "Choose one", + wxDefaultPosition, wxDefaultSize, 5, animals, + 2, wxRA_SPECIFY_ROWS); + + c = new wxLayoutConstraints; + c->left.SameAs(panel2, wxLeft, 10); + c->top.SameAs(panel2, wxTop, 5); + c->height.PercentOf(panel2, wxHeight, 50); + c->right.SameAs(panel2, wxRight, 10); + radiobox->SetConstraints(c); - (void)new wxTextCtrl(panel2, -1, "Some notes about the animals in this house", wxPoint(5, 100), wxSize(170, 100), - wxTE_MULTILINE); + wxRadioBox *radiobox2 = new wxRadioBox(panel2, -1, "Choose one", + wxDefaultPosition, wxDefaultSize, + 5, animals, + 2, wxRA_SPECIFY_ROWS); + + c = new wxLayoutConstraints; + c->left.SameAs(radiobox, wxLeft); + c->height.AsIs(); + c->top.Below(radiobox, 5); + c->right.SameAs(radiobox, wxRight); + radiobox2->SetConstraints(c); notebook->AddPage(panel2, "Dog"); + wxPanel *panel3 = new wxPanel(notebook, -1); panel3->SetBackgroundColour(wxColour("WHITE")); notebook->AddPage(panel3, "Goat"); @@ -108,13 +148,17 @@ void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window) wxPanel *panel4 = new wxPanel(notebook, -1); panel4->SetBackgroundColour(wxColour("YELLOW")); notebook->AddPage(panel4, "Sheep"); - + wxPanel *panel5 = new wxPanel(notebook, -1); panel5->SetBackgroundColour(wxColour("MAGENTA")); (void)new wxStaticText(panel5, -1, "This page has been inserted, not added", wxPoint(10, 10) ); notebook->InsertPage(0, panel5, "Sheep"); + + notebook->SetSelection(2); } +#if USE_TABBED_DIALOG + BEGIN_EVENT_TABLE(MyDialog, wxDialog) EVT_BUTTON(wxID_OK, MyDialog::OnOK) EVT_BUTTON(wxID_CANCEL, MyDialog::OnOK) @@ -137,7 +181,7 @@ void MyDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event) ) EndModal(wxID_CANCEL); } -void MyDialog::Init(void) +void MyDialog::Init() { m_notebook = new wxNotebook(this, ID_NOTEBOOK); @@ -154,14 +198,17 @@ void MyDialog::Init(void) SetAutoLayout(TRUE); Layout(); - this->Centre(wxBOTH); + Centre(wxBOTH); } +#else // USE_TABBED_DIALOG + BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_BUTTON(wxID_OK, MyFrame::OnOK) EVT_BUTTON(ID_DELETE_PAGE, MyFrame::OnDeletePage) EVT_BUTTON(ID_ADD_PAGE, MyFrame::OnAddPage) - EVT_SIZE(MyFrame::OnSize) + EVT_BUTTON(ID_INSERT_PAGE, MyFrame::OnInsertPage) + EVT_BUTTON(ID_NEXT_PAGE, MyFrame::OnNextPage) EVT_IDLE(MyFrame::OnIdle) END_EVENT_TABLE() @@ -176,10 +223,23 @@ MyFrame::MyFrame(wxFrame* parent, const wxWindowID id, const wxString& title, void MyFrame::OnAddPage(wxCommandEvent& WXUNUSED(event)) { - wxPanel *panel = new wxPanel( m_notebook, -1 ); - (void)new wxButton( panel, -1, "Button", wxPoint( 10,10 ), wxSize(-1,-1) ); - m_notebook->AddPage( panel, "Added" ); -// m_notebook->SetSelection( m_notebook->GetPageCount()-1 ); + static size_t s_pageAdded = 0; + + wxPanel *panel = new wxPanel( m_notebook, -1 ); + (void)new wxButton( panel, -1, "Button", wxPoint( 10,10 ), wxSize(-1,-1) ); + + m_notebook->AddPage( panel, wxString::Format("Added %u", ++s_pageAdded) ); +} + +void MyFrame::OnInsertPage(wxCommandEvent& WXUNUSED(event)) +{ + static size_t s_pageIns = 0; + + wxPanel *panel = new wxPanel( m_notebook, -1 ); + (void)new wxButton( panel, -1, "Button", wxPoint( 10,10 ), wxSize(-1,-1) ); + + m_notebook->InsertPage(0, panel, wxString::Format("Inserted %u", ++s_pageIns) ); + m_notebook->SetSelection(0); } void MyFrame::OnDeletePage(wxCommandEvent& WXUNUSED(event)) @@ -187,6 +247,11 @@ void MyFrame::OnDeletePage(wxCommandEvent& WXUNUSED(event)) m_notebook->DeletePage( m_notebook->GetPageCount()-1 ); } +void MyFrame::OnNextPage(wxCommandEvent& WXUNUSED(event)) +{ + m_notebook->AdvanceSelection(); +} + void MyFrame::OnOK(wxCommandEvent& WXUNUSED(event) ) { Destroy(); @@ -197,15 +262,22 @@ void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event) ) Destroy(); } -void MyFrame::Init(void) +void MyFrame::Init() { m_panel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxCLIP_CHILDREN); + wxLayoutConstraints* c = new wxLayoutConstraints; + c->left.SameAs(this, wxLeft); + c->right.SameAs(this, wxRight); + c->top.SameAs(this, wxTop); + c->bottom.SameAs(this, wxBottom); + m_panel->SetConstraints(c); + // Note, omit the wxTAB_STYLE_COLOUR_INTERIOR, so we will guarantee a match // with the panel background, and save a bit of time. m_notebook = new wxNotebook(m_panel, ID_NOTEBOOK); - wxLayoutConstraints* c = new wxLayoutConstraints; + c = new wxLayoutConstraints; c->left.SameAs(m_panel, wxLeft, 4); c->right.SameAs(m_panel, wxRight, 4); c->top.SameAs(m_panel, wxTop, 4); @@ -216,20 +288,13 @@ void MyFrame::Init(void) wxGetApp().InitTabView(m_notebook, m_panel); m_panel->SetAutoLayout(TRUE); + SetAutoLayout(TRUE); - m_panel->Layout(); - - this->Centre(wxBOTH); + Centre(wxBOTH); Show(TRUE); } -void MyFrame::OnSize(wxSizeEvent& event) -{ - wxFrame::OnSize(event); - m_panel->Layout(); -} - void MyFrame::OnIdle(wxIdleEvent& WXUNUSED(event)) { static int s_nPages = -1; @@ -248,3 +313,5 @@ void MyFrame::OnIdle(wxIdleEvent& WXUNUSED(event)) SetTitle(title); } } + +#endif // USE_TABBED_DIALOG