]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/valgen.cpp
Modified Files:
[wxWidgets.git] / src / common / valgen.cpp
index 05134307bc4f194da69551361c832998a58a9e02..5f687dd7ea5d57ca24b069314bbad412a3ba31ef 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     Jan 22 1999
 // RCS-ID:
 // Copyright:   (c) 1999 Kevin Smith
 // Created:     Jan 22 1999
 // RCS-ID:
 // Copyright:   (c) 1999 Kevin Smith
-// Licence:    wxWindows licence
+// Licence:           wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
   #include "wx/slider.h"
 #endif
 
   #include "wx/slider.h"
 #endif
 
-#ifndef __WIN16__
+#if wxUSE_SPINCTRL && !defined(__WIN16__)
+  #include "wx/spinctrl.h"
+#endif
+#if wxUSE_SPINBTN && !defined(__WIN16__)
   #include "wx/spinbutt.h"
   #include "wx/spinbutt.h"
+#endif
+#if wxUSE_CHECKLISTBOX && !defined(__WIN16__)
   #include "wx/checklst.h"
 #endif
 
   #include "wx/checklst.h"
 #endif
 
@@ -108,21 +113,21 @@ bool wxGenericValidator::TransferToWindow(void)
     {
         wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow;
         if (m_pBool)
     {
         wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow;
         if (m_pBool)
-       {
-           pControl->SetValue(*m_pBool);
-           return TRUE;
-       }
+        {
+            pControl->SetValue(*m_pBool);
+            return TRUE;
+        }
     } else
 #endif
 #if wxUSE_RADIOBTN
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) )
     {
         wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow;
     } else
 #endif
 #if wxUSE_RADIOBTN
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) )
     {
         wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow;
-       if (m_pBool)
-       {
-           pControl->SetValue(*m_pBool) ;
-           return TRUE;
-       }
+        if (m_pBool)
+        {
+            pControl->SetValue(*m_pBool) ;
+            return TRUE;
+        }
     } else
 #endif
 
     } else
 #endif
 
@@ -131,121 +136,150 @@ bool wxGenericValidator::TransferToWindow(void)
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) )
     {
         wxGauge* pControl = (wxGauge*) m_validatorWindow;
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) )
     {
         wxGauge* pControl = (wxGauge*) m_validatorWindow;
-       if (m_pInt)
-       {
-           pControl->SetValue(*m_pInt);
-           return TRUE;
-       }
+        if (m_pInt)
+        {
+            pControl->SetValue(*m_pInt);
+            return TRUE;
+        }
     } else
 #endif
 #if wxUSE_RADIOBOX
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) )
     {
         wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow;
     } else
 #endif
 #if wxUSE_RADIOBOX
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) )
     {
         wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow;
-       if (m_pInt)
-       {
-           pControl->SetSelection(*m_pInt) ;
-           return TRUE;
-       }
+        if (m_pInt)
+        {
+            pControl->SetSelection(*m_pInt) ;
+            return TRUE;
+        }
     } else
 #endif
 #if wxUSE_SCROLLBAR
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) )
     {
         wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow;
     } else
 #endif
 #if wxUSE_SCROLLBAR
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) )
     {
         wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow;
-       if (m_pInt)
-       {
-           pControl->SetThumbPosition(*m_pInt) ;
-           return TRUE;
-       }
+        if (m_pInt)
+        {
+            pControl->SetThumbPosition(*m_pInt) ;
+            return TRUE;
+        }
     } else
 #endif
     } else
 #endif
-#if wxUSE_SPINBTN
-#ifndef __WIN16__
+#if wxUSE_SPINCTRL && !defined(__WIN16__) && !defined(__WXMOTIF__)
+    if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinCtrl)) )
+    {
+        wxSpinCtrl* pControl = (wxSpinCtrl*) m_validatorWindow;
+        if (m_pInt)
+        {
+            pControl->SetValue(*m_pInt);
+            return TRUE;
+        }
+    } else
+#endif
+#if wxUSE_SPINBTN && !defined(__WIN16__)
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
     {
         wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
     {
         wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
-       if (m_pInt)
-       {
-           pControl->SetValue(*m_pInt) ;
-           return TRUE;
-       }
+        if (m_pInt)
+        {
+            pControl->SetValue(*m_pInt) ;
+            return TRUE;
+        }
     } else
 #endif
     } else
 #endif
