]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/valgen.cpp
Don't block in wxEventLoopManual::Dispatch() if loop was exited.
[wxWidgets.git] / src / common / valgen.cpp
index dbafcaa72164679e0f3f5cd1a8a0deb180508a61..315d53a48ca95d8065a6b5cba53df83af22200d5 100644 (file)
@@ -46,6 +46,7 @@
 #if wxUSE_TOGGLEBTN
     #include "wx/tglbtn.h"
 #endif
+#include "wx/filename.h"
 
 #include "wx/valgen.h"
 
@@ -85,6 +86,24 @@ wxGenericValidator::wxGenericValidator(wxDateTime *val)
 
 #endif // wxUSE_DATETIME
 
+wxGenericValidator::wxGenericValidator(wxFileName *val)
+{
+    Initialize();
+    m_pFileName = val;
+}
+
+wxGenericValidator::wxGenericValidator(float *val)
+{
+    Initialize();
+    m_pFloat = val;
+}
+
+wxGenericValidator::wxGenericValidator(double *val)
+{
+    Initialize();
+    m_pDouble = val;
+}
+
 wxGenericValidator::wxGenericValidator(const wxGenericValidator& val)
     : wxValidator()
 {
@@ -102,6 +121,9 @@ bool wxGenericValidator::Copy(const wxGenericValidator& val)
 #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;
 }
@@ -321,6 +343,21 @@ bool wxGenericValidator::TransferToWindow(void)
             pControl->SetValue(str);
             return true;
         }
+        else if (m_pFileName)
+        {
+            pControl->SetValue(m_pFileName->GetFullPath());
+            return true;
+        }
+        else if (m_pFloat)
+        {
+            pControl->SetValue(wxString::Format(wxT("%g"), *m_pFloat));
+            return true;
+        }
+        else if (m_pDouble)
+        {
+            pControl->SetValue(wxString::Format(wxT("%g"), *m_pDouble));
+            return true;
+        }
     } else
 #endif
 
@@ -582,6 +619,21 @@ bool wxGenericValidator::TransferFromWindow(void)
             *m_pInt = wxAtoi(pControl->GetValue());
             return true;
         }
+        else if (m_pFileName)
+        {
+            m_pFileName->Assign(pControl->GetValue());
+            return true;
+        }
+        else if (m_pFloat)
+        {
+            *m_pFloat = (float)wxAtof(pControl->GetValue());
+            return true;
+        }
+        else if (m_pDouble)
+        {
+            *m_pDouble = wxAtof(pControl->GetValue());
+            return true;
+        }
     } else
 #endif
 
@@ -652,6 +704,9 @@ void wxGenericValidator::Initialize()
 #if wxUSE_DATETIME
     m_pDateTime = NULL;
 #endif // wxUSE_DATETIME
+    m_pFileName = NULL;
+    m_pFloat = NULL;
+    m_pDouble = NULL;
 }
 
 #endif // wxUSE_VALIDATORS