Added wxTreebook:

- added the control itself
- added protected wxBookCtrlBase::AllowNullPage() to accommodate it
- big changes to the sample to get rid of (most) ugly macros
- added XRC handler for the control
- added docs
- and wxUSE_TREEBOOK everywhere


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35862 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-10-09 18:40:36 +00:00
parent 97c58531bf
commit eca15c0d54
27 changed files with 2250 additions and 332 deletions

View File

@@ -11,6 +11,7 @@
#include "wx/choicebk.h"
#include "wx/listbook.h"
#include "wx/treebook.h"
#include "wx/notebook.h"
#if wxUSE_LOG && !defined( __SMARTPHONE__ )
@@ -28,12 +29,11 @@ public:
DECLARE_APP(MyApp)
class MyFrame : public wxFrame
{
public:
MyFrame(const wxString& title, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE|wxCLIP_CHILDREN|wxNO_FULL_REPAINT_ON_RESIZE);
MyFrame();
virtual ~MyFrame();
void OnType(wxCommandEvent& event);
@@ -48,29 +48,47 @@ public:
void OnDeleteLastPage(wxCommandEvent& event);
void OnNextPage(wxCommandEvent& event);
void OnAddSubPage(wxCommandEvent& event);
void OnAddPageBefore(wxCommandEvent& event);
void OnBookCtrl(wxBookCtrlBaseEvent& event);
#if wxUSE_NOTEBOOK
void OnNotebook(wxNotebookEvent& event);
void OnNotebook(wxNotebookEvent& event) { OnBookCtrl(event); }
#endif
#if wxUSE_CHOICEBOOK
void OnChoicebook(wxChoicebookEvent& event);
void OnChoicebook(wxChoicebookEvent& event) { OnBookCtrl(event); }
#endif
#if wxUSE_LISTBOOK
void OnListbook(wxListbookEvent& event);
void OnListbook(wxListbookEvent& event) { OnBookCtrl(event); }
#endif
#if wxUSE_TREEBOOK
void OnTreebook(wxTreebookEvent& event) { OnBookCtrl(event); }
#endif
void OnIdle(wxIdleEvent& event);
wxBookCtrlBase *GetCurrentBook();
#if wxUSE_TREEBOOK
void OnUpdateTreeMenu(wxUpdateUIEvent& event);
#endif // wxUSE_TREEBOOK
wxBookCtrlBase *GetCurrentBook() const { return m_bookCtrl; }
private:
wxLog *m_logTargetOld;
int SelectFlag(int id, int nb, int lb, int chb);
void ShowCurrentBook();
void RecreateBooks();
void RecreateBook();
wxPanel *CreateNewPage() const;
int TranslateBookFlag(int nb, int lb, int chb, int tbk) const;
// Sample setup
int m_type;
enum BookType
{
Type_Notebook,
Type_Choicebook,
Type_Listbook,
Type_Treebook,
Type_Max
} m_type;
int m_orient;
bool m_chkShowImages;
bool m_multi;
@@ -78,16 +96,7 @@ private:
// Controls
wxPanel *m_panel; // Panel containing notebook and other controls
#if wxUSE_NOTEBOOK
wxNotebook *m_notebook;
#endif
#if wxUSE_CHOICEBOOK
wxChoicebook *m_choicebook;
#endif
#if wxUSE_LISTBOOK
wxListbook *m_listbook;
#endif
wxBookCtrlBase *m_bookCtrl;
#if USE_LOG
// Log window
@@ -103,10 +112,13 @@ private:
enum ID_COMMANDS
{
// these should be in the same order as Type_XXX elements above
ID_BOOK_NOTEBOOK = wxID_HIGHEST,
ID_BOOK_LISTBOOK,
ID_BOOK_CHOICEBOOK,
ID_BOOK_TREEBOOK,
ID_BOOK_MAX,
ID_ORIENT_DEFAULT,
ID_ORIENT_TOP,
ID_ORIENT_BOTTOM,
@@ -120,9 +132,8 @@ enum ID_COMMANDS
ID_DELETE_CUR_PAGE,
ID_DELETE_LAST_PAGE,
ID_NEXT_PAGE,
ID_NOTEBOOK,
ID_LISTBOOK,
ID_CHOICEBOOK
ID_ADD_PAGE_BEFORE,
ID_ADD_SUB_PAGE
};
/*
@@ -139,3 +150,7 @@ to decide what type of page it is.
// Pages that can be added by the user
#define INSERTED_PAGE_NAME wxT("Inserted ")
#define ADDED_PAGE_NAME wxT("Added ")
#define ADDED_PAGE_NAME_BEFORE wxT(" Inserted before ")
#define ADDED_SUB_PAGE_NAME wxT(" Inserted sub-page ")