X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ee4c6942b49d6ea13258437466c5735b1ba3ec6a..b2cad68016b67027003b1ff855c825f08a78bb3a:/samples/notebook/test.cpp diff --git a/samples/notebook/test.cpp b/samples/notebook/test.cpp index 4070a935bd..37306e8e3a 100644 --- a/samples/notebook/test.cpp +++ b/samples/notebook/test.cpp @@ -6,7 +6,7 @@ // Created: 26/10/98 // RCS-ID: $Id$ // Copyright: (c) -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // For compilers that support precompilation, includes "wx.h". @@ -41,7 +41,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 @@ -58,8 +58,8 @@ bool MyApp::OnInit(void) void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window) { m_okButton = new wxButton(window, wxID_OK, "Close", wxPoint(-1, -1), wxSize(80, 25)); - m_cancelButton = new wxButton(window, wxID_CANCEL, "Cancel", wxPoint(-1, -1), wxSize(80, 25)); - m_helpButton = new wxButton(window, wxID_HELP, "Help", 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_okButton->SetDefault(); wxLayoutConstraints* c = new wxLayoutConstraints; @@ -67,10 +67,10 @@ void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window) c->bottom.SameAs(window, wxBottom, 4); c->height.AsIs(); c->width.AsIs(); - m_helpButton->SetConstraints(c); + m_addPageButton->SetConstraints(c); c = new wxLayoutConstraints; - c->right.SameAs(m_helpButton, wxLeft, 4); + c->right.SameAs(m_addPageButton, wxLeft, 4); c->bottom.SameAs(window, wxBottom, 4); c->height.AsIs(); c->width.AsIs(); @@ -88,17 +88,34 @@ 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); - (void)new wxTextCtrl(panel2, -1, "Some notes about the animals in this house", wxPoint(5, 100), wxSize(170, 100), - wxTE_MULTILINE); + c = new wxLayoutConstraints; + c->left.SameAs(panel2, wxLeft, 4); + c->top.SameAs(panel2, wxTop, 4); + c->height.PercentOf(panel2, wxHeight, 50); + c->right.SameAs(panel2, wxRight, 4); + radiobox->SetConstraints(c); + + 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, 4); + c->right.SameAs(radiobox, wxRight); + radiobox2->SetConstraints(c); notebook->AddPage(panel2, "Dog"); @@ -109,6 +126,13 @@ 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); } BEGIN_EVENT_TABLE(MyDialog, wxDialog) @@ -150,13 +174,15 @@ void MyDialog::Init(void) SetAutoLayout(TRUE); Layout(); - this->Centre(wxBOTH); + Centre(wxBOTH); } BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_BUTTON(wxID_OK, MyFrame::OnOK) - EVT_BUTTON(wxID_CANCEL, MyFrame::OnOK) + EVT_BUTTON(ID_DELETE_PAGE, MyFrame::OnDeletePage) + EVT_BUTTON(ID_ADD_PAGE, MyFrame::OnAddPage) EVT_SIZE(MyFrame::OnSize) + EVT_IDLE(MyFrame::OnIdle) END_EVENT_TABLE() MyFrame::MyFrame(wxFrame* parent, const wxWindowID id, const wxString& title, @@ -168,14 +194,27 @@ MyFrame::MyFrame(wxFrame* parent, const wxWindowID id, const wxString& title, Init(); } +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 ); +} + +void MyFrame::OnDeletePage(wxCommandEvent& WXUNUSED(event)) +{ + m_notebook->DeletePage( m_notebook->GetPageCount()-1 ); +} + void MyFrame::OnOK(wxCommandEvent& WXUNUSED(event) ) { - this->Destroy(); + Destroy(); } void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event) ) { - this->Destroy(); + Destroy(); } void MyFrame::Init(void) @@ -211,3 +250,21 @@ void MyFrame::OnSize(wxSizeEvent& event) m_panel->Layout(); } +void MyFrame::OnIdle(wxIdleEvent& WXUNUSED(event)) +{ + static int s_nPages = -1; + static int s_nSel = -1; + + int nPages = m_notebook->GetPageCount(); + int nSel = m_notebook->GetSelection(); + if ( nPages != s_nPages || nSel != s_nSel ) + { + s_nPages = nPages; + s_nSel = nSel; + + wxString title; + title.Printf("Notebook (%d pages, selection: %d)", nPages, nSel); + + SetTitle(title); + } +}