]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/gtk/grid.py
bug fixes for using wxTransientPopupWindow and wxDP_ALLOWNONE support from Andreas...
[wxWidgets.git] / wxPython / src / gtk / grid.py
index 21b76802adebd1257b9a4c64e9b6da573121d2f3..d4f9670e86e4518f41835c4e9a5250a87e10e01a 100644 (file)
@@ -1,12 +1,57 @@
 # This file was created automatically by SWIG.
 # Don't modify this file, modify the SWIG interface instead.
 
+"""
+Classes for implementing a spreadsheet-like control.
+"""
+
 import _grid
 
+def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
+    if (name == "this"):
+        if isinstance(value, class_type):
+            self.__dict__[name] = value.this
+            if hasattr(value,"thisown"): self.__dict__["thisown"] = value.thisown
+            del value.thisown
+            return
+    method = class_type.__swig_setmethods__.get(name,None)
+    if method: return method(self,value)
+    if (not static) or hasattr(self,name) or (name == "thisown"):
+        self.__dict__[name] = value
+    else:
+        raise AttributeError("You cannot add attributes to %s" % self)
+
+def _swig_setattr(self,class_type,name,value):
+    return _swig_setattr_nondynamic(self,class_type,name,value,0)
+
+def _swig_getattr(self,class_type,name):
+    method = class_type.__swig_getmethods__.get(name,None)
+    if method: return method(self)
+    raise AttributeError,name
+
+import types
+try:
+    _object = types.ObjectType
+    _newclass = 1
+except AttributeError:
+    class _object : pass
+    _newclass = 0
+del types
+
+
+def _swig_setattr_nondynamic_method(set):
+    def set_attr(self,name,value):
+        if hasattr(self,name) or (name in ("this", "thisown")):
+            set(self,name,value)
+        else:
+            raise AttributeError("You cannot add attributes to %s" % self)
+    return set_attr
+
+
 import _windows
 import _core
 wx = _core 
-__docfilter__ = wx.__docfilter__ 
+__docfilter__ = wx.__DocFilter(globals()) 
 GRID_VALUE_STRING = _grid.GRID_VALUE_STRING
 GRID_VALUE_BOOL = _grid.GRID_VALUE_BOOL
 GRID_VALUE_NUMBER = _grid.GRID_VALUE_NUMBER
@@ -16,7 +61,18 @@ GRID_VALUE_TEXT = _grid.GRID_VALUE_TEXT
 GRID_VALUE_LONG = _grid.GRID_VALUE_LONG
 GRID_VALUE_CHOICEINT = _grid.GRID_VALUE_CHOICEINT
 GRID_VALUE_DATETIME = _grid.GRID_VALUE_DATETIME
+GRID_DEFAULT_NUMBER_ROWS = _grid.GRID_DEFAULT_NUMBER_ROWS
+GRID_DEFAULT_NUMBER_COLS = _grid.GRID_DEFAULT_NUMBER_COLS
+GRID_DEFAULT_ROW_HEIGHT = _grid.GRID_DEFAULT_ROW_HEIGHT
+GRID_DEFAULT_COL_WIDTH = _grid.GRID_DEFAULT_COL_WIDTH
+GRID_DEFAULT_COL_LABEL_HEIGHT = _grid.GRID_DEFAULT_COL_LABEL_HEIGHT
+GRID_DEFAULT_ROW_LABEL_WIDTH = _grid.GRID_DEFAULT_ROW_LABEL_WIDTH
+GRID_LABEL_EDGE_ZONE = _grid.GRID_LABEL_EDGE_ZONE
+GRID_MIN_ROW_HEIGHT = _grid.GRID_MIN_ROW_HEIGHT
+GRID_MIN_COL_WIDTH = _grid.GRID_MIN_COL_WIDTH
+GRID_DEFAULT_SCROLLBAR_WIDTH = _grid.GRID_DEFAULT_SCROLLBAR_WIDTH
 class GridCellRenderer(object):
