X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0b90b51ceb7eadbef93c256a42af49dae0659d34..0e41582e529b14dab0f6da62451b133b85227176:/samples/widgets/widgets.h?ds=sidebyside diff --git a/samples/widgets/widgets.h b/samples/widgets/widgets.h index bfd7ca6b4f..0fb6e05b58 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,25 +13,37 @@ #define _WX_SAMPLE_WIDGETS_H_ class WXDLLEXPORT wxCheckBox; -class WXDLLEXPORT wxNotebook; +class WXDLLEXPORT wxBookCtrlBase; 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(wxBookCtrlBase *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 @@ -40,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 @@ -68,10 +80,10 @@ public: // dynamic WidgetsPage creation helpers // ---------------------------------------------------------------------------- -class WXDLLEXPORT WidgetsPageInfo +class WidgetsPageInfo { public: - typedef WidgetsPage *(*Constructor)(wxNotebook *notebook, + typedef WidgetsPage *(*Constructor)(wxBookCtrlBase *book, wxImageList *imaglist); // our ctor @@ -82,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; @@ -103,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(wxBookCtrlBase *book, \ wxImageList *imaglist) \ - { return new classname(notebook, imaglist); } \ + { return new classname(book, imaglist); } \ WidgetsPageInfo classname:: \ ms_info##classname(wxCtorFor##classname, label)