]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/valgen.cpp
fixing overrelease and out-of-bounds write, fixes #13725
[wxWidgets.git] / src / common / valgen.cpp
index ccbcc7c07fdf634e9611ae18cb82e31415f11c60..58f633f4993c568f4c0154ad766b660b4a67e276 100644 (file)
@@ -84,6 +84,8 @@ wxGenericValidator::wxGenericValidator(wxDateTime *val)
     m_pDateTime = val;
 }
 
     m_pDateTime = val;
 }
 
+#endif // wxUSE_DATETIME
+
 wxGenericValidator::wxGenericValidator(wxFileName *val)
 {
     Initialize();
 wxGenericValidator::wxGenericValidator(wxFileName *val)
 {
     Initialize();
@@ -102,8 +104,6 @@ wxGenericValidator::wxGenericValidator(double *val)
     m_pDouble = val;
 }
 
     m_pDouble = val;
 }
 
-#endif // wxUSE_DATETIME
-
 wxGenericValidator::wxGenericValidator(const wxGenericValidator& val)
     : wxValidator()
 {
 wxGenericValidator::wxGenericValidator(const wxGenericValidator& val)
     : wxValidator()
 {
@@ -121,6 +121,9 @@ bool wxGenericValidator::Copy(const wxGenericValidator& val)
 #if wxUSE_DATETIME
     m_pDateTime = val.m_pDateTime;
 #endif // wxUSE_DATETIME
 #if wxUSE_DATETIME
     m_pDateTime = val.m_pDateTime;
 #endif // wxUSE_DATETIME
+    m_pFileName = val.m_pFileName;
+    m_pFloat = val.m_pFloat;
+    m_pDouble = val.m_pDouble;
 
     return true;
 }
 
     return true;
 }
