]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/valgen.cpp
Better memory errors handler (added GSOCK_MEMERR)
[wxWidgets.git] / src / common / valgen.cpp
index 8dbc461079066692fa62051113d885614474053f..c230dddb21ba7e39a78ea401cf24e378c55152fd 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Kevin Smith
 // Modified by:
 // Created:     Jan 22 1999
-// RCS-ID:      
+// RCS-ID:
 // Copyright:   (c) 1999 Kevin Smith
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+  #pragma hdrstop
 #endif
 
 #ifndef WX_PRECOMP
-#include "wx/utils.h"
-#include "wx/intl.h"
-#include "wx/wx.h"
+  #include "wx/defs.h"
+#endif
+
+#if wxUSE_VALIDATORS
+
+#ifndef WX_PRECOMP
+  #include "wx/utils.h"
+  #include "wx/intl.h"
+  #include "wx/dynarray.h"
+  #include "wx/choice.h"
+  #include "wx/combobox.h"
+  #include "wx/radiobox.h"
+  #include "wx/radiobut.h"
+  #include "wx/checkbox.h"
+  #include "wx/scrolbar.h"
+  #include "wx/gauge.h"
+  #include "wx/stattext.h"
+  #include "wx/textctrl.h"
+  #include "wx/button.h"
+  #include "wx/listbox.h"
 #endif
 
 #ifndef __WIN16__
-#include "wx/spinbutt.h"
-#include "wx/checklst.h"
+  #include "wx/spinbutt.h"
+  #include "wx/checklst.h"
 #endif
 
 #include "wx/valgen.h"
 
 wxGenericValidator::wxGenericValidator(bool *val)
 {
-  Initialize();
-  m_pBool = val;
+    Initialize();
+    m_pBool = val;
 }
 
 wxGenericValidator::wxGenericValidator(int *val)
 {
-  Initialize();
-  m_pInt = val;
+    Initialize();
+    m_pInt = val;
 }
 
 wxGenericValidator::wxGenericValidator(wxString *val)
 {
-  Initialize();
-  m_pString = val;
+    Initialize();
+    m_pString = val;
 }
 
 wxGenericValidator::wxGenericValidator(wxArrayInt *val)
 {
-  Initialize();
-  m_pArrayInt = val;
+    Initialize();
+    m_pArrayInt = val;
 }
 
 wxGenericValidator::wxGenericValidator(const wxGenericValidator& val)
 {
-  Copy(val);
+    Copy(val);
 }
 
 bool wxGenericValidator::Copy(const wxGenericValidator& val)
@@ -85,6 +102,7 @@ bool wxGenericValidator::TransferToWindow(void)
     return FALSE;
 
   // bool controls
+#if wxUSE_CHECKBOX
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckBox)) )
   {
     wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow;
@@ -93,8 +111,10 @@ bool wxGenericValidator::TransferToWindow(void)
       pControl->SetValue(*m_pBool) ;
       return TRUE;
     }
-  }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) )
+  } else
+#endif
+#if wxUSE_RADIOBTN
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) )
   {
     wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow;
        if (m_pBool)
@@ -102,9 +122,11 @@ bool wxGenericValidator::TransferToWindow(void)
       pControl->SetValue(*m_pBool) ;
       return TRUE;
     }
-  }
+  } else
+#endif
   // int controls
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) )
+#if wxUSE_GAUGE
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) )
   {
     wxGauge* pControl = (wxGauge*) m_validatorWindow;
        if (m_pInt)
@@ -113,7 +135,10 @@ bool wxGenericValidator::TransferToWindow(void)
       return TRUE;
     }
   }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) )
+  else
+#endif
+#if wxUSE_RADIOBOX
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) )
   {
     wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow;
        if (m_pInt)
@@ -122,7 +147,10 @@ bool wxGenericValidator::TransferToWindow(void)
       return TRUE;
     }
   }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) )
