]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/widgets/widgets.h
Fix wrong configure test for abi::__forced_unwind in previous commit.
[wxWidgets.git] / samples / widgets / widgets.h
index ca2a8e7cca83e89bd529bc22102d3cd0f18c84c4..21baa5105ba632a98ee69637f5148f132106782e 100644 (file)
     #define USE_TREEBOOK 1
     #define WidgetsBookCtrl wxTreebook
     #define WidgetsBookCtrlEvent wxTreebookEvent
-    #define EVT_WIDGETS_PAGE_CHANGED(id,func) EVT_TREEBOOK_PAGE_CHANGED(id,func)
-    #define WidgetBookStyle (wxBK_DEFAULT)
+    #define EVT_WIDGETS_PAGE_CHANGING(id,func) EVT_TREEBOOK_PAGE_CHANGING(id,func)
+    #define wxEVT_COMMAND_WIDGETS_PAGE_CHANGED wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED
+    #define wxWidgetsbookEventHandler(func) wxTreebookEventHandler(func)
 #else
     #include "wx/bookctrl.h"
     #define USE_TREEBOOK 0
     #define WidgetsBookCtrl wxBookCtrl
     #define WidgetsBookCtrlEvent wxBookCtrlEvent
-    #define EVT_WIDGETS_PAGE_CHANGED(id,func) EVT_BOOKCTRL_PAGE_CHANGED(id,func)
-    #ifdef __POCKETPC__
-        #define WidgetBookStyle (wxBK_BOTTOM|wxNB_FLAT)
-    #else
-        #define WidgetBookStyle (wxBK_DEFAULT)
-    #endif
+    #define EVT_WIDGETS_PAGE_CHANGING(id,func) EVT_BOOKCTRL_PAGE_CHANGING(id,func)
+    #define wxEVT_COMMAND_WIDGETS_PAGE_CHANGED wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGED
+    #define wxWidgetsbookEventHandler(func) wxBookCtrlEventHandler(func)
 #endif
 
 #if wxUSE_LOG && !defined(__WXHANDHELD__)
     #define USE_ICONS_IN_BOOK 0
 #else
     #define USE_ICONS_IN_BOOK 1
+    #define ICON_SIZE         16
 #endif
 
-class WXDLLEXPORT wxCheckBox;
-class WXDLLEXPORT wxSizer;
-class WXDLLEXPORT wxImageList;
-class WXDLLEXPORT wxTextCtrl;
-class WXDLLEXPORT WidgetsBookCtrl;
+class WXDLLIMPEXP_FWD_CORE wxCheckBox;
+class WXDLLIMPEXP_FWD_CORE wxSizer;
+class WXDLLIMPEXP_FWD_CORE wxImageList;
+class WXDLLIMPEXP_FWD_CORE wxTextCtrl;
+class WXDLLIMPEXP_FWD_CORE WidgetsBookCtrl;
 
 class WidgetsPageInfo;
 
 #include "wx/panel.h"
+#include "wx/vector.h"
 
 // INTRODUCING NEW PAGES DON'T FORGET TO ADD ENTRIES TO 'WidgetsCategories'
 enum
 {
-    // On wxUniversal-based build (wxX11, wxMGL, wxMSWUniv, wxGTKUniv, etc.)
-    // 'native' means 'made with wxUniv port renderer'
+    // In wxUniversal-based builds 'native' means 'made with wxUniv port
+    // renderer'
     NATIVE_PAGE = 0,
     UNIVERSAL_PAGE = NATIVE_PAGE,
     GENERIC_PAGE,
@@ -84,6 +84,8 @@ enum
     ALL_CTRLS        = 1 << ALL_PAGE
 };
 
+typedef wxVector<wxControl *> Widgets;
+
 // ----------------------------------------------------------------------------
 // WidgetsPage: a book page demonstrating some widget
 // ----------------------------------------------------------------------------
@@ -93,13 +95,25 @@ class WidgetsPage : public wxPanel
 public:
     WidgetsPage(WidgetsBookCtrl *book,
                 wxImageList *imaglist,
-                char* icon[]);
+                const char *const icon[]);
 
     // 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; }
+    // return the control shown by this page, if it supports text entry interface
+    virtual wxTextEntryBase *GetTextEntry() const { return NULL; }
+
+    // lazy creation of the content
+    virtual void CreateContent() = 0;
+
+    // some pages show additional controls, in this case override this one to
+    // return all of them (including the one returned by GetWidget())
+    virtual Widgets GetWidgets() const
+    {
+        Widgets widgets;
+        widgets.push_back(GetWidget());
+        return widgets;
+    }
 
     // recreate the control shown by this page
     //