From 22de6a40837573d953a531fe3597669b7f9e3b35 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 20 Jan 2008 22:40:14 +0000 Subject: [PATCH] add wxDatePickerCtrl support in wxGenericValidator (patch 1870174) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51300 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 3 ++- docs/latex/wx/valgen.tex | 5 +++++ include/wx/valgen.h | 8 +++++++ src/common/valgen.cpp | 46 ++++++++++++++++++++++++++++++++++++++-- 4 files changed, 59 insertions(+), 3 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 5f5f165353..f1e75c6b89 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -217,6 +217,7 @@ All (GUI): - Added wxH[V]ScrolledWindow (Brad Anderson, Bryan Petty). - Added wxNotificationMessage class for non-intrusive notifications - Added wxWindow::Show/HideWithEffect() +- Added wxWrapSizer - Added wxDC::StretchBlit() for wxMac and wxMSW (Vince Harron). - Added support for drop down toolbar buttons (Tim Kosse). - Added support for labels for toolbar controls (Vince Harron). @@ -264,8 +265,8 @@ All (GUI): - Added support for resizing wxWizard bitmaps to the current page height, via SetBitmapPlacement, SetBitmapBackgroundColour and SetMinimumBitmapWidth. Also made it easier to derive from wxWizard and override behaviour. -- Added wxWrapSizer - Made wxSizer::Fit() set the client size of the target window +- Add support for wxDatePickerCtrl in wxGenericValidator (Herry Ayen Yang) wxGTK: diff --git a/docs/latex/wx/valgen.tex b/docs/latex/wx/valgen.tex index cd8ef1989e..c305af8e6b 100644 --- a/docs/latex/wx/valgen.tex +++ b/docs/latex/wx/valgen.tex @@ -55,6 +55,11 @@ wxChoice. Constructor taking a wxArrayInt pointer. This will be used for wxListBox, wxCheckListBox. +\func{}{wxGenericValidator}{\param{wxDateTime*}{ valPtr}} + +Constructor taking a \helpref{wxDateTime}{wxdatetime} pointer. This will be +used for \helpref{wxDatePickerCtrl}{wxdatepickerctrl}. + \wxheading{Parameters} \docparam{validator}{Validator to copy.} diff --git a/include/wx/valgen.h b/include/wx/valgen.h index 35dd44ff5f..893d31dfaa 100644 --- a/include/wx/valgen.h +++ b/include/wx/valgen.h @@ -16,6 +16,8 @@ #if wxUSE_VALIDATORS +class WXDLLIMPEXP_FWD_BASE wxDateTime; + class WXDLLEXPORT wxGenericValidator: public wxValidator { DECLARE_CLASS(wxGenericValidator) @@ -24,6 +26,9 @@ public: wxGenericValidator(int* val); wxGenericValidator(wxString* val); wxGenericValidator(wxArrayInt* val); +#if wxUSE_DATETIME + wxGenericValidator(wxDateTime* val); +#endif // wxUSE_DATETIME wxGenericValidator(const wxGenericValidator& copyFrom); virtual ~wxGenericValidator(){} @@ -52,6 +57,9 @@ protected: int* m_pInt; wxString* m_pString; wxArrayInt* m_pArrayInt; +#if wxUSE_DATETIME + wxDateTime* m_pDateTime; +#endif // wxUSE_DATETIME private: // Cannot use diff --git a/src/common/valgen.cpp b/src/common/valgen.cpp index d9de2dea7b..6fc3530c7d 100644 --- a/src/common/valgen.cpp +++ b/src/common/valgen.cpp @@ -38,6 +38,7 @@ #endif #include "wx/spinctrl.h" +#include "wx/datectrl.h" #if wxUSE_SPINBTN #include "wx/spinbutt.h" @@ -74,6 +75,16 @@ wxGenericValidator::wxGenericValidator(wxArrayInt *val) m_pArrayInt = val; } +#if wxUSE_DATETIME + +wxGenericValidator::wxGenericValidator(wxDateTime *val) +{ + Initialize(); + m_pDateTime = val; +} + +#endif // wxUSE_DATETIME + wxGenericValidator::wxGenericValidator(const wxGenericValidator& val) : wxValidator() { @@ -88,6 +99,9 @@ bool wxGenericValidator::Copy(const wxGenericValidator& val) m_pInt = val.m_pInt; m_pString = val.m_pString; m_pArrayInt = val.m_pArrayInt; +#if wxUSE_DATETIME + m_pDateTime = val.m_pDateTime; +#endif // wxUSE_DATETIME return true; } @@ -213,6 +227,19 @@ bool wxGenericValidator::TransferToWindow(void) } else #endif + // date time controls +#if wxUSE_DATEPICKCTRL + if (m_validatorWindow->IsKindOf(CLASSINFO(wxDatePickerCtrl)) ) + { + wxDatePickerCtrl* pControl = (wxDatePickerCtrl*) m_validatorWindow; + if (m_pDateTime) + { + pControl->SetValue(*m_pDateTime) ; + return true; + } + } else +#endif + // string controls #if wxUSE_BUTTON if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) ) @@ -458,6 +485,19 @@ bool wxGenericValidator::TransferFromWindow(void) } else #endif + // DATE TIME CONTROLS ************************************ +#if wxUSE_DATEPICKCTRL + if (m_validatorWindow->IsKindOf(CLASSINFO(wxDatePickerCtrl)) ) + { + wxDatePickerCtrl* pControl = (wxDatePickerCtrl*) m_validatorWindow; + if (m_pDateTime) + { + *m_pDateTime = pControl->GetValue() ; + return true; + } + } else +#endif + // STRING CONTROLS ************************************ #if wxUSE_BUTTON if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) ) @@ -597,7 +637,9 @@ void wxGenericValidator::Initialize() m_pInt = 0; m_pString = 0; m_pArrayInt = 0; +#if wxUSE_DATETIME + m_pDateTime = 0; +#endif // wxUSE_DATETIME } -#endif - // wxUSE_VALIDATORS +#endif // wxUSE_VALIDATORS -- 2.45.2