]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/propform.cpp
1. wxFileDataObject fixes from Ricky Gonzales - seems to work, so demo added
[wxWidgets.git] / src / generic / propform.cpp
index 2a115e5c57800918ec82988d53d05052fc86b48d..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 (wxStrcmp(win.GetName(), _T("ok")) == 0)
+  if (wxStrcmp(win.GetName(), wxT("ok")) == 0)
     OnOk(event);
-  else if (wxStrcmp(win.GetName(), _T("cancel")) == 0)
+  else if (wxStrcmp(win.GetName(), wxT("cancel")) == 0)
     OnCancel(event);
-  else if (wxStrcmp(win.GetName(), _T("help")) == 0)
+  else if (wxStrcmp(win.GetName(), wxT("help")) == 0)
     OnHelp(event);
-  else if (wxStrcmp(win.GetName(), _T("update")) == 0)
+  else if (wxStrcmp(win.GetName(), wxT("update")) == 0)
     OnUpdate(event);
-  else if (wxStrcmp(win.GetName(), _T("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)
@@ -425,16 +427,16 @@ bool wxRealFormValidator::OnCheckValue( wxProperty *property, wxPropertyFormView
   if (!StringToFloat(WXSTRINGCAST value, &val))
   {
     wxChar buf[200];
-    wxSprintf(buf, _T("Value %s is not a valid real number!"), (const wxChar *)value);
-    wxMessageBox(buf, _T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
+    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)
   {
     wxChar buf[200];
-    wxSprintf(buf, _T("Value must be a real number between %.2f and %.2f!"), m_realMin, m_realMax);
-    wxMessageBox(buf, _T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
+    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;
@@ -496,8 +498,8 @@ bool wxIntegerFormValidator::OnCheckValue(wxProperty *property, wxPropertyFormVi
     if (!StringToLong(WXSTRINGCAST value, &val))
     {
       wxChar buf[200];
-      wxSprintf(buf, _T("Value %s is not a valid integer!"), (const wxChar *)value);
-      wxMessageBox(buf, _T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
+      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;
     }
   }