+  else
+#endif
+#if wxUSE_SCROLLBAR
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) )
   {
     wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow;
        if (m_pInt)
@@ -130,20 +158,23 @@ bool wxGenericValidator::TransferToWindow(void)
       pControl->SetThumbPosition(*m_pInt) ;
       return TRUE;
     }
-  }
+  } else
+#endif
+#if wxUSE_SPINBTN
 #ifndef __WIN16__
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
   {
     wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
-       if (m_pInt)
+    if (m_pInt)
     {
       pControl->SetValue(*m_pInt) ;
       return TRUE;
     }
-  }
+  } else
+#endif
 #endif
   // string controls
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
   {
     wxButton* pControl = (wxButton*) m_validatorWindow;
        if (m_pString)
@@ -151,8 +182,9 @@ bool wxGenericValidator::TransferToWindow(void)
       pControl->SetLabel(*m_pString) ;
       return TRUE;
     }
-  }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
+  } else
+#if wxUSE_COMBOBOX
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
   {
     wxComboBox* pControl = (wxComboBox*) m_validatorWindow;
        if (m_pString)
@@ -160,8 +192,10 @@ bool wxGenericValidator::TransferToWindow(void)
       pControl->SetValue(*m_pString) ;
       return TRUE;
     }
-  }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
+  } else
+#endif
+#if wxUSE_CHOICE
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
   {
     wxChoice* pControl = (wxChoice*) m_validatorWindow;
        if (m_pInt)
@@ -169,8 +203,9 @@ bool wxGenericValidator::TransferToWindow(void)
       pControl->SetSelection(*m_pInt) ;
       return TRUE;
     }
-  }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
+  } else
+#endif
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
   {
     wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
        if (m_pString)
@@ -187,12 +222,13 @@ bool wxGenericValidator::TransferToWindow(void)
       pControl->SetValue(*m_pString) ;
       return TRUE;
     }
-  }
+  } else
+#if wxUSE_CHECKLISTBOX
 #ifndef __WIN16__
   // array controls
   // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox
   // MUST come first:
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
   {
     wxCheckListBox* pControl = (wxCheckListBox*) m_validatorWindow;
        if (m_pArrayInt)
@@ -209,9 +245,11 @@ bool wxGenericValidator::TransferToWindow(void)
     }
        else
                return FALSE;
-  }
+  } else
+#endif
 #endif
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
+#if wxUSE_LISTBOX
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
   {
     wxListBox* pControl = (wxListBox*) m_validatorWindow;
        if (m_pArrayInt)
@@ -226,9 +264,11 @@ bool wxGenericValidator::TransferToWindow(void)
         pControl->SetSelection(m_pArrayInt->Item(u));
       return TRUE;
     }
-  }
+  } else
+#endif
 
   // unrecognized control, or bad pointer
+    return FALSE;
   return FALSE;
 }
 
@@ -239,6 +279,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     return FALSE;
 
   // bool controls
+#if wxUSE_CHECKBOX
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckBox)) )
   {
     wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow;
@@ -247,8 +288,10 @@ bool wxGenericValidator::TransferFromWindow(void)
       *m_pBool = pControl->GetValue() ;
       return TRUE;
     }
-  }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) )
+  } else
+#endif
+#if wxUSE_RADIOBTN
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) )
   {
     wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow;
        if (m_pBool)
@@ -256,9 +299,11 @@ bool wxGenericValidator::TransferFromWindow(void)
       *m_pBool = pControl->GetValue() ;
       return TRUE;
     }
-  }
+  } else
+#endif
   // int controls
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) )
+#if wxUSE_GAUGE
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) )
   {
     wxGauge* pControl = (wxGauge*) m_validatorWindow;
        if (m_pInt)
@@ -266,8 +311,10 @@ bool wxGenericValidator::TransferFromWindow(void)
       *m_pInt = pControl->GetValue() ;
       return TRUE;
     }
