]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/widgets/widgets.h
Make expat's configure detect if -ext o is needed (MW) so tests work correctly.
[wxWidgets.git] / samples / widgets / widgets.h
index 229a9337deaf6f54516799372fc772a624b7e570..30160829e8183a4aef6ce844c9b0d1991972a1f4 100644 (file)
@@ -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
 #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)