]> git.saurik.com Git - wxWidgets.git/commitdiff
Rearranged widgets sample to show more and categorized widgets.
authorWłodzimierz Skiba <abx@abx.art.pl>
Wed, 17 May 2006 19:49:09 +0000 (19:49 +0000)
committerWłodzimierz Skiba <abx@abx.art.pl>
Wed, 17 May 2006 19:49:09 +0000 (19:49 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39190 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

27 files changed:
autoconf_inc.m4
samples/widgets/Makefile.in
samples/widgets/button.cpp
samples/widgets/checkbox.cpp
samples/widgets/combobox.cpp
samples/widgets/datepick.cpp [new file with mode: 0644]
samples/widgets/gauge.cpp
samples/widgets/icons/choicebk.xpm [new file with mode: 0644]
samples/widgets/icons/datepick.xpm [new file with mode: 0644]
samples/widgets/icons/listbook.xpm [new file with mode: 0644]
samples/widgets/icons/notebook.xpm
samples/widgets/listbox.cpp
samples/widgets/makefile.bcc
samples/widgets/makefile.gcc
samples/widgets/makefile.vc
samples/widgets/makefile.wat
samples/widgets/notebook.cpp
samples/widgets/radiobox.cpp
samples/widgets/slider.cpp
samples/widgets/spinbtn.cpp
samples/widgets/static.cpp
samples/widgets/textctrl.cpp
samples/widgets/widgets.bkl
samples/widgets/widgets.cpp
samples/widgets/widgets.dsp
samples/widgets/widgets.h
samples/widgets/widgets.rc [deleted file]

index 5010828ebab7ccaab57769fb104d9a63e6f192df..8e2b22efb2c16b59cf5ef6b559cb2eea23033323 100644 (file)
@@ -206,7 +206,7 @@ dnl ### begin block 20_COND_MONOLITHIC_0_SHARED_1_USE_XRC_1[wx.bkl] ###
         COND_MONOLITHIC_0_SHARED_1_USE_XRC_1=""
     fi
     AC_SUBST(COND_MONOLITHIC_0_SHARED_1_USE_XRC_1)
-dnl ### begin block 20_COND_MONOLITHIC_0_USE_MEDIA_1[../../samples/dialup/dialup.bkl,../../samples/mediaplayer/mediaplayer.bkl,../../samples/splash/splash.bkl,../../tests/test.bkl,wx.bkl] ###
+dnl ### begin block 20_COND_MONOLITHIC_0_USE_MEDIA_1[../../samples/dialup/dialup.bkl,../../samples/mediaplayer/mediaplayer.bkl,../../samples/splash/splash.bkl,../../samples/widgets/widgets.bkl,../../tests/test.bkl,wx.bkl] ###
     COND_MONOLITHIC_0_USE_MEDIA_1="#"
     if test "x$MONOLITHIC" = "x0" -a "x$USE_MEDIA" = "x1" ; then
         COND_MONOLITHIC_0_USE_MEDIA_1=""
index 8c4407bf705f843e861a5ebde7a10a6dbb85897a..6398cbcb278e356f19cb3fdd2ca1707f08381a0b 100644 (file)
@@ -29,7 +29,9 @@ TOOLKIT_LOWERCASE = @TOOLKIT_LOWERCASE@
 TOOLKIT_VERSION = @TOOLKIT_VERSION@
 TOOLCHAIN_FULLNAME = @TOOLCHAIN_FULLNAME@
 EXTRALIBS = @EXTRALIBS@
+EXTRALIBS_HTML = @EXTRALIBS_HTML@
 EXTRALIBS_GUI = @EXTRALIBS_GUI@
+EXTRALIBS_SDL = @EXTRALIBS_SDL@
 HOST_SUFFIX = @HOST_SUFFIX@
 SAMPLES_RPATH_FLAG = @SAMPLES_RPATH_FLAG@
 SAMPLES_RPATH_POSTLINK = @SAMPLES_RPATH_POSTLINK@
@@ -48,6 +50,7 @@ WIDGETS_OBJECTS =  \
        widgets_button.o \
        widgets_checkbox.o \
        widgets_combobox.o \
+       widgets_datepick.o \
        widgets_gauge.o \
        widgets_listbox.o \
        widgets_notebook.o \
@@ -63,6 +66,7 @@ WIDGETS_OBJECTS =  \
 
 @COND_DEPS_TRACKING_0@CXXC = $(CXX)
 @COND_DEPS_TRACKING_1@CXXC = $(top_builddir)./bk-deps $(CXX)
+@COND_USE_PLUGINS_0@PLUGIN_ADV_EXTRALIBS = $(EXTRALIBS_SDL)
 @COND_USE_GUI_0@PORTNAME = base
 @COND_USE_GUI_1@PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION)
 @COND_TOOLKIT_MAC@WXBASEPORT = _carbon
@@ -106,13 +110,19 @@ COND_PLATFORM_OS2_1___widgets___os2_emxbindcmd = $(NM) widgets$(EXEEXT) | if \
 @COND_TOOLKIT_COCOA@   widgets.app/Contents/PkgInfo
 @COND_TOOLKIT_MAC@____widgets_BUNDLE_TGT_REF_DEP = \
 @COND_TOOLKIT_MAC@     widgets.app/Contents/PkgInfo
+COND_MONOLITHIC_0___WXLIB_ADV_p = \
+       -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv-$(WX_RELEASE)$(HOST_SUFFIX)
+@COND_MONOLITHIC_0@__WXLIB_ADV_p = $(COND_MONOLITHIC_0___WXLIB_ADV_p)
+COND_MONOLITHIC_0___WXLIB_HTML_p = \
+       -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html-$(WX_RELEASE)$(HOST_SUFFIX)
+@COND_MONOLITHIC_0@__WXLIB_HTML_p = $(COND_MONOLITHIC_0___WXLIB_HTML_p)
 COND_MONOLITHIC_0___WXLIB_CORE_p = \
        -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX)
 @COND_MONOLITHIC_0@__WXLIB_CORE_p = $(COND_MONOLITHIC_0___WXLIB_CORE_p)
 COND_MONOLITHIC_0___WXLIB_BASE_p = \
        -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
 @COND_MONOLITHIC_0@__WXLIB_BASE_p = $(COND_MONOLITHIC_0___WXLIB_BASE_p)
-@COND_PLATFORM_WIN32_1@__widgets___win32rc = widgets_widgets_rc.o
+@COND_PLATFORM_WIN32_1@__widgets___win32rc = widgets_sample_rc.o
 COND_MONOLITHIC_1___WXLIB_MONO_p = \
        -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
 @COND_MONOLITHIC_1@__WXLIB_MONO_p = $(COND_MONOLITHIC_1___WXLIB_MONO_p)
@@ -161,7 +171,7 @@ distclean: clean
        rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile
 
 widgets$(EXEEXT): $(WIDGETS_OBJECTS) $(__widgets___win32rc)
-       $(CXX) -o $@ $(WIDGETS_OBJECTS) $(LDFLAGS)   -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG)  $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(__LIB_ZLIB_p) $(__LIB_ODBC_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) $(EXTRALIBS_FOR_GUI)
+       $(CXX) -o $@ $(WIDGETS_OBJECTS) $(LDFLAGS)   -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG)  $(__WXLIB_ADV_p) $(PLUGIN_ADV_EXTRALIBS) $(__WXLIB_HTML_p) $(EXTRALIBS_HTML) $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_ODBC_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE)
        $(__widgets___mac_rezcmd)
        $(__widgets___mac_setfilecmd)
        $(__widgets___os2_emxbindcmd)
@@ -198,6 +208,9 @@ widgets_checkbox.o: $(srcdir)/checkbox.cpp
 widgets_combobox.o: $(srcdir)/combobox.cpp
        $(CXXC) -c -o $@ $(WIDGETS_CXXFLAGS) $(srcdir)/combobox.cpp
 
+widgets_datepick.o: $(srcdir)/datepick.cpp
+       $(CXXC) -c -o $@ $(WIDGETS_CXXFLAGS) $(srcdir)/datepick.cpp
+
 widgets_gauge.o: $(srcdir)/gauge.cpp
        $(CXXC) -c -o $@ $(WIDGETS_CXXFLAGS) $(srcdir)/gauge.cpp
 
@@ -225,7 +238,7 @@ widgets_textctrl.o: $(srcdir)/textctrl.cpp
 widgets_widgets.o: $(srcdir)/widgets.cpp
        $(CXXC) -c -o $@ $(WIDGETS_CXXFLAGS) $(srcdir)/widgets.cpp
 
-widgets_widgets_rc.o: $(srcdir)/widgets.rc
+widgets_sample_rc.o: $(srcdir)/../sample.rc
        $(WINDRES) -i$< -o$@   --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_2)  $(__EXCEPTIONS_DEFINE_p_2) $(__RTTI_DEFINE_p_2) $(__THREAD_DEFINE_p_2)   --include-dir $(srcdir) $(__DLLFLAG_p_2) --include-dir $(srcdir)/../../samples $(__RCDEFDIR_p_1) --include-dir $(top_srcdir)/include
 
 
