);
m_panel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize,
- wxTAB_TRAVERSAL | wxCLIP_CHILDREN | wxNO_BORDER);
+ wxTAB_TRAVERSAL | wxCLIP_CHILDREN | wxNO_BORDER | wxNO_FULL_REPAINT_ON_RESIZE);
// Create remaining controls
m_btnInsertPage = new wxButton( m_panel, ID_BTN_INSERT_PAGE,
wxT("&Insert page") );
- m_btnDeletePage = new wxButton( m_panel, ID_BTN_DELETE_PAGE,
- wxT("&Delete page") );
+ m_btnDeleteCurPage = new wxButton( m_panel, ID_BTN_DELETE_CUR_PAGE,
+ wxT("&Delete current page") );
+
+ m_btnDeleteLastPage = new wxButton( m_panel, ID_BTN_DELETE_LAST_PAGE,
+ wxT("Delete las&t page") );
m_btnNextPage = new wxButton( m_panel, ID_BTN_NEXT_PAGE,
wxT("&Next page") );
m_btnExit = new wxButton( m_panel, wxID_OK, wxT("&Exit") );
m_btnExit->SetDefault();
- m_notebook = new MyNotebook(m_panel, ID_NOTEBOOK);
-
m_text = new wxTextCtrl(m_panel, -1, wxEmptyString,
wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY);
m_logTargetOld = wxLog::SetActiveTarget( new wxLogTextCtrl(m_text) );
- // Create the notebook's panels
- m_notebook->CreateInitialPages();
-
// Set sizers
m_sizerFrame = new wxBoxSizer(wxVERTICAL);
sizerLeft->Add(m_btnAddPage, 0, wxEXPAND | (wxTOP | wxBOTTOM), 4);
sizerLeft->Add(m_btnInsertPage, 0, wxEXPAND | (wxTOP | wxBOTTOM), 4);
- sizerLeft->Add(m_btnDeletePage, 0, wxEXPAND | (wxTOP | wxBOTTOM), 4);
+ sizerLeft->Add(m_btnDeleteCurPage, 0, wxEXPAND | (wxTOP | wxBOTTOM), 4);
+ sizerLeft->Add(m_btnDeleteLastPage, 0, wxEXPAND | (wxTOP | wxBOTTOM), 4);
sizerLeft->Add(m_btnNextPage, 0, wxEXPAND | (wxTOP | wxBOTTOM), 4);
sizerLeft->Add(0, 0, 1); // Spacer
m_sizerFrame->Add(m_text, 0, wxEXPAND);
ReInitNotebook();
+ m_notebook->CreateInitialPages();
m_panel->SetSizer(m_sizerFrame);
m_notebook = new MyNotebook(m_panel, ID_NOTEBOOK,
wxDefaultPosition, wxDefaultSize,
- flags);
+ flags|wxCLIP_CHILDREN|wxNO_FULL_REPAINT_ON_RESIZE);
if ( m_chkShowImages->IsChecked() )
{
{
wxString str = notebook->GetPageText(n);
- wxNotebookPage *page = m_notebook->CreatePage(str);
+ wxWindow *page = m_notebook->CreatePage(str);
m_notebook->AddPage(page, str, FALSE, m_notebook->GetIconIndex() );
}
}
- m_sizerNotebook = new wxNotebookSizer(m_notebook);
+ m_sizerNotebook = new wxBookCtrlSizer(m_notebook);
m_sizerTop->Add(m_sizerNotebook, 1, wxEXPAND | wxALL, 4);
m_sizerTop->Layout();
}
EVT_BUTTON(ID_BTN_ADD_PAGE, MyFrame::OnButtonAddPage)
EVT_BUTTON(ID_BTN_INSERT_PAGE, MyFrame::OnButtonInsertPage)
- EVT_BUTTON(ID_BTN_DELETE_PAGE, MyFrame::OnButtonDeletePage)
+ EVT_BUTTON(ID_BTN_DELETE_CUR_PAGE, MyFrame::OnButtonDeleteCurPage)
+ EVT_BUTTON(ID_BTN_DELETE_LAST_PAGE, MyFrame::OnButtonDeleteLastPage)
EVT_BUTTON(ID_BTN_NEXT_PAGE, MyFrame::OnButtonNextPage)
EVT_BUTTON(wxID_OK, MyFrame::OnButtonExit)
+ EVT_UPDATE_UI(ID_BTN_DELETE_CUR_PAGE, MyFrame::OnUpdateUIBtnDeleteCurPage)
+ EVT_UPDATE_UI(ID_BTN_DELETE_LAST_PAGE, MyFrame::OnUpdateUIBtnDeleteLastPage)
+
EVT_NOTEBOOK_PAGE_CHANGED(ID_NOTEBOOK, MyFrame::OnNotebook)
EVT_NOTEBOOK_PAGE_CHANGING(ID_NOTEBOOK, MyFrame::OnNotebook)
EVT_IDLE(MyFrame::OnIdle)
END_EVENT_TABLE()
-void MyFrame::OnCheckOrRadioBox(wxCommandEvent& event)
+void MyFrame::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event))
{
ReInitNotebook();
}
void MyFrame::OnButtonAddPage( wxCommandEvent& WXUNUSED(event) )
{
- static size_t s_pageAdded = 0;
+ static unsigned s_pageAdded = 0;
wxPanel *panel = new wxPanel( m_notebook, -1 );
- (void) new wxButton( panel, -1, wxT("Button"),
+ (void) new wxButton( panel, -1, wxT("First button"),
wxPoint(10, 10), wxSize(-1, -1) );
+ (void) new wxButton( panel, -1, wxT("Second button"),
+ wxPoint(50, 100), wxSize(-1, -1) );
m_notebook->AddPage(panel, wxString::Format(ADDED_PAGE_NAME wxT("%u"),
- ++s_pageAdded), FALSE, m_notebook->GetIconIndex() );
+ ++s_pageAdded), TRUE, m_notebook->GetIconIndex() );
}
void MyFrame::OnButtonInsertPage( wxCommandEvent& WXUNUSED(event) )
{
- static size_t s_pageIns = 0;
+ static unsigned s_pageIns = 0;
wxPanel *panel = m_notebook->CreateUserCreatedPage();
m_notebook->SetSelection(0);
}
-void MyFrame::OnButtonDeletePage( wxCommandEvent& WXUNUSED(event) )
+void MyFrame::OnButtonDeleteLastPage( wxCommandEvent& WXUNUSED(event) )
+{
+ int page = m_notebook->GetPageCount();
+
+ if ( page != 0 )
+ {
+ m_notebook->DeletePage(page - 1);
+ }
+}
+
+void MyFrame::OnButtonDeleteCurPage( wxCommandEvent& WXUNUSED(event) )
{
int sel = m_notebook->GetSelection();
static int s_numNotebookEvents = 0;
wxLogMessage(wxT("Notebook event #%d: %s (%d)"),
- s_numNotebookEvents++, str, eventType);
+ s_numNotebookEvents++, str.c_str(), eventType);
m_text->SetInsertionPointEnd();
SetTitle(title);
}
}
+
+void MyFrame::OnUpdateUIBtnDeleteCurPage(wxUpdateUIEvent& event)
+{
+ event.Enable( m_notebook->GetSelection() != -1 );
+}
+
+void MyFrame::OnUpdateUIBtnDeleteLastPage(wxUpdateUIEvent& event)
+{
+ event.Enable( m_notebook->GetPageCount() != 0 );
+}