+    """Proxy of C++ GridCellRenderer class"""
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellRenderer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -59,11 +115,11 @@ class GridCellRendererPtr(GridCellRenderer):
         self.__class__ = GridCellRenderer
 _grid.GridCellRenderer_swigregister(GridCellRendererPtr)
 cvar = _grid.cvar
-DateTimeFormatStr = cvar.DateTimeFormatStr
 GridNoCellCoords = cvar.GridNoCellCoords
 GridNoCellRect = cvar.GridNoCellRect
 
 class PyGridCellRenderer(GridCellRenderer):
+    """Proxy of C++ PyGridCellRenderer class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyGridCellRenderer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -91,6 +147,7 @@ class PyGridCellRendererPtr(PyGridCellRenderer):
 _grid.PyGridCellRenderer_swigregister(PyGridCellRendererPtr)
 
 class GridCellStringRenderer(GridCellRenderer):
+    """Proxy of C++ GridCellStringRenderer class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellStringRenderer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -110,6 +167,7 @@ class GridCellStringRendererPtr(GridCellStringRenderer):
 _grid.GridCellStringRenderer_swigregister(GridCellStringRendererPtr)
 
 class GridCellNumberRenderer(GridCellStringRenderer):
+    """Proxy of C++ GridCellNumberRenderer class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellNumberRenderer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -129,6 +187,7 @@ class GridCellNumberRendererPtr(GridCellNumberRenderer):
 _grid.GridCellNumberRenderer_swigregister(GridCellNumberRendererPtr)
 
 class GridCellFloatRenderer(GridCellStringRenderer):
+    """Proxy of C++ GridCellFloatRenderer class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellFloatRenderer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -164,6 +223,7 @@ class GridCellFloatRendererPtr(GridCellFloatRenderer):
 _grid.GridCellFloatRenderer_swigregister(GridCellFloatRendererPtr)
 
 class GridCellBoolRenderer(GridCellRenderer):
+    """Proxy of C++ GridCellBoolRenderer class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellBoolRenderer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -183,10 +243,11 @@ class GridCellBoolRendererPtr(GridCellBoolRenderer):
 _grid.GridCellBoolRenderer_swigregister(GridCellBoolRendererPtr)
 
 class GridCellDateTimeRenderer(GridCellStringRenderer):
+    """Proxy of C++ GridCellDateTimeRenderer class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellDateTimeRenderer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self, String outformat=DateTimeFormatStr, String informat=DateTimeFormatStr) -> GridCellDateTimeRenderer"""
+        """__init__(self, String outformat=wxPyDefaultDateTimeFormat, String informat=wxPyDefaultDateTimeFormat) -> GridCellDateTimeRenderer"""
         newobj = _grid.new_GridCellDateTimeRenderer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
@@ -202,6 +263,7 @@ class GridCellDateTimeRendererPtr(GridCellDateTimeRenderer):
 _grid.GridCellDateTimeRenderer_swigregister(GridCellDateTimeRendererPtr)
 
 class GridCellEnumRenderer(GridCellStringRenderer):
+    """Proxy of C++ GridCellEnumRenderer class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellEnumRenderer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -221,6 +283,7 @@ class GridCellEnumRendererPtr(GridCellEnumRenderer):
 _grid.GridCellEnumRenderer_swigregister(GridCellEnumRendererPtr)
 
 class GridCellAutoWrapStringRenderer(GridCellStringRenderer):
