]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/GridHugeTable.py
Change event names to clarify that they are only fired by button clicks, and note...
[wxWidgets.git] / wxPython / demo / GridHugeTable.py
index 69e3aed48b4447484db2bb4a8e46729e430a2f61..cd5d2e258ef1f035644cc32e6cbe844658719bbc 100644 (file)
@@ -1,21 +1,32 @@
-from wxPython.wx import *
-from wxPython.grid import *
 
-#---------------------------------------------------------------------------
+import  wx
+import  wx.grid as  gridlib
 
-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.
-    """
+class HugeTable(gridlib.PyGridTableBase):
 
     def __init__(self, log):
-        wxPyGridTableBase.__init__(self)
+        gridlib.PyGridTableBase.__init__(self)
         self.log = log
 
+        self.odd=gridlib.GridCellAttr()
+        self.odd.SetBackgroundColour("sky blue")
+        self.even=gridlib.GridCellAttr()
+        self.even.SetBackgroundColour("sea green")
+
+    def GetAttr(self, row, col, kind):
+        attr = [self.even, self.odd][row % 2]
+        attr.IncRef()
+        return attr
+
+
+    
+    # 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 GetNumberRows(self):
         return 10000
 
@@ -23,7 +34,7 @@ class HugeTable(wxPyGridTableBase):
         return 10000
 
     def IsEmptyCell(self, row, col):
-        return false
+        return False
 
     def GetValue(self, row, col):
         return str( (row, col) )
@@ -36,35 +47,40 @@ class HugeTable(wxPyGridTableBase):
 
 
 
-class HugeTableGrid(wxGrid):
+class HugeTableGrid(gridlib.Grid):
     def __init__(self, parent, log):
-        wxGrid.__init__(self, parent, -1)
+        gridlib.Grid.__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)
+        self.SetTable(table, True)
+
+        self.Bind(gridlib.EVT_GRID_CELL_RIGHT_CLICK, self.OnRightDown)  
 
+    def OnRightDown(self, event):
+        print "hello"
+        print self.GetSelectedRows()
 
 
 #---------------------------------------------------------------------------
 
-class TestFrame(wxFrame):
+class TestFrame(wx.Frame):
     def __init__(self, parent, log):
-        wxFrame.__init__(self, parent, -1, "Huge (virtual) Table Demo", size=(640,480))
+        wx.Frame.__init__(self, parent, -1, "Huge (virtual) Table Demo", size=(640,480))
         grid = HugeTableGrid(self, log)
 
-
+        grid.SetReadOnly(5,5, True)
 
 #---------------------------------------------------------------------------
 
 if __name__ == '__main__':
     import sys
-    app = wxPySimpleApp()
+    app = wx.PySimpleApp()
     frame = TestFrame(None, sys.stdout)
-    frame.Show(true)
+    frame.Show(True)
     app.MainLoop()