]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/valgen.cpp
Make radiobutton tab behaviour the same on MSW
[wxWidgets.git] / src / common / valgen.cpp
index ee65e02c47fd54022d5b4d4ddaa30c5ce3c1ea16..b4d296e619b9da167e1acbd18692aefc300feb3c 100644 (file)
@@ -9,7 +9,7 @@
 // Licence:           wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:           wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "valgen.h"
 #endif
 
 #pragma implementation "valgen.h"
 #endif
 
   #include "wx/slider.h"
 #endif
 
   #include "wx/slider.h"
 #endif
 
-#if wxUSE_SPINCTRL && !defined(__WIN16__)
   #include "wx/spinctrl.h"
   #include "wx/spinctrl.h"
-#endif
-#if wxUSE_SPINBTN && !defined(__WIN16__)
+
+#if wxUSE_SPINBTN 
   #include "wx/spinbutt.h"
 #endif
   #include "wx/spinbutt.h"
 #endif
-#if wxUSE_CHECKLISTBOX && !defined(__WIN16__)
+#if wxUSE_CHECKLISTBOX 
   #include "wx/checklst.h"
 #endif
 
 #include "wx/valgen.h"
 
   #include "wx/checklst.h"
 #endif
 
 #include "wx/valgen.h"
 
+IMPLEMENT_CLASS(wxGenericValidator, wxValidator)
+
 wxGenericValidator::wxGenericValidator(bool *val)
 {
     Initialize();
 wxGenericValidator::wxGenericValidator(bool *val)
 {
     Initialize();
@@ -81,6 +83,7 @@ wxGenericValidator::wxGenericValidator(wxArrayInt *val)
 }
 
 wxGenericValidator::wxGenericValidator(const wxGenericValidator& val)
 }
 
 wxGenericValidator::wxGenericValidator(const wxGenericValidator& val)
+    : wxValidator()
 {
     Copy(val);
 }
 {
     Copy(val);
 }
@@ -165,7 +168,7 @@ bool wxGenericValidator::TransferToWindow(void)
         }
     } else
 #endif
         }
     } else
 #endif
-#if wxUSE_SPINCTRL && !defined(__WIN16__) && !defined(__WXMOTIF__)
+#if wxUSE_SPINCTRL && !defined(__WXMOTIF__)
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinCtrl)) )
     {
         wxSpinCtrl* pControl = (wxSpinCtrl*) m_validatorWindow;
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinCtrl)) )
     {
         wxSpinCtrl* pControl = (wxSpinCtrl*) m_validatorWindow;
@@ -176,7 +179,7 @@ bool wxGenericValidator::TransferToWindow(void)
         }
     } else
 #endif
         }
     } else
 #endif
-#if wxUSE_SPINBTN && !defined(__WIN16__)
+#if wxUSE_SPINBTN
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
     {
         wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
     {
         wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
@@ -200,6 +203,7 @@ bool wxGenericValidator::TransferToWindow(void)
 #endif
 
     // string controls
 #endif
 
     // string controls
+#if wxUSE_BUTTON
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
     {
         wxButton* pControl = (wxButton*) m_validatorWindow;
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
     {
         wxButton* pControl = (wxButton*) m_validatorWindow;
@@ -209,6 +213,7 @@ bool wxGenericValidator::TransferToWindow(void)
             return TRUE;
         }
     } else
             return TRUE;
         }
     } else
+#endif
 #if wxUSE_COMBOBOX
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
     {
 #if wxUSE_COMBOBOX
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
     {
@@ -224,6 +229,10 @@ bool wxGenericValidator::TransferToWindow(void)
             {
                 pControl->SetStringSelection(* m_pString);
             }
             {
                 pControl->SetStringSelection(* m_pString);
             }
+            else
+            {
+                pControl->SetValue(* m_pString);
+            }
             return TRUE;
         }
     } else
             return TRUE;
         }
     } else
@@ -256,6 +265,7 @@ bool wxGenericValidator::TransferToWindow(void)
             return TRUE;
         }
     } else
             return TRUE;
         }
     } else
+#if wxUSE_TEXTCTRL
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
     {
         wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
     {
         wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
@@ -272,8 +282,9 @@ bool wxGenericValidator::TransferToWindow(void)
             return TRUE;
         }
     } else
             return TRUE;
         }
     } else
+#endif
     // array controls
     // array controls
-#if wxUSE_CHECKLISTBOX && !defined(__WIN16__)
+#if wxUSE_CHECKLISTBOX
     // NOTE: wxCheckListBox is a wxListBox, so wxCheckListBox MUST come first:
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
     {
     // NOTE: wxCheckListBox is a wxListBox, so wxCheckListBox MUST come first:
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
     {
@@ -387,7 +398,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     }
   } else
 #endif
     }
   } else
 #endif
-#if wxUSE_SPINCTRL && !defined(__WIN16__) && !defined(__WXMOTIF__)
+#if wxUSE_SPINCTRL && !defined(__WXMOTIF__)
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinCtrl)) )
     {
         wxSpinCtrl* pControl = (wxSpinCtrl*) m_validatorWindow;
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinCtrl)) )
     {
         wxSpinCtrl* pControl = (wxSpinCtrl*) m_validatorWindow;
@@ -398,7 +409,7 @@ bool wxGenericValidator::TransferFromWindow(void)
         }
     } else
 #endif
         }
     } else
 #endif
-#if wxUSE_SPINBTN && !defined(__WIN16__)
+#if wxUSE_SPINBTN
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
   {
     wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
   {
     wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
@@ -421,6 +432,7 @@ bool wxGenericValidator::TransferFromWindow(void)
   } else
 #endif
   // string controls
   } else
 #endif
   // string controls
+#if wxUSE_BUTTON
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
   {
     wxButton* pControl = (wxButton*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
   {
     wxButton* pControl = (wxButton*) m_validatorWindow;
@@ -429,8 +441,8 @@ bool wxGenericValidator::TransferFromWindow(void)
       *m_pString = pControl->GetLabel() ;
       return TRUE;
     }
       *m_pString = pControl->GetLabel() ;
       return TRUE;
     }
-  }
-  else
+  } else
+#endif
 #if wxUSE_COMBOBOX
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
   {
 #if wxUSE_COMBOBOX
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
   {
@@ -442,7 +454,7 @@ bool wxGenericValidator::TransferFromWindow(void)
     }
     else if (m_pString)
     {
     }
     else if (m_pString)
     {
-        *m_pString = pControl->GetStringSelection();
+        *m_pString = pControl->GetValue();
         return TRUE;
     }
   } else
         return TRUE;
     }
   } else
@@ -472,6 +484,7 @@ bool wxGenericValidator::TransferFromWindow(void)
       return TRUE;
     }
   } else
       return TRUE;
     }
   } else
+#if wxUSE_TEXTCTRL
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
   {
     wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
   {
     wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
@@ -486,9 +499,9 @@ bool wxGenericValidator::TransferFromWindow(void)
         return TRUE;
     }
   } else
         return TRUE;
     }
   } else
+#endif
   // array controls
 #if wxUSE_CHECKLISTBOX
   // array controls
 #if wxUSE_CHECKLISTBOX
-#ifndef __WIN16__
   // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox MUST come first:
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
   {
   // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox MUST come first:
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
   {
@@ -513,7 +526,6 @@ bool wxGenericValidator::TransferFromWindow(void)
       return FALSE;
   } else
 #endif
       return FALSE;
   } else
 #endif
-#endif
 #if wxUSE_LISTBOX
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
   {
 #if wxUSE_LISTBOX
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
   {