X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3ca6a5f04692678cd2d9f3ea0843fc3f5a0b254f..08b50c2c6cef0b223338feffad26d103930f1f82:/wxPython/demo/GridSimple.py?ds=sidebyside diff --git a/wxPython/demo/GridSimple.py b/wxPython/demo/GridSimple.py index f816e7a3f4..bafd643cf2 100644 --- a/wxPython/demo/GridSimple.py +++ b/wxPython/demo/GridSimple.py @@ -7,6 +7,9 @@ class SimpleGrid(wxGrid): def __init__(self, parent, log): wxGrid.__init__(self, parent, -1) self.log = log + self.moveTo = None + + EVT_IDLE(self, self.OnIdle) self.CreateGrid(25, 25) @@ -113,15 +116,43 @@ class SimpleGrid(wxGrid): (evt.GetTopLeftCoords(), evt.GetBottomRightCoords())) evt.Skip() + def OnCellChange(self, evt): self.log.write("OnCellChange: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() + + # Show how to stay in a cell that has bad data. We can't just + # call SetGridCursor here since we are nested inside one so it + # won't have any effect. Instead, set coordinants to move to in + # idle time. + value = self.GetCellValue(evt.GetRow(), evt.GetCol()) + if value == 'no good': + self.moveTo = evt.GetRow(), evt.GetCol() + + def OnIdle(self, evt): + if self.moveTo != None: + self.SetGridCursor(self.moveTo[0], self.moveTo[1]) + self.moveTo = None + + def OnSelectCell(self, evt): self.log.write("OnSelectCell: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() + + # Another way to stay in a cell that has a bad value... + row = self.GetGridCursorRow() + col = self.GetGridCursorCol() + if self.IsCellEditControlEnabled(): + self.HideCellEditControl() + self.DisableCellEditControl() + value = self.GetCellValue(row, col) + if value == 'no good 2': + return # cancels the cell selection + else: + evt.Skip() + + def OnEditorShown(self, evt): self.log.write("OnEditorShown: (%d,%d) %s\n" % @@ -154,3 +185,5 @@ if __name__ == '__main__': #--------------------------------------------------------------------------- + +