X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e3e717ecc5add075cd53a04cf24fe27e24170944..043d16b2256f509cf8aa7bd8d7b05c84bb117084:/samples/notebook/test.cpp diff --git a/samples/notebook/test.cpp b/samples/notebook/test.cpp index e9d6088176..fead54e43d 100644 --- a/samples/notebook/test.cpp +++ b/samples/notebook/test.cpp @@ -13,24 +13,26 @@ #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 @@ -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; @@ -96,22 +116,28 @@ void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window) panel2->SetBackgroundColour(wxColour("BLUE")); wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" }; - wxListBox *listbox = 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, 4); - c->top.SameAs(panel2, wxTop, 4); + c->left.SameAs(panel2, wxLeft, 10); + c->top.SameAs(panel2, wxTop, 5); c->height.PercentOf(panel2, wxHeight, 50); - c->right.SameAs(panel2, wxRight, 4); - listbox->SetConstraints(c); + c->right.SameAs(panel2, wxRight, 10); + radiobox->SetConstraints(c); + + wxRadioBox *radiobox2 = new wxRadioBox(panel2, -1, "Choose one", + wxDefaultPosition, wxDefaultSize, + 5, animals, + 2, wxRA_SPECIFY_ROWS); - wxTextCtrl *text = 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->bottom.SameAs(panel2, wxBottom, 4); - c->top.Below(listbox, 4); - c->right.SameAs(panel2, wxRight, 4); - text->SetConstraints(c); + 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"); @@ -131,6 +157,8 @@ void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window) notebook->SetSelection(2); } +#if USE_TABBED_DIALOG + BEGIN_EVENT_TABLE(MyDialog, wxDialog) EVT_BUTTON(wxID_OK, MyDialog::OnOK) EVT_BUTTON(wxID_CANCEL, MyDialog::OnOK) @@ -153,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); @@ -170,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() @@ -192,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)) @@ -203,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(); @@ -213,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); @@ -232,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; @@ -264,3 +313,5 @@ void MyFrame::OnIdle(wxIdleEvent& WXUNUSED(event)) SetTitle(title); } } + +#endif // USE_TABBED_DIALOG