]> git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/GridEnterHandler.py
wxPython metadata xml
[wxWidgets.git] / wxPython / demo / GridEnterHandler.py
1 # 11/6/2003 - Jeff Grimmett (grimmtooth@softhome.net)
2 #
3 # o Updated for wx namespace
4 #
5
6 import wx
7 import wx.grid as gridlib
8
9 #---------------------------------------------------------------------------
10
11 class NewEnterHandlingGrid(gridlib.Grid):
12 def __init__(self, parent, log):
13 gridlib.Grid.__init__(self, parent, -1)
14 self.log = log
15
16 self.CreateGrid(20, 6)
17
18 self.SetCellValue(0, 0, "Enter moves to the right")
19 self.SetCellValue(0, 5, "Enter wraps to next row")
20 self.SetColSize(0, 150)
21 self.SetColSize(5, 150)
22
23 self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
24
25
26 def OnKeyDown(self, evt):
27 if evt.KeyCode() != wx.WXK_RETURN:
28 evt.Skip()
29 return
30
31 if evt.ControlDown(): # the edit control needs this key
32 evt.Skip()
33 return
34
35 self.DisableCellEditControl()
36 success = self.MoveCursorRight(evt.ShiftDown())
37
38 if not success:
39 newRow = self.GetGridCursorRow() + 1
40
41 if newRow < self.GetTable().GetNumberRows():
42 self.SetGridCursor(newRow, 0)
43 self.MakeCellVisible(newRow, 0)
44 else:
45 # this would be a good place to add a new row if your app
46 # needs to do that
47 pass
48
49
50 #---------------------------------------------------------------------------
51
52 class TestFrame(wx.Frame):
53 def __init__(self, parent, log):
54 wx.Frame.__init__(self, parent, -1, "Simple Grid Demo", size=(640,480))
55 grid = NewEnterHandlingGrid(self, log)
56
57
58
59 #---------------------------------------------------------------------------
60
61 if __name__ == '__main__':
62 import sys
63 app = wx.PySimpleApp()
64 frame = TestFrame(None, sys.stdout)
65 frame.Show(True)
66 app.MainLoop()
67
68
69 #---------------------------------------------------------------------------