X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9416aa89ca06d0fb20b1002e026d2c7ac7aa6a17..768f1af6a29f426b62aa14f854bf4847dc384a7e:/wxPython/demo/GridSimple.py?ds=sidebyside diff --git a/wxPython/demo/GridSimple.py b/wxPython/demo/GridSimple.py index 215eb58490..9857e22ae0 100644 --- a/wxPython/demo/GridSimple.py +++ b/wxPython/demo/GridSimple.py @@ -1,17 +1,20 @@ from wxPython.wx import * from wxPython.grid import * +from wxPython.lib.mixins.grid import wxGridAutoEditMixin #--------------------------------------------------------------------------- -class SimpleGrid(wxGrid): +class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): def __init__(self, parent, log): wxGrid.__init__(self, parent, -1) + ##wxGridAutoEditMixin.__init__(self) self.log = log self.moveTo = None EVT_IDLE(self, self.OnIdle) self.CreateGrid(25, 25) + ##self.EnableEditing(false) # simple cell formatting self.SetColSize(3, 200) @@ -25,6 +28,14 @@ class SimpleGrid(wxGrid): self.SetCellBackgroundColour(2, 2, wxCYAN) self.SetReadOnly(3, 3, true) + self.SetCellEditor(5, 0, wxGridCellNumberEditor()) + self.SetCellValue(5, 0, "123") + self.SetCellEditor(6, 0, wxGridCellFloatEditor()) + self.SetCellValue(6, 0, "123.34") + self.SetCellEditor(7, 0, wxGridCellNumberEditor()) + + self.SetCellValue(6, 3, "You can veto editing this cell") + # attribute objects let you keep a set of formatting values # in one spot, and reuse them if needed @@ -62,6 +73,8 @@ class SimpleGrid(wxGrid): EVT_GRID_EDITOR_SHOWN(self, self.OnEditorShown) EVT_GRID_EDITOR_HIDDEN(self, self.OnEditorHidden) + EVT_GRID_EDITOR_CREATED(self, self.OnEditorCreated) + def OnCellLeftClick(self, evt): @@ -134,11 +147,12 @@ class SimpleGrid(wxGrid): 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 - + evt.Skip() def OnSelectCell(self, evt): @@ -154,22 +168,39 @@ class SimpleGrid(wxGrid): value = self.GetCellValue(row, col) if value == 'no good 2': return # cancels the cell selection - else: - evt.Skip() - + evt.Skip() def OnEditorShown(self, evt): + if evt.GetRow() == 6 and evt.GetCol() == 3 and \ + wxMessageBox("Are you sure you wish to edit this cell?", + "Checking", wxYES_NO) == wxNO: + evt.Veto() + return + self.log.write("OnEditorShown: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() + def OnEditorHidden(self, evt): + if evt.GetRow() == 6 and evt.GetCol() == 3 and \ + wxMessageBox("Are you sure you wish to finish editing this cell?", + "Checking", wxYES_NO) == wxNO: + evt.Veto() + return + self.log.write("OnEditorHidden: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() + def OnEditorCreated(self, evt): + self.log.write("OnEditorCreated: (%d, %d) %s\n" % + (evt.GetRow(), evt.GetCol(), evt.GetControl())) + + + #--------------------------------------------------------------------------- class TestFrame(wxFrame):