@@ -133,7 +136,7 @@ bool wxGenericValidator::TransferToWindow(void)
 
     // bool controls
 #if wxUSE_CHECKBOX
 
     // bool controls
 #if wxUSE_CHECKBOX
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckBox)) )
+    if (wxDynamicCast(m_validatorWindow, wxCheckBox))
     {
         wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow;
         if (m_pBool)
     {
         wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow;
         if (m_pBool)
@@ -144,7 +147,7 @@ bool wxGenericValidator::TransferToWindow(void)
     } else
 #endif
 #if wxUSE_RADIOBTN
     } else
 #endif
 #if wxUSE_RADIOBTN
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) )
+    if (wxDynamicCast(m_validatorWindow, wxRadioButton))
     {
         wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow;
         if (m_pBool)
     {
         wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow;
         if (m_pBool)
@@ -156,7 +159,7 @@ bool wxGenericValidator::TransferToWindow(void)
 #endif
 
 #if wxUSE_TOGGLEBTN
 #endif
 
 #if wxUSE_TOGGLEBTN
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxToggleButton)) )
+    if (wxDynamicCast(m_validatorWindow, wxToggleButton))
     {
         wxToggleButton * pControl = (wxToggleButton *) m_validatorWindow;
         if (m_pBool)
     {
         wxToggleButton * pControl = (wxToggleButton *) m_validatorWindow;
         if (m_pBool)
@@ -166,7 +169,7 @@ bool wxGenericValidator::TransferToWindow(void)
         }
     } else
 #if (defined(__WXMAC__) || defined(__WXMSW__) || defined(__WXGTK20__)) && !defined(__WXUNIVERSAL__)
         }
     } else
 #if (defined(__WXMAC__) || defined(__WXMSW__) || defined(__WXGTK20__)) && !defined(__WXUNIVERSAL__)
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxBitmapToggleButton)) )
+    if (wxDynamicCast(m_validatorWindow, wxBitmapToggleButton))
     {
         wxBitmapToggleButton * pControl = (wxBitmapToggleButton *) m_validatorWindow;
         if (m_pBool)
     {
         wxBitmapToggleButton * pControl = (wxBitmapToggleButton *) m_validatorWindow;
         if (m_pBool)
@@ -180,7 +183,7 @@ bool wxGenericValidator::TransferToWindow(void)
 
     // int controls
 #if wxUSE_GAUGE
 
     // int controls
 #if wxUSE_GAUGE
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) )
+    if (wxDynamicCast(m_validatorWindow, wxGauge))
     {
         wxGauge* pControl = (wxGauge*) m_validatorWindow;
         if (m_pInt)
     {
         wxGauge* pControl = (wxGauge*) m_validatorWindow;
         if (m_pInt)
@@ -191,7 +194,7 @@ bool wxGenericValidator::TransferToWindow(void)
     } else
 #endif
 #if wxUSE_RADIOBOX
     } else
 #endif
 #if wxUSE_RADIOBOX
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) )
+    if (wxDynamicCast(m_validatorWindow, wxRadioBox))
     {
         wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow;
         if (m_pInt)
     {
         wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow;
         if (m_pInt)
@@ -202,7 +205,7 @@ bool wxGenericValidator::TransferToWindow(void)
     } else
 #endif
 #if wxUSE_SCROLLBAR
     } else
 #endif
 #if wxUSE_SCROLLBAR
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) )
+    if (wxDynamicCast(m_validatorWindow, wxScrollBar))
     {
         wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow;
         if (m_pInt)
     {
         wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow;
         if (m_pInt)
@@ -213,7 +216,7 @@ bool wxGenericValidator::TransferToWindow(void)
     } else
 #endif
 #if wxUSE_SPINCTRL && !defined(__WXMOTIF__)
     } else
 #endif
 #if wxUSE_SPINCTRL && !defined(__WXMOTIF__)
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinCtrl)) )
+    if (wxDynamicCast(m_validatorWindow, wxSpinCtrl))
     {
         wxSpinCtrl* pControl = (wxSpinCtrl*) m_validatorWindow;
         if (m_pInt)
     {
         wxSpinCtrl* pControl = (wxSpinCtrl*) m_validatorWindow;
         if (m_pInt)
@@ -224,7 +227,7 @@ bool wxGenericValidator::TransferToWindow(void)
     } else
 #endif
 #if wxUSE_SPINBTN
     } else
 #endif
 #if wxUSE_SPINBTN
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
+    if (wxDynamicCast(m_validatorWindow, wxSpinButton))
     {
         wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
         if (m_pInt)
     {
         wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
         if (m_pInt)
@@ -235,7 +238,7 @@ bool wxGenericValidator::TransferToWindow(void)
     } else
 #endif
 #if wxUSE_SLIDER
     } else
 #endif
 #if wxUSE_SLIDER
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxSlider)) )
+    if (wxDynamicCast(m_validatorWindow, wxSlider))
     {
         wxSlider* pControl = (wxSlider*) m_validatorWindow;
         if (m_pInt)
     {
         wxSlider* pControl = (wxSlider*) m_validatorWindow;
         if (m_pInt)
@@ -248,7 +251,7 @@ bool wxGenericValidator::TransferToWindow(void)
 
     // date time controls
 #if 0 // wxUSE_DATEPICKCTRL -- temporary fix for shared build linking
 
     // date time controls
 #if 0 // wxUSE_DATEPICKCTRL -- temporary fix for shared build linking
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxDatePickerCtrl)) )
+    if (wxDynamicCast(m_validatorWindow, wxDatePickerCtrl))
     {
         wxDatePickerCtrl* pControl = (wxDatePickerCtrl*) m_validatorWindow;
         if (m_pDateTime)
     {
         wxDatePickerCtrl* pControl = (wxDatePickerCtrl*) m_validatorWindow;
         if (m_pDateTime)
@@ -261,7 +264,7 @@ bool wxGenericValidator::TransferToWindow(void)
 
     // string controls
 #if wxUSE_BUTTON
 
     // string controls
 #if wxUSE_BUTTON
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
+    if (wxDynamicCast(m_validatorWindow, wxButton))
     {
         wxButton* pControl = (wxButton*) m_validatorWindow;
         if (m_pString)
     {
         wxButton* pControl = (wxButton*) m_validatorWindow;
         if (m_pString)
@@ -272,7 +275,7 @@ bool wxGenericValidator::TransferToWindow(void)
     } else
 #endif
 #if wxUSE_COMBOBOX
     } else
 #endif
 #if wxUSE_COMBOBOX
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
+    if (wxDynamicCast(m_validatorWindow, wxComboBox))
     {
         wxComboBox* pControl = (wxComboBox*) m_validatorWindow;
         if (m_pInt)
     {
         wxComboBox* pControl = (wxComboBox*) m_validatorWindow;
         if (m_pInt)
@@ -295,7 +298,7 @@ bool wxGenericValidator::TransferToWindow(void)
     } else
 #endif
 #if wxUSE_CHOICE
     } else
 #endif
 #if wxUSE_CHOICE
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
+    if (wxDynamicCast(m_validatorWindow, wxChoice))
     {
         wxChoice* pControl = (wxChoice*) m_validatorWindow;
         if (m_pInt)
     {
         wxChoice* pControl = (wxChoice*) m_validatorWindow;
         if (m_pInt)
@@ -314,7 +317,7 @@ bool wxGenericValidator::TransferToWindow(void)
     } else
 #endif
 #if wxUSE_STATTEXT
     } else
 #endif
 #if wxUSE_STATTEXT
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
+    if (wxDynamicCast(m_validatorWindow, wxStaticText))
     {
         wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
         if (m_pString)
     {
         wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
         if (m_pString)
@@ -325,7 +328,7 @@ bool wxGenericValidator::TransferToWindow(void)
     } else
 #endif
 #if wxUSE_TEXTCTRL
     } else
 #endif
 #if wxUSE_TEXTCTRL
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
+    if (wxDynamicCast(m_validatorWindow, wxTextCtrl))
     {
         wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
         if (m_pString)
     {
         wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
         if (m_pString)
@@ -361,7 +364,7 @@ bool wxGenericValidator::TransferToWindow(void)
     // array controls
 #if wxUSE_CHECKLISTBOX
     // NOTE: wxCheckListBox is a wxListBox, so wxCheckListBox MUST come first:
     // array controls
 #if wxUSE_CHECKLISTBOX
     // NOTE: wxCheckListBox is a wxListBox, so wxCheckListBox MUST come first:
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
+    if (wxDynamicCast(m_validatorWindow, wxCheckListBox))
     {
         wxCheckListBox* pControl = (wxCheckListBox*) m_validatorWindow;
         if (m_pArrayInt)
     {
         wxCheckListBox* pControl = (wxCheckListBox*) m_validatorWindow;
         if (m_pArrayInt)
@@ -384,7 +387,7 @@ bool wxGenericValidator::TransferToWindow(void)
     } else
 #endif
 #if wxUSE_LISTBOX
     } else
 #endif
 #if wxUSE_LISTBOX
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
+    if (wxDynamicCast(m_validatorWindow, wxListBox))
     {
         wxListBox* pControl = (wxListBox*) m_validatorWindow;
         if (m_pArrayInt)
     {
         wxListBox* pControl = (wxListBox*) m_validatorWindow;
         if (m_pArrayInt)
@@ -419,7 +422,7 @@ bool wxGenericValidator::TransferFromWindow(void)
 
     // BOOL CONTROLS **************************************
 #if wxUSE_CHECKBOX
 
     // BOOL CONTROLS **************************************
 #if wxUSE_CHECKBOX
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckBox)) )
+    if (wxDynamicCast(m_validatorWindow, wxCheckBox))
     {
         wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow;
         if (m_pBool)
     {
         wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow;
         if (m_pBool)
@@ -430,7 +433,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     } else
 #endif
 #if wxUSE_RADIOBTN
     } else
 #endif
 #if wxUSE_RADIOBTN
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) )
+    if (wxDynamicCast(m_validatorWindow, wxRadioButton))
     {
         wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow;
         if (m_pBool)
     {
         wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow;
         if (m_pBool)
@@ -441,7 +444,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     } else
 #endif
 #if wxUSE_TOGGLEBTN
     } else
 #endif
 #if wxUSE_TOGGLEBTN
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxToggleButton)) )
+    if (wxDynamicCast(m_validatorWindow, wxToggleButton))
     {
         wxToggleButton *pControl = (wxToggleButton *) m_validatorWindow;
         if (m_pBool)
     {
         wxToggleButton *pControl = (wxToggleButton *) m_validatorWindow;
         if (m_pBool)
@@ -451,7 +454,7 @@ bool wxGenericValidator::TransferFromWindow(void)
         }
     } else
 #if (defined(__WXMAC__) || defined(__WXMSW__) || defined(__WXGTK20__)) && !defined(__WXUNIVERSAL__)
         }
     } else
 #if (defined(__WXMAC__) || defined(__WXMSW__) || defined(__WXGTK20__)) && !defined(__WXUNIVERSAL__)
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxBitmapToggleButton)) )
+    if (wxDynamicCast(m_validatorWindow, wxBitmapToggleButton))
     {
         wxBitmapToggleButton *pControl = (wxBitmapToggleButton *) m_validatorWindow;
         if (m_pBool)
     {
         wxBitmapToggleButton *pControl = (wxBitmapToggleButton *) m_validatorWindow;
         if (m_pBool)
@@ -465,7 +468,7 @@ bool wxGenericValidator::TransferFromWindow(void)
 
     // INT CONTROLS ***************************************
 #if wxUSE_GAUGE
 
     // INT CONTROLS ***************************************
 #if wxUSE_GAUGE
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) )
+    if (wxDynamicCast(m_validatorWindow, wxGauge))
     {
         wxGauge* pControl = (wxGauge*) m_validatorWindow;
         if (m_pInt)
     {
         wxGauge* pControl = (wxGauge*) m_validatorWindow;
         if (m_pInt)
@@ -476,7 +479,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     } else
 #endif
 #if wxUSE_RADIOBOX
     } else
 #endif
 #if wxUSE_RADIOBOX
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) )
+    if (wxDynamicCast(m_validatorWindow, wxRadioBox))
     {
         wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow;
         if (m_pInt)
     {
         wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow;
         if (m_pInt)
@@ -487,7 +490,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     } else
 #endif
 #if wxUSE_SCROLLBAR
     } else
 #endif
 #if wxUSE_SCROLLBAR
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) )
+    if (wxDynamicCast(m_validatorWindow, wxScrollBar))
     {
         wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow;
         if (m_pInt)
     {
         wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow;
         if (m_pInt)
@@ -498,7 +501,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     } else
 #endif
 #if wxUSE_SPINCTRL && !defined(__WXMOTIF__)
     } else
 #endif
 #if wxUSE_SPINCTRL && !defined(__WXMOTIF__)
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinCtrl)) )
+    if (wxDynamicCast(m_validatorWindow, wxSpinCtrl))
     {
         wxSpinCtrl* pControl = (wxSpinCtrl*) m_validatorWindow;
         if (m_pInt)
     {
         wxSpinCtrl* pControl = (wxSpinCtrl*) m_validatorWindow;
         if (m_pInt)
@@ -509,7 +512,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     } else
 #endif
 #if wxUSE_SPINBTN
     } else
 #endif
 #if wxUSE_SPINBTN
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
+    if (wxDynamicCast(m_validatorWindow, wxSpinButton))
     {
         wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
         if (m_pInt)
     {
         wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
         if (m_pInt)
@@ -520,7 +523,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     } else
 #endif
 #if wxUSE_SLIDER
     } else
 #endif
 #if wxUSE_SLIDER
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxSlider)) )
+    if (wxDynamicCast(m_validatorWindow, wxSlider))
     {
         wxSlider* pControl = (wxSlider*) m_validatorWindow;
         if (m_pInt)
     {
         wxSlider* pControl = (wxSlider*) m_validatorWindow;
         if (m_pInt)
@@ -533,7 +536,7 @@ bool wxGenericValidator::TransferFromWindow(void)
 
     // DATE TIME CONTROLS ************************************
 #if 0 // wxUSE_DATEPICKCTRL -- temporary fix for shared build linking
 
     // DATE TIME CONTROLS ************************************
 #if 0 // wxUSE_DATEPICKCTRL -- temporary fix for shared build linking
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxDatePickerCtrl)) )
+    if (wxDynamicCast(m_validatorWindow, wxDatePickerCtrl))
     {
         wxDatePickerCtrl* pControl = (wxDatePickerCtrl*) m_validatorWindow;
         if (m_pDateTime)
     {
         wxDatePickerCtrl* pControl = (wxDatePickerCtrl*) m_validatorWindow;
         if (m_pDateTime)
@@ -546,7 +549,7 @@ bool wxGenericValidator::TransferFromWindow(void)
 
     // STRING CONTROLS ************************************
 #if wxUSE_BUTTON
 
     // STRING CONTROLS ************************************
 #if wxUSE_BUTTON
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
+    if (wxDynamicCast(m_validatorWindow, wxButton))
     {
         wxButton* pControl = (wxButton*) m_validatorWindow;
         if (m_pString)
     {
         wxButton* pControl = (wxButton*) m_validatorWindow;
         if (m_pString)
@@ -557,7 +560,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     } else
 #endif
 #if wxUSE_COMBOBOX
     } else
 #endif
 #if wxUSE_COMBOBOX
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
+    if (wxDynamicCast(m_validatorWindow, wxComboBox))
     {
         wxComboBox* pControl = (wxComboBox*) m_validatorWindow;
         if (m_pInt)
     {
         wxComboBox* pControl = (wxComboBox*) m_validatorWindow;
         if (m_pInt)
@@ -576,7 +579,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     } else
 #endif
 #if wxUSE_CHOICE
     } else
 #endif
 #if wxUSE_CHOICE
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
+    if (wxDynamicCast(m_validatorWindow, wxChoice))
     {
         wxChoice* pControl = (wxChoice*) m_validatorWindow;
         if (m_pInt)
     {
         wxChoice* pControl = (wxChoice*) m_validatorWindow;
         if (m_pInt)
@@ -592,7 +595,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     } else
 #endif
 #if wxUSE_STATTEXT
     } else
 #endif
 #if wxUSE_STATTEXT
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
+    if (wxDynamicCast(m_validatorWindow, wxStaticText))
     {
         wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
         if (m_pString)
     {
         wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
         if (m_pString)
@@ -603,7 +606,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     } else
 #endif
 #if wxUSE_TEXTCTRL
     } else
 #endif
 #if wxUSE_TEXTCTRL
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
+    if (wxDynamicCast(m_validatorWindow, wxTextCtrl))
     {
         wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
         if (m_pString)
     {
         wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
         if (m_pString)
@@ -637,7 +640,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     // ARRAY CONTROLS *************************************
 #if wxUSE_CHECKLISTBOX
     // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox MUST come first:
     // ARRAY CONTROLS *************************************
 #if wxUSE_CHECKLISTBOX
     // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox MUST come first:
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
+    if (wxDynamicCast(m_validatorWindow, wxCheckListBox))
     {
         wxCheckListBox* pControl = (wxCheckListBox*) m_validatorWindow;
         if (m_pArrayInt)
     {
         wxCheckListBox* pControl = (wxCheckListBox*) m_validatorWindow;
         if (m_pArrayInt)
@@ -661,7 +664,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     } else
 #endif
 #if wxUSE_LISTBOX
     } else
 #endif
 #if wxUSE_LISTBOX
-    if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
+    if (wxDynamicCast(m_validatorWindow, wxListBox))
     {
         wxListBox* pControl = (wxListBox*) m_validatorWindow;
         if (m_pArrayInt)
     {
         wxListBox* pControl = (wxListBox*) m_validatorWindow;
         if (m_pArrayInt)