+    """Proxy of C++ GridCellAutoWrapStringRenderer class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellAutoWrapStringRenderer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -240,6 +303,7 @@ class GridCellAutoWrapStringRendererPtr(GridCellAutoWrapStringRenderer):
 _grid.GridCellAutoWrapStringRenderer_swigregister(GridCellAutoWrapStringRendererPtr)
 
 class GridCellEditor(object):
+    """Proxy of C++ GridCellEditor class"""
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellEditor instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -340,6 +404,7 @@ class GridCellEditorPtr(GridCellEditor):
 _grid.GridCellEditor_swigregister(GridCellEditorPtr)
 
 class PyGridCellEditor(GridCellEditor):
+    """Proxy of C++ PyGridCellEditor class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyGridCellEditor instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -399,6 +464,7 @@ class PyGridCellEditorPtr(PyGridCellEditor):
 _grid.PyGridCellEditor_swigregister(PyGridCellEditorPtr)
 
 class GridCellTextEditor(GridCellEditor):
+    """Proxy of C++ GridCellTextEditor class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellTextEditor instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -422,6 +488,7 @@ class GridCellTextEditorPtr(GridCellTextEditor):
 _grid.GridCellTextEditor_swigregister(GridCellTextEditorPtr)
 
 class GridCellNumberEditor(GridCellTextEditor):
+    """Proxy of C++ GridCellNumberEditor class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellNumberEditor instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -445,6 +512,7 @@ class GridCellNumberEditorPtr(GridCellNumberEditor):
 _grid.GridCellNumberEditor_swigregister(GridCellNumberEditorPtr)
 
 class GridCellFloatEditor(GridCellTextEditor):
+    """Proxy of C++ GridCellFloatEditor class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellFloatEditor instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -468,6 +536,7 @@ class GridCellFloatEditorPtr(GridCellFloatEditor):
 _grid.GridCellFloatEditor_swigregister(GridCellFloatEditorPtr)
 
 class GridCellBoolEditor(GridCellEditor):
+    """Proxy of C++ GridCellBoolEditor class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellBoolEditor instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -491,10 +560,11 @@ class GridCellBoolEditorPtr(GridCellBoolEditor):
 _grid.GridCellBoolEditor_swigregister(GridCellBoolEditorPtr)
 
 class GridCellChoiceEditor(GridCellEditor):
