#include "wx/choicebk.h"
#include "wx/listbook.h"
+#include "wx/treebook.h"
#include "wx/notebook.h"
+#include "wx/toolbook.h"
#if wxUSE_LOG && !defined( __SMARTPHONE__ )
#define USE_LOG 1
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);
void OnExit(wxCommandEvent& event);
void OnAddPage(wxCommandEvent& event);
+ void OnAddPageNoSelect(wxCommandEvent& event);
void OnInsertPage(wxCommandEvent& event);
void OnDeleteCurPage(wxCommandEvent& event);
void OnDeleteLastPage(wxCommandEvent& event);
void OnNextPage(wxCommandEvent& event);
+ void OnGoHome(wxCommandEvent &event);
+
+ void OnAddSubPage(wxCommandEvent& event);
+ void OnAddPageBefore(wxCommandEvent& event);
+
+#if wxUSE_HELP
+ void OnContextHelp(wxCommandEvent& event);
+#endif // wxUSE_HELP
- void OnNotebook(wxNotebookEvent& event);
- void OnChoicebook(wxChoicebookEvent& event);
- void OnListbook(wxListbookEvent& event);
+ void OnHitTest(wxCommandEvent& event);
+
+ void OnBookCtrl(wxBookCtrlBaseEvent& event);
+#if wxUSE_NOTEBOOK
+ void OnNotebook(wxNotebookEvent& event) { OnBookCtrl(event); }
+#endif
+#if wxUSE_CHOICEBOOK
+ void OnChoicebook(wxChoicebookEvent& event) { OnBookCtrl(event); }
+#endif
+#if wxUSE_LISTBOOK
+ void OnListbook(wxListbookEvent& event) { OnBookCtrl(event); }
+#endif
+#if wxUSE_TREEBOOK
+ void OnTreebook(wxTreebookEvent& event) { OnBookCtrl(event); }
+#endif
+#if wxUSE_TOOLBOOK
+ void OnToolbook(wxToolbookEvent& event) { OnBookCtrl(event); }
+#endif
void OnIdle(wxIdleEvent& event);
- wxBookCtrl *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, int toolbk) const;
+ void AddFlagStrIfFlagPresent(wxString & flagStr, long flags, long flag, const wxChar * flagName) const;
// Sample setup
- int m_type;
+ enum BookType
+ {
+ Type_Notebook,
+ Type_Listbook,
+ Type_Choicebook,
+ Type_Treebook,
+ Type_Toolbook,
+ Type_Max
+ } m_type;
int m_orient;
bool m_chkShowImages;
bool m_multi;
// Controls
wxPanel *m_panel; // Panel containing notebook and other controls
-
- wxNotebook *m_notebook;
- wxChoicebook *m_choicebook;
- wxListbook *m_listbook;
+ wxBookCtrlBase *m_bookCtrl;
#if USE_LOG
// Log window
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_TOOLBOOK,
ID_BOOK_MAX,
+
ID_ORIENT_DEFAULT,
ID_ORIENT_TOP,
ID_ORIENT_BOTTOM,
ID_SHOW_IMAGES,
ID_MULTI,
ID_ADD_PAGE,
+ ID_ADD_PAGE_NO_SELECT,
ID_INSERT_PAGE,
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,
+ ID_GO_HOME,
+
+#if wxUSE_HELP
+ ID_CONTEXT_HELP,
+#endif // wxUSE_HELP
+ ID_HITTEST
};
/*
// 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 ")
+
+