-  }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) )
+  } else
+#endif
+#if wxUSE_RADIOBOX
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) )
   {
     wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow;
        if (m_pInt)
@@ -275,8 +322,10 @@ bool wxGenericValidator::TransferFromWindow(void)
       *m_pInt = pControl->GetSelection() ;
       return TRUE;
     }
-  }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) )
+  } else
+#endif
+#if wxUSE_SCROLLBAR
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) )
   {
     wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow;
        if (m_pInt)
@@ -284,9 +333,11 @@ bool wxGenericValidator::TransferFromWindow(void)
       *m_pInt = pControl->GetThumbPosition() ;
       return TRUE;
     }
-  }
+  } else
+#endif
+#if wxUSE_SPINBTN
 #ifndef __WIN16__
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
   {
     wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
        if (m_pInt)
@@ -294,10 +345,11 @@ bool wxGenericValidator::TransferFromWindow(void)
       *m_pInt = pControl->GetValue() ;
       return TRUE;
     }
-  }
+  } else
+#endif
 #endif
   // string controls
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
   {
     wxButton* pControl = (wxButton*) m_validatorWindow;
        if (m_pString)
@@ -306,7 +358,9 @@ bool wxGenericValidator::TransferFromWindow(void)
       return TRUE;
     }
   }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
+  else
+#if wxUSE_COMBOBOX
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
   {
     wxComboBox* pControl = (wxComboBox*) m_validatorWindow;
        if (m_pString)
@@ -314,8 +368,10 @@ bool wxGenericValidator::TransferFromWindow(void)
       *m_pString = pControl->GetValue() ;
       return TRUE;
     }
-  }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
+  } else
+#endif
+#if wxUSE_CHOICE
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
   {
     wxChoice* pControl = (wxChoice*) m_validatorWindow;
        if (m_pInt)
@@ -323,8 +379,9 @@ bool wxGenericValidator::TransferFromWindow(void)
       *m_pInt = pControl->GetSelection() ;
       return TRUE;
     }
-  }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
+  } else
+#endif
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
   {
     wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
        if (m_pString)
@@ -332,8 +389,8 @@ bool wxGenericValidator::TransferFromWindow(void)
       *m_pString = pControl->GetLabel() ;
       return TRUE;
     }
-  }
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
+  } else
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
   {
     wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
        if (m_pString)
@@ -341,12 +398,13 @@ bool wxGenericValidator::TransferFromWindow(void)
       *m_pString = pControl->GetValue() ;
       return TRUE;
     }
-  }
+  } else
+#if wxUSE_LISTBOX
 #ifndef __WIN16__
   // array controls
   // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox
   // MUST come first:
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
   {
     wxCheckListBox* pControl = (wxCheckListBox*) m_validatorWindow;
        if (m_pArrayInt)
@@ -362,9 +420,11 @@ bool wxGenericValidator::TransferFromWindow(void)
     }
        else
          return FALSE;
-  }
+  } else
 #endif
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
+#endif
+#if wxUSE_LISTBOX
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
   {
     wxListBox* pControl = (wxListBox*) m_validatorWindow;
        if (m_pArrayInt)
@@ -378,9 +438,11 @@ bool wxGenericValidator::TransferFromWindow(void)
           m_pArrayInt->Add(i);
       return TRUE;
     }
-  }
+  } else
+#endif
 
   // unrecognized control, or bad pointer
+    return FALSE;
   return FALSE;
 }
 
@@ -389,9 +451,12 @@ bool wxGenericValidator::TransferFromWindow(void)
 */
 void wxGenericValidator::Initialize()
 {
-  m_pBool = 0;
-  m_pInt = 0;
-  m_pString = 0;
-  m_pArrayInt = 0;
+    m_pBool = 0;
+    m_pInt = 0;
+    m_pString = 0;
+    m_pArrayInt = 0;
 }
 
+#endif
+  // wxUSE_VALIDATORS
+