def EVT_GRID_EDITOR_HIDDEN(win, fn):
     win.Connect(-1, -1, wxEVT_GRID_EDITOR_HIDDEN, fn)
 
+def EVT_GRID_EDITOR_CREATED(win, fn):
+    win.Connect(-1, -1, wxEVT_GRID_EDITOR_CREATED, fn)
+
 
 class wxGridCellRendererPtr :
     def __init__(self,this):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def _setSelf(self, *_args, **_kwargs):
-        val = apply(gridc.wxPyGridCellRenderer__setSelf,(self,) + _args, _kwargs)
+    def _setCallbackInfo(self, *_args, **_kwargs):
+        val = apply(gridc.wxPyGridCellRenderer__setCallbackInfo,(self,) + _args, _kwargs)
         return val
     def base_SetParameters(self, *_args, **_kwargs):
         val = apply(gridc.wxPyGridCellRenderer_base_SetParameters,(self,) + _args, _kwargs)
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxPyGridCellRenderer,_args,_kwargs)
         self.thisown = 1
-        self._setSelf(self, wxPyGridCellRenderer)
+        self._setCallbackInfo(self, wxPyGridCellRenderer)
 
 
 
 
 
 
+class wxGridCellDateTimeRendererPtr(wxGridCellStringRendererPtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def __repr__(self):
+        return "<C wxGridCellDateTimeRenderer instance at %s>" % (self.this,)
+class wxGridCellDateTimeRenderer(wxGridCellDateTimeRendererPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(gridc.new_wxGridCellDateTimeRenderer,_args,_kwargs)
+        self.thisown = 1
+
+
+
+
+class wxGridCellEnumRendererPtr(wxGridCellStringRendererPtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def __repr__(self):
+        return "<C wxGridCellEnumRenderer instance at %s>" % (self.this,)
+class wxGridCellEnumRenderer(wxGridCellEnumRendererPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(gridc.new_wxGridCellEnumRenderer,_args,_kwargs)
+        self.thisown = 1
+
+
+
+
+class wxGridCellAutoWrapStringRendererPtr(wxGridCellStringRendererPtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def __repr__(self):
+        return "<C wxGridCellAutoWrapStringRenderer instance at %s>" % (self.this,)
+class wxGridCellAutoWrapStringRenderer(wxGridCellAutoWrapStringRendererPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(gridc.new_wxGridCellAutoWrapStringRenderer,_args,_kwargs)
+        self.thisown = 1
+
+
+
+
 class wxGridCellEditorPtr :
     def __init__(self,this):
         self.this = this
         return val
     def GetControl(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellEditor_GetControl,(self,) + _args, _kwargs)
-        if val: val = wxControlPtr(val) 
         return val
     def SetControl(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellEditor_SetControl,(self,) + _args, _kwargs)
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def _setSelf(self, *_args, **_kwargs):
-        val = apply(gridc.wxPyGridCellEditor__setSelf,(self,) + _args, _kwargs)
+    def _setCallbackInfo(self, *_args, **_kwargs):
+        val = apply(gridc.wxPyGridCellEditor__setCallbackInfo,(self,) + _args, _kwargs)
         return val
     def base_SetSize(self, *_args, **_kwargs):
         val = apply(gridc.wxPyGridCellEditor_base_SetSize,(self,) + _args, _kwargs)
     def base_PaintBackground(self, *_args, **_kwargs):
         val = apply(gridc.wxPyGridCellEditor_base_PaintBackground,(self,) + _args, _kwargs)
         return val
+    def base_IsAcceptedKey(self, *_args, **_kwargs):
+        val = apply(gridc.wxPyGridCellEditor_base_IsAcceptedKey,(self,) + _args, _kwargs)
+        return val
     def base_StartingKey(self, *_args, **_kwargs):
         val = apply(gridc.wxPyGridCellEditor_base_StartingKey,(self,) + _args, _kwargs)
         return val
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxPyGridCellEditor,_args,_kwargs)
         self.thisown = 1
-        self._setSelf(self, wxPyGridCellEditor)
+        self._setCallbackInfo(self, wxPyGridCellEditor)
 
 
 
 
 
 
+class wxGridCellEnumEditorPtr(wxGridCellChoiceEditorPtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def __repr__(self):
+        return "<C wxGridCellEnumEditor instance at %s>" % (self.this,)
+class wxGridCellEnumEditor(wxGridCellEnumEditorPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(gridc.new_wxGridCellEnumEditor,_args,_kwargs)
+        self.thisown = 1
+
+
+
+
+class wxGridCellAutoWrapStringEditorPtr(wxGridCellTextEditorPtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def __repr__(self):
+        return "<C wxGridCellAutoWrapStringEditor instance at %s>" % (self.this,)
+class wxGridCellAutoWrapStringEditor(wxGridCellAutoWrapStringEditorPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(gridc.new_wxGridCellAutoWrapStringEditor,_args,_kwargs)
+        self.thisown = 1
+
+
+
+
 class wxGridCellAttrPtr :
+    Any = gridc.wxGridCellAttr_Any
+    Default = gridc.wxGridCellAttr_Default
+    Cell = gridc.wxGridCellAttr_Cell
+    Row = gridc.wxGridCellAttr_Row
+    Col = gridc.wxGridCellAttr_Col
+    Merged = gridc.wxGridCellAttr_Merged
     def __init__(self,this):
         self.this = this
         self.thisown = 0
         val = apply(gridc.wxGridCellAttr_Clone,(self,) + _args, _kwargs)
         if val: val = wxGridCellAttrPtr(val) 
         return val
+    def MergeWith(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridCellAttr_MergeWith,(self,) + _args, _kwargs)
+        return val
     def IncRef(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_IncRef,(self,) + _args, _kwargs)
         return val
     def SetEditor(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_SetEditor,(self,) + _args, _kwargs)
         return val
+    def SetKind(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridCellAttr_SetKind,(self,) + _args, _kwargs)
+        return val
     def HasTextColour(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_HasTextColour,(self,) + _args, _kwargs)
         return val
     def HasEditor(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_HasEditor,(self,) + _args, _kwargs)
         return val
+    def HasReadWriteMode(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridCellAttr_HasReadWriteMode,(self,) + _args, _kwargs)
+        return val
     def GetTextColour(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_GetTextColour,(self,) + _args, _kwargs)
-        if val: val = wxColourPtr(val) 
+        if val: val = wxColourPtr(val) ; val.thisown = 1
         return val
     def GetBackgroundColour(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_GetBackgroundColour,(self,) + _args, _kwargs)
-        if val: val = wxColourPtr(val) 
+        if val: val = wxColourPtr(val) ; val.thisown = 1
         return val
     def GetFont(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_GetFont,(self,) + _args, _kwargs)
-        if val: val = wxFontPtr(val) 
+        if val: val = wxFontPtr(val) ; val.thisown = 1
         return val
     def GetAlignment(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_GetAlignment,(self,) + _args, _kwargs)
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def _setSelf(self, *_args, **_kwargs):
-        val = apply(gridc.wxPyGridCellAttrProvider__setSelf,(self,) + _args, _kwargs)
+    def _setCallbackInfo(self, *_args, **_kwargs):
+        val = apply(gridc.wxPyGridCellAttrProvider__setCallbackInfo,(self,) + _args, _kwargs)
         return val
     def base_GetAttr(self, *_args, **_kwargs):
         val = apply(gridc.wxPyGridCellAttrProvider_base_GetAttr,(self,) + _args, _kwargs)
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxPyGridCellAttrProvider,_args,_kwargs)
         self.thisown = 1
-        self._setSelf(self, wxPyGridCellAttrProvider)
+        self._setCallbackInfo(self, wxPyGridCellAttrProvider)
 
 
 
 
-class wxGridTableBasePtr :
+class wxGridTableBasePtr(wxObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
         return val
     def GetView(self, *_args, **_kwargs):
         val = apply(gridc.wxGridTableBase_GetView,(self,) + _args, _kwargs)
-        if val: val = wxGridPtr(val) 
         return val
     def GetNumberRows(self, *_args, **_kwargs):
         val = apply(gridc.wxGridTableBase_GetNumberRows,(self,) + _args, _kwargs)
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def _setSelf(self, *_args, **_kwargs):
-        val = apply(gridc.wxPyGridTableBase__setSelf,(self,) + _args, _kwargs)
+    def _setCallbackInfo(self, *_args, **_kwargs):
+        val = apply(gridc.wxPyGridTableBase__setCallbackInfo,(self,) + _args, _kwargs)
         return val
     def Destroy(self, *_args, **_kwargs):
         val = apply(gridc.wxPyGridTableBase_Destroy,(self,) + _args, _kwargs)
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxPyGridTableBase,_args,_kwargs)
         self.thisown = 1
-        self._setSelf(self, wxPyGridTableBase)
+        self._setCallbackInfo(self, wxPyGridTableBase)
 
 
 
         return val
     def GetTableObject(self, *_args, **_kwargs):
         val = apply(gridc.wxGridTableMessage_GetTableObject,(self,) + _args, _kwargs)
-        if val: val = wxGridTableBasePtr(val) 
         return val
     def SetId(self, *_args, **_kwargs):
         val = apply(gridc.wxGridTableMessage_SetId,(self,) + _args, _kwargs)
         return val
     def GetTable(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_GetTable,(self,) + _args, _kwargs)
-        if val: val = wxGridTableBasePtr(val) 
         return val
     def SetTable(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_SetTable,(self,) + _args, _kwargs)
     def DrawTextRectangle(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_DrawTextRectangle,(self,) + _args, _kwargs)
         return val
-    def StringToLines(self, *_args, **_kwargs):
-        val = apply(gridc.wxGrid_StringToLines,(self,) + _args, _kwargs)
-        return val
     def GetTextBoxSize(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_GetTextBoxSize,(self,) + _args, _kwargs)
         return val
     def GetBatchCount(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_GetBatchCount,(self,) + _args, _kwargs)
         return val
+    def ForceRefresh(self, *_args, **_kwargs):
+        val = apply(gridc.wxGrid_ForceRefresh,(self,) + _args, _kwargs)
+        return val
     def IsEditable(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_IsEditable,(self,) + _args, _kwargs)
         return val
         val = apply(gridc.wxGrid_GetCellHighlightColour,(self,) + _args, _kwargs)
         if val: val = wxColourPtr(val) ; val.thisown = 1
         return val
+    def GetCellHighlightPenWidth(self, *_args, **_kwargs):
+        val = apply(gridc.wxGrid_GetCellHighlightPenWidth,(self,) + _args, _kwargs)
+        return val
+    def GetCellHighlightROPenWidth(self, *_args, **_kwargs):
+        val = apply(gridc.wxGrid_GetCellHighlightROPenWidth,(self,) + _args, _kwargs)
+        return val
     def SetRowLabelSize(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_SetRowLabelSize,(self,) + _args, _kwargs)
         return val
     def SetCellHighlightColour(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_SetCellHighlightColour,(self,) + _args, _kwargs)
         return val
+    def SetCellHighlightPenWidth(self, *_args, **_kwargs):
+        val = apply(gridc.wxGrid_SetCellHighlightPenWidth,(self,) + _args, _kwargs)
+        return val
+    def SetCellHighlightROPenWidth(self, *_args, **_kwargs):
+        val = apply(gridc.wxGrid_SetCellHighlightROPenWidth,(self,) + _args, _kwargs)
+        return val
     def EnableDragRowSize(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_EnableDragRowSize,(self,) + _args, _kwargs)
         return val
     def SetMargins(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_SetMargins,(self,) + _args, _kwargs)
         return val
+    def GetGridWindow(self, *_args, **_kwargs):
+        val = apply(gridc.wxGrid_GetGridWindow,(self,) + _args, _kwargs)
+        return val
+    def GetGridRowLabelWindow(self, *_args, **_kwargs):
+        val = apply(gridc.wxGrid_GetGridRowLabelWindow,(self,) + _args, _kwargs)
+        return val
+    def GetGridColLabelWindow(self, *_args, **_kwargs):
+        val = apply(gridc.wxGrid_GetGridColLabelWindow,(self,) + _args, _kwargs)
+        return val
+    def GetGridCornerLabelWindow(self, *_args, **_kwargs):
+        val = apply(gridc.wxGrid_GetGridCornerLabelWindow,(self,) + _args, _kwargs)
+        return val
     def __repr__(self):
         return "<C wxGrid instance at %s>" % (self.this,)
 class wxGrid(wxGridPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGrid,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
 
 
 
+class wxGridEditorCreatedEventPtr(wxCommandEventPtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def GetRow(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridEditorCreatedEvent_GetRow,(self,) + _args, _kwargs)
+        return val
+    def GetCol(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridEditorCreatedEvent_GetCol,(self,) + _args, _kwargs)
+        return val
+    def GetControl(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridEditorCreatedEvent_GetControl,(self,) + _args, _kwargs)
+        return val
+    def SetRow(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridEditorCreatedEvent_SetRow,(self,) + _args, _kwargs)
+        return val
+    def SetCol(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridEditorCreatedEvent_SetCol,(self,) + _args, _kwargs)
+        return val
+    def SetControl(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridEditorCreatedEvent_SetControl,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxGridEditorCreatedEvent instance at %s>" % (self.this,)
+class wxGridEditorCreatedEvent(wxGridEditorCreatedEventPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(gridc.new_wxGridEditorCreatedEvent,_args,_kwargs)
+        self.thisown = 1
+
+
+
+
 
 
 #-------------- FUNCTION WRAPPERS ------------------
 wxEVT_GRID_SELECT_CELL = gridc.wxEVT_GRID_SELECT_CELL
 wxEVT_GRID_EDITOR_SHOWN = gridc.wxEVT_GRID_EDITOR_SHOWN
 wxEVT_GRID_EDITOR_HIDDEN = gridc.wxEVT_GRID_EDITOR_HIDDEN
+wxEVT_GRID_EDITOR_CREATED = gridc.wxEVT_GRID_EDITOR_CREATED
 
 
 #-------------- USER INCLUDE -----------------------
 wx.wxGridEventPtr                  = wxGridEventPtr
 wx.wxGridSizeEventPtr              = wxGridSizeEventPtr
 wx.wxGridRangeSelectEventPtr       = wxGridRangeSelectEventPtr
+wx.wxGridEditorCreatedEventPtr     = wxGridEditorCreatedEventPtr
 wx.wxGridCellRendererPtr           = wxGridCellRendererPtr
 wx.wxPyGridCellRendererPtr         = wxPyGridCellRendererPtr
 wx.wxGridCellEditorPtr             = wxGridCellEditorPtr