--- /dev/null
+from wxPython.wx import *
+from wxPython.grid import *
+
+#---------------------------------------------------------------------------
+
+class NewEnterHandlingGrid(wxGrid):
+ def __init__(self, parent, log):
+ wxGrid.__init__(self, parent, -1)
+ self.log = log
+
+ self.CreateGrid(20, 6)
+
+ self.SetCellValue(0, 0, "Enter moves to the right")
+ self.SetCellValue(0, 5, "Enter wraps to next row")
+ self.SetColSize(0, 150)
+ self.SetColSize(5, 150)
+
+ EVT_KEY_DOWN(self, self.OnKeyDown)
+
+
+ def OnKeyDown(self, evt):
+ if evt.KeyCode() != WXK_RETURN:
+ evt.Skip()
+ return
+
+ if evt.ControlDown(): # the edit control needs this key
+ evt.Skip()
+ return
+
+ self.DisableCellEditControl()
+ success = self.MoveCursorRight(evt.ShiftDown())
+ if not success:
+ newRow = self.GetGridCursorRow() + 1
+ if newRow < self.GetTable().GetNumberRows():
+ self.SetGridCursor(newRow, 0)
+ self.MakeCellVisible(newRow, 0)
+ else:
+ # this would be a good place to add a new row if your app
+ # needs to do that
+ pass
+
+
+#---------------------------------------------------------------------------
+
+class TestFrame(wxFrame):
+ def __init__(self, parent, log):
+ wxFrame.__init__(self, parent, -1, "Simple Grid Demo", size=(640,480))
+ grid = NewEnterHandlingGrid(self, log)
+
+
+
+#---------------------------------------------------------------------------
+
+if __name__ == '__main__':
+ import sys
+ app = wxPySimpleApp()
+ frame = TestFrame(None, sys.stdout)
+ frame.Show(true)
+ app.MainLoop()
+
+
+#---------------------------------------------------------------------------