Hi,

I've been trying to get the latest gridtable updates in SVN to compile against wxWidgets 2.8 branch.

I have a  problem with parsing of

wxGridTableBase::IsEmptyCell

in 2.8 branch this is a pure virtual function, whilst in 2.9 it is virtual.

My full (none working) patch is attached, but the bit that 'breaks' is:

#if WXPERL_W_VERSION_GE( 2, 9, 0 )
    virtual bool IsEmptyCell(int row, int col) %Virtual;
#else
    virtual bool IsEmptyCell(int row, int col) = 0 %Virtual{pure};
#endif

this fails with various error messages during compilation - but the root cause is that in the xspp output produced via

build::Wx::XSP::Virtual

I get definitions for both versions of IsEmptyCell, which obviously doesn't work.

Changing the patch so that I simply replace the IsEmptyCell definition with one that works for 2.8 rather than giving two version dependent defs makes everything work OK.

I know the problem is that build::Wx::XSP::Virtual is getting two definitions for IsEmptyCell, but I can't quite figure out where in ExtUtils::XSpp this is broken.

Regards

Mark









Index: interface/wx/grid/gridtablebase.h
===================================================================
--- interface/wx/grid/gridtablebase.h   (revision 3025)
+++ interface/wx/grid/gridtablebase.h   (working copy)
@@ -77,6 +77,7 @@
      */
     virtual int GetNumberCols() = 0 %Virtual{pure};
 
+#if WXPERL_W_VERSION_GE( 2, 9, 0 )
     /**
         Return the number of rows in the table.
 
@@ -95,6 +96,7 @@
      */
     int GetColsCount() const;
 
+#endif
 
     /**
         @name Table Cell Accessors
@@ -109,7 +111,12 @@
         only returns true if the value of the given cell, as returned by
         GetValue(), is empty.
      */
+
+#if WXPERL_W_VERSION_GE( 2, 9, 0 )
     virtual bool IsEmptyCell(int row, int col) %Virtual;
+#else
+    virtual bool IsEmptyCell(int row, int col) = 0 %Virtual{pure};
+#endif
 
     /**
         Same as IsEmptyCell() but taking wxGridCellCoords.
@@ -117,7 +124,10 @@
         Notice that this method is not virtual, only IsEmptyCell() should be
         overridden.
      */
+
+#if WXPERL_W_VERSION_GE( 2, 9, 0 )
     bool IsEmpty(const wxGridCellCoords& coords);
+#endif
 
     /**
         Must be overridden to implement accessing the table values as text.

Reply via email to