-#endif
 #if wxUSE_SLIDER
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSlider)) )
     {
         wxSlider* pControl = (wxSlider*) m_validatorWindow;
         if (m_pInt)
         {
 #if wxUSE_SLIDER
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxSlider)) )
     {
         wxSlider* pControl = (wxSlider*) m_validatorWindow;
         if (m_pInt)
         {
-           pControl->SetValue(*m_pInt) ;
-           return TRUE;
-       }
+            pControl->SetValue(*m_pInt) ;
+            return TRUE;
+        }
     } else
 #endif
 
     } else
 #endif
 
-  // string controls
-#if 1
+    // string controls
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
     {
         wxButton* pControl = (wxButton*) m_validatorWindow;
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
     {
         wxButton* pControl = (wxButton*) m_validatorWindow;
-       if (m_pString)
-       {
-           pControl->SetLabel(*m_pString) ;
-           return TRUE;
-       }
+        if (m_pString)
+        {
+            pControl->SetLabel(*m_pString) ;
+            return TRUE;
+        }
     } else
     } else
-#endif
 #if wxUSE_COMBOBOX
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
     {
         wxComboBox* pControl = (wxComboBox*) m_validatorWindow;
 #if wxUSE_COMBOBOX
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
     {
         wxComboBox* pControl = (wxComboBox*) m_validatorWindow;
-       if (m_pString)
-       {
-           pControl->SetValue(*m_pString) ;
-           return TRUE;
-       }
+        if (m_pInt)
+        {
+            pControl->SetSelection(*m_pInt) ;
+            return TRUE;
+        }
+        else if (m_pString)
+        {
+            if (pControl->FindString(* m_pString) > -1)
+            {
+                pControl->SetStringSelection(* m_pString);
+            }
+            return TRUE;
+        }
     } else
 #endif
 #if wxUSE_CHOICE
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
     {
         wxChoice* pControl = (wxChoice*) m_validatorWindow;
     } else
 #endif
 #if wxUSE_CHOICE
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
     {
         wxChoice* pControl = (wxChoice*) m_validatorWindow;
-       if (m_pInt)
-       {
-           pControl->SetSelection(*m_pInt) ;
-           return TRUE;
-       }
+        if (m_pInt)
+        {
+            pControl->SetSelection(*m_pInt) ;
+            return TRUE;
+        }
+        else if (m_pString)
+        {
+            if (pControl->FindString(* m_pString) > -1)
+            {
+                pControl->SetStringSelection(* m_pString);
+            }
+            return TRUE;
+        }
     } else
 #endif
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
     {
         wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
     } else
 #endif
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
     {
         wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
-       if (m_pString)
-       {
-           pControl->SetLabel(*m_pString) ;
-           return TRUE;
-       }
-    } else 
+        if (m_pString)
+        {
+            pControl->SetLabel(*m_pString) ;
+            return TRUE;
+        }
+    } else
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
     {
         wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
     {
         wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
-       if (m_pString)
-       {
-           pControl->SetValue(*m_pString) ;
-           return TRUE;
-       }
+        if (m_pString)
+        {
+            pControl->SetValue(*m_pString) ;
+            return TRUE;
+        }
+        else if (m_pInt)
+        {
+            wxString str;
+            str.Printf(wxT("%d"), *m_pInt);
+            pControl->SetValue(str);
+            return TRUE;
+        }
     } else
     } else
-#if wxUSE_CHECKLISTBOX
-#ifndef __WIN16__
+#if wxUSE_CHECKLISTBOX && !defined(__WIN16__)
   // array controls
   // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox
   // MUST come first:
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
   {
     wxCheckListBox* pControl = (wxCheckListBox*) m_validatorWindow;
   // array controls
   // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox
   // MUST come first:
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
   {
     wxCheckListBox* pControl = (wxCheckListBox*) m_validatorWindow;
-       if (m_pArrayInt)
+        if (m_pArrayInt)
     {
       // clear all selections
       int i;
     {
       // clear all selections
       int i;
@@ -257,32 +291,31 @@ bool wxGenericValidator::TransferToWindow(void)
         pControl->Check(m_pArrayInt->Item(u));
       return TRUE;
     }
         pControl->Check(m_pArrayInt->Item(u));
       return TRUE;
     }
-       else
-               return FALSE;
+        else
+                return FALSE;
   } else
 #endif
   } else
 #endif
