no real change: just reorder the code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59314 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -30,6 +30,10 @@
|
|||||||
#include "../sample.xpm"
|
#include "../sample.xpm"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// MyApp
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_APP(MyApp)
|
IMPLEMENT_APP(MyApp)
|
||||||
|
|
||||||
bool MyApp::OnInit()
|
bool MyApp::OnInit()
|
||||||
@@ -43,6 +47,7 @@ bool MyApp::OnInit()
|
|||||||
|
|
||||||
// Create the main window
|
// Create the main window
|
||||||
MyFrame *frame = new MyFrame();
|
MyFrame *frame = new MyFrame();
|
||||||
|
SetTopWindow(frame);
|
||||||
|
|
||||||
// Problem with generic wxNotebook implementation whereby it doesn't size
|
// Problem with generic wxNotebook implementation whereby it doesn't size
|
||||||
// properly unless you set the size again
|
// properly unless you set the size again
|
||||||
@@ -57,6 +62,11 @@ bool MyApp::OnInit()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Creation functions
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
wxPanel *CreateUserCreatedPage(wxBookCtrlBase *parent)
|
wxPanel *CreateUserCreatedPage(wxBookCtrlBase *parent)
|
||||||
{
|
{
|
||||||
wxPanel *panel = new wxPanel(parent);
|
wxPanel *panel = new wxPanel(parent);
|
||||||
@@ -66,7 +76,7 @@ wxPanel *CreateUserCreatedPage(wxBookCtrlBase *parent)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
(void) new wxButton( panel, wxID_ANY, wxT("Button"),
|
(void) new wxButton( panel, wxID_ANY, wxT("Button"),
|
||||||
wxPoint(10, 10), wxDefaultSize );
|
wxPoint(10, 10), wxDefaultSize );
|
||||||
|
|
||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
@@ -79,13 +89,15 @@ wxPanel *CreateRadioButtonsPage(wxBookCtrlBase *parent)
|
|||||||
panel->SetHelpText( wxT( "Panel with some Radio Buttons" ) );
|
panel->SetHelpText( wxT( "Panel with some Radio Buttons" ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxString animals[] = { wxT("Fox"), wxT("Hare"), wxT("Rabbit"),
|
wxString animals[] =
|
||||||
|
{ wxT("Fox"), wxT("Hare"), wxT("Rabbit"),
|
||||||
wxT("Sabre-toothed tiger"), wxT("T Rex") };
|
wxT("Sabre-toothed tiger"), wxT("T Rex") };
|
||||||
|
|
||||||
wxRadioBox *radiobox1 = new wxRadioBox(panel, wxID_ANY, wxT("Choose one"),
|
wxRadioBox *radiobox1 = new wxRadioBox(panel, wxID_ANY, wxT("Choose one"),
|
||||||
wxDefaultPosition, wxDefaultSize, 5, animals, 2, wxRA_SPECIFY_ROWS);
|
wxDefaultPosition, wxDefaultSize, 5, animals, 2, wxRA_SPECIFY_ROWS);
|
||||||
|
|
||||||
wxString computers[] = { wxT("Amiga"), wxT("Commodore 64"), wxT("PET"),
|
wxString computers[] =
|
||||||
|
{ wxT("Amiga"), wxT("Commodore 64"), wxT("PET"),
|
||||||
wxT("Another") };
|
wxT("Another") };
|
||||||
|
|
||||||
wxRadioBox *radiobox2 = new wxRadioBox(panel, wxID_ANY,
|
wxRadioBox *radiobox2 = new wxRadioBox(panel, wxID_ANY,
|
||||||
@@ -109,7 +121,8 @@ wxPanel *CreateVetoPage(wxBookCtrlBase *parent)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
(void) new wxStaticText( panel, wxID_ANY,
|
(void) new wxStaticText( panel, wxID_ANY,
|
||||||
wxT("This page intentionally left blank"), wxPoint(10, 10) );
|
wxT("This page intentionally left blank"),
|
||||||
|
wxPoint(10, 10) );
|
||||||
|
|
||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
@@ -131,7 +144,6 @@ wxPanel *CreateBigButtonPage(wxBookCtrlBase *parent)
|
|||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
wxPanel *CreateInsertPage(wxBookCtrlBase *parent)
|
wxPanel *CreateInsertPage(wxBookCtrlBase *parent)
|
||||||
{
|
{
|
||||||
wxPanel *panel = new wxPanel(parent);
|
wxPanel *panel = new wxPanel(parent);
|
||||||
@@ -142,7 +154,8 @@ wxPanel *CreateInsertPage(wxBookCtrlBase *parent)
|
|||||||
|
|
||||||
panel->SetBackgroundColour( wxColour( wxT("MAROON") ) );
|
panel->SetBackgroundColour( wxColour( wxT("MAROON") ) );
|
||||||
(void) new wxStaticText( panel, wxID_ANY,
|
(void) new wxStaticText( panel, wxID_ANY,
|
||||||
wxT("This page has been inserted, not added."), wxPoint(10, 10) );
|
wxT("This page has been inserted, not added."),
|
||||||
|
wxPoint(10, 10) );
|
||||||
|
|
||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
@@ -205,6 +218,64 @@ wxPanel *CreatePage(wxBookCtrlBase *parent, const wxString&pageName)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// MyFrame
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
||||||
|
// File menu
|
||||||
|
EVT_MENU_RANGE(ID_BOOK_NOTEBOOK, ID_BOOK_MAX, MyFrame::OnType)
|
||||||
|
EVT_MENU_RANGE(ID_ORIENT_DEFAULT, ID_ORIENT_MAX, MyFrame::OnOrient)
|
||||||
|
EVT_MENU(ID_SHOW_IMAGES, MyFrame::OnShowImages)
|
||||||
|
EVT_MENU(ID_MULTI, MyFrame::OnMulti)
|
||||||
|
EVT_MENU(wxID_EXIT, MyFrame::OnExit)
|
||||||
|
|
||||||
|
// Operations menu
|
||||||
|
EVT_MENU(ID_ADD_PAGE, MyFrame::OnAddPage)
|
||||||
|
EVT_MENU(ID_ADD_PAGE_NO_SELECT, MyFrame::OnAddPageNoSelect)
|
||||||
|
EVT_MENU(ID_INSERT_PAGE, MyFrame::OnInsertPage)
|
||||||
|
EVT_MENU(ID_DELETE_CUR_PAGE, MyFrame::OnDeleteCurPage)
|
||||||
|
EVT_MENU(ID_DELETE_LAST_PAGE, MyFrame::OnDeleteLastPage)
|
||||||
|
EVT_MENU(ID_NEXT_PAGE, MyFrame::OnNextPage)
|
||||||
|
EVT_MENU(ID_GO_HOME, MyFrame::OnGoHome)
|
||||||
|
|
||||||
|
#if wxUSE_HELP
|
||||||
|
EVT_MENU(ID_CONTEXT_HELP, MyFrame::OnContextHelp)
|
||||||
|
#endif // wxUSE_HELP
|
||||||
|
EVT_MENU(ID_HITTEST, MyFrame::OnHitTest)
|
||||||
|
|
||||||
|
// Book controls
|
||||||
|
#if wxUSE_NOTEBOOK
|
||||||
|
EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnNotebook)
|
||||||
|
EVT_NOTEBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnNotebook)
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LISTBOOK
|
||||||
|
EVT_LISTBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnListbook)
|
||||||
|
EVT_LISTBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnListbook)
|
||||||
|
#endif
|
||||||
|
#if wxUSE_CHOICEBOOK
|
||||||
|
EVT_CHOICEBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnChoicebook)
|
||||||
|
EVT_CHOICEBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnChoicebook)
|
||||||
|
#endif
|
||||||
|
#if wxUSE_TREEBOOK
|
||||||
|
EVT_TREEBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnTreebook)
|
||||||
|
EVT_TREEBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnTreebook)
|
||||||
|
|
||||||
|
EVT_MENU(ID_ADD_SUB_PAGE, MyFrame::OnAddSubPage)
|
||||||
|
EVT_MENU(ID_ADD_PAGE_BEFORE, MyFrame::OnAddPageBefore)
|
||||||
|
EVT_UPDATE_UI_RANGE(ID_ADD_PAGE_BEFORE, ID_ADD_SUB_PAGE,
|
||||||
|
MyFrame::OnUpdateTreeMenu)
|
||||||
|
#endif
|
||||||
|
#if wxUSE_TOOLBOOK
|
||||||
|
EVT_TOOLBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnToolbook)
|
||||||
|
EVT_TOOLBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnToolbook)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Update title in idle time
|
||||||
|
EVT_IDLE(MyFrame::OnIdle)
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
MyFrame::MyFrame()
|
MyFrame::MyFrame()
|
||||||
: wxFrame(NULL, wxID_ANY, wxString(wxT("wxWidgets book controls sample")))
|
: wxFrame(NULL, wxID_ANY, wxString(wxT("wxWidgets book controls sample")))
|
||||||
{
|
{
|
||||||
@@ -380,14 +451,14 @@ MyFrame::~MyFrame()
|
|||||||
#define CASE_TOOLBOOK(x)
|
#define CASE_TOOLBOOK(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DISPATCH_ON_TYPE(before, nb, lb, cb, tb, toolb, after) \
|
#define DISPATCH_ON_TYPE(before, nb, lb, cb, tb, toolb, after) \
|
||||||
switch ( m_type ) \
|
switch ( m_type ) \
|
||||||
{ \
|
{ \
|
||||||
CASE_NOTEBOOK(before nb after) \
|
CASE_NOTEBOOK(before nb after) \
|
||||||
CASE_LISTBOOK(before lb after) \
|
CASE_LISTBOOK(before lb after) \
|
||||||
CASE_CHOICEBOOK(before cb after) \
|
CASE_CHOICEBOOK(before cb after) \
|
||||||
CASE_TREEBOOK(before tb after) \
|
CASE_TREEBOOK(before tb after) \
|
||||||
CASE_TOOLBOOK(before toolb after) \
|
CASE_TOOLBOOK(before toolb after) \
|
||||||
\
|
\
|
||||||
default: \
|
default: \
|
||||||
wxFAIL_MSG( _T("unknown book control type") ); \
|
wxFAIL_MSG( _T("unknown book control type") ); \
|
||||||
@@ -507,58 +578,35 @@ void MyFrame::RecreateBook()
|
|||||||
m_sizerFrame->Layout();
|
m_sizerFrame->Layout();
|
||||||
}
|
}
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
void MyFrame::AddFlagStrIfFlagPresent(wxString & flagStr, long flags, long flag,
|
||||||
// File menu
|
const wxChar * flagName) const
|
||||||
EVT_MENU_RANGE(ID_BOOK_NOTEBOOK, ID_BOOK_MAX, MyFrame::OnType)
|
{
|
||||||
EVT_MENU_RANGE(ID_ORIENT_DEFAULT, ID_ORIENT_MAX, MyFrame::OnOrient)
|
if( (flags & flag) == flag )
|
||||||
EVT_MENU(ID_SHOW_IMAGES, MyFrame::OnShowImages)
|
{
|
||||||
EVT_MENU(ID_MULTI, MyFrame::OnMulti)
|
if( !flagStr.empty() )
|
||||||
EVT_MENU(wxID_EXIT, MyFrame::OnExit)
|
flagStr += _T(" | ");
|
||||||
|
flagStr += flagName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Operations menu
|
wxPanel *MyFrame::CreateNewPage() const
|
||||||
EVT_MENU(ID_ADD_PAGE, MyFrame::OnAddPage)
|
{
|
||||||
EVT_MENU(ID_ADD_PAGE_NO_SELECT, MyFrame::OnAddPageNoSelect)
|
wxPanel *panel = new wxPanel(m_bookCtrl, wxID_ANY );
|
||||||
EVT_MENU(ID_INSERT_PAGE, MyFrame::OnInsertPage)
|
|
||||||
EVT_MENU(ID_DELETE_CUR_PAGE, MyFrame::OnDeleteCurPage)
|
|
||||||
EVT_MENU(ID_DELETE_LAST_PAGE, MyFrame::OnDeleteLastPage)
|
|
||||||
EVT_MENU(ID_NEXT_PAGE, MyFrame::OnNextPage)
|
|
||||||
EVT_MENU(ID_GO_HOME, MyFrame::OnGoHome)
|
|
||||||
|
|
||||||
#if wxUSE_HELP
|
#if wxUSE_HELP
|
||||||
EVT_MENU(ID_CONTEXT_HELP, MyFrame::OnContextHelp)
|
panel->SetHelpText( wxT( "Panel with \"First\" and \"Second\" buttons" ) );
|
||||||
#endif // wxUSE_HELP
|
|
||||||
EVT_MENU(ID_HITTEST, MyFrame::OnHitTest)
|
|
||||||
|
|
||||||
// Book controls
|
|
||||||
#if wxUSE_NOTEBOOK
|
|
||||||
EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnNotebook)
|
|
||||||
EVT_NOTEBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnNotebook)
|
|
||||||
#endif
|
|
||||||
#if wxUSE_LISTBOOK
|
|
||||||
EVT_LISTBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnListbook)
|
|
||||||
EVT_LISTBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnListbook)
|
|
||||||
#endif
|
|
||||||
#if wxUSE_CHOICEBOOK
|
|
||||||
EVT_CHOICEBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnChoicebook)
|
|
||||||
EVT_CHOICEBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnChoicebook)
|
|
||||||
#endif
|
|
||||||
#if wxUSE_TREEBOOK
|
|
||||||
EVT_TREEBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnTreebook)
|
|
||||||
EVT_TREEBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnTreebook)
|
|
||||||
|
|
||||||
EVT_MENU(ID_ADD_SUB_PAGE, MyFrame::OnAddSubPage)
|
|
||||||
EVT_MENU(ID_ADD_PAGE_BEFORE, MyFrame::OnAddPageBefore)
|
|
||||||
EVT_UPDATE_UI_RANGE(ID_ADD_PAGE_BEFORE, ID_ADD_SUB_PAGE,
|
|
||||||
MyFrame::OnUpdateTreeMenu)
|
|
||||||
#endif
|
|
||||||
#if wxUSE_TOOLBOOK
|
|
||||||
EVT_TOOLBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnToolbook)
|
|
||||||
EVT_TOOLBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnToolbook)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Update title in idle time
|
(void) new wxButton(panel, wxID_ANY, wxT("First button"), wxPoint(10, 30));
|
||||||
EVT_IDLE(MyFrame::OnIdle)
|
(void) new wxButton(panel, wxID_ANY, wxT("Second button"), wxPoint(150, 30));
|
||||||
END_EVENT_TABLE()
|
|
||||||
|
return panel;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// MyFrame - event handlers
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
#if wxUSE_HELP
|
#if wxUSE_HELP
|
||||||
|
|
||||||
@@ -570,16 +618,6 @@ void MyFrame::OnContextHelp(wxCommandEvent& WXUNUSED(event))
|
|||||||
|
|
||||||
#endif // wxUSE_HELP
|
#endif // wxUSE_HELP
|
||||||
|
|
||||||
void MyFrame::AddFlagStrIfFlagPresent(wxString & flagStr, long flags, long flag, const wxChar * flagName) const
|
|
||||||
{
|
|
||||||
if( (flags & flag) == flag )
|
|
||||||
{
|
|
||||||
if( !flagStr.empty() )
|
|
||||||
flagStr += _T(" | ");
|
|
||||||
flagStr += flagName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void MyFrame::OnHitTest(wxCommandEvent& WXUNUSED(event))
|
void MyFrame::OnHitTest(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
wxBookCtrlBase * book = GetCurrentBook();
|
wxBookCtrlBase * book = GetCurrentBook();
|
||||||
@@ -621,7 +659,6 @@ void MyFrame::OnUpdateTreeMenu(wxUpdateUIEvent& event)
|
|||||||
|
|
||||||
#endif // wxUSE_TREEBOOK
|
#endif // wxUSE_TREEBOOK
|
||||||
|
|
||||||
|
|
||||||
void MyFrame::OnOrient(wxCommandEvent& event)
|
void MyFrame::OnOrient(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
m_orient = event.GetId();
|
m_orient = event.GetId();
|
||||||
@@ -649,20 +686,6 @@ void MyFrame::OnExit(wxCommandEvent& WXUNUSED(event))
|
|||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxPanel *MyFrame::CreateNewPage() const
|
|
||||||
{
|
|
||||||
wxPanel *panel = new wxPanel(m_bookCtrl, wxID_ANY );
|
|
||||||
|
|
||||||
#if wxUSE_HELP
|
|
||||||
panel->SetHelpText( wxT( "Panel with \"First\" and \"Second\" buttons" ) );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
(void) new wxButton(panel, wxID_ANY, wxT("First button"), wxPoint(10, 10));
|
|
||||||
(void) new wxButton(panel, wxID_ANY, wxT("Second button"), wxPoint(50, 100));
|
|
||||||
|
|
||||||
return panel;
|
|
||||||
}
|
|
||||||
|
|
||||||
void MyFrame::OnAddPage(wxCommandEvent& WXUNUSED(event))
|
void MyFrame::OnAddPage(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
wxBookCtrlBase *currBook = GetCurrentBook();
|
wxBookCtrlBase *currBook = GetCurrentBook();
|
||||||
|
@@ -158,21 +158,22 @@ enum ID_COMMANDS
|
|||||||
ID_HITTEST
|
ID_HITTEST
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Name of each notebook page.
|
Name of each notebook page.
|
||||||
Used as a label for a page, and used when cloning the notebook
|
Used as a label for a page, and used when cloning the notebook
|
||||||
to decide what type of page it is.
|
to decide what type of page it is.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define I_WAS_INSERTED_PAGE_NAME wxT("Inserted")
|
#define I_WAS_INSERTED_PAGE_NAME wxT("Inserted")
|
||||||
#define RADIOBUTTONS_PAGE_NAME wxT("Radiobuttons")
|
#define RADIOBUTTONS_PAGE_NAME wxT("Radiobuttons")
|
||||||
#define VETO_PAGE_NAME wxT("Veto")
|
#define VETO_PAGE_NAME wxT("Veto")
|
||||||
#define MAXIMIZED_BUTTON_PAGE_NAME wxT("Maximized button")
|
#define MAXIMIZED_BUTTON_PAGE_NAME wxT("Maximized button")
|
||||||
|
|
||||||
// Pages that can be added by the user
|
// Pages that can be added by the user
|
||||||
#define INSERTED_PAGE_NAME wxT("Inserted ")
|
#define INSERTED_PAGE_NAME wxT("Inserted ")
|
||||||
#define ADDED_PAGE_NAME wxT("Added ")
|
#define ADDED_PAGE_NAME wxT("Added ")
|
||||||
#define ADDED_PAGE_NAME_BEFORE wxT(" Inserted before ")
|
#define ADDED_PAGE_NAME_BEFORE wxT(" Inserted before ")
|
||||||
#define ADDED_SUB_PAGE_NAME wxT(" Inserted sub-page ")
|
#define ADDED_SUB_PAGE_NAME wxT(" Inserted sub-page ")
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user