+    """Proxy of C++ GridCellChoiceEditor class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellChoiceEditor instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self, int choices=0, String choices_array=None, bool allowOthers=False) -> GridCellChoiceEditor"""
+        """__init__(self, int choices=0, bool allowOthers=False) -> GridCellChoiceEditor"""
         newobj = _grid.new_GridCellChoiceEditor(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
@@ -514,6 +584,7 @@ class GridCellChoiceEditorPtr(GridCellChoiceEditor):
 _grid.GridCellChoiceEditor_swigregister(GridCellChoiceEditorPtr)
 
 class GridCellEnumEditor(GridCellChoiceEditor):
+    """Proxy of C++ GridCellEnumEditor class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellEnumEditor instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -537,6 +608,7 @@ class GridCellEnumEditorPtr(GridCellEnumEditor):
 _grid.GridCellEnumEditor_swigregister(GridCellEnumEditorPtr)
 
 class GridCellAutoWrapStringEditor(GridCellTextEditor):
+    """Proxy of C++ GridCellAutoWrapStringEditor class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellAutoWrapStringEditor instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -560,6 +632,7 @@ class GridCellAutoWrapStringEditorPtr(GridCellAutoWrapStringEditor):
 _grid.GridCellAutoWrapStringEditor_swigregister(GridCellAutoWrapStringEditorPtr)
 
 class GridCellAttr(object):
+    """Proxy of C++ GridCellAttr class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellAttr instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     Any = _grid.GridCellAttr_Any
@@ -704,6 +777,10 @@ class GridCellAttr(object):
         """IsReadOnly(self) -> bool"""
         return _grid.GridCellAttr_IsReadOnly(*args, **kwargs)
 
+    def GetKind(*args, **kwargs):
+        """GetKind(self) -> int"""
+        return _grid.GridCellAttr_GetKind(*args, **kwargs)
+
     def SetDefAttr(*args, **kwargs):
         """SetDefAttr(self, GridCellAttr defAttr)"""
         return _grid.GridCellAttr_SetDefAttr(*args, **kwargs)
@@ -717,6 +794,7 @@ class GridCellAttrPtr(GridCellAttr):
 _grid.GridCellAttr_swigregister(GridCellAttrPtr)
 
 class GridCellAttrProvider(object):
+    """Proxy of C++ GridCellAttrProvider class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellAttrProvider instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -764,6 +842,7 @@ class GridCellAttrProviderPtr(GridCellAttrProvider):
 _grid.GridCellAttrProvider_swigregister(GridCellAttrProviderPtr)
 
 class PyGridCellAttrProvider(GridCellAttrProvider):
+    """Proxy of C++ PyGridCellAttrProvider class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyGridCellAttrProvider instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -803,6 +882,7 @@ class PyGridCellAttrProviderPtr(PyGridCellAttrProvider):
 _grid.PyGridCellAttrProvider_swigregister(PyGridCellAttrProviderPtr)
 
 class GridTableBase(_core.Object):
+    """Proxy of C++ GridTableBase class"""
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridTableBase instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -955,6 +1035,7 @@ class GridTableBasePtr(GridTableBase):
 _grid.GridTableBase_swigregister(GridTableBasePtr)
 
 class PyGridTableBase(GridTableBase):
+    """Proxy of C++ PyGridTableBase class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyGridTableBase instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1062,6 +1143,7 @@ class PyGridTableBasePtr(PyGridTableBase):
 _grid.PyGridTableBase_swigregister(PyGridTableBasePtr)
 
 class GridStringTable(GridTableBase):
+    """Proxy of C++ GridStringTable class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridStringTable instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1089,6 +1171,7 @@ GRIDTABLE_NOTIFY_COLS_INSERTED = _grid.GRIDTABLE_NOTIFY_COLS_INSERTED
 GRIDTABLE_NOTIFY_COLS_APPENDED = _grid.GRIDTABLE_NOTIFY_COLS_APPENDED
 GRIDTABLE_NOTIFY_COLS_DELETED = _grid.GRIDTABLE_NOTIFY_COLS_DELETED
 class GridTableMessage(object):
+    """Proxy of C++ GridTableMessage class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridTableMessage instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1144,6 +1227,7 @@ class GridTableMessagePtr(GridTableMessage):
 _grid.GridTableMessage_swigregister(GridTableMessagePtr)
 
 class GridCellCoords(object):
+    """Proxy of C++ GridCellCoords class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridCellCoords instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1186,13 +1270,14 @@ class GridCellCoords(object):
         """__ne__(self, GridCellCoords other) -> bool"""
         return _grid.GridCellCoords___ne__(*args, **kwargs)
 
-    def asTuple(*args, **kwargs):
-        """asTuple(self) -> PyObject"""
-        return _grid.GridCellCoords_asTuple(*args, **kwargs)
+    def Get(*args, **kwargs):
+        """Get(self) -> PyObject"""
+        return _grid.GridCellCoords_Get(*args, **kwargs)
 
-    def __str__(self):                   return str(self.asTuple())
-    def __repr__(self):                  return 'wxGridCellCoords'+str(self.asTuple())
-    def __len__(self):                   return len(self.asTuple())
+    asTuple = wx._deprecated(Get, "asTuple is deprecated, use `Get` instead")
+    def __str__(self):                   return str(self.Get())
+    def __repr__(self):                  return 'wxGridCellCoords'+str(self.Get())
+    def __len__(self):                   return len(self.Get())
     def __getitem__(self, index):        return self.asTuple()[index]
     def __setitem__(self, index, val):
         if index == 0: self.SetRow(val)
@@ -1208,12 +1293,13 @@ class GridCellCoordsPtr(GridCellCoords):
 _grid.GridCellCoords_swigregister(GridCellCoordsPtr)
 
 class Grid(_windows.ScrolledWindow):
+    """Proxy of C++ Grid class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGrid instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
         """
-        __init__(self, Window parent, int id, Point pos=DefaultPosition, Size size=DefaultSize
-            long style=WANTS_CHARS, 
+        __init__(self, Window parent, int id=-1, Point pos=DefaultPosition
+            Size size=DefaultSize, long style=WANTS_CHARS, 
             String name=PanelNameStr) -> Grid
         """
         newobj = _grid.new_Grid(*args, **kwargs)
@@ -1222,6 +1308,14 @@ class Grid(_windows.ScrolledWindow):
         del newobj.thisown
         self._setOORInfo(self)
 
+    def Create(*args, **kwargs):
+        """
+        Create(self, Window parent, int id=-1, Point pos=DefaultPosition, 
+            Size size=DefaultSize, long style=WANTS_CHARS, 
+            String name=PanelNameStr) -> bool
+        """
+        return _grid.Grid_Create(*args, **kwargs)
+
     wxGridSelectCells = _grid.Grid_wxGridSelectCells
     wxGridSelectRows = _grid.Grid_wxGridSelectRows
     wxGridSelectColumns = _grid.Grid_wxGridSelectColumns
@@ -1604,6 +1698,18 @@ class Grid(_windows.ScrolledWindow):
         """CanDragGridSize(self) -> bool"""
         return _grid.Grid_CanDragGridSize(*args, **kwargs)
 
+    def EnableDragCell(*args, **kwargs):
+        """EnableDragCell(self, bool enable=True)"""
+        return _grid.Grid_EnableDragCell(*args, **kwargs)
+
+    def DisableDragCell(*args, **kwargs):
+        """DisableDragCell(self)"""
+        return _grid.Grid_DisableDragCell(*args, **kwargs)
+
+    def CanDragCell(*args, **kwargs):
+        """CanDragCell(self) -> bool"""
+        return _grid.Grid_CanDragCell(*args, **kwargs)
+
     def SetAttr(*args, **kwargs):
         """SetAttr(self, int row, int col, GridCellAttr attr)"""
         return _grid.Grid_SetAttr(*args, **kwargs)
@@ -1616,6 +1722,10 @@ class Grid(_windows.ScrolledWindow):
         """SetColAttr(self, int col, GridCellAttr attr)"""
         return _grid.Grid_SetColAttr(*args, **kwargs)
 
+    def GetOrCreateCellAttr(*args, **kwargs):
+        """GetOrCreateCellAttr(self, int row, int col) -> GridCellAttr"""
+        return _grid.Grid_GetOrCreateCellAttr(*args, **kwargs)
+
     def SetColFormatBool(*args, **kwargs):
         """SetColFormatBool(self, int col)"""
         return _grid.Grid_SetColFormatBool(*args, **kwargs)
@@ -1983,6 +2093,48 @@ class Grid(_windows.ScrolledWindow):
         """GetGridCornerLabelWindow(self) -> Window"""
         return _grid.Grid_GetGridCornerLabelWindow(*args, **kwargs)
 
+    def SetScrollLineX(*args, **kwargs):
+        """SetScrollLineX(self, int x)"""
+        return _grid.Grid_SetScrollLineX(*args, **kwargs)
+
+    def SetScrollLineY(*args, **kwargs):
+        """SetScrollLineY(self, int y)"""
+        return _grid.Grid_SetScrollLineY(*args, **kwargs)
+
+    def GetScrollLineX(*args, **kwargs):
+        """GetScrollLineX(self) -> int"""
+        return _grid.Grid_GetScrollLineX(*args, **kwargs)
+
+    def GetScrollLineY(*args, **kwargs):
+        """GetScrollLineY(self) -> int"""
+        return _grid.Grid_GetScrollLineY(*args, **kwargs)
+
+    def GetScrollX(*args, **kwargs):
+        """GetScrollX(self, int x) -> int"""
+        return _grid.Grid_GetScrollX(*args, **kwargs)
+
+    def GetScrollY(*args, **kwargs):
+        """GetScrollY(self, int y) -> int"""
+        return _grid.Grid_GetScrollY(*args, **kwargs)
+
+    def GetClassDefaultAttributes(*args, **kwargs):
+        """
+        GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
+
+        Get the default attributes for this class.  This is useful if you want
+        to use the same font or colour in your own control as in a standard
+        control -- which is a much better idea than hard coding specific
+        colours or fonts which might look completely out of place on the
+        user's system, especially if it uses themes.
+
+        The variant parameter is only relevant under Mac currently and is
+        ignore under other platforms. Under Mac, it will change the size of
+        the returned font. See `wx.Window.SetWindowVariant` for more about
+        this.
+        """
+        return _grid.Grid_GetClassDefaultAttributes(*args, **kwargs)
+
+    GetClassDefaultAttributes = staticmethod(GetClassDefaultAttributes)
 
 class GridPtr(Grid):
     def __init__(self, this):
@@ -1991,7 +2143,31 @@ class GridPtr(Grid):
         self.__class__ = Grid
 _grid.Grid_swigregister(GridPtr)
 
+def PreGrid(*args, **kwargs):
+    """PreGrid() -> Grid"""
+    val = _grid.new_PreGrid(*args, **kwargs)
+    val.thisown = 1
+    return val
+
+def Grid_GetClassDefaultAttributes(*args, **kwargs):
+    """
+    Grid_GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
+
+    Get the default attributes for this class.  This is useful if you want
+    to use the same font or colour in your own control as in a standard
+    control -- which is a much better idea than hard coding specific
+    colours or fonts which might look completely out of place on the
+    user's system, especially if it uses themes.
+
+    The variant parameter is only relevant under Mac currently and is
+    ignore under other platforms. Under Mac, it will change the size of
+    the returned font. See `wx.Window.SetWindowVariant` for more about
+    this.
+    """
+    return _grid.Grid_GetClassDefaultAttributes(*args, **kwargs)
+
 class GridEvent(_core.NotifyEvent):
+    """Proxy of C++ GridEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2046,6 +2222,7 @@ class GridEventPtr(GridEvent):
 _grid.GridEvent_swigregister(GridEventPtr)
 
 class GridSizeEvent(_core.NotifyEvent):
+    """Proxy of C++ GridSizeEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridSizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2091,6 +2268,7 @@ class GridSizeEventPtr(GridSizeEvent):
 _grid.GridSizeEvent_swigregister(GridSizeEventPtr)
 
 class GridRangeSelectEvent(_core.NotifyEvent):
+    """Proxy of C++ GridRangeSelectEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridRangeSelectEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2157,6 +2335,7 @@ class GridRangeSelectEventPtr(GridRangeSelectEvent):
 _grid.GridRangeSelectEvent_swigregister(GridRangeSelectEventPtr)
 
 class GridEditorCreatedEvent(_core.CommandEvent):
+    """Proxy of C++ GridEditorCreatedEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridEditorCreatedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2216,6 +2395,7 @@ wxEVT_GRID_SELECT_CELL = _grid.wxEVT_GRID_SELECT_CELL
 wxEVT_GRID_EDITOR_SHOWN = _grid.wxEVT_GRID_EDITOR_SHOWN
 wxEVT_GRID_EDITOR_HIDDEN = _grid.wxEVT_GRID_EDITOR_HIDDEN
 wxEVT_GRID_EDITOR_CREATED = _grid.wxEVT_GRID_EDITOR_CREATED
+wxEVT_GRID_CELL_BEGIN_DRAG = _grid.wxEVT_GRID_CELL_BEGIN_DRAG
 EVT_GRID_CELL_LEFT_CLICK = wx.PyEventBinder( wxEVT_GRID_CELL_LEFT_CLICK )
 EVT_GRID_CELL_RIGHT_CLICK = wx.PyEventBinder( wxEVT_GRID_CELL_RIGHT_CLICK )
 EVT_GRID_CELL_LEFT_DCLICK = wx.PyEventBinder( wxEVT_GRID_CELL_LEFT_DCLICK )
@@ -2232,5 +2412,27 @@ EVT_GRID_SELECT_CELL = wx.PyEventBinder( wxEVT_GRID_SELECT_CELL )
 EVT_GRID_EDITOR_SHOWN = wx.PyEventBinder( wxEVT_GRID_EDITOR_SHOWN )
 EVT_GRID_EDITOR_HIDDEN = wx.PyEventBinder( wxEVT_GRID_EDITOR_HIDDEN )
 EVT_GRID_EDITOR_CREATED = wx.PyEventBinder( wxEVT_GRID_EDITOR_CREATED )
+EVT_GRID_CELL_BEGIN_DRAG = wx.PyEventBinder( wxEVT_GRID_CELL_BEGIN_DRAG )
+
+
+# The same as above but with the ability to specify an identifier
+EVT_GRID_CMD_CELL_LEFT_CLICK =     wx.PyEventBinder( wxEVT_GRID_CELL_LEFT_CLICK,    1 )
+EVT_GRID_CMD_CELL_RIGHT_CLICK =    wx.PyEventBinder( wxEVT_GRID_CELL_RIGHT_CLICK,   1 )
+EVT_GRID_CMD_CELL_LEFT_DCLICK =    wx.PyEventBinder( wxEVT_GRID_CELL_LEFT_DCLICK,   1 )
+EVT_GRID_CMD_CELL_RIGHT_DCLICK =   wx.PyEventBinder( wxEVT_GRID_CELL_RIGHT_DCLICK,  1 )
+EVT_GRID_CMD_LABEL_LEFT_CLICK =    wx.PyEventBinder( wxEVT_GRID_LABEL_LEFT_CLICK,   1 )
+EVT_GRID_CMD_LABEL_RIGHT_CLICK =   wx.PyEventBinder( wxEVT_GRID_LABEL_RIGHT_CLICK,  1 )
+EVT_GRID_CMD_LABEL_LEFT_DCLICK =   wx.PyEventBinder( wxEVT_GRID_LABEL_LEFT_DCLICK,  1 )
+EVT_GRID_CMD_LABEL_RIGHT_DCLICK =  wx.PyEventBinder( wxEVT_GRID_LABEL_RIGHT_DCLICK, 1 )
+EVT_GRID_CMD_ROW_SIZE =            wx.PyEventBinder( wxEVT_GRID_ROW_SIZE,           1 )
+EVT_GRID_CMD_COL_SIZE =            wx.PyEventBinder( wxEVT_GRID_COL_SIZE,           1 )
+EVT_GRID_CMD_RANGE_SELECT =        wx.PyEventBinder( wxEVT_GRID_RANGE_SELECT,       1 )
+EVT_GRID_CMD_CELL_CHANGE =         wx.PyEventBinder( wxEVT_GRID_CELL_CHANGE,        1 )
+EVT_GRID_CMD_SELECT_CELL =         wx.PyEventBinder( wxEVT_GRID_SELECT_CELL,        1 )
+EVT_GRID_CMD_EDITOR_SHOWN =        wx.PyEventBinder( wxEVT_GRID_EDITOR_SHOWN,       1 )
+EVT_GRID_CMD_EDITOR_HIDDEN =       wx.PyEventBinder( wxEVT_GRID_EDITOR_HIDDEN,      1 )
+EVT_GRID_CMD_EDITOR_CREATED =      wx.PyEventBinder( wxEVT_GRID_EDITOR_CREATED,     1 )
+EVT_GRID_CMD_CELL_BEGIN_DRAG =     wx.PyEventBinder( wxEVT_GRID_CELL_BEGIN_DRAG,    1 )
+