]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/propform.cpp
bitmap and image updates
[wxWidgets.git] / src / generic / propform.cpp
index e1e22a94b61a23d221be37f8df8042f6355e53ad..e8f651083cf3ecf330bdbf37b6a5c92c85cc4649 100644 (file)
 #include "wx/wx.h"
 #endif
 
+#include "wx/propform.h"
+
 #include <ctype.h>
 #include <stdlib.h>
 #include <math.h>
 #include <string.h>
 
-#if wxUSE_IOSTREAMH
-#if defined(__WXMSW__) && !defined(__GNUWIN32__)
-#include <strstrea.h>
-#else
-#include <strstream.h>
-#endif
-#else
-#include <strstream>
-#endif
-
-#include "wx/window.h"
-#include "wx/utils.h"
-#include "wx/list.h"
-#include "wx/propform.h"
 
 /*
  * Property view
@@ -162,7 +150,7 @@ bool wxPropertyFormView::AssociateNames(void)
   while (node)
   {
     wxWindow *win = (wxWindow *)node->Data();
-    if (win->GetName() != "")
+    if (win->GetName() != wxT(""))
     {
       wxProperty *prop = m_propertySheet->GetProperty(win->GetName());
       if (prop)
@@ -219,18 +207,18 @@ void wxPropertyFormView::OnCommand(wxWindow& win, wxCommandEvent& event)
   if (!m_propertySheet)
     return;
     
-  if (win.GetName() == "")
+  if (win.GetName() == wxT(""))
     return;
 
-  if (strcmp(win.GetName(), "ok") == 0)
+  if (wxStrcmp(win.GetName(), wxT("ok")) == 0)
     OnOk(event);
-  else if (strcmp(win.GetName(), "cancel") == 0)
+  else if (wxStrcmp(win.GetName(), wxT("cancel")) == 0)
     OnCancel(event);
-  else if (strcmp(win.GetName(), "help") == 0)
+  else if (wxStrcmp(win.GetName(), wxT("help")) == 0)
     OnHelp(event);
-  else if (strcmp(win.GetName(), "update") == 0)
+  else if (wxStrcmp(win.GetName(), wxT("update")) == 0)
     OnUpdate(event);
-  else if (strcmp(win.GetName(), "revert") == 0)
+  else if (wxStrcmp(win.GetName(), wxT("revert")) == 0)
     OnRevert(event);
   else
   {
@@ -254,6 +242,20 @@ void wxPropertyFormView::OnCommand(wxWindow& win, wxCommandEvent& event)
   }
 }
 
+// Extend event processing to call OnCommand
+bool wxPropertyFormView::ProcessEvent(wxEvent& event)
+{
+    if (wxEvtHandler::ProcessEvent(event))
+        return TRUE;
+    else if (event.IsCommandEvent() && !event.IsKindOf(CLASSINFO(wxUpdateUIEvent)) && event.GetEventObject())
+    {
+        OnCommand(* ((wxWindow*) event.GetEventObject()), (wxCommandEvent&) event);
+        return TRUE;
+    }
+    else
+        return FALSE;
+}
+
 void wxPropertyFormView::OnDoubleClick(wxControl *item)
 {
   if (!m_propertySheet)
@@ -424,17 +426,17 @@ bool wxRealFormValidator::OnCheckValue( wxProperty *property, wxPropertyFormView
   float val = 0.0;
   if (!StringToFloat(WXSTRINGCAST value, &val))
   {
-    char buf[200];
-    sprintf(buf, "Value %s is not a valid real number!", (const char *)value);
-    wxMessageBox(buf, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow);
+    wxChar buf[200];
+    wxSprintf(buf, wxT("Value %s is not a valid real number!"), (const wxChar *)value);
+    wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
     return FALSE;
   }
   
   if (val < m_realMin || val > m_realMax)
   {
-    char buf[200];
-    sprintf(buf, "Value must be a real number between %.2f and %.2f!", m_realMin, m_realMax);
-    wxMessageBox(buf, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow);
+    wxChar buf[200];
+    wxSprintf(buf, wxT("Value must be a real number between %.2f and %.2f!"), m_realMin, m_realMax);
+    wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
     return FALSE;
   }
   return TRUE;
@@ -453,7 +455,7 @@ bool wxRealFormValidator::OnRetrieveValue(wxProperty *property, wxPropertyFormVi
   if (value.Length() == 0)
     return FALSE;
     
-  float f = (float)atof((const char *)value);
+  float f = (float)wxAtof((const wxChar *)value);
   property->GetValue() = f;
   return TRUE;
 }
@@ -495,9 +497,9 @@ bool wxIntegerFormValidator::OnCheckValue(wxProperty *property, wxPropertyFormVi
 
     if (!StringToLong(WXSTRINGCAST value, &val))
     {
-      char buf[200];
-      sprintf(buf, "Value %s is not a valid integer!", (const char *)value);
-      wxMessageBox(buf, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow);
+      wxChar buf[200];
+      wxSprintf(buf, wxT("Value %s is not a valid integer!"), (const wxChar *)value);
+      wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
       return FALSE;
     }
   }
@@ -533,7 +535,7 @@ bool wxIntegerFormValidator::OnRetrieveValue(wxProperty *property, wxPropertyFor
     if (value.Length() == 0)
       return FALSE;
     
-    long i = atol((const char *)value);
+    long i = wxAtol((const wxChar *)value);
     property->GetValue() = i;
   }
   else if (m_propertyWindow->IsKindOf(CLASSINFO(wxSlider)))