// Modified by: Dimitri Schoolwerth
// Created: 26/10/98
// RCS-ID: $Id$
-// Copyright: (c) 1998-2002 wxWindows team
+// Copyright: (c) 1998-2002 wxWidgets team
// License: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// Problem with generic wxNotebook implementation whereby it doesn't size
// properly unless you set the size again
-#if defined(__WIN16__) || defined(__WXMOTIF__)
+#if defined(__WXMOTIF__)
int width, height;
frame->GetSize(& width, & height);
- frame->SetSize(-1, -1, width, height);
+ frame->SetSize(wxDefaultPosition.x, wxDefaultPosition.y, width, height);
#endif
frame->Show();
- return TRUE;
+ return true;
}
MyNotebook::MyNotebook(wxWindow *parent, wxWindowID id,
{
wxPanel *panel = new wxPanel(this);
- (void) new wxButton( panel, -1, wxT("Button"),
- wxPoint(10, 10), wxSize(-1, -1) );
+ (void) new wxButton( panel, wxID_ANY, wxT("Button"),
+ wxPoint(10, 10), wxDefaultSize );
return panel;
}
wxString animals[] = { wxT("Fox"), wxT("Hare"), wxT("Rabbit"),
wxT("Sabre-toothed tiger"), wxT("T Rex") };
- wxRadioBox *radiobox1 = new wxRadioBox(panel, -1, wxT("Choose one"),
+ wxRadioBox *radiobox1 = new wxRadioBox(panel, wxID_ANY, wxT("Choose one"),
wxDefaultPosition, wxDefaultSize, 5, animals, 2, wxRA_SPECIFY_ROWS);
wxString computers[] = { wxT("Amiga"), wxT("Commodore 64"), wxT("PET"),
wxT("Another") };
- wxRadioBox *radiobox2 = new wxRadioBox(panel, -1,
+ wxRadioBox *radiobox2 = new wxRadioBox(panel, wxID_ANY,
wxT("Choose your favourite"), wxDefaultPosition, wxDefaultSize,
4, computers, 0, wxRA_SPECIFY_COLS);
{
wxPanel *panel = new wxPanel(this);
- (void) new wxStaticText( panel, -1,
+ (void) new wxStaticText( panel, wxID_ANY,
wxT("This page intentionally left blank"), wxPoint(10, 10) );
return panel;
{
wxPanel *panel = new wxPanel(this);
- wxButton *buttonBig = new wxButton( panel, -1, wxT("Maximized button"),
+ wxButton *buttonBig = new wxButton( panel, wxID_ANY, wxT("Maximized button"),
wxPoint(0, 0), wxSize(480, 360) );
wxBoxSizer *sizerPanel = new wxBoxSizer(wxVERTICAL);
wxPanel *panel = new wxPanel(this);
panel->SetBackgroundColour( wxColour( wxT("MAROON") ) );
- (void) new wxStaticText( panel, -1,
+ (void) new wxStaticText( panel, wxID_ANY,
wxT("This page has been inserted, not added."), wxPoint(10, 10) );
return panel;
void MyNotebook::CreateInitialPages()
{
- wxPanel *panel = (wxPanel *) NULL;
-
// Create and add some panels to the notebook
- panel = CreateRadioButtonsPage();
- AddPage( panel, RADIOBUTTONS_PAGE_NAME, FALSE, GetIconIndex() );
+ wxPanel *panel = CreateRadioButtonsPage();
+ AddPage( panel, RADIOBUTTONS_PAGE_NAME, false, GetIconIndex() );
panel = CreateVetoPage();
- AddPage( panel, VETO_PAGE_NAME, FALSE, GetIconIndex() );
+ AddPage( panel, VETO_PAGE_NAME, false, GetIconIndex() );
panel = CreateBigButtonPage();
- AddPage( panel, MAXIMIZED_BUTTON_PAGE_NAME, FALSE, GetIconIndex() );
+ AddPage( panel, MAXIMIZED_BUTTON_PAGE_NAME, false, GetIconIndex() );
panel = CreateInsertPage();
- InsertPage( 0, panel, I_WAS_INSERTED_PAGE_NAME, FALSE, GetIconIndex() );
+ InsertPage( 0, panel, I_WAS_INSERTED_PAGE_NAME, false, GetIconIndex() );
SetSelection(1);
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size,
long style)
- : wxFrame((wxWindow *) NULL, -1, title, pos, size, style)
+ : wxFrame((wxWindow *) NULL, wxID_ANY, title, pos, size, style)
{
m_panel = (wxPanel *) NULL;
m_notebook = (MyNotebook *) NULL;
wxArtProvider::GetIcon(wxART_ERROR, wxART_OTHER, imageSize)
);
- m_panel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize,
- wxTAB_TRAVERSAL | wxCLIP_CHILDREN | wxNO_BORDER);
+ m_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize,
+ wxTAB_TRAVERSAL | wxCLIP_CHILDREN | wxNO_BORDER | wxNO_FULL_REPAINT_ON_RESIZE);
// Create remaining controls
wxT("Forgot to update something") );
m_radioOrient = new wxRadioBox
- (
- m_panel, ID_RADIO_ORIENT,
- wxT("&Tab orientation"),
- wxDefaultPosition, wxDefaultSize,
- WXSIZEOF(strOrientations), strOrientations,
- 1, wxRA_SPECIFY_COLS
- );
+ (
+ m_panel, ID_RADIO_ORIENT,
+ wxT("&Tab orientation"),
+ wxDefaultPosition, wxDefaultSize,
+ WXSIZEOF(strOrientations), strOrientations,
+ 1, wxRA_SPECIFY_COLS
+ );
m_chkShowImages = new wxCheckBox( m_panel, ID_CHK_SHOWIMAGES,
wxT("&Show images") );
+#ifndef TEST_LISTBOOK
+ m_chkMultiLine = new wxCheckBox( m_panel, ID_CHK_MULTILINE,
+ wxT("&Multiple lines") );
+#endif // !TEST_LISTBOOK
m_btnAddPage = new wxButton( m_panel, ID_BTN_ADD_PAGE, wxT("&Add page") );
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,
+ m_text = new wxTextCtrl(m_panel, wxID_ANY, 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);
m_sizerTop = new wxBoxSizer(wxHORIZONTAL);
wxBoxSizer *sizerLeft = new wxBoxSizer(wxVERTICAL);
- {
- sizerLeft->Add(m_radioOrient, 0, wxEXPAND);
- sizerLeft->Add(m_chkShowImages, 0, wxEXPAND | wxTOP, 4);
+ sizerLeft->Add(m_radioOrient, 0, wxEXPAND);
+ sizerLeft->Add(m_chkShowImages, 0, wxEXPAND | wxTOP, 4);
+#ifndef TEST_LISTBOOK
+ sizerLeft->Add(m_chkMultiLine, 0, wxEXPAND | wxTOP, 4);
+#endif // !TEST_LISTBOOK
- sizerLeft->Add(0, 0, 1); // Spacer
+ sizerLeft->Add(0, 0, 1); // Spacer
- 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_btnNextPage, 0, wxEXPAND | (wxTOP | wxBOTTOM), 4);
+ sizerLeft->Add(m_btnAddPage, 0, wxEXPAND | (wxTOP | wxBOTTOM), 4);
+ sizerLeft->Add(m_btnInsertPage, 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
+ sizerLeft->Add(0, 0, 1); // Spacer
- sizerLeft->Add(m_btnExit, 0, wxEXPAND);
- }
+ sizerLeft->Add(m_btnExit, 0, wxEXPAND);
m_sizerTop->Add(sizerLeft, 0, wxEXPAND | wxALL, 4);
m_sizerFrame->Add(m_text, 0, wxEXPAND);
ReInitNotebook();
+ m_notebook->CreateInitialPages();
m_panel->SetSizer(m_sizerFrame);
- m_panel->SetAutoLayout(TRUE);
+ m_panel->SetAutoLayout(true);
m_sizerFrame->Fit(this);
break;
}
+#ifndef TEST_LISTBOOK
+ if ( m_chkMultiLine->IsChecked() )
+ flags |= wxNB_MULTILINE;
+#endif // !TEST_LISTBOOK
+
MyNotebook *notebook = m_notebook;
m_notebook = new MyNotebook(m_panel, ID_NOTEBOOK,
{
wxString str = notebook->GetPageText(n);
- wxNotebookPage *page = m_notebook->CreatePage(str);
- m_notebook->AddPage(page, str, FALSE, m_notebook->GetIconIndex() );
+ wxWindow *page = m_notebook->CreatePage(str);
+ m_notebook->AddPage(page, str, false, m_notebook->GetIconIndex() );
}
if (m_sizerNotebook)
}
- m_sizerNotebook = new wxNotebookSizer(m_notebook);
+ m_sizerNotebook = new wxBookCtrlSizer(m_notebook);
m_sizerTop->Add(m_sizerNotebook, 1, wxEXPAND | wxALL, 4);
m_sizerTop->Layout();
}
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_RADIOBOX(ID_RADIO_ORIENT, MyFrame::OnCheckOrRadioBox)
EVT_CHECKBOX(ID_CHK_SHOWIMAGES, MyFrame::OnCheckOrRadioBox)
+#ifndef TEST_LISTBOOK
+ EVT_CHECKBOX(ID_CHK_MULTILINE, MyFrame::OnCheckOrRadioBox)
+#endif // !TEST_LISTBOOK
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();
+ 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"),
- wxPoint(10, 10), wxSize(-1, -1) );
+ wxPanel *panel = new wxPanel( m_notebook, wxID_ANY );
+ (void) new wxButton( panel, wxID_ANY, wxT("First button"),
+ wxPoint(10, 10), wxDefaultSize );
+ (void) new wxButton( panel, wxID_ANY, wxT("Second button"),
+ wxPoint(50, 100), wxDefaultSize );
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->InsertPage( 0, panel,
- wxString::Format(INSERTED_PAGE_NAME wxT("%u"), ++s_pageIns), FALSE,
+ wxString::Format(INSERTED_PAGE_NAME wxT("%u"), ++s_pageIns), false,
m_notebook->GetIconIndex() );
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 );
+}