X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a693e6e0460b6b3c32e4b6f114a3ab7b7cd24ea..f6bcfd974ef26faf6f91a62cac09827e09463fd1:/wxPython/demo/GridHugeTable.py diff --git a/wxPython/demo/GridHugeTable.py b/wxPython/demo/GridHugeTable.py new file mode 100644 index 0000000000..69e3aed48b --- /dev/null +++ b/wxPython/demo/GridHugeTable.py @@ -0,0 +1,71 @@ +from wxPython.wx import * +from wxPython.grid import * + +#--------------------------------------------------------------------------- + +class HugeTable(wxPyGridTableBase): + + """ + This is all it takes to make a custom data table to plug into a + wxGrid. There are many more methods that can be overridden, but + the ones shown below are the required ones. This table simply + provides strings containing the row and column values. + """ + + def __init__(self, log): + wxPyGridTableBase.__init__(self) + self.log = log + + def GetNumberRows(self): + return 10000 + + def GetNumberCols(self): + return 10000 + + def IsEmptyCell(self, row, col): + return false + + def GetValue(self, row, col): + return str( (row, col) ) + + def SetValue(self, row, col, value): + self.log.write('SetValue(%d, %d, "%s") ignored.\n' % (row, col, value)) + + +#--------------------------------------------------------------------------- + + + +class HugeTableGrid(wxGrid): + def __init__(self, parent, log): + wxGrid.__init__(self, parent, -1) + + table = HugeTable(log) + + # The second parameter means that the grid is to take ownership of the + # table and will destroy it when done. Otherwise you would need to keep + # a reference to it and call it's Destroy method later. + self.SetTable(table, true) + + + +#--------------------------------------------------------------------------- + +class TestFrame(wxFrame): + def __init__(self, parent, log): + wxFrame.__init__(self, parent, -1, "Huge (virtual) Table Demo", size=(640,480)) + grid = HugeTableGrid(self, log) + + + +#--------------------------------------------------------------------------- + +if __name__ == '__main__': + import sys + app = wxPySimpleApp() + frame = TestFrame(None, sys.stdout) + frame.Show(true) + app.MainLoop() + + +#---------------------------------------------------------------------------