X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/32b8ec418aee4e38877d4cb79e2984c766dcc358..4301e38a459edc366aba62fbbaf8f7b4ed8effb6:/samples/widgets/widgets.h diff --git a/samples/widgets/widgets.h b/samples/widgets/widgets.h index 229a9337de..30160829e8 100644 --- a/samples/widgets/widgets.h +++ b/samples/widgets/widgets.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Program: wxWindows Widgets Sample +// Program: wxWidgets Widgets Sample // Name: widgets.h // Purpose: Common stuff for all widgets project files // Author: Vadim Zeitlin @@ -13,23 +13,37 @@ #define _WX_SAMPLE_WIDGETS_H_ class WXDLLEXPORT wxCheckBox; -class WXDLLEXPORT wxNotebook; +class WXDLLEXPORT wxBookCtrl; class WXDLLEXPORT wxSizer; class WXDLLEXPORT wxTextCtrl; -class WXDLLEXPORT WidgetsPageInfo; +class WidgetsPageInfo; + +#include "wx/panel.h" // all source files use wxImageList #include "wx/imaglist.h" +#if wxUSE_LOG && !defined(__SMARTPHONE__) + #define USE_LOG 1 +#else + #define USE_LOG 0 +#endif + // ---------------------------------------------------------------------------- -// WidgetsPage: a notebook page demonstrating some widget +// WidgetsPage: a book page demonstrating some widget // ---------------------------------------------------------------------------- class WidgetsPage : public wxPanel { public: - WidgetsPage(wxNotebook *notebook); + WidgetsPage(wxBookCtrl *book); + + // return the control shown by this page + virtual wxControl *GetWidget() const = 0; + + // some pages show 2 controls, in this case override this one as well + virtual wxControl *GetWidget2() const { return NULL; } protected: // several helper functions for page creation @@ -38,24 +52,24 @@ protected: // (pointer to which will be saved in the provided variable if not NULL) // with the specified id wxSizer *CreateSizerWithText(wxControl *control, - wxWindowID id = -1, + wxWindowID id = wxID_ANY, wxTextCtrl **ppText = NULL); // create a sizer containing a label and a text ctrl wxSizer *CreateSizerWithTextAndLabel(const wxString& label, - wxWindowID id = -1, + wxWindowID id = wxID_ANY, wxTextCtrl **ppText = NULL); // create a sizer containing a button and a text ctrl wxSizer *CreateSizerWithTextAndButton(wxWindowID idBtn, const wxString& labelBtn, - wxWindowID id = -1, + wxWindowID id = wxID_ANY, wxTextCtrl **ppText = NULL); // create a checkbox and add it to the sizer wxCheckBox *CreateCheckBoxAndAddToSizer(wxSizer *sizer, const wxString& label, - wxWindowID id = -1); + wxWindowID id = wxID_ANY); public: // the head of the linked list containinginfo about all pages @@ -66,10 +80,10 @@ public: // dynamic WidgetsPage creation helpers // ---------------------------------------------------------------------------- -class WXDLLEXPORT WidgetsPageInfo +class WidgetsPageInfo { public: - typedef WidgetsPage *(*Constructor)(wxNotebook *notebook, + typedef WidgetsPage *(*Constructor)(wxBookCtrl *book, wxImageList *imaglist); // our ctor @@ -80,6 +94,8 @@ public: Constructor GetCtor() const { return m_ctor; } WidgetsPageInfo *GetNext() const { return m_next; } + void SetNext(WidgetsPageInfo *next) { m_next = next; } + private: // the label of the page wxString m_label; @@ -101,9 +117,9 @@ private: // and this one must be inserted somewhere in the source file #define IMPLEMENT_WIDGETS_PAGE(classname, label) \ - WidgetsPage *wxCtorFor##classname(wxNotebook *notebook, \ + WidgetsPage *wxCtorFor##classname(wxBookCtrl *book, \ wxImageList *imaglist) \ - { return new classname(notebook, imaglist); } \ + { return new classname(book, imaglist); } \ WidgetsPageInfo classname:: \ ms_info##classname(wxCtorFor##classname, label)