/////////////////////////////////////////////////////////////////////////////
-// Program: wxWindows Widgets Sample
+// Program: wxWidgets Widgets Sample
// Name: notebook.cpp
// Purpose: Part of the widgets sample showing wxNotebook
// Author: Vadim Zeitlin
#include "wx/sizer.h"
#include "wx/notebook.h"
+#include "wx/artprov.h"
#include "widgets.h"
-
+#if 1
#include "icons/notebook.xpm"
// ----------------------------------------------------------------------------
Orient_Max
};
-// old versions of wxWindows don't define this style
+// old versions of wxWidgets don't define this style
#ifndef wxNB_TOP
#define wxNB_TOP (0)
#endif
// get the numeric value of text ctrl
int GetTextValue(wxTextCtrl *text) const;
+ // is the value in range?
+ bool IsValidValue(int val) const
+ { return (val >= 0) && (val < (int) m_notebook->GetPageCount()); }
+
// the controls
// ------------
EVT_UPDATE_UI(NotebookPage_InsertPage, NotebookWidgetsPage::OnUpdateUIInsertButton)
EVT_UPDATE_UI(NotebookPage_RemovePage, NotebookWidgetsPage::OnUpdateUIRemoveButton)
- EVT_NOTEBOOK_PAGE_CHANGING(-1, NotebookWidgetsPage::OnPageChanging)
- EVT_NOTEBOOK_PAGE_CHANGED(-1, NotebookWidgetsPage::OnPageChanged)
+ EVT_NOTEBOOK_PAGE_CHANGING(wxID_ANY, NotebookWidgetsPage::OnPageChanging)
+ EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, NotebookWidgetsPage::OnPageChanged)
- EVT_CHECKBOX(-1, NotebookWidgetsPage::OnCheckOrRadioBox)
- EVT_RADIOBOX(-1, NotebookWidgetsPage::OnCheckOrRadioBox)
+ EVT_CHECKBOX(wxID_ANY, NotebookWidgetsPage::OnCheckOrRadioBox)
+ EVT_RADIOBOX(wxID_ANY, NotebookWidgetsPage::OnCheckOrRadioBox)
END_EVENT_TABLE()
// ============================================================================
wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL);
// left pane
- wxStaticBox *box = new wxStaticBox(this, -1, _T("&Set style"));
+ wxStaticBox *box = new wxStaticBox(this, wxID_ANY, _T("&Set style"));
// must be in sync with Orient enum
wxString orientations[] =
wxASSERT_MSG( WXSIZEOF(orientations) == Orient_Max,
_T("forgot to update something") );
- m_chkImages = new wxCheckBox(this, -1, _T("Show &images"));
- m_radioOrient = new wxRadioBox(this, -1, _T("&Tab orientation"),
+ m_chkImages = new wxCheckBox(this, wxID_ANY, _T("Show &images"));
+ m_radioOrient = new wxRadioBox(this, wxID_ANY, _T("&Tab orientation"),
wxDefaultPosition, wxDefaultSize,
WXSIZEOF(orientations), orientations,
1, wxRA_SPECIFY_COLS);
sizerLeft->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 15);
// middle pane
- wxStaticBox *box2 = new wxStaticBox(this, -1, _T("&Contents"));
+ wxStaticBox *box2 = new wxStaticBox(this, wxID_ANY, _T("&Contents"));
wxSizer *sizerMiddle = new wxStaticBoxSizer(box2, wxVERTICAL);
wxTextCtrl *text;
wxSizer *sizerRow = CreateSizerWithTextAndLabel(_T("Number of pages: "),
NotebookPage_NumPagesText,
&text);
- text->SetEditable(FALSE);
+ text->SetEditable(false);
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
sizerRow = CreateSizerWithTextAndLabel(_T("Current selection: "),
NotebookPage_CurSelectText,
&text);
- text->SetEditable(FALSE);
+ text->SetEditable(false);
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
sizerRow = CreateSizerWithTextAndButton(NotebookPage_SelectPage,
wxSizer *sizerRight = new wxBoxSizer(wxHORIZONTAL);
m_notebook = new wxNotebook(this, NotebookPage_Notebook);
sizerRight->Add(m_notebook, 1, wxGROW | wxALL, 5);
- sizerRight->SetMinSize(250, 0);
+ sizerRight->SetMinSize(150, 0);
m_sizerNotebook = sizerRight; // save it to modify it later
// the 3 panes panes compose the window
Reset();
CreateImageList();
- SetAutoLayout(TRUE);
SetSizer(sizerTop);
sizerTop->Fit(this);
void NotebookWidgetsPage::Reset()
{
- m_chkImages->SetValue(TRUE);
+ m_chkImages->SetValue(true);
m_radioOrient->SetSelection(Orient_Top);
}
{
// create a dummy image list with a few icons
m_imageList = new wxImageList(32, 32);
- m_imageList->Add(wxTheApp->GetStdIcon(wxICON_INFORMATION));
- m_imageList->Add(wxTheApp->GetStdIcon(wxICON_QUESTION));
- m_imageList->Add(wxTheApp->GetStdIcon(wxICON_WARNING));
- m_imageList->Add(wxTheApp->GetStdIcon(wxICON_ERROR));
+ wxSize size(32, 32);
+ m_imageList->Add(wxArtProvider::GetIcon(wxART_INFORMATION, wxART_OTHER, size));
+ m_imageList->Add(wxArtProvider::GetIcon(wxART_QUESTION, wxART_OTHER, size));
+ m_imageList->Add(wxArtProvider::GetIcon(wxART_WARNING, wxART_OTHER, size));
+ m_imageList->Add(wxArtProvider::GetIcon(wxART_ERROR, wxART_OTHER, size));
}
m_notebook->SetImageList(m_imageList);
if ( notebook )
{
- int sel = notebook->GetSelection();
+ const int sel = notebook->GetSelection();
+
+ const int count = notebook->GetPageCount();
- int count = notebook->GetPageCount();
+ // recreate the pages
for ( int n = 0; n < count; n++ )
{
- wxNotebookPage *page = notebook->GetPage(0);
- page->Reparent(m_notebook);
-
- m_notebook->AddPage(page, notebook->GetPageText(0), FALSE,
- notebook->GetPageImage(0));
-
- notebook->RemovePage(0);
+ m_notebook->AddPage(CreateNewPage(),
+ notebook->GetPageText(n),
+ false,
+ notebook->GetPageImage(n));
}
- m_sizerNotebook->Remove(notebook);
+ m_sizerNotebook->Detach( notebook );
delete notebook;
// restore selection
wxWindow *NotebookWidgetsPage::CreateNewPage()
{
- return new wxTextCtrl(m_notebook, -1, _T("I'm a notebook page"));
+ return new wxTextCtrl(m_notebook, wxID_ANY, _T("I'm a notebook page"));
}
// ----------------------------------------------------------------------------
m_notebook->DeleteAllPages();
}
-void NotebookWidgetsPage::OnButtonSelectPage(wxCommandEvent& event)
+void NotebookWidgetsPage::OnButtonSelectPage(wxCommandEvent& WXUNUSED(event))
{
int pos = GetTextValue(m_textSelect);
- wxCHECK_RET( pos >= 0, _T("button should be disabled") );
+ wxCHECK_RET( IsValidValue(pos), _T("button should be disabled") );
m_notebook->SetSelection(pos);
}
void NotebookWidgetsPage::OnButtonAddPage(wxCommandEvent& WXUNUSED(event))
{
- m_notebook->AddPage(CreateNewPage(), _T("Added page"), FALSE,
+ m_notebook->AddPage(CreateNewPage(), _T("Added page"), false,
GetIconIndex());
}
void NotebookWidgetsPage::OnButtonInsertPage(wxCommandEvent& WXUNUSED(event))
{
int pos = GetTextValue(m_textInsert);
- wxCHECK_RET( pos >= 0, _T("button should be disabled") );
+ wxCHECK_RET( IsValidValue(pos), _T("button should be disabled") );
- m_notebook->InsertPage(pos, CreateNewPage(), _T("Inserted page"), FALSE,
+ m_notebook->InsertPage(pos, CreateNewPage(), _T("Inserted page"), false,
GetIconIndex());
}
void NotebookWidgetsPage::OnButtonRemovePage(wxCommandEvent& WXUNUSED(event))
{
int pos = GetTextValue(m_textRemove);
- wxCHECK_RET( pos >= 0, _T("button should be disabled") );
+ wxCHECK_RET( IsValidValue(pos), _T("button should be disabled") );
m_notebook->DeletePage(pos);
}
void NotebookWidgetsPage::OnUpdateUISelectButton(wxUpdateUIEvent& event)
{
- event.Enable( GetTextValue(m_textSelect) >= 0 );
+ event.Enable( IsValidValue(GetTextValue(m_textSelect)) );
}
void NotebookWidgetsPage::OnUpdateUIInsertButton(wxUpdateUIEvent& event)
{
- event.Enable( GetTextValue(m_textInsert) >= 0 );
+ event.Enable( IsValidValue(GetTextValue(m_textInsert)) );
}
void NotebookWidgetsPage::OnUpdateUIRemoveButton(wxUpdateUIEvent& event)
{
- event.Enable( GetTextValue(m_textRemove) >= 0 );
+ event.Enable( IsValidValue(GetTextValue(m_textRemove)) );
}
void NotebookWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event)
event.SetText( wxString::Format(_T("%d"), m_notebook->GetSelection()) );
}
-void NotebookWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& event)
+void NotebookWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event))
{
CreateNotebook();
}
event.Skip();
}
+#endif