/////////////////////////////////////////////////////////////////////////////
-// Program: wxWindows Widgets Sample
+// Program: wxWidgets Widgets Sample
// Name: notebook.cpp
// Purpose: Part of the widgets sample showing wxNotebook
// Author: Vadim Zeitlin
#pragma hdrstop
#endif
+#if wxUSE_NOTEBOOK
+
// for all others, include the necessary headers
#ifndef WX_PRECOMP
#include "wx/app.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
-#ifndef wxNB_TOP
- #define wxNB_TOP (0)
-#endif
-
// ----------------------------------------------------------------------------
// NotebookWidgetsPage
// ----------------------------------------------------------------------------
class NotebookWidgetsPage : public WidgetsPage
{
public:
- NotebookWidgetsPage(wxNotebook *notebook, wxImageList *imaglist);
+ NotebookWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
virtual ~NotebookWidgetsPage();
+ virtual wxControl *GetWidget() const { return m_notebook; }
+ virtual void RecreateWidget() { CreateNotebook(); }
+
protected:
// event handlers
void OnPageChanging(wxNotebookEvent& event);
IMPLEMENT_WIDGETS_PAGE(NotebookWidgetsPage, _T("Notebook"));
-NotebookWidgetsPage::NotebookWidgetsPage(wxNotebook *notebook,
+NotebookWidgetsPage::NotebookWidgetsPage(wxBookCtrlBase *book,
wxImageList *imaglist)
- : WidgetsPage(notebook)
+ : WidgetsPage(book)
{
imaglist->Add(wxBitmap(notebook_xpm));
wxStaticBox *box = new wxStaticBox(this, wxID_ANY, _T("&Set style"));
// must be in sync with Orient enum
- wxString orientations[] =
- {
- _T("&top"),
- _T("&bottom"),
- _T("&left"),
- _T("&right"),
- };
+ wxArrayString orientations;
+ orientations.Add(_T("&top"));
+ orientations.Add(_T("&bottom"));
+ orientations.Add(_T("&left"));
+ orientations.Add(_T("&right"));
- wxASSERT_MSG( WXSIZEOF(orientations) == Orient_Max,
+ wxASSERT_MSG( orientations.GetCount() == Orient_Max,
_T("forgot to update something") );
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);
+ orientations, 1, wxRA_SPECIFY_COLS);
wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL);
void NotebookWidgetsPage::CreateNotebook()
{
- int flags;
+ int flags = ms_defaultFlags;
switch ( m_radioOrient->GetSelection() )
{
default:
- wxFAIL_MSG( _T("unknown notebok orientation") );
+ wxFAIL_MSG( _T("unknown notebook orientation") );
// fall through
case Orient_Top:
- flags = wxNB_TOP;
+ flags |= wxBK_TOP;
break;
case Orient_Bottom:
- flags = wxNB_BOTTOM;
+ flags |= wxBK_BOTTOM;
break;
case Orient_Left:
- flags = wxNB_LEFT;
+ flags |= wxBK_LEFT;
break;
case Orient_Right:
- flags = wxNB_RIGHT;
+ flags |= wxBK_RIGHT;
break;
}
- wxNotebook *notebook = m_notebook;
+ wxNotebook *old_note = m_notebook;
m_notebook = new wxNotebook(this, NotebookPage_Notebook,
wxDefaultPosition, wxDefaultSize,
CreateImageList();
- if ( notebook )
+ if ( old_note )
{
- const int sel = notebook->GetSelection();
+ const int sel = old_note->GetSelection();
- const int count = notebook->GetPageCount();
+ const int count = old_note->GetPageCount();
// recreate the pages
for ( int n = 0; n < count; n++ )
{
m_notebook->AddPage(CreateNewPage(),
- notebook->GetPageText(n),
+ old_note->GetPageText(n),
false,
- notebook->GetPageImage(n));
+ m_chkImages->GetValue() ?
+ GetIconIndex() : -1);
}
- m_sizerNotebook->Detach( notebook );
- delete notebook;
+ m_sizerNotebook->Detach( old_note );
+ delete old_note;
// restore selection
if ( sel != -1 )
void NotebookWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event)
{
event.Enable( !m_chkImages->GetValue() ||
- m_radioOrient->GetSelection() != wxNB_TOP );
+ m_radioOrient->GetSelection() != wxBK_TOP );
}
void NotebookWidgetsPage::OnUpdateUINumPagesText(wxUpdateUIEvent& event)
event.Skip();
}
-#endif
+#endif // wxUSE_NOTEBOOK