#ifndef _WX_SAMPLE_WIDGETS_H_
#define _WX_SAMPLE_WIDGETS_H_
-#if wxUSE_TREEBOOK
+#if wxUSE_TREEBOOK && !defined(__WXHANDHELD__)
#include "wx/treebook.h"
#define USE_TREEBOOK 1
#define WidgetsBookCtrl wxTreebook
#define WidgetsBookCtrlEvent wxTreebookEvent
- #define EVT_WIDGETS_PAGE_CHANGED(id,func) EVT_TREEBOOK_PAGE_CHANGED(id,func)
+ #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)
+ #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(__SMARTPHONE__)
+#if wxUSE_LOG && !defined(__WXHANDHELD__)
#define USE_LOG 1
#else
#define USE_LOG 0
#endif
-class WXDLLEXPORT wxCheckBox;
-class WXDLLEXPORT wxSizer;
-class WXDLLEXPORT wxTextCtrl;
-class WXDLLEXPORT WidgetsBookCtrl;
+#if defined(__WXHANDHELD__)
+ #define USE_ICONS_IN_BOOK 0
+#else
+ #define USE_ICONS_IN_BOOK 1
+ #define ICON_SIZE 16
+#endif
+
+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"
-
-// all source files use wxImageList
-#include "wx/imaglist.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'
NATIVE_PAGE = 0,
+ UNIVERSAL_PAGE = NATIVE_PAGE,
GENERIC_PAGE,
PICKER_PAGE,
COMBO_PAGE,
enum
{
NATIVE_CTRLS = 1 << NATIVE_PAGE,
+ UNIVERSAL_CTRLS = NATIVE_CTRLS,
GENERIC_CTRLS = 1 << GENERIC_PAGE,
PICKER_CTRLS = 1 << PICKER_PAGE,
COMBO_CTRLS = 1 << COMBO_PAGE,
ALL_CTRLS = 1 << ALL_PAGE
};
+typedef wxVector<wxControl *> Widgets;
+
// ----------------------------------------------------------------------------
// WidgetsPage: a book page demonstrating some widget
// ----------------------------------------------------------------------------
class WidgetsPage : public wxPanel
{
public:
- WidgetsPage(WidgetsBookCtrl *book);
+ WidgetsPage(WidgetsBookCtrl *book,
+ wxImageList *imaglist,
+ 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
//