-#endif
 #if wxUSE_LISTBOX
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
     {
         wxListBox* pControl = (wxListBox*) m_validatorWindow;
 #if wxUSE_LISTBOX
     if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
     {
         wxListBox* pControl = (wxListBox*) m_validatorWindow;
-       if (m_pArrayInt)
-       {
-           // clear all selections
-           int i;
-           for (i = 0 ; i < pControl->Number(); ++i)
-               pControl->Deselect(i);
-           // select each item in our array
-           unsigned u;
-           for (u = 0; u < m_pArrayInt->Count(); ++u)
-               pControl->SetSelection(m_pArrayInt->Item(u));
-           return TRUE;
-       }
+        if (m_pArrayInt)
+        {
+            // clear all selections
+            int i;
+            for (i = 0 ; i < pControl->Number(); ++i)
+                pControl->Deselect(i);
+            // select each item in our array
+            unsigned u;
+            for (u = 0; u < m_pArrayInt->Count(); ++u)
+                pControl->SetSelection(m_pArrayInt->Item(u));
+            return TRUE;
+        }
     } else
 #endif
     } else
 #endif
+        ;   // to match the last 'else' above
 
   // unrecognized control, or bad pointer
 
   // unrecognized control, or bad pointer
-    return FALSE;
   return FALSE;
 }
 
   return FALSE;
 }
 
@@ -297,7 +330,7 @@ bool wxGenericValidator::TransferFromWindow(void)
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckBox)) )
   {
     wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckBox)) )
   {
     wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow;
-       if (m_pBool)
+        if (m_pBool)
     {
       *m_pBool = pControl->GetValue() ;
       return TRUE;
     {
       *m_pBool = pControl->GetValue() ;
       return TRUE;
@@ -308,7 +341,7 @@ bool wxGenericValidator::TransferFromWindow(void)
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) )
   {
     wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) )
   {
     wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow;
-       if (m_pBool)
+        if (m_pBool)
     {
       *m_pBool = pControl->GetValue() ;
       return TRUE;
     {
       *m_pBool = pControl->GetValue() ;
       return TRUE;
@@ -320,7 +353,7 @@ bool wxGenericValidator::TransferFromWindow(void)
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) )
   {
     wxGauge* pControl = (wxGauge*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) )
   {
     wxGauge* pControl = (wxGauge*) m_validatorWindow;
-       if (m_pInt)
+        if (m_pInt)
     {
       *m_pInt = pControl->GetValue() ;
       return TRUE;
     {
       *m_pInt = pControl->GetValue() ;
       return TRUE;
@@ -331,7 +364,7 @@ bool wxGenericValidator::TransferFromWindow(void)
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) )
   {
     wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) )
   {
     wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow;
-       if (m_pInt)
+        if (m_pInt)
     {
       *m_pInt = pControl->GetSelection() ;
       return TRUE;
     {
       *m_pInt = pControl->GetSelection() ;
       return TRUE;
@@ -342,26 +375,35 @@ bool wxGenericValidator::TransferFromWindow(void)
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) )
   {
     wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) )
   {
     wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow;
-       if (m_pInt)
+        if (m_pInt)
     {
       *m_pInt = pControl->GetThumbPosition() ;
       return TRUE;
     }
   } else
 #endif
     {
       *m_pInt = pControl->GetThumbPosition() ;
       return TRUE;
     }
   } else
 #endif
-#if wxUSE_SPINBTN
-#ifndef __WIN16__
+#if wxUSE_SPINCTRL && !defined(__WIN16__) && !defined(__WXMOTIF__)
+    if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinCtrl)) )
+    {
+        wxSpinCtrl* pControl = (wxSpinCtrl*) m_validatorWindow;
+        if (m_pInt)
+        {
+            *m_pInt=pControl->GetValue();
+            return TRUE;
+        }
+    } else
+#endif
+#if wxUSE_SPINBTN && !defined(__WIN16__)
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
   {
     wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
   {
     wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
-       if (m_pInt)
+        if (m_pInt)
     {
       *m_pInt = pControl->GetValue() ;
       return TRUE;
     }
   } else
 #endif
     {
       *m_pInt = pControl->GetValue() ;
       return TRUE;
     }
   } else
 #endif