index 8e855553a3d63589cc334085d649d9f55f81403c..1056653e389a70b9e7e81886ba62ac7efa78c06b 100644 (file)
@@ -79,7 +79,7 @@ enum
 class ButtonWidgetsPage : public WidgetsPage
 {
 public:
-    ButtonWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
+    ButtonWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
     virtual ~ButtonWidgetsPage(){};
 
     virtual wxControl *GetWidget() const { return m_button; }
@@ -154,9 +154,11 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
-IMPLEMENT_WIDGETS_PAGE(ButtonWidgetsPage, _T("Button"));
+IMPLEMENT_WIDGETS_PAGE(ButtonWidgetsPage, _T("Button"),
+                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
+                       );
 
-ButtonWidgetsPage::ButtonWidgetsPage(wxBookCtrlBase *book,
+ButtonWidgetsPage::ButtonWidgetsPage(WidgetsBookCtrl *book,
                                      wxImageList *imaglist)
                   : WidgetsPage(book)
 {
index 5b41e219f36ef52ab564d6aaf86b8800fbe0f92b..c683f6774c48a30f8f44793a89109fdf77f0a0b9 100644 (file)
@@ -73,7 +73,7 @@ enum
 class CheckBoxWidgetsPage : public WidgetsPage
 {
 public:
-    CheckBoxWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
+    CheckBoxWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
     virtual ~CheckBoxWidgetsPage(){};
 
     virtual wxControl *GetWidget() const { return m_checkbox; }
@@ -148,9 +148,11 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
-IMPLEMENT_WIDGETS_PAGE(CheckBoxWidgetsPage, wxT("CheckBox"));
+IMPLEMENT_WIDGETS_PAGE(CheckBoxWidgetsPage, wxT("CheckBox"),
+                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
+                       );
 
-CheckBoxWidgetsPage::CheckBoxWidgetsPage(wxBookCtrlBase *book,
+CheckBoxWidgetsPage::CheckBoxWidgetsPage(WidgetsBookCtrl *book,
                                          wxImageList *imaglist)
                   : WidgetsPage(book)
 {
index d3e703bea46f36a0068d5a2d0d93f57dd060989f..04c4214933ecebe37f61ea1ba46bac10fe588f6f 100644 (file)
@@ -85,7 +85,7 @@ enum
 class ComboboxWidgetsPage : public WidgetsPage
 {
 public:
-    ComboboxWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
+    ComboboxWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
 
     virtual wxControl *GetWidget() const { return m_combobox; }
     virtual void RecreateWidget() { CreateCombo(); }
@@ -192,9 +192,12 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
-IMPLEMENT_WIDGETS_PAGE(ComboboxWidgetsPage, _T("Combobox"));
+IMPLEMENT_WIDGETS_PAGE(ComboboxWidgetsPage, _T("Combobox"),
+                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
+                       | WITH_ITEMS_CTRLS | COMBO_CTRLS
+                       );
 
-ComboboxWidgetsPage::ComboboxWidgetsPage(wxBookCtrlBase *book,
+ComboboxWidgetsPage::ComboboxWidgetsPage(WidgetsBookCtrl *book,
                                          wxImageList *imaglist)
                   : WidgetsPage(book)
 {
diff --git a/samples/widgets/datepick.cpp b/samples/widgets/datepick.cpp
new file mode 100644 (file)
index 0000000..89e9173
--- /dev/null
@@ -0,0 +1,220 @@
+/////////////////////////////////////////////////////////////////////////////
+// Program:     wxWidgets Widgets Sample
+// Name:        datepick.cpp
+// Purpose:     Part of the widgets sample showing date picker
+// Author:      Dimitri Schoolwerth, Vadim Zeitlin
+// Created:     27 Sep 2003
+// Id:          $Id$
+// Copyright:   (c) 2003 wxWindows team
+// License:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// for compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_DATEPICKCTRL
+
+// for all others, include the necessary headers
+#ifndef WX_PRECOMP
+    #include "wx/app.h"
+    #include "wx/log.h"
+
+    #include "wx/bitmap.h"
+    #include "wx/button.h"
+    #include "wx/checkbox.h"
+    #include "wx/radiobox.h"
+    #include "wx/statbox.h"
+    #include "wx/textctrl.h"
+
+    #include "wx/sizer.h"
+#endif
+
+#include "wx/datectrl.h"
+
+#include "widgets.h"
+
+#include "icons/datepick.xpm"
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// control ids
+enum
+{
+    DatePickerPage_Reset = wxID_HIGHEST,
+    DatePickerPage_Day,
+    DatePickerPage_Month,
+    DatePickerPage_Year,
+    DatePickerPage_Set,
+    DatePickerPage_Picker
+};
+
+// ----------------------------------------------------------------------------
+// CheckBoxWidgetsPage
+// ----------------------------------------------------------------------------
+
+class DatePickerWidgetsPage : public WidgetsPage
+{
+public:
+    DatePickerWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
+    virtual ~DatePickerWidgetsPage(){};
+
+    virtual wxControl *GetWidget() const { return m_datePicker; }
+    virtual void RecreateWidget() { CreateDatePicker(); }
+
+protected:
+    // event handlers
+    void OnButtonSet(wxCommandEvent& event);
+
+    void OnButtonReset(wxCommandEvent& event);
+
+    // reset the date picker parameters
+    void Reset();
+
+    // (re)create the date picker
+    void CreateDatePicker();
+
+    // the controls
+    // ------------
+
+    // the checkbox itself and the sizer it is in
+    wxDatePickerCtrl *m_datePicker;
+    wxSizer *m_sizerDatePicker;
+
+    wxTextCtrl *m_day;
+    wxTextCtrl *m_month;
+    wxTextCtrl *m_year;
+
+    // the text entries for command parameters
+    wxTextCtrl *m_textLabel;
+
+private:
+    DECLARE_EVENT_TABLE()
+    DECLARE_WIDGETS_PAGE(DatePickerWidgetsPage)
+};
+
+// ----------------------------------------------------------------------------
+// event tables
+// ----------------------------------------------------------------------------
+
+BEGIN_EVENT_TABLE(DatePickerWidgetsPage, WidgetsPage)
+    EVT_BUTTON(DatePickerPage_Reset, DatePickerWidgetsPage::OnButtonReset)
+    EVT_BUTTON(DatePickerPage_Set, DatePickerWidgetsPage::OnButtonSet)
+END_EVENT_TABLE()
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+IMPLEMENT_WIDGETS_PAGE(DatePickerWidgetsPage, wxT("DatePicker"),
+                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
+                       | PICKER_CTRLS
+                       );
+
+DatePickerWidgetsPage::DatePickerWidgetsPage(WidgetsBookCtrl *book,
+                                         wxImageList *imaglist)
+                      :WidgetsPage(book)
+{
+    imaglist->Add(wxBitmap(datepick_xpm));
+
+    wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL);
+
+    // left pane
+    wxStaticBox *box = new wxStaticBox(this, wxID_ANY, wxT("Date details"));
+
+    wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL);
+
+    sizerLeft->Add( CreateSizerWithTextAndLabel( wxT("&Day"), DatePickerPage_Day , &m_day ),
+                    wxALL | wxALIGN_LEFT , 5 );
+
+    sizerLeft->Add( CreateSizerWithTextAndLabel( wxT("&Month"), DatePickerPage_Month , &m_month ),
+                    wxALL | wxALIGN_LEFT , 5 );
+
+    sizerLeft->Add( CreateSizerWithTextAndLabel( wxT("&Year"), DatePickerPage_Year , &m_year ),
+                    wxALL | wxALIGN_LEFT , 5 );
+
+    sizerLeft->Add( new wxButton( this, wxID_ANY, wxT("&Set date") ),
+                    wxALL , 5 );
+
+    // right pane
+    wxSizer *sizerRight = new wxBoxSizer(wxHORIZONTAL);
+
+    m_datePicker = new wxDatePickerCtrl(this, DatePickerPage_Picker);
+
+    sizerRight->Add(0, 0, 1, wxCENTRE);
+    sizerRight->Add(m_datePicker, 1, wxCENTRE);
+    sizerRight->Add(0, 0, 1, wxCENTRE);
+    sizerRight->SetMinSize(150, 0);
+    m_sizerDatePicker = sizerRight; // save it to modify it later
+
+    // the 3 panes panes compose the window
+    sizerTop->Add(sizerLeft, 0, (wxALL & ~wxLEFT), 10);
+    sizerTop->Add(sizerRight, 1, wxGROW | (wxALL & ~wxRIGHT), 10);
+
+    // final initializations
+    Reset();
+
+    SetSizer(sizerTop);
+
+    sizerTop->Fit(this);
+}
+
+void DatePickerWidgetsPage::Reset()
+{
+    const wxDateTime today = wxDateTime::Today();
+
+    m_datePicker->SetValue(today);
+    m_day->SetValue(wxString::Format(_T("%d"), today.GetDay()));
+    m_month->SetValue(wxString::Format(_T("%d"), today.GetMonth()));
+    m_year->SetValue(wxString::Format(_T("%d"), today.GetYear()));
+}
+
+void DatePickerWidgetsPage::CreateDatePicker()
+{
+    const wxDateTime value = m_datePicker->GetValue();
+
+    size_t count = m_sizerDatePicker->GetChildren().GetCount();
+    for ( size_t n = 0; n < count; n++ )
+    {
+        m_sizerDatePicker->Remove(0);
+    }
+
+    delete m_datePicker;
+
+    m_datePicker = new wxDatePickerCtrl(this, DatePickerPage_Picker, value);
+
+    m_sizerDatePicker->Add(0, 0, 1, wxCENTRE);
+    m_sizerDatePicker->Add(m_datePicker, 1, wxCENTRE);
+    m_sizerDatePicker->Add(0, 0, 1, wxCENTRE);
+    m_sizerDatePicker->Layout();
+}
+
+// ----------------------------------------------------------------------------
+// event handlers
+// ----------------------------------------------------------------------------
+
+void DatePickerWidgetsPage::OnButtonReset(wxCommandEvent& WXUNUSED(event))
+{
+    Reset();
+
+    CreateDatePicker();
+}
+
+void DatePickerWidgetsPage::OnButtonSet(wxCommandEvent& WXUNUSED(event))
+{
+}
+
+#endif // wxUSE_DATEPICKCTRL
index 5b950ee073286c4cac7932ff9811ce5f42b7535f..5c779721cbcbc7b1cd0c39e69e118fb09ad8f88e 100644 (file)
@@ -71,7 +71,7 @@ enum
 class GaugeWidgetsPage : public WidgetsPage
 {
 public:
-    GaugeWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
+    GaugeWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
     virtual ~GaugeWidgetsPage();
 
     virtual wxControl *GetWidget() const { return m_gauge; }
@@ -157,9 +157,11 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
-IMPLEMENT_WIDGETS_PAGE(GaugeWidgetsPage, _T("Gauge"));
+IMPLEMENT_WIDGETS_PAGE(GaugeWidgetsPage, _T("Gauge"),
+                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
+                       );
 
-GaugeWidgetsPage::GaugeWidgetsPage(wxBookCtrlBase *book,
+GaugeWidgetsPage::GaugeWidgetsPage(WidgetsBookCtrl *book,
                                    wxImageList *imaglist)
                  :WidgetsPage(book)
 {
diff --git a/samples/widgets/icons/choicebk.xpm b/samples/widgets/icons/choicebk.xpm
new file mode 100644 (file)
index 0000000..7bfc01f
--- /dev/null
@@ -0,0 +1,54 @@
+/* XPM */\r
+static char *choicebk_xpm[] = {\r
+/* columns rows colors chars-per-pixel */\r
+"32 32 16 1",\r
+"  c Gray0",\r
+". c #808000",\r
+"X c #000080",\r
+"o c #808080",\r
+"O c #000000",\r
+"+ c #808000",\r
+"@ c #000080",\r
+"# c none",\r
+"$ c #808080",\r
+"% c Red",\r
+"& c Green",\r
+"* c Yellow",\r
+"= c Blue",\r
+"- c Magenta",\r
+"; c Cyan",\r
+": c Gray100",\r
+/* pixels */\r
+"################################",\r
+"################################",\r
+"################################",\r
+"################################",\r
+"################################",\r
+"##                            ##",\r
+"## ################           ##",\r
+"## ################   #####   ##",\r
+"## ################    ###    ##",\r
+"## ################     #     ##",\r
+"## ################           ##",\r
+"##                            ##",\r
+"################################",\r
+"######$$$$$$$$$$$$$$$$$$$$$$$$##",\r
+"######$::::::::::::::::::::::$##",\r
+"####$$$$$$$$$$$$$$$$$$$$$$$$:$##",\r
+"####$::::::::::::::::::::::$:$##",\r
+"##                        :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$$$##",\r
+"## :::::::::::::::::::::: :$####",\r
+"## :::::::::::::::::::::: $$####",\r
+"## :::::::::::::::::::::: ######",\r
+"##                        ######",\r
+"################################",\r
+"################################",\r
+"################################",\r
+"################################",\r
+"################################"\r
+};\r
diff --git a/samples/widgets/icons/datepick.xpm b/samples/widgets/icons/datepick.xpm
new file mode 100644 (file)
index 0000000..85ee5c7
--- /dev/null
@@ -0,0 +1,54 @@
+/* XPM */\r
+static char *datepick_xpm[] = {\r
+/* columns rows colors chars-per-pixel */\r
+"32 32 16 1",\r
+"  c Gray0",\r
+". c #808000",\r
+"X c #000080",\r
+"o c #808080",\r
+"O c #000000",\r
+"+ c #808000",\r
+"@ c #000080",\r
+"# c none",\r
+"$ c #808080",\r
+"% c Red",\r
+"& c Green",\r
+"* c Yellow",\r
+"= c Blue",\r
+"- c Magenta",\r
+"; c Cyan",\r
+": c Gray100",\r
+/* pixels */\r
+"################################",\r
+"################################",\r
+"################################",\r
+"################################",\r
+"################################",\r
+"##                            ##",\r
+"## ::::::::::::::$::::::::::: ##",\r
+"## ::  ::::: ::::$::  ::: : : ##",\r
+"## : :: :::  :::$$: :: :: : : ##",\r
+"## : :: :: : :::$:: :: ::   : ##",\r
+"## : :: :::: ::$$:: :: :::: : ##",\r
+"## ::  ::::: ::$::::  ::::: : ##",\r
+"## ::::::::::::$::::::::::::: ##",\r
+"##                            ##",\r
+"################################",\r
+"##                            ##",\r
+"## :::::::::::::::::::::::::: ##",\r
+"## :::::::::::::::::::::::::: ##",\r
+"## ::  ::  ::$ ::$$::  ::%-:: ##",\r
+"## :: $::$ :: $:: $::$ ::%%:: ##",\r
+"## :::::::::::::::::::::::::: ##",\r
+"## :::::::::::::::::::::::::: ##",\r
+"## :: $::$ ::$$::$ ::$ ::%%:: ##",\r
+"## ::$ :: $::  :: $::  ::-%:: ##",\r
+"## :::::::::::::::::::::::::: ##",\r
+"## :::::::::::::::::::::::::: ##",\r
+"##                            ##",\r
+"################################",\r
+"################################",\r
+"################################",\r
+"################################",\r
+"################################"\r
+};\r
diff --git a/samples/widgets/icons/listbook.xpm b/samples/widgets/icons/listbook.xpm
new file mode 100644 (file)
index 0000000..db21dd7
--- /dev/null
@@ -0,0 +1,54 @@
+/* XPM */\r
+static char *listbook_xpm[] = {\r
+/* columns rows colors chars-per-pixel */\r
+"32 32 16 1",\r
+"  c Gray0",\r
+". c #808000",\r
+"X c #000080",\r
+"o c #808080",\r
+"O c #000000",\r
+"+ c #808000",\r
+"@ c #000080",\r
+"# c none",\r
+"$ c #808080",\r
+"% c Red",\r
+"& c Green",\r
+"* c Yellow",\r
+"= c Blue",\r
+"- c Magenta",\r
+"; c Cyan",\r
+": c Gray100",\r
+/* pixels */\r
+"################################",\r
+"################################",\r
+"################################",\r
+"################################",\r
+"################################",\r
+"##                            ##",\r
+"## :::::::: :::::::: :::::::: ##",\r
+"## ::$$$$:: :$$::$$: ::$$$$:: ##",\r
+"## :$$$$$$: :::$$::: :$$::$$: ##",\r
+"## :::::::: :::::::: :::::::: ##",\r
+"## :    : : : :    : :  :   : ##",\r
+"## :::::::: :::::::: :::::::: ##",\r
+"##                            ##",\r
+"################################",\r
+"######$$$$$$$$$$$$$$$$$$$$$$$$##",\r
+"######$::::::::::::::::::::::$##",\r
+"####$$$$$$$$$$$$$$$$$$$$$$$$:$##",\r
+"####$::::::::::::::::::::::$:$##",\r
+"##                        :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$$$##",\r
+"## :::::::::::::::::::::: :$####",\r
+"## :::::::::::::::::::::: $$####",\r
+"## :::::::::::::::::::::: ######",\r
+"##                        ######",\r
+"################################",\r
+"################################",\r
+"################################",\r
+"################################"\r
+};\r
index 2be2c47432573a01e1cb47a1da2d8cfadabe0682..7b68b5a0abf315cd278d37b47127548602049b9f 100644 (file)
@@ -24,28 +24,28 @@ static char *notebook_xpm[] = {
 "################################",\r
 "################################",\r
 "################################",\r
-"###        #        #        ###",\r
-"## :::::::$ :::::::$ :::::::$ ##",\r
-"## :######$ :######$ :######$ ##",\r
-"## :######$ :######$ :######$ ##",\r
-"## :######$                   ##",\r
-"## :########################$ ##",\r
-"## :########################$ ##",\r
-"## :########################$ ##",\r
-"## :########################$ ##",\r
-"## :########################$ ##",\r
-"## :########################$ ##",\r
-"## :########################$ ##",\r
-"## :########################$ ##",\r
-"## :########################$ ##",\r
-"## :########################$ ##",\r
-"## :########################$ ##",\r
-"## :########################$ ##",\r
-"## :########################$ ##",\r
-"## $$$$$$$$$$$$$$$$$$$$$$$$$$ ##",\r
-"##                            ##",\r
-"################################",\r
-"################################",\r
+"###################$$$$$$$######",\r
+"##################$:::::::$#####",\r
+"###########$$$$$$$$:::::::$#####",\r
+"##########$:::::::$:::::::$#####",\r
+"###       $:::::::$:::::::$#####",\r
+"## ::::::: :::::::$:::::::$$$$##",\r
+"## ::::::: :::::::$::::::::::$##",\r
+"## ::::::: :::::::$$$$$$$$$$:$##",\r
+"## ::::::: ::::::::::::::::$:$##",\r
+"## :::::::                :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$:$##",\r
+"## :::::::::::::::::::::: :$$$##",\r
+"## :::::::::::::::::::::: :$####",\r
+"## :::::::::::::::::::::: $$####",\r
+"## :::::::::::::::::::::: ######",\r
+"##                        ######",\r
 "################################",\r
 "################################",\r
 "################################",\r
index 82db40460672d8c1fa8a09f1e1f40439a51a4e02..0a40eb74e1959b96c10574fc56bf928176fd56a8 100644 (file)
@@ -76,7 +76,7 @@ enum
 class ListboxWidgetsPage : public WidgetsPage
 {
 public:
-    ListboxWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
+    ListboxWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
 
     virtual wxControl *GetWidget() const { return m_lbox; }
     virtual void RecreateWidget() { CreateLbox(); }
@@ -193,9 +193,12 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
-IMPLEMENT_WIDGETS_PAGE(ListboxWidgetsPage, _T("Listbox"));
+IMPLEMENT_WIDGETS_PAGE(ListboxWidgetsPage, _T("Listbox"),
+                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
+                       | WITH_ITEMS_CTRLS
+                       );
 
-ListboxWidgetsPage::ListboxWidgetsPage(wxBookCtrlBase *book,
+ListboxWidgetsPage::ListboxWidgetsPage(WidgetsBookCtrl *book,
                                        wxImageList *imaglist)
                   : WidgetsPage(book)
 {
index 15a9645509197cdc9a5f9166fb2f5f2ef5ded2c2..f8742ac09efd5a969371a9e773070ff5b3eabdea 100644 (file)
@@ -37,6 +37,7 @@ WIDGETS_OBJECTS =  \
        $(OBJS)\widgets_button.obj \
        $(OBJS)\widgets_checkbox.obj \
        $(OBJS)\widgets_combobox.obj \
+       $(OBJS)\widgets_datepick.obj \
        $(OBJS)\widgets_gauge.obj \
        $(OBJS)\widgets_listbox.obj \
        $(OBJS)\widgets_notebook.obj \
@@ -167,6 +168,14 @@ __DLLFLAG_p = -DWXUSINGDLL
 __DLLFLAG_p_1 = -dWXUSINGDLL
 !endif
 !if "$(MONOLITHIC)" == "0"
+__WXLIB_ADV_p = \
+       wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.lib
+!endif
+!if "$(MONOLITHIC)" == "0"
+__WXLIB_HTML_p = \
+       wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.lib
+!endif
+!if "$(MONOLITHIC)" == "0"
 __WXLIB_CORE_p = \
        wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib
 !endif
@@ -223,9 +232,9 @@ clean:
        -if exist $(OBJS)\widgets.ilf del $(OBJS)\widgets.ilf
        -if exist $(OBJS)\widgets.ils del $(OBJS)\widgets.ils
 
-$(OBJS)\widgets.exe: $(WIDGETS_OBJECTS)  $(OBJS)\widgets_widgets.res
+$(OBJS)\widgets.exe: $(WIDGETS_OBJECTS)  $(OBJS)\widgets_sample.res
        ilink32 -Tpe -q $(LDFLAGS) -L$(BCCDIR)\lib -L$(BCCDIR)\lib\psdk $(__DEBUGINFO)  -L$(LIBDIRNAME) -aa @&&|
-       c0w32.obj $(WIDGETS_OBJECTS),$@,, $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib  wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) ole2w32.lib oleacc.lib odbc32.lib  import32.lib cw32$(__THREADSFLAG_5)$(__RUNTIME_LIBS_8).lib,, $(OBJS)\widgets_widgets.res
+       c0w32.obj $(WIDGETS_OBJECTS),$@,, $(__WXLIB_ADV_p)  $(__WXLIB_HTML_p)  $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p)  wxzlib$(WXDEBUGFLAG).lib  wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) ole2w32.lib oleacc.lib odbc32.lib import32.lib cw32$(__THREADSFLAG_5)$(__RUNTIME_LIBS_8).lib,, $(OBJS)\widgets_sample.res
 |
 
 $(OBJS)\widgets_button.obj: .\button.cpp
@@ -237,6 +246,9 @@ $(OBJS)\widgets_checkbox.obj: .\checkbox.cpp
 $(OBJS)\widgets_combobox.obj: .\combobox.cpp
        $(CXX) -q -c -P -o$@ $(WIDGETS_CXXFLAGS) $**
 
+$(OBJS)\widgets_datepick.obj: .\datepick.cpp
+       $(CXX) -q -c -P -o$@ $(WIDGETS_CXXFLAGS) $**
+
 $(OBJS)\widgets_gauge.obj: .\gauge.cpp
        $(CXX) -q -c -P -o$@ $(WIDGETS_CXXFLAGS) $**
 
@@ -264,6 +276,6 @@ $(OBJS)\widgets_textctrl.obj: .\textctrl.cpp
 $(OBJS)\widgets_widgets.obj: .\widgets.cpp
        $(CXX) -q -c -P -o$@ $(WIDGETS_CXXFLAGS) $**
 
-$(OBJS)\widgets_widgets.res: .\widgets.rc
+$(OBJS)\widgets_sample.res: .\..\sample.rc
        brcc32 -32 -r -fo$@ -i$(BCCDIR)\include   -d__WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) $(__MSLU_DEFINE_p_1) -i$(SETUPHDIR) -i.\..\..\include -i. $(__DLLFLAG_p_1) -i.\..\..\samples -dNOPCH $**
 
index cce47fdeada33574fb7e9bbef41938a040c83667..0b70216fa92c2bbd798f58d628345da670a53e78 100644 (file)
@@ -30,6 +30,7 @@ WIDGETS_OBJECTS =  \
        $(OBJS)\widgets_button.o \
        $(OBJS)\widgets_checkbox.o \
        $(OBJS)\widgets_combobox.o \
+       $(OBJS)\widgets_datepick.o \
        $(OBJS)\widgets_gauge.o \
        $(OBJS)\widgets_listbox.o \
        $(OBJS)\widgets_notebook.o \
@@ -39,7 +40,7 @@ WIDGETS_OBJECTS =  \
        $(OBJS)\widgets_static.o \
        $(OBJS)\widgets_textctrl.o \
        $(OBJS)\widgets_widgets.o \
-       $(OBJS)\widgets_widgets_rc.o
+       $(OBJS)\widgets_sample_rc.o
 
 ### Conditionally set variables: ###
 
@@ -158,6 +159,14 @@ ifeq ($(SHARED),1)
 __DLLFLAG_p_1 = --define WXUSINGDLL
 endif
 ifeq ($(MONOLITHIC),0)
+__WXLIB_ADV_p = \
+       -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv
+endif
+ifeq ($(MONOLITHIC),0)
+__WXLIB_HTML_p = \
+       -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html
+endif
+ifeq ($(MONOLITHIC),0)
 __WXLIB_CORE_p = \
        -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core
 endif
@@ -218,8 +227,8 @@ clean:
        -if exist $(OBJS)\*.d del $(OBJS)\*.d
        -if exist $(OBJS)\widgets.exe del $(OBJS)\widgets.exe
 
-$(OBJS)\widgets.exe: $(WIDGETS_OBJECTS) $(OBJS)\widgets_widgets_rc.o
-       $(CXX) -o $@ $(WIDGETS_OBJECTS) $(LDFLAGS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows  $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG)  -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lodbc32
+$(OBJS)\widgets.exe: $(WIDGETS_OBJECTS) $(OBJS)\widgets_sample_rc.o
+       $(CXX) -o $@ $(WIDGETS_OBJECTS) $(LDFLAGS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows  $(__WXLIB_ADV_p)  $(__WXLIB_HTML_p)  $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p)  -lwxzlib$(WXDEBUGFLAG)  -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lodbc32
 
 $(OBJS)\widgets_button.o: ./button.cpp
        $(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
@@ -230,6 +239,9 @@ $(OBJS)\widgets_checkbox.o: ./checkbox.cpp
 $(OBJS)\widgets_combobox.o: ./combobox.cpp
        $(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
 
+$(OBJS)\widgets_datepick.o: ./datepick.cpp
+       $(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\widgets_gauge.o: ./gauge.cpp
        $(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
 
@@ -257,7 +269,7 @@ $(OBJS)\widgets_textctrl.o: ./textctrl.cpp
 $(OBJS)\widgets_widgets.o: ./widgets.cpp
        $(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
 
-$(OBJS)\widgets_widgets_rc.o: ./widgets.rc
+$(OBJS)\widgets_sample_rc.o: ./../sample.rc
        windres --use-temp-file -i$< -o$@   --define __WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) $(__MSLU_DEFINE_p_1) --include-dir $(SETUPHDIR) --include-dir ./../../include --include-dir . $(__DLLFLAG_p_1) --include-dir ./../../samples --define NOPCH
 
 .PHONY: all clean
index d125680212aae1d78368e16b299420b2af5366c3..fb186dc7aa966f52e8e428fc81f8dd06bff34b29 100644 (file)
@@ -30,6 +30,7 @@ WIDGETS_OBJECTS =  \
        $(OBJS)\widgets_button.obj \
        $(OBJS)\widgets_checkbox.obj \
        $(OBJS)\widgets_combobox.obj \
+       $(OBJS)\widgets_datepick.obj \
        $(OBJS)\widgets_gauge.obj \
        $(OBJS)\widgets_listbox.obj \
        $(OBJS)\widgets_notebook.obj \
@@ -39,7 +40,7 @@ WIDGETS_OBJECTS =  \
        $(OBJS)\widgets_static.obj \
        $(OBJS)\widgets_textctrl.obj \
        $(OBJS)\widgets_widgets.obj \
-       $(OBJS)\widgets_widgets.res
+       $(OBJS)\widgets_sample.res
 
 ### Conditionally set variables: ###
 
@@ -257,6 +258,14 @@ __DLLFLAG_p = /DWXUSINGDLL
 __DLLFLAG_p_1 = /d WXUSINGDLL
 !endif
 !if "$(MONOLITHIC)" == "0"
+__WXLIB_ADV_p = \
+       wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.lib
+!endif
+!if "$(MONOLITHIC)" == "0"
+__WXLIB_HTML_p = \
+       wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.lib
+!endif
+!if "$(MONOLITHIC)" == "0"
 __WXLIB_CORE_p = \
        wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib
 !endif
@@ -298,9 +307,9 @@ clean:
        -if exist $(OBJS)\widgets.ilk del $(OBJS)\widgets.ilk
        -if exist $(OBJS)\widgets.pdb del $(OBJS)\widgets.pdb
 
-$(OBJS)\widgets.exe: $(WIDGETS_OBJECTS) $(OBJS)\widgets_widgets.res
+$(OBJS)\widgets.exe: $(WIDGETS_OBJECTS) $(OBJS)\widgets_sample.res
        link /NOLOGO /OUT:$@ $(LDFLAGS) $(__DEBUGINFO_1)  $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:WINDOWS @<<
-       $(WIDGETS_OBJECTS)  $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib  wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib
+       $(WIDGETS_OBJECTS)  $(__WXLIB_ADV_p)  $(__WXLIB_HTML_p)  $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p)  wxzlib$(WXDEBUGFLAG).lib  wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib
 <<
 
 $(OBJS)\widgets_button.obj: .\button.cpp
@@ -312,6 +321,9 @@ $(OBJS)\widgets_checkbox.obj: .\checkbox.cpp
 $(OBJS)\widgets_combobox.obj: .\combobox.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(WIDGETS_CXXFLAGS) $**
 
+$(OBJS)\widgets_datepick.obj: .\datepick.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(WIDGETS_CXXFLAGS) $**
+
 $(OBJS)\widgets_gauge.obj: .\gauge.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(WIDGETS_CXXFLAGS) $**
 
@@ -339,6 +351,6 @@ $(OBJS)\widgets_textctrl.obj: .\textctrl.cpp
 $(OBJS)\widgets_widgets.obj: .\widgets.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(WIDGETS_CXXFLAGS) $**
 
-$(OBJS)\widgets_widgets.res: .\widgets.rc
+$(OBJS)\widgets_sample.res: .\..\sample.rc
        rc /fo$@  /d WIN32 $(____DEBUGRUNTIME_2_p_1) $(__NO_VC_CRTDBG_p_1)  /d __WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) $(__MSLU_DEFINE_p_1) /i $(SETUPHDIR) /i .\..\..\include /i . $(__DLLFLAG_p_1) /d _WINDOWS /i .\..\..\samples /d NOPCH $**
 
index f1c49acdd8ac148e628702caec7c57719c793e71..e346b7db877b08a63f1b367e9a58a26b55f30097 100644 (file)
@@ -138,6 +138,16 @@ __EXCEPTIONSFLAG_8 =
 !ifeq USE_EXCEPTIONS 1
 __EXCEPTIONSFLAG_8 = -xs
 !endif
+__WXLIB_ADV_p =
+!ifeq MONOLITHIC 0
+__WXLIB_ADV_p = &
+       wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.lib
+!endif
+__WXLIB_HTML_p =
+!ifeq MONOLITHIC 0
+__WXLIB_HTML_p = &
+       wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.lib
+!endif
 __WXLIB_CORE_p =
 !ifeq MONOLITHIC 0
 __WXLIB_CORE_p = &
@@ -217,6 +227,7 @@ WIDGETS_OBJECTS =  &
        $(OBJS)\widgets_button.obj &
        $(OBJS)\widgets_checkbox.obj &
        $(OBJS)\widgets_combobox.obj &
+       $(OBJS)\widgets_datepick.obj &
        $(OBJS)\widgets_gauge.obj &
        $(OBJS)\widgets_listbox.obj &
        $(OBJS)\widgets_notebook.obj &
@@ -244,15 +255,15 @@ clean : .SYMBOLIC
        -if exist $(OBJS)\*.pch del $(OBJS)\*.pch
        -if exist $(OBJS)\widgets.exe del $(OBJS)\widgets.exe
 
-$(OBJS)\widgets.exe :  $(WIDGETS_OBJECTS) $(OBJS)\widgets_widgets.res
+$(OBJS)\widgets.exe :  $(WIDGETS_OBJECTS) $(OBJS)\widgets_sample.res
        @%create $(OBJS)\widgets.lbc
        @%append $(OBJS)\widgets.lbc option quiet
        @%append $(OBJS)\widgets.lbc name $^@
        @%append $(OBJS)\widgets.lbc option caseexact
        @%append $(OBJS)\widgets.lbc $(LDFLAGS) $(__DEBUGINFO_1)  libpath $(LIBDIRNAME) system nt_win ref '_WinMain@16'
        @for %i in ($(WIDGETS_OBJECTS)) do @%append $(OBJS)\widgets.lbc file %i
-       @for %i in ( $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib  wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE)  kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib ) do @%append $(OBJS)\widgets.lbc library %i
-       @%append $(OBJS)\widgets.lbc option resource=$(OBJS)\widgets_widgets.res
+       @for %i in ( $(__WXLIB_ADV_p)  $(__WXLIB_HTML_p)  $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p)  wxzlib$(WXDEBUGFLAG).lib  wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE)  kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib) do @%append $(OBJS)\widgets.lbc library %i
+       @%append $(OBJS)\widgets.lbc option resource=$(OBJS)\widgets_sample.res
        @for %i in () do @%append $(OBJS)\widgets.lbc option stack=%i
        wlink @$(OBJS)\widgets.lbc
 
@@ -265,6 +276,9 @@ $(OBJS)\widgets_checkbox.obj :  .AUTODEPEND .\checkbox.cpp
 $(OBJS)\widgets_combobox.obj :  .AUTODEPEND .\combobox.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(WIDGETS_CXXFLAGS) $<
 
+$(OBJS)\widgets_datepick.obj :  .AUTODEPEND .\datepick.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(WIDGETS_CXXFLAGS) $<
+
 $(OBJS)\widgets_gauge.obj :  .AUTODEPEND .\gauge.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(WIDGETS_CXXFLAGS) $<
 
@@ -292,6 +306,6 @@ $(OBJS)\widgets_textctrl.obj :  .AUTODEPEND .\textctrl.cpp
 $(OBJS)\widgets_widgets.obj :  .AUTODEPEND .\widgets.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(WIDGETS_CXXFLAGS) $<
 
-$(OBJS)\widgets_widgets.res :  .AUTODEPEND .\widgets.rc
+$(OBJS)\widgets_sample.res :  .AUTODEPEND .\..\sample.rc
        wrc -q -ad -bt=nt -r -fo=$^@   -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p)  -i=$(SETUPHDIR) -i=.\..\..\include -i=. $(__DLLFLAG_p) -i=.\..\..\samples -dNOPCH $<
 
index 0d15102e268120dee6ff57c5388205314ee8edb1..f65f461179a6c4e461b64a3a269494e450e3a8bc 100644 (file)
@@ -1,11 +1,11 @@
 /////////////////////////////////////////////////////////////////////////////
 // Program:     wxWidgets Widgets Sample
 // Name:        notebook.cpp
-// Purpose:     Part of the widgets sample showing wxNotebook
-// Author:      Vadim Zeitlin
+// Purpose:     Part of the widgets sample showing book controls
+// Author:      Vadim Zeitlin, Wlodzimierz ABX Skiba
 // Created:     06.04.01
 // Id:          $Id$
-// Copyright:   (c) 2001 Vadim Zeitlin
+// Copyright:   (c) 2001 Vadim Zeitlin, 2006 Wlodzimierz Skiba
 // License:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
@@ -24,7 +24,7 @@
     #pragma hdrstop
 #endif
 
-#if wxUSE_NOTEBOOK
+#if wxUSE_BOOKCTRL
 
 // for all others, include the necessary headers
 #ifndef WX_PRECOMP
 #endif
 
 #include "wx/sizer.h"
-#include "wx/notebook.h"
+#include "wx/bookctrl.h"
 #include "wx/artprov.h"
 
 #include "widgets.h"
-#include "icons/notebook.xpm"
 
 // ----------------------------------------------------------------------------
 // constants
 // control ids
 enum
 {
-    NotebookPage_Reset = 100,
-    NotebookPage_SelectPage,
-    NotebookPage_AddPage,
-    NotebookPage_InsertPage,
-    NotebookPage_RemovePage,
-    NotebookPage_DeleteAll,
-    NotebookPage_InsertText,
-    NotebookPage_RemoveText,
-    NotebookPage_SelectText,
-    NotebookPage_NumPagesText,
-    NotebookPage_CurSelectText,
-    NotebookPage_Notebook
+    BookPage_Reset = wxID_HIGHEST,
+    BookPage_SelectPage,
+    BookPage_AddPage,
+    BookPage_InsertPage,
+    BookPage_RemovePage,
+    BookPage_DeleteAll,
+    BookPage_InsertText,
+    BookPage_RemoveText,
+    BookPage_SelectText,
+    BookPage_NumPagesText,
+    BookPage_CurSelectText,
+    BookPage_Book
 };
 
-// notebook orientations
+// book orientations
 enum Orient
 {
     Orient_Top,
@@ -80,22 +79,24 @@ enum Orient
 };
 
 // ----------------------------------------------------------------------------
-// NotebookWidgetsPage
+// BookWidgetsPage
 // ----------------------------------------------------------------------------
 
-class NotebookWidgetsPage : public WidgetsPage
+class BookWidgetsPage : public WidgetsPage
 {
 public:
-    NotebookWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
-    virtual ~NotebookWidgetsPage();
+    BookWidgetsPage(WidgetsBookCtrl *book);
+    virtual ~BookWidgetsPage();
 
-    virtual wxControl *GetWidget() const { return m_notebook; }
-    virtual void RecreateWidget() { CreateNotebook(); }
+    virtual wxControl *GetWidget() const { return m_book; }
+    virtual void RecreateWidget() { RecreateBook(); }
 
 protected:
     // event handlers
+#ifdef ABX
     void OnPageChanging(wxNotebookEvent& event);
     void OnPageChanged(wxNotebookEvent& event);
+#endif
 
     void OnButtonReset(wxCommandEvent& event);
     void OnButtonDeleteAll(wxCommandEvent& event);
@@ -115,11 +116,12 @@ protected:
 
     void OnUpdateUIResetButton(wxUpdateUIEvent& event);
 
-    // reset the wxNotebook parameters
+    // reset book parameters
     void Reset();
 
-    // (re)create the wxNotebook
-    void CreateNotebook();
+    // (re)create book
+    void RecreateBook();
+    virtual wxBookCtrlBase *CreateBook(long flags) = 0;
 
     // create or destroy the image list
     void CreateImageList();
@@ -135,7 +137,7 @@ protected:
 
     // is the value in range?
     bool IsValidValue(int val) const
-        { return (val >= 0) && (val < (int) m_notebook->GetPageCount()); }
+        { return (val >= 0) && (val < (int) m_book->GetPageCount()); }
 
     // the controls
     // ------------
@@ -149,62 +151,58 @@ protected:
                *m_textRemove,
                *m_textSelect;
 
-    // the notebook itself and the sizer it is in
-    wxNotebook *m_notebook;
-    wxSizer *m_sizerNotebook;
+    // the book itself and the sizer it is in
+    wxBookCtrlBase *m_book;
+    wxSizer *m_sizerBook;
 
-    // thei mage list for our notebook
+    // thei mage list for our book
     wxImageList *m_imageList;
 
 private:
     DECLARE_EVENT_TABLE()
-    DECLARE_WIDGETS_PAGE(NotebookWidgetsPage)
 };
 
 // ----------------------------------------------------------------------------
 // event tables
 // ----------------------------------------------------------------------------
 
-BEGIN_EVENT_TABLE(NotebookWidgetsPage, WidgetsPage)
-    EVT_BUTTON(NotebookPage_Reset, NotebookWidgetsPage::OnButtonReset)
-    EVT_BUTTON(NotebookPage_SelectPage, NotebookWidgetsPage::OnButtonSelectPage)
-    EVT_BUTTON(NotebookPage_AddPage, NotebookWidgetsPage::OnButtonAddPage)
-    EVT_BUTTON(NotebookPage_InsertPage, NotebookWidgetsPage::OnButtonInsertPage)
-    EVT_BUTTON(NotebookPage_RemovePage, NotebookWidgetsPage::OnButtonRemovePage)
-    EVT_BUTTON(NotebookPage_DeleteAll, NotebookWidgetsPage::OnButtonDeleteAll)
+BEGIN_EVENT_TABLE(BookWidgetsPage, WidgetsPage)
+    EVT_BUTTON(BookPage_Reset, BookWidgetsPage::OnButtonReset)
+    EVT_BUTTON(BookPage_SelectPage, BookWidgetsPage::OnButtonSelectPage)
+    EVT_BUTTON(BookPage_AddPage, BookWidgetsPage::OnButtonAddPage)
+    EVT_BUTTON(BookPage_InsertPage, BookWidgetsPage::OnButtonInsertPage)
+    EVT_BUTTON(BookPage_RemovePage, BookWidgetsPage::OnButtonRemovePage)
+    EVT_BUTTON(BookPage_DeleteAll, BookWidgetsPage::OnButtonDeleteAll)
 
-    EVT_UPDATE_UI(NotebookPage_NumPagesText, NotebookWidgetsPage::OnUpdateUINumPagesText)
-    EVT_UPDATE_UI(NotebookPage_CurSelectText, NotebookWidgetsPage::OnUpdateUICurSelectText)
+    EVT_UPDATE_UI(BookPage_NumPagesText, BookWidgetsPage::OnUpdateUINumPagesText)
+    EVT_UPDATE_UI(BookPage_CurSelectText, BookWidgetsPage::OnUpdateUICurSelectText)
 
-    EVT_UPDATE_UI(NotebookPage_SelectPage, NotebookWidgetsPage::OnUpdateUISelectButton)
-    EVT_UPDATE_UI(NotebookPage_InsertPage, NotebookWidgetsPage::OnUpdateUIInsertButton)
-    EVT_UPDATE_UI(NotebookPage_RemovePage, NotebookWidgetsPage::OnUpdateUIRemoveButton)
+    EVT_UPDATE_UI(BookPage_SelectPage, BookWidgetsPage::OnUpdateUISelectButton)
+    EVT_UPDATE_UI(BookPage_InsertPage, BookWidgetsPage::OnUpdateUIInsertButton)
+    EVT_UPDATE_UI(BookPage_RemovePage, BookWidgetsPage::OnUpdateUIRemoveButton)
 
-    EVT_NOTEBOOK_PAGE_CHANGING(wxID_ANY, NotebookWidgetsPage::OnPageChanging)
+#ifdef ABX
+    EVT_NOTEBOOK_PAGE_CHANGING(wxID_ANY, BookWidgetsPage::OnPageChanging)
     EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, NotebookWidgetsPage::OnPageChanged)
+#endif
 
-    EVT_CHECKBOX(wxID_ANY, NotebookWidgetsPage::OnCheckOrRadioBox)
-    EVT_RADIOBOX(wxID_ANY, NotebookWidgetsPage::OnCheckOrRadioBox)
+    EVT_CHECKBOX(wxID_ANY, BookWidgetsPage::OnCheckOrRadioBox)
+    EVT_RADIOBOX(wxID_ANY, BookWidgetsPage::OnCheckOrRadioBox)
 END_EVENT_TABLE()
 
 // ============================================================================
 // implementation
 // ============================================================================
 
-IMPLEMENT_WIDGETS_PAGE(NotebookWidgetsPage, _T("Notebook"));
-
-NotebookWidgetsPage::NotebookWidgetsPage(wxBookCtrlBase *book,
-                                         wxImageList *imaglist)
-                  : WidgetsPage(book)
+BookWidgetsPage::BookWidgetsPage(WidgetsBookCtrl *book)
+                :WidgetsPage(book)
 {
-    imaglist->Add(wxBitmap(notebook_xpm));
-
     // init everything
     m_chkImages = NULL;
     m_imageList = NULL;
 
-    m_notebook = (wxNotebook *)NULL;
-    m_sizerNotebook = (wxSizer *)NULL;
+    m_book = NULL;
+    m_sizerBook = (wxSizer *)NULL;
 
     wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL);
 
@@ -232,7 +230,7 @@ NotebookWidgetsPage::NotebookWidgetsPage(wxBookCtrlBase *book,
     sizerLeft->Add(5, 5, 0, wxGROW | wxALL, 5); // spacer
     sizerLeft->Add(m_radioOrient, 0, wxALL, 5);
 
-    wxButton *btn = new wxButton(this, NotebookPage_Reset, _T("&Reset"));
+    wxButton *btn = new wxButton(this, BookPage_Reset, _T("&Reset"));
     sizerLeft->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 15);
 
     // middle pane
@@ -241,52 +239,48 @@ NotebookWidgetsPage::NotebookWidgetsPage(wxBookCtrlBase *book,
 
     wxTextCtrl *text;
     wxSizer *sizerRow = CreateSizerWithTextAndLabel(_T("Number of pages: "),
-                                                    NotebookPage_NumPagesText,
+                                                    BookPage_NumPagesText,
                                                     &text);
     text->SetEditable(false);
     sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
 
     sizerRow = CreateSizerWithTextAndLabel(_T("Current selection: "),
-                                           NotebookPage_CurSelectText,
+                                           BookPage_CurSelectText,
                                            &text);
     text->SetEditable(false);
     sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
 
-    sizerRow = CreateSizerWithTextAndButton(NotebookPage_SelectPage,
+    sizerRow = CreateSizerWithTextAndButton(BookPage_SelectPage,
                                             _T("&Select page"),
-                                            NotebookPage_SelectText,
+                                            BookPage_SelectText,
                                             &m_textSelect);
     sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
 
-    btn = new wxButton(this, NotebookPage_AddPage, _T("&Add page"));
+    btn = new wxButton(this, BookPage_AddPage, _T("&Add page"));
     sizerMiddle->Add(btn, 0, wxALL | wxGROW, 5);
 
-    sizerRow = CreateSizerWithTextAndButton(NotebookPage_InsertPage,
+    sizerRow = CreateSizerWithTextAndButton(BookPage_InsertPage,
                                             _T("&Insert page at"),
-                                            NotebookPage_InsertText,
+                                            BookPage_InsertText,
                                             &m_textInsert);
     sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
 
-    sizerRow = CreateSizerWithTextAndButton(NotebookPage_RemovePage,
+    sizerRow = CreateSizerWithTextAndButton(BookPage_RemovePage,
                                             _T("&Remove page"),
-                                            NotebookPage_RemoveText,
+                                            BookPage_RemoveText,
                                             &m_textRemove);
     sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
 
-    btn = new wxButton(this, NotebookPage_DeleteAll, _T("&Delete All"));
+    btn = new wxButton(this, BookPage_DeleteAll, _T("&Delete All"));
     sizerMiddle->Add(btn, 0, wxALL | wxGROW, 5);
 
     // right pane
-    wxSizer *sizerRight = new wxBoxSizer(wxHORIZONTAL);
-    m_notebook = new wxNotebook(this, NotebookPage_Notebook);
-    sizerRight->Add(m_notebook, 1, wxGROW | wxALL, 5);
-    sizerRight->SetMinSize(150, 0);
-    m_sizerNotebook = sizerRight; // save it to modify it later
+    m_sizerBook = new wxBoxSizer(wxHORIZONTAL);
 
-    // the 3 panes panes compose the window
+    // the 3 panes compose the window
     sizerTop->Add(sizerLeft, 0, wxGROW | (wxALL & ~wxLEFT), 10);
     sizerTop->Add(sizerMiddle, 0, wxGROW | wxALL, 10);
-    sizerTop->Add(sizerRight, 1, wxGROW | (wxALL & ~wxRIGHT), 10);
+    sizerTop->Add(m_sizerBook, 1, wxGROW | (wxALL & ~wxRIGHT), 10);
 
     // final initializations
     Reset();
@@ -297,7 +291,7 @@ NotebookWidgetsPage::NotebookWidgetsPage(wxBookCtrlBase *book,
     sizerTop->Fit(this);
 }
 
-NotebookWidgetsPage::~NotebookWidgetsPage()
+BookWidgetsPage::~BookWidgetsPage()
 {
     delete m_imageList;
 }
@@ -306,13 +300,13 @@ NotebookWidgetsPage::~NotebookWidgetsPage()
 // operations
 // ----------------------------------------------------------------------------
 
-void NotebookWidgetsPage::Reset()
+void BookWidgetsPage::Reset()
 {
     m_chkImages->SetValue(true);
     m_radioOrient->SetSelection(Orient_Top);
 }
 
-void NotebookWidgetsPage::CreateImageList()
+void BookWidgetsPage::CreateImageList()
 {
     if ( m_chkImages->GetValue() )
     {
@@ -327,7 +321,8 @@ void NotebookWidgetsPage::CreateImageList()
             m_imageList->Add(wxArtProvider::GetIcon(wxART_ERROR, wxART_OTHER, size));
         }
 
-        m_notebook->SetImageList(m_imageList);
+        if ( m_book )
+            m_book->SetImageList(m_imageList);
     }
     else // no images
     {
@@ -339,17 +334,17 @@ void NotebookWidgetsPage::CreateImageList()
     }
 
     // because of the bug in wxMSW we can't use SetImageList(NULL) - although
-    // it would be logical if this removed the image list from notebook, under
-    // MSW it crashes instead
+    // it would be logical if this removed the image list from book, under
+    // MSW it crashes instead - FIXME
 }
 
-void NotebookWidgetsPage::CreateNotebook()
+void BookWidgetsPage::RecreateBook()
 {
     int flags = ms_defaultFlags;
     switch ( m_radioOrient->GetSelection() )
     {
         default:
-            wxFAIL_MSG( _T("unknown notebook orientation") );
+            wxFAIL_MSG( _T("unknown orientation") );
             // fall through
 
         case Orient_Top:
@@ -369,49 +364,48 @@ void NotebookWidgetsPage::CreateNotebook()
             break;
     }
 
-    wxNotebook *old_note = m_notebook;
+    wxBookCtrlBase *oldBook = m_book;
 
-    m_notebook = new wxNotebook(this, NotebookPage_Notebook,
-                                wxDefaultPosition, wxDefaultSize,
-                                flags);
+    m_book = CreateBook(flags);
 
     CreateImageList();
 
-    if ( old_note )
+    if ( oldBook )
     {
-        const int sel = old_note->GetSelection();
+        const int sel = oldBook->GetSelection();
 
-        const int count = old_note->GetPageCount();
+        const int count = oldBook->GetPageCount();
 
         // recreate the pages
         for ( int n = 0; n < count; n++ )
         {
-            m_notebook->AddPage(CreateNewPage(),
-                                old_note->GetPageText(n),
-                                false,
-                                m_chkImages->GetValue() ?
-                                GetIconIndex() : -1);
+            m_book->AddPage(CreateNewPage(),
+                            oldBook->GetPageText(n),
+                            false,
+                            m_chkImages->GetValue() ?
+                            GetIconIndex() : -1);
         }
 
-        m_sizerNotebook->Detach( old_note );
-        delete old_note;
+        m_sizerBook->Detach( oldBook );
+        delete oldBook;
 
         // restore selection
         if ( sel != -1 )
         {
-            m_notebook->SetSelection(sel);
+            m_book->SetSelection(sel);
         }
     }
 
-    m_sizerNotebook->Add(m_notebook, 1, wxGROW | wxALL, 5);
-    m_sizerNotebook->Layout();
+    m_sizerBook->Add(m_book, 1, wxGROW | wxALL, 5);
+    m_sizerBook->SetMinSize(150, 0);
+    m_sizerBook->Layout();
 }
 
 // ----------------------------------------------------------------------------
 // helpers
 // ----------------------------------------------------------------------------
 
-int NotebookWidgetsPage::GetTextValue(wxTextCtrl *text) const
+int BookWidgetsPage::GetTextValue(wxTextCtrl *text) const
 {
     long pos;
     if ( !text->GetValue().ToLong(&pos) )
@@ -420,109 +414,110 @@ int NotebookWidgetsPage::GetTextValue(wxTextCtrl *text) const
     return (int)pos;
 }
 
-int NotebookWidgetsPage::GetIconIndex() const
+int BookWidgetsPage::GetIconIndex() const
 {
     if ( m_imageList )
     {
        int nImages = m_imageList->GetImageCount();
        if ( nImages > 0 )
        {
-           return m_notebook->GetPageCount() % nImages;
+           return m_book->GetPageCount() % nImages;
        }
     }
 
     return -1;
 }
 
-wxWindow *NotebookWidgetsPage::CreateNewPage()
+wxWindow *BookWidgetsPage::CreateNewPage()
 {
-    return new wxTextCtrl(m_notebook, wxID_ANY, _T("I'm a notebook page"));
+    return new wxTextCtrl(m_book, wxID_ANY, _T("I'm a book page"));
 }
 
 // ----------------------------------------------------------------------------
 // event handlers
 // ----------------------------------------------------------------------------
 
-void NotebookWidgetsPage::OnButtonReset(wxCommandEvent& WXUNUSED(event))
+void BookWidgetsPage::OnButtonReset(wxCommandEvent& WXUNUSED(event))
 {
     Reset();
 
-    CreateNotebook();
+    RecreateBook();
 }
 
-void NotebookWidgetsPage::OnButtonDeleteAll(wxCommandEvent& WXUNUSED(event))
+void BookWidgetsPage::OnButtonDeleteAll(wxCommandEvent& WXUNUSED(event))
 {
-    m_notebook->DeleteAllPages();
+    m_book->DeleteAllPages();
 }
 
-void NotebookWidgetsPage::OnButtonSelectPage(wxCommandEvent& WXUNUSED(event))
+void BookWidgetsPage::OnButtonSelectPage(wxCommandEvent& WXUNUSED(event))
 {
     int pos = GetTextValue(m_textSelect);
     wxCHECK_RET( IsValidValue(pos), _T("button should be disabled") );
 
-    m_notebook->SetSelection(pos);
+    m_book->SetSelection(pos);
 }
 
-void NotebookWidgetsPage::OnButtonAddPage(wxCommandEvent& WXUNUSED(event))
+void BookWidgetsPage::OnButtonAddPage(wxCommandEvent& WXUNUSED(event))
 {
-    m_notebook->AddPage(CreateNewPage(), _T("Added page"), false,
-                        GetIconIndex());
+    m_book->AddPage(CreateNewPage(), _T("Added page"), false,
+                    GetIconIndex());
 }
 
-void NotebookWidgetsPage::OnButtonInsertPage(wxCommandEvent& WXUNUSED(event))
+void BookWidgetsPage::OnButtonInsertPage(wxCommandEvent& WXUNUSED(event))
 {
     int pos = GetTextValue(m_textInsert);
     wxCHECK_RET( IsValidValue(pos), _T("button should be disabled") );
 
-    m_notebook->InsertPage(pos, CreateNewPage(), _T("Inserted page"), false,
-                           GetIconIndex());
+    m_book->InsertPage(pos, CreateNewPage(), _T("Inserted page"), false,
+                       GetIconIndex());
 }
 
-void NotebookWidgetsPage::OnButtonRemovePage(wxCommandEvent& WXUNUSED(event))
+void BookWidgetsPage::OnButtonRemovePage(wxCommandEvent& WXUNUSED(event))
 {
     int pos = GetTextValue(m_textRemove);
     wxCHECK_RET( IsValidValue(pos), _T("button should be disabled") );
 
-    m_notebook->DeletePage(pos);
+    m_book->DeletePage(pos);
 }
 
-void NotebookWidgetsPage::OnUpdateUISelectButton(wxUpdateUIEvent& event)
+void BookWidgetsPage::OnUpdateUISelectButton(wxUpdateUIEvent& event)
 {
     event.Enable( IsValidValue(GetTextValue(m_textSelect)) );
 }
 
-void NotebookWidgetsPage::OnUpdateUIInsertButton(wxUpdateUIEvent& event)
+void BookWidgetsPage::OnUpdateUIInsertButton(wxUpdateUIEvent& event)
 {
     event.Enable( IsValidValue(GetTextValue(m_textInsert)) );
 }
 
-void NotebookWidgetsPage::OnUpdateUIRemoveButton(wxUpdateUIEvent& event)
+void BookWidgetsPage::OnUpdateUIRemoveButton(wxUpdateUIEvent& event)
 {
     event.Enable( IsValidValue(GetTextValue(m_textRemove)) );
 }
 
-void NotebookWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event)
+void BookWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event)
 {
     event.Enable( !m_chkImages->GetValue() ||
                   m_radioOrient->GetSelection() != wxBK_TOP );
 }
 
-void NotebookWidgetsPage::OnUpdateUINumPagesText(wxUpdateUIEvent& event)
+void BookWidgetsPage::OnUpdateUINumPagesText(wxUpdateUIEvent& event)
 {
-    event.SetText( wxString::Format(_T("%d"), m_notebook->GetPageCount()) );
+    event.SetText( wxString::Format(_T("%d"), m_book->GetPageCount()) );
 }
 
-void NotebookWidgetsPage::OnUpdateUICurSelectText(wxUpdateUIEvent& event)
+void BookWidgetsPage::OnUpdateUICurSelectText(wxUpdateUIEvent& event)
 {
-    event.SetText( wxString::Format(_T("%d"), m_notebook->GetSelection()) );
+    event.SetText( wxString::Format(_T("%d"), m_book->GetSelection()) );
 }
 
-void NotebookWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event))
+void BookWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event))
 {
-    CreateNotebook();
+    RecreateBook();
 }
 
-void NotebookWidgetsPage::OnPageChanging(wxNotebookEvent& event)
+#ifdef ABX
+void BookWidgetsPage::OnPageChanging(wxBookEvent& event)
 {
     wxLogMessage(_T("Notebook page changing from %d to %d (currently %d)."),
                  event.GetOldSelection(),
@@ -542,4 +537,155 @@ void NotebookWidgetsPage::OnPageChanged(wxNotebookEvent& event)
     event.Skip();
 }
 
+#endif
+
+#if wxUSE_NOTEBOOK
+
+#include "icons/notebook.xpm"
+#include "wx/notebook.h"
+
+// ----------------------------------------------------------------------------
+// NotebookWidgetsPage
+// ----------------------------------------------------------------------------
+
+class NotebookWidgetsPage : public BookWidgetsPage
+{
+public:
+    NotebookWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist)
+        : BookWidgetsPage(book)
+    {
+        imaglist->Add(wxBitmap(notebook_xpm));
+        RecreateBook();
+    }
+    virtual ~NotebookWidgetsPage() {}
+
+protected:
+
+    // (re)create book
+    virtual wxBookCtrlBase *CreateBook(long flags)
+    {
+        return new wxNotebook(this, BookPage_Book,
+                              wxDefaultPosition, wxDefaultSize,
+                              flags);
+
+    }
+
+private:
+    DECLARE_EVENT_TABLE()
+    DECLARE_WIDGETS_PAGE(NotebookWidgetsPage)
+};
+
+// ----------------------------------------------------------------------------
+// event table
+// ----------------------------------------------------------------------------
+
+BEGIN_EVENT_TABLE(NotebookWidgetsPage, BookWidgetsPage)
+END_EVENT_TABLE()
+
+IMPLEMENT_WIDGETS_PAGE(NotebookWidgetsPage, _T("Notebook"),
+                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
+                                                     .ElseIf(wxGTK,NATIVE_CTRLS)
+                       | BOOK_CTRLS
+                       );
+
 #endif // wxUSE_NOTEBOOK
+
+#if wxUSE_LISTBOOK
+
+#include "icons/listbook.xpm"
+#include "wx/listbook.h"
+
+// ----------------------------------------------------------------------------
+// ListbookWidgetsPage
+// ----------------------------------------------------------------------------
+
+class ListbookWidgetsPage : public BookWidgetsPage
+{
+public:
+    ListbookWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist)
+        : BookWidgetsPage(book)
+    {
+        imaglist->Add(wxBitmap(listbook_xpm));
+        RecreateBook();
+    }
+    virtual ~ListbookWidgetsPage() {}
+
+protected:
+
+    // (re)create book
+    virtual wxBookCtrlBase *CreateBook(long flags)
+    {
+        return new wxListbook(this, BookPage_Book,
+                              wxDefaultPosition, wxDefaultSize,
+                              flags);
+
+    }
+
+private:
+    DECLARE_EVENT_TABLE()
+    DECLARE_WIDGETS_PAGE(ListbookWidgetsPage)
+};
+
+// ----------------------------------------------------------------------------
+// event table
+// ----------------------------------------------------------------------------
+
+BEGIN_EVENT_TABLE(ListbookWidgetsPage, BookWidgetsPage)
+END_EVENT_TABLE()
+
+IMPLEMENT_WIDGETS_PAGE(ListbookWidgetsPage, _T("Listbook"),
+                       GENERIC_CTRLS | BOOK_CTRLS
+                       );
+
+#endif // wxUSE_LISTBOOK
+
+#if wxUSE_CHOICEBOOK
+
+#include "icons/choicebk.xpm"
+#include "wx/choicebk.h"
+
+// ----------------------------------------------------------------------------
+// ChoicebookWidgetsPage
+// ----------------------------------------------------------------------------
+
+class ChoicebookWidgetsPage : public BookWidgetsPage
+{
+public:
+    ChoicebookWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist)
+        : BookWidgetsPage(book)
+    {
+        imaglist->Add(wxBitmap(choicebk_xpm));
+        RecreateBook();
+    }
+    virtual ~ChoicebookWidgetsPage() {}
+
+protected:
+
+    // (re)create book
+    virtual wxBookCtrlBase *CreateBook(long flags)
+    {
+        return new wxChoicebook(this, BookPage_Book,
+                                wxDefaultPosition, wxDefaultSize,
+                                flags);
+
+    }
+
+private:
+    DECLARE_EVENT_TABLE()
+    DECLARE_WIDGETS_PAGE(ChoicebookWidgetsPage)
+};
+
+// ----------------------------------------------------------------------------
+// event table
+// ----------------------------------------------------------------------------
+
+BEGIN_EVENT_TABLE(ChoicebookWidgetsPage, BookWidgetsPage)
+END_EVENT_TABLE()
+
+IMPLEMENT_WIDGETS_PAGE(ChoicebookWidgetsPage, _T("Choicebook"),
+                       GENERIC_CTRLS | BOOK_CTRLS
+                       );
+
+#endif // wxUSE_CHOICEBOOK
+
+#endif // wxUSE_BOOKCTRL
index 91f5cc9fa9e38b256105ad99c258c73380c51e43..1fd80178a4ad536e0ad786533408d9bd11e8fe2f 100644 (file)
@@ -83,7 +83,7 @@ static const int TEST_BUTTON = 1;
 class RadioWidgetsPage : public WidgetsPage
 {
 public:
-    RadioWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
+    RadioWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
     virtual ~RadioWidgetsPage(){};
 
     virtual wxControl *GetWidget() const { return m_radio; }
@@ -173,9 +173,12 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
-IMPLEMENT_WIDGETS_PAGE(RadioWidgetsPage, _T("Radio"));
+IMPLEMENT_WIDGETS_PAGE(RadioWidgetsPage, _T("Radio"),
+                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
+                       | WITH_ITEMS_CTRLS
+                       );
 
-RadioWidgetsPage::RadioWidgetsPage(wxBookCtrlBase *book,
+RadioWidgetsPage::RadioWidgetsPage(WidgetsBookCtrl *book,
                                    wxImageList *imaglist)
                   : WidgetsPage(book)
 {
index b647856eb8ab06102fdeb9fbbbddb4fafe7b8f6d..ce234a2c4d208b1e6ee2fabd1f1baa0b560436ca 100644 (file)
@@ -89,7 +89,7 @@ enum
 class SliderWidgetsPage : public WidgetsPage
 {
 public:
-    SliderWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
+    SliderWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
     virtual ~SliderWidgetsPage(){};
 
     virtual wxControl *GetWidget() const { return m_slider; }
@@ -198,9 +198,11 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
-IMPLEMENT_WIDGETS_PAGE(SliderWidgetsPage, _T("Slider"));
+IMPLEMENT_WIDGETS_PAGE(SliderWidgetsPage, _T("Slider"),
+                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
+                       );
 
-SliderWidgetsPage::SliderWidgetsPage(wxBookCtrlBase *book,
+SliderWidgetsPage::SliderWidgetsPage(WidgetsBookCtrl *book,
                                      wxImageList *imaglist)
                   : WidgetsPage(book)
 {
index a1ea73f112f079261e43266302c368d10bf28639..1b0fbf2055e62ae688765f7b9ed0bd38ec9e4554 100644 (file)
@@ -73,7 +73,7 @@ enum
 class SpinBtnWidgetsPage : public WidgetsPage
 {
 public:
-    SpinBtnWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
+    SpinBtnWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
     virtual ~SpinBtnWidgetsPage(){};
 
     virtual wxControl *GetWidget() const { return m_spinbtn; }
@@ -166,9 +166,12 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
-IMPLEMENT_WIDGETS_PAGE(SpinBtnWidgetsPage, _T("Spin"));
+IMPLEMENT_WIDGETS_PAGE(SpinBtnWidgetsPage, _T("Spin"),
+                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
+                       | EDITABLE_CTRLS
+                       );
 
-SpinBtnWidgetsPage::SpinBtnWidgetsPage(wxBookCtrlBase *book,
+SpinBtnWidgetsPage::SpinBtnWidgetsPage(WidgetsBookCtrl *book,
                                        wxImageList *imaglist)
                   : WidgetsPage(book)
 {
index 499a0037b6e7e24b2670d878071fe450543ec9fd..1866e8d469f9b3849e8d7b8b08d547035e7a002d 100644 (file)
@@ -139,7 +139,7 @@ END_EVENT_TABLE()
 class StaticWidgetsPage : public WidgetsPage
 {
 public:
-    StaticWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
+    StaticWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
     virtual ~StaticWidgetsPage(){};
 
     virtual wxControl *GetWidget() const { return m_statText; }
@@ -204,9 +204,11 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
-IMPLEMENT_WIDGETS_PAGE(StaticWidgetsPage, _T("Static"));
+IMPLEMENT_WIDGETS_PAGE(StaticWidgetsPage, _T("Static"),
+                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
+                       );
 
-StaticWidgetsPage::StaticWidgetsPage(wxBookCtrlBase *book,
+StaticWidgetsPage::StaticWidgetsPage(WidgetsBookCtrl *book,
                                      wxImageList *imaglist)
                   : WidgetsPage(book)
 {
index 6fd19a54978ad12bb95734197e38c28b69e15c33..c01eb60d76f7d735a9622815ce05aa1bf08a9dc9 100644 (file)
@@ -132,7 +132,7 @@ class TextWidgetsPage : public WidgetsPage
 {
 public:
     // ctor(s) and dtor
-    TextWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
+    TextWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
     virtual ~TextWidgetsPage(){};
 
     virtual wxControl *GetWidget() const { return m_text; }
@@ -329,13 +329,16 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
-IMPLEMENT_WIDGETS_PAGE(TextWidgetsPage, _T("Text"));
+IMPLEMENT_WIDGETS_PAGE(TextWidgetsPage, _T("Text"),
+                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
+                       | EDITABLE_CTRLS
+                       );
 
 // ----------------------------------------------------------------------------
 // TextWidgetsPage creation
 // ----------------------------------------------------------------------------
 
-TextWidgetsPage::TextWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist)
+TextWidgetsPage::TextWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist)
                : WidgetsPage(book)
 {
     imaglist->Add(wxBitmap(text_xpm));
index 804049b4bf4e8a84027e7e461148fb643c0eec96..5c61f2efe787df5779e81b32a13a57a1c84da8a6 100644 (file)
@@ -4,12 +4,14 @@
     <include file="../../build/bakefiles/common_samples.bkl"/>
 
     <exe id="widgets" template="wx_sample" template_append="wx_append">
-        <sources>button.cpp checkbox.cpp combobox.cpp gauge.cpp listbox.cpp
+        <sources>button.cpp checkbox.cpp combobox.cpp datepick.cpp gauge.cpp listbox.cpp
                  notebook.cpp radiobox.cpp slider.cpp spinbtn.cpp static.cpp
                  textctrl.cpp widgets.cpp</sources>
+        <wx-lib>adv</wx-lib>
+        <wx-lib>html</wx-lib>
         <wx-lib>core</wx-lib>
         <wx-lib>base</wx-lib>
-        <win32-res>widgets.rc</win32-res>
+        <win32-res>../sample.rc</win32-res>
     </exe>
 
 </makefile>
index 3473a56c9f97cd699c4ac9476e3136a93c13d021..f432060c34198ea2c80d2c29d1ce94d0445708a1 100644 (file)
@@ -42,6 +42,7 @@
 
 #include "wx/sysopt.h"
 #include "wx/bookctrl.h"
+#include "wx/treebook.h"
 #include "wx/sizer.h"
 #include "wx/colordlg.h"
 #include "wx/fontdlg.h"
@@ -49,6 +50,8 @@
 
 #include "widgets.h"
 
+#include "../sample.xpm"
+
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
@@ -81,6 +84,17 @@ enum
     Widgets_GoToPageLast = Widgets_GoToPage + 100
 };
 
+const wxChar *WidgetsCategories[MAX_PAGES] = {
+    wxT("Native"),
+    wxT("Generic"),
+    wxT("Pickers"),
+    wxT("Comboboxes"),
+    wxT("With items"),
+    wxT("Editable"),
+    wxT("Books"),
+    wxT("All controls")
+};
+
 // ----------------------------------------------------------------------------
 // our classes
 // ----------------------------------------------------------------------------
@@ -114,7 +128,7 @@ protected:
     void OnExit(wxCommandEvent& event);
 
 #if wxUSE_MENUS
-    void OnPageChanged(wxBookCtrlEvent& event);
+    void OnPageChanged(WidgetsBookCtrlEvent& event);
     void OnGoToPage(wxCommandEvent& event);
 
 #if wxUSE_TOOLTIPS
@@ -130,6 +144,9 @@ protected:
     // initialize the book: add all pages to it
     void InitBook();
 
+    // finding current page assuming book inside book
+    WidgetsPage *CurrentPage();
+
 private:
     // the panel containing everything
     wxPanel *m_panel;
@@ -143,10 +160,7 @@ private:
 #endif // USE_LOG
 
     // the book containing the test pages
-    wxBookCtrlBase *m_book;
-
-    // and the image list for it
-    wxImageList *m_imaglist;
+    WidgetsBookCtrl *m_book;
 
 #if wxUSE_MENUS
     // last chosen fg/bg colours and font
@@ -242,7 +256,7 @@ BEGIN_EVENT_TABLE(WidgetsFrame, wxFrame)
 #endif // wxUSE_TOOLTIPS
 
 #if wxUSE_MENUS
-    EVT_BOOKCTRL_PAGE_CHANGED(Widgets_BookCtrl, WidgetsFrame::OnPageChanged)
+    EVT_WIDGETS_PAGE_CHANGED(wxID_ANY, WidgetsFrame::OnPageChanged)
     EVT_MENU_RANGE(Widgets_GoToPage, Widgets_GoToPageLast,
                    WidgetsFrame::OnGoToPage)
 
@@ -312,13 +326,15 @@ WidgetsFrame::WidgetsFrame(const wxString& title)
                       wxCLIP_CHILDREN |
                       wxTAB_TRAVERSAL)
 {
+    // set the frame icon
+    SetIcon(wxICON(sample));
+
     // init everything
 #if USE_LOG
     m_lboxLog = (wxListBox *)NULL;
     m_logTarget = (wxLog *)NULL;
 #endif // USE_LOG
-    m_book = (wxBookCtrlBase *)NULL;
-    m_imaglist = (wxImageList *)NULL;
+    m_book = (WidgetsBookCtrl *)NULL;
 
 #if wxUSE_MENUS
     // create the menubar
@@ -364,7 +380,7 @@ WidgetsFrame::WidgetsFrame(const wxString& title)
     // Uncomment to suppress page theme (draw in solid colour)
     //style |= wxNB_NOPAGETHEME;
 
-    m_book = new wxBookCtrl(m_panel, Widgets_BookCtrl, wxDefaultPosition,
+    m_book = new WidgetsBookCtrl(m_panel, Widgets_BookCtrl, wxDefaultPosition,
 #ifdef __WXMOTIF__
         wxSize(500, wxDefaultCoord), // under Motif, height is a function of the width...
 #else
@@ -425,49 +441,121 @@ WidgetsFrame::WidgetsFrame(const wxString& title)
 
 void WidgetsFrame::InitBook()
 {
-    m_imaglist = new wxImageList(32, 32);
+    wxImageList *imageList = new wxImageList(32, 32);
 
-    ArrayWidgetsPage pages;
-    wxArrayString labels;
+    imageList->Add(wxBitmap(sample_xpm));
+
+#if !USE_TREEBOOK
+    WidgetsBookCtrl *books[MAX_PAGES];
+#endif
+
+    ArrayWidgetsPage pages[MAX_PAGES];
+    wxArrayString labels[MAX_PAGES];
 
     wxMenu *menuPages = new wxMenu;
-    unsigned nPage = 0;
+    unsigned int nPage = 0, nFKey = 0;
+    int cat, imageId = 1;
 
     // we need to first create all pages and only then add them to the book
     // as we need the image list first
     //
     // we also construct the pages menu during this first iteration
-    for ( WidgetsPageInfo *info = WidgetsPage::ms_widgetPages;
-          info;
-          info = info->GetNext(), nPage++ )
+    for ( cat = 0; cat < MAX_PAGES; cat++ )
     {
-        WidgetsPage *page = (*info->GetCtor())(m_book, m_imaglist);
-        pages.Add(page);
-
-        labels.Add(info->GetLabel());
-        menuPages->AppendRadioItem
-                   (
-                    Widgets_GoToPage + nPage,
-                    wxString::Format(wxT("%s\tF%u"),
-                                     info->GetLabel().c_str(), nPage + 1)
-                   );
+#if USE_TREEBOOK
+        nPage++; // increase for parent page
+#else
+        books[cat] = new WidgetsBookCtrl( m_book, wxID_ANY );
+#endif
+
+        for ( WidgetsPageInfo *info = WidgetsPage::ms_widgetPages;
+              info;
+              info = info->GetNext() )
+        {
+            if( (info->GetCategories() & ( 1 << cat )) == 0)
+                continue;
+
+            WidgetsPage *page = (*info->GetCtor())(
+#if USE_TREEBOOK
+                                 m_book
+#else
+                                 books[cat]
+#endif
+                                 , imageList);
+            pages[cat].Add(page);
+
+            labels[cat].Add(info->GetLabel());
+            if ( cat == ALL_PAGE )
+            {
+                wxString radioLabel(info->GetLabel());
+                nFKey++;
+                if ( nFKey <= 12 )
+                {
+                    radioLabel << wxT("\tF" ) << nFKey;
+                }
+
+                menuPages->AppendRadioItem(
+                            Widgets_GoToPage + nPage,
+                            radioLabel
+                           );
+#if !USE_TREEBOOK
+                // consider only for book in book architecture
+                nPage++;
+#endif
+            }
+
+#if USE_TREEBOOK
+            // consider only for treebook architecture (with subpages)
+            nPage++;
+#endif
+        }
     }
 
     GetMenuBar()->Append(menuPages, _T("&Page"));
 
-    m_book->SetImageList(m_imaglist);
+    m_book->AssignImageList(imageList);
 
-    // now do add them
-    size_t count = pages.GetCount();
-    for ( size_t n = 0; n < count; n++ )
+    for ( cat = 0; cat < MAX_PAGES; cat++ )
     {
-        m_book->AddPage(
-                        pages[n],
-                        labels[n],
-                        false, // don't select
-                        n // image id
-                       );
+#if USE_TREEBOOK
+        m_book->AddPage(NULL,WidgetsCategories[cat],false,0);
+#else
+        m_book->AddPage(books[cat],WidgetsCategories[cat],false,0);
+        books[cat]->SetImageList(imageList);
+#endif
+
+        // now do add them
+        size_t count = pages[cat].GetCount();
+        for ( size_t n = 0; n < count; n++ )
+        {
+#if USE_TREEBOOK
+            m_book->AddSubPage(
+#else
+            books[cat]->AddPage(
+#endif
+                            pages[cat][n],
+                            labels[cat][n],
+                            false, // don't select
+                            imageId++
+                           );
+        }
     }
+
+#if USE_TREEBOOK
+    // for treebook page #0 is empty parent page only
+    m_book->SetSelection(1);
+#endif
+}
+
+WidgetsPage *WidgetsFrame::CurrentPage()
+{
+#if USE_TREEBOOK
+    return wxStaticCast(m_book->GetCurrentPage(), WidgetsPage);
+#else
+    WidgetsBookCtrl *book = wxStaticCast(m_book->GetCurrentPage(), WidgetsBookCtrl);
+    if (!book) return NULL;
+    return wxStaticCast(book->GetCurrentPage(), WidgetsPage);
+#endif
 }
 
 WidgetsFrame::~WidgetsFrame()
@@ -475,7 +563,6 @@ WidgetsFrame::~WidgetsFrame()
 #if USE_LOG
     delete m_logTarget;
 #endif // USE_LOG
-    delete m_imaglist;
 }
 
 // ----------------------------------------------------------------------------
@@ -496,15 +583,22 @@ void WidgetsFrame::OnButtonClearLog(wxCommandEvent& WXUNUSED(event))
 
 #if wxUSE_MENUS
 
-void WidgetsFrame::OnPageChanged(wxBookCtrlEvent& event)
+void WidgetsFrame::OnPageChanged(WidgetsBookCtrlEvent& event)
 {
-    GetMenuBar()->Check(Widgets_GoToPage + event.GetSelection(), true);
+    wxMenuItem *item = GetMenuBar()->FindItem(Widgets_GoToPage + event.GetSelection());
+    if (item) item->Check();
     event.Skip();
 }
 
 void WidgetsFrame::OnGoToPage(wxCommandEvent& event)
 {
+#if USE_TREEBOOK
     m_book->SetSelection(event.GetId() - Widgets_GoToPage);
+#else
+    m_book->SetSelection(m_book->GetPageCount()-1);
+    WidgetsBookCtrl *book = wxStaticCast(m_book->GetCurrentPage(), WidgetsBookCtrl);
+    book->SetSelection(event.GetId() - Widgets_GoToPage);
+#endif
 }
 
 #if wxUSE_TOOLTIPS
@@ -527,7 +621,7 @@ void WidgetsFrame::OnSetTooltip(wxCommandEvent& WXUNUSED(event))
     s_tip = dialog.GetValue();
     s_tip.Replace(_T("\\n"), _T("\n"));
 
-    WidgetsPage *page = wxStaticCast(m_book->GetCurrentPage(), WidgetsPage);
+    WidgetsPage *page = CurrentPage();
     page->GetWidget()->SetToolTip(s_tip);
 
     wxControl *ctrl2 = page->GetWidget2();
@@ -541,7 +635,7 @@ void WidgetsFrame::OnSetFgCol(wxCommandEvent& WXUNUSED(event))
 {
 #if wxUSE_COLOURDLG
     // allow for debugging the default colour the first time this is called
-    WidgetsPage *page = wxStaticCast(m_book->GetCurrentPage(), WidgetsPage);
+    WidgetsPage *page = CurrentPage();
     if (!m_colFg.Ok())
         m_colFg = page->GetForegroundColour();
 
@@ -568,7 +662,7 @@ void WidgetsFrame::OnSetFgCol(wxCommandEvent& WXUNUSED(event))
 void WidgetsFrame::OnSetBgCol(wxCommandEvent& WXUNUSED(event))
 {
 #if wxUSE_COLOURDLG
-    WidgetsPage *page = wxStaticCast(m_book->GetCurrentPage(), WidgetsPage);
+    WidgetsPage *page = CurrentPage();
     if ( !m_colBg.Ok() )
         m_colBg = page->GetBackgroundColour();
 
@@ -595,7 +689,7 @@ void WidgetsFrame::OnSetBgCol(wxCommandEvent& WXUNUSED(event))
 void WidgetsFrame::OnSetFont(wxCommandEvent& WXUNUSED(event))
 {
 #if wxUSE_FONTDLG
-    WidgetsPage *page = wxStaticCast(m_book->GetCurrentPage(), WidgetsPage);
+    WidgetsPage *page = CurrentPage();
     if (!m_font.Ok())
         m_font = page->GetFont();
 
@@ -621,7 +715,7 @@ void WidgetsFrame::OnSetFont(wxCommandEvent& WXUNUSED(event))
 
 void WidgetsFrame::OnEnable(wxCommandEvent& event)
 {
-    WidgetsPage *page = wxStaticCast(m_book->GetCurrentPage(), WidgetsPage);
+    WidgetsPage *page = CurrentPage();
     page->GetWidget()->Enable(event.IsChecked());
 }
 
@@ -647,7 +741,7 @@ void WidgetsFrame::OnSetBorder(wxCommandEvent& event)
     WidgetsPage::ms_defaultFlags &= ~wxBORDER_MASK;
     WidgetsPage::ms_defaultFlags |= border;
 
-    WidgetsPage *page = wxStaticCast(m_book->GetCurrentPage(), WidgetsPage);
+    WidgetsPage *page = CurrentPage();
     page->RecreateWidget();
 }
 
@@ -657,8 +751,9 @@ void WidgetsFrame::OnSetBorder(wxCommandEvent& event)
 // WidgetsPageInfo
 // ----------------------------------------------------------------------------
 
-WidgetsPageInfo::WidgetsPageInfo(Constructor ctor, const wxChar *label)
+WidgetsPageInfo::WidgetsPageInfo(Constructor ctor, const wxChar *label, int categories)
                : m_label(label)
+               , m_categories(categories)
 {
     m_ctor = ctor;
 
@@ -716,7 +811,7 @@ WidgetsPageInfo::WidgetsPageInfo(Constructor ctor, const wxChar *label)
 int WidgetsPage::ms_defaultFlags = wxBORDER_DEFAULT;
 WidgetsPageInfo *WidgetsPage::ms_widgetPages = NULL;
 
-WidgetsPage::WidgetsPage(wxBookCtrlBase *book)
+WidgetsPage::WidgetsPage(WidgetsBookCtrl *book)
            : wxPanel(book, wxID_ANY,
                      wxDefaultPosition, wxDefaultSize,
                      wxNO_FULL_REPAINT_ON_RESIZE |
index 6b95250127ca75a97d0b27c0a66cc8b42969cce5..45fb9399e98d9ab0bba691310f795b57bab4f9c2 100644 (file)
@@ -65,8 +65,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmswuniv27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivudll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
-# ADD LINK32 wxmswuniv27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivudll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD BASE LINK32 wxmswuniv27u_adv.lib wxmswuniv27u_html.lib wxmswuniv27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivudll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD LINK32 wxmswuniv27u_adv.lib wxmswuniv27u_html.lib wxmswuniv27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivudll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 DLL Universal Unicode Debug"
 
@@ -90,8 +90,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmswuniv27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivuddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
-# ADD LINK32 wxmswuniv27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivuddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD BASE LINK32 wxmswuniv27ud_adv.lib wxmswuniv27ud_html.lib wxmswuniv27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivuddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD LINK32 wxmswuniv27ud_adv.lib wxmswuniv27ud_html.lib wxmswuniv27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivuddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 DLL Universal Release"
 
@@ -115,8 +115,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmswuniv27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivdll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
-# ADD LINK32 wxmswuniv27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivdll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD BASE LINK32 wxmswuniv27_adv.lib wxmswuniv27_html.lib wxmswuniv27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivdll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD LINK32 wxmswuniv27_adv.lib wxmswuniv27_html.lib wxmswuniv27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivdll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 DLL Universal Debug"
 
@@ -140,8 +140,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmswuniv27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
-# ADD LINK32 wxmswuniv27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD BASE LINK32 wxmswuniv27d_adv.lib wxmswuniv27d_html.lib wxmswuniv27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD LINK32 wxmswuniv27d_adv.lib wxmswuniv27d_html.lib wxmswuniv27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 DLL Unicode Release"
 
@@ -165,8 +165,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmsw27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswudll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
-# ADD LINK32 wxmsw27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswudll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD BASE LINK32 wxmsw27u_adv.lib wxmsw27u_html.lib wxmsw27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswudll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD LINK32 wxmsw27u_adv.lib wxmsw27u_html.lib wxmsw27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswudll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 DLL Unicode Debug"
 
@@ -190,8 +190,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmsw27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswuddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
-# ADD LINK32 wxmsw27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswuddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD BASE LINK32 wxmsw27ud_adv.lib wxmsw27ud_html.lib wxmsw27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswuddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD LINK32 wxmsw27ud_adv.lib wxmsw27ud_html.lib wxmsw27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswuddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 DLL Release"
 
@@ -215,8 +215,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmsw27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswdll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
-# ADD LINK32 wxmsw27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswdll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD BASE LINK32 wxmsw27_adv.lib wxmsw27_html.lib wxmsw27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswdll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD LINK32 wxmsw27_adv.lib wxmsw27_html.lib wxmsw27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswdll\widgets.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 DLL Debug"
 
@@ -240,8 +240,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmsw27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
-# ADD LINK32 wxmsw27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD BASE LINK32 wxmsw27d_adv.lib wxmsw27d_html.lib wxmsw27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
+# ADD LINK32 wxmsw27d_adv.lib wxmsw27d_html.lib wxmsw27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswddll\widgets.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 Universal Unicode Release"
 
@@ -265,8 +265,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmswuniv27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivu\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
-# ADD LINK32 wxmswuniv27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivu\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD BASE LINK32 wxmswuniv27u_adv.lib wxmswuniv27u_html.lib wxmswuniv27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivu\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD LINK32 wxmswuniv27u_adv.lib wxmswuniv27u_html.lib wxmswuniv27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivu\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 Universal Unicode Debug"
 
@@ -290,8 +290,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmswuniv27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivud\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
-# ADD LINK32 wxmswuniv27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivud\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD BASE LINK32 wxmswuniv27ud_adv.lib wxmswuniv27ud_html.lib wxmswuniv27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivud\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD LINK32 wxmswuniv27ud_adv.lib wxmswuniv27ud_html.lib wxmswuniv27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivud\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 Universal Release"
 
@@ -315,8 +315,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmswuniv27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswuniv\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
-# ADD LINK32 wxmswuniv27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswuniv\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD BASE LINK32 wxmswuniv27_adv.lib wxmswuniv27_html.lib wxmswuniv27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswuniv\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD LINK32 wxmswuniv27_adv.lib wxmswuniv27_html.lib wxmswuniv27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswuniv\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 Universal Debug"
 
@@ -340,8 +340,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmswuniv27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivd\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
-# ADD LINK32 wxmswuniv27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivd\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD BASE LINK32 wxmswuniv27d_adv.lib wxmswuniv27d_html.lib wxmswuniv27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivd\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD LINK32 wxmswuniv27d_adv.lib wxmswuniv27d_html.lib wxmswuniv27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswunivd\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 Unicode Release"
 
@@ -365,8 +365,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmsw27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswu\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
-# ADD LINK32 wxmsw27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswu\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD BASE LINK32 wxmsw27u_adv.lib wxmsw27u_html.lib wxmsw27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswu\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD LINK32 wxmsw27u_adv.lib wxmsw27u_html.lib wxmsw27u_core.lib wxbase27u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswu\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 Unicode Debug"
 
@@ -390,8 +390,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmsw27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswud\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
-# ADD LINK32 wxmsw27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswud\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD BASE LINK32 wxmsw27ud_adv.lib wxmsw27ud_html.lib wxmsw27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswud\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD LINK32 wxmsw27ud_adv.lib wxmsw27ud_html.lib wxmsw27ud_core.lib wxbase27ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswud\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 Release"
 
@@ -415,8 +415,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmsw27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_msw\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
-# ADD LINK32 wxmsw27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_msw\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD BASE LINK32 wxmsw27_adv.lib wxmsw27_html.lib wxmsw27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_msw\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD LINK32 wxmsw27_adv.lib wxmsw27_html.lib wxmsw27_core.lib wxbase27.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_msw\widgets.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:windows
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 Debug"
 
@@ -440,8 +440,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 wxmsw27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswd\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
-# ADD LINK32 wxmsw27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswd\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD BASE LINK32 wxmsw27d_adv.lib wxmsw27d_html.lib wxmsw27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswd\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
+# ADD LINK32 wxmsw27d_adv.lib wxmsw27d_html.lib wxmsw27d_core.lib wxbase27d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /machine:i386 /out:"vc_mswd\widgets.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:windows
 
 !ENDIF
 
@@ -480,6 +480,10 @@ SOURCE=.\combobox.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\datepick.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=.\gauge.cpp
 # End Source File
 # Begin Source File
@@ -496,6 +500,10 @@ SOURCE=.\radiobox.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\..\sample.rc
+# End Source File
+# Begin Source File
+
 SOURCE=.\slider.cpp
 # End Source File
 # Begin Source File
@@ -514,10 +522,6 @@ SOURCE=.\textctrl.cpp
 
 SOURCE=.\widgets.cpp
 # End Source File
-# Begin Source File
-
-SOURCE=.\widgets.rc
-# End Source File
 # End Group
 # End Target
 # End Project
index d8e40df3ce335321434a164dd80eb83f79b7bcb4..cb07dde40667863a3fb4bc9dca7d7c7ae1d33de6 100644 (file)
 #ifndef _WX_SAMPLE_WIDGETS_H_
 #define _WX_SAMPLE_WIDGETS_H_
 
+#if wxUSE_TREEBOOK
+    #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)
+#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)
+#endif
+
+#if wxUSE_LOG && !defined(__SMARTPHONE__)
+    #define USE_LOG 1
+#else
+    #define USE_LOG 0
+#endif
+
 class WXDLLEXPORT wxCheckBox;
-class WXDLLEXPORT wxBookCtrlBase;
 class WXDLLEXPORT wxSizer;
 class WXDLLEXPORT wxTextCtrl;
+class WXDLLEXPORT WidgetsBookCtrl;
 
 class WidgetsPageInfo;
 
@@ -24,11 +44,31 @@ class WidgetsPageInfo;
 // all source files use wxImageList
 #include "wx/imaglist.h"
 
-#if wxUSE_LOG && !defined(__SMARTPHONE__)
-    #define USE_LOG 1
-#else
-    #define USE_LOG 0
-#endif
+// INTRODUCING NEW PAGES DON'T FORGET TO ADD ENTRIES TO 'WidgetsCategories'
+enum
+{
+    NATIVE_PAGE = 0,
+    GENERIC_PAGE,
+    PICKER_PAGE,
+    COMBO_PAGE,
+    WITH_ITEMS_PAGE,
+    EDITABLE_PAGE,
+    BOOK_PAGE,
+    ALL_PAGE,
+    MAX_PAGES
+};
+
+enum
+{
+    NATIVE_CTRLS     = 1 << NATIVE_PAGE,
+    GENERIC_CTRLS    = 1 << GENERIC_PAGE,
+    PICKER_CTRLS     = 1 << PICKER_PAGE,
+    COMBO_CTRLS      = 1 << COMBO_PAGE,
+    WITH_ITEMS_CTRLS = 1 << WITH_ITEMS_PAGE,
+    EDITABLE_CTRLS   = 1 << EDITABLE_PAGE,
+    BOOK_CTRLS       = 1 << BOOK_PAGE,
+    ALL_CTRLS        = 1 << ALL_PAGE
+};
 
 // ----------------------------------------------------------------------------
 // WidgetsPage: a book page demonstrating some widget
@@ -37,7 +77,7 @@ class WidgetsPageInfo;
 class WidgetsPage : public wxPanel
 {
 public:
-    WidgetsPage(wxBookCtrlBase *book);
+    WidgetsPage(WidgetsBookCtrl *book);
 
     // return the control shown by this page
     virtual wxControl *GetWidget() const = 0;
@@ -91,14 +131,15 @@ public:
 class WidgetsPageInfo
 {
 public:
-    typedef WidgetsPage *(*Constructor)(wxBookCtrlBase *book,
+    typedef WidgetsPage *(*Constructor)(WidgetsBookCtrl *book,
                                         wxImageList *imaglist);
 
     // our ctor
-    WidgetsPageInfo(Constructor ctor, const wxChar *label);
+    WidgetsPageInfo(Constructor ctor, const wxChar *label, int categories);
 
     // accessors
     const wxString& GetLabel() const { return m_label; }
+    int GetCategories() const { return m_categories; }
     Constructor GetCtor() const { return m_ctor; }
     WidgetsPageInfo *GetNext() const { return m_next; }
 
@@ -108,6 +149,9 @@ private:
     // the label of the page
     wxString m_label;
 
+    // the list (flags) for sharing page between categories
+    int m_categories;
+
     // the function to create this page
     Constructor m_ctor;
 
@@ -124,11 +168,11 @@ private:
             { return &ms_info##classname; }
 
 // and this one must be inserted somewhere in the source file
-#define IMPLEMENT_WIDGETS_PAGE(classname, label)                            \
-    WidgetsPage *wxCtorFor##classname(wxBookCtrlBase *book,                 \
+#define IMPLEMENT_WIDGETS_PAGE(classname, label, categories)                \
+    WidgetsPage *wxCtorFor##classname(WidgetsBookCtrl *book,                \
                                       wxImageList *imaglist)                \
         { return new classname(book, imaglist); }                           \
     WidgetsPageInfo classname::                                             \
-        ms_info##classname(wxCtorFor##classname, label)
+        ms_info##classname(wxCtorFor##classname, label, ALL_CTRLS | categories)
 
 #endif // _WX_SAMPLE_WIDGETS_H_
diff --git a/samples/widgets/widgets.rc b/samples/widgets/widgets.rc
deleted file mode 100644 (file)
index b86c4e2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include "wx/msw/wx.rc"