Found that only one file in wxSmith is left to be patched in order to use wxPropertyGrid 1.2.x; this is NOT counting build files patched by Berlios Patch 1912 "Patch CB Build Files to use wxPropertyGrid 1.2.6"
https://developer.berlios.de/patch/?func=detailpatch&patch_id=1912&group_id=5358
(WXMAKINGLIB_PROPGRID-unix.patch)
Tim S
Index: src/plugins/contrib/wxSmith/wxwidgets/properties/wxscolourproperty.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/properties/wxscolourproperty.cpp (revision 3692)
+++ src/plugins/contrib/wxSmith/wxwidgets/properties/wxscolourproperty.cpp (working copy)
@@ -128,7 +128,11 @@
wxSYS_COLOUR_MENUBAR
};
+#if defined(wxPG_VERSION) && wxPG_VERSION > 1099
+ WX_PG_IMPLEMENT_PROPERTY_CLASS(wxsMyColourProperty,wxEnumProperty,wxColourPropertyValue,const wxColourPropertyValue&,Choice)
+#else
WX_PG_IMPLEMENT_PROPERTY_CLASS(wxsMyColourProperty,wxColourPropertyValue,const wxColourPropertyValue&,Choice)
+#endif
wxsMyColourPropertyClass::wxsMyColourPropertyClass( const wxString& label, const wxString& name,
const wxColourPropertyValue& value )
@@ -181,7 +185,11 @@
(int)m_value.m_colour.Red(),(int)m_value.m_colour.Green(),(int)m_value.m_colour.Blue());
return temp;
}
+#if defined(wxPG_VERSION) && wxPG_VERSION > 1099
+ return m_choices.GetLabel(m_index);
+#else
return m_constants->GetLabel(m_index);
+#endif
}
wxSize wxsMyColourPropertyClass::GetImageSize() const
I've got one question: In patch for compatibility with wx2.8 you've commented some styles inside wxSmith like:
What was the purpose ? Does it make problem to compile using wx 2.8 ? Coz even if style is not yet supported but the older version remains, it can still be used inside XRC files with old name so excluding such styles may lead to incompatibility problems.
BYO
It has a problem with 2.8 with 2.6 compatible mode turned off, wxNO_3D does nothing under 2.6.
from wx/toplevel.h
// deprecated versions defined for compatibility reasons
#define wxRESIZE_BOX wxMAXIMIZE_BOX
#define wxTHICK_FRAME wxRESIZE_BORDER
// obsolete styles, unused any more
#define wxDIALOG_MODAL 0
#define wxDIALOG_MODELESS 0
#define wxNO_3D 0
#define wxUSER_COLOURS 0
I ran into some issues due to the wxPG_COMPATIBILITY_1_0_0 flag not being set...
(i.e. it was missing things like wxRECURSE and wxPGConstants, for example)
EDIT: bootstrapping made it pick up the added defines now, all good
The new propgrid also seems to have a few wx includes missing from the headers:
Index: src/include/propgrid/include/wx/propgrid/propdev.h
===================================================================
--- src/include/propgrid/include/wx/propgrid/propdev.h (revision 3754)
+++ src/include/propgrid/include/wx/propgrid/propdev.h (arbetskopia)
@@ -18,6 +18,7 @@
#error "propdev.h must be included *before* advprops.h"
#endif
+#include <wx/textctrl.h>
class WXDLLIMPEXP_PG wxArrayEditorDialog;
Index: src/include/propgrid/include/wx/propgrid/propgrid.h
===================================================================
--- src/include/propgrid/include/wx/propgrid/propgrid.h (revision 3754)
+++ src/include/propgrid/include/wx/propgrid/propgrid.h (arbetskopia)
@@ -17,6 +17,7 @@
#endif
#include <wx/dynarray.h>
+#include <wx/dcclient.h>
#include <wx/hashmap.h>
#include <wx/variant.h>
#include <wx/tooltip.h>