-#endif
 #if wxUSE_SLIDER
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxSlider)) )
   {
 #if wxUSE_SLIDER
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxSlider)) )
   {
@@ -377,7 +419,7 @@ bool wxGenericValidator::TransferFromWindow(void)
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
   {
     wxButton* pControl = (wxButton*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
   {
     wxButton* pControl = (wxButton*) m_validatorWindow;
-       if (m_pString)
+        if (m_pString)
     {
       *m_pString = pControl->GetLabel() ;
       return TRUE;
     {
       *m_pString = pControl->GetLabel() ;
       return TRUE;
@@ -388,28 +430,38 @@ bool wxGenericValidator::TransferFromWindow(void)
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
   {
     wxComboBox* pControl = (wxComboBox*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
   {
     wxComboBox* pControl = (wxComboBox*) m_validatorWindow;
-       if (m_pString)
+    if (m_pInt)
     {
     {
-      *m_pString = pControl->GetValue() ;
+      *m_pInt = pControl->GetSelection() ;
       return TRUE;
     }
       return TRUE;
     }
+    else if (m_pString)
+    {
+        *m_pString = pControl->GetStringSelection();
+        return TRUE;
+    }
   } else
 #endif
 #if wxUSE_CHOICE
  if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
   {
     wxChoice* pControl = (wxChoice*) m_validatorWindow;
   } else
 #endif
 #if wxUSE_CHOICE
  if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
   {
     wxChoice* pControl = (wxChoice*) m_validatorWindow;
-       if (m_pInt)
+        if (m_pInt)
     {
       *m_pInt = pControl->GetSelection() ;
       return TRUE;
     }
     {
       *m_pInt = pControl->GetSelection() ;
       return TRUE;
     }
+    else if (m_pString)
+    {
+        *m_pString = pControl->GetStringSelection();
+        return TRUE;
+    }
   } else
 #endif
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
   {
     wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
   } else
 #endif
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
   {
     wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
-       if (m_pString)
+        if (m_pString)
     {
       *m_pString = pControl->GetLabel() ;
       return TRUE;
     {
       *m_pString = pControl->GetLabel() ;
       return TRUE;
@@ -418,11 +470,16 @@ bool wxGenericValidator::TransferFromWindow(void)
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
   {
     wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
   {
     wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
-       if (m_pString)
+        if (m_pString)
     {
       *m_pString = pControl->GetValue() ;
       return TRUE;
     }
     {
       *m_pString = pControl->GetValue() ;
       return TRUE;
     }
+    else if (m_pInt)
+    {
+        *m_pInt = wxAtoi(pControl->GetValue());
+        return TRUE;
+    }
   } else
 #if wxUSE_CHECKLISTBOX
 #ifndef __WIN16__
   } else
 #if wxUSE_CHECKLISTBOX
 #ifndef __WIN16__
@@ -432,7 +489,7 @@ bool wxGenericValidator::TransferFromWindow(void)
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
   {
     wxCheckListBox* pControl = (wxCheckListBox*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) )
   {
     wxCheckListBox* pControl = (wxCheckListBox*) m_validatorWindow;
-       if (m_pArrayInt)
+        if (m_pArrayInt)
     {
       // clear our array
       m_pArrayInt->Clear();
     {
       // clear our array
       m_pArrayInt->Clear();
@@ -443,8 +500,8 @@ bool wxGenericValidator::TransferFromWindow(void)
           m_pArrayInt->Add(i);
       return TRUE;
     }
           m_pArrayInt->Add(i);
       return TRUE;
     }
-       else
-         return FALSE;
+        else
+          return FALSE;
   } else
 #endif
 #endif
   } else
 #endif
 #endif
@@ -452,7 +509,7 @@ bool wxGenericValidator::TransferFromWindow(void)
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
   {
     wxListBox* pControl = (wxListBox*) m_validatorWindow;
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
   {
     wxListBox* pControl = (wxListBox*) m_validatorWindow;
-       if (m_pArrayInt)
+    if (m_pArrayInt)
     {
       // clear our array
       m_pArrayInt->Clear();
     {
       // clear our array
       m_pArrayInt->Clear();