X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2f0f3b0fd63ba9e0b1dfa5fb8954bc659d91f122..d0ee33f5c6908b4ac5e1364381f0ef00942e3936:/wxPython/demo/GridSimple.py diff --git a/wxPython/demo/GridSimple.py b/wxPython/demo/GridSimple.py index 97c0c6ef5d..e289ee0f55 100644 --- a/wxPython/demo/GridSimple.py +++ b/wxPython/demo/GridSimple.py @@ -1,19 +1,20 @@ -from wxPython.wx import * -from wxPython.grid import * -from wxPython.lib.mixins.grid import wxGridAutoEditMixin + +import wx +import wx.grid as gridlib +#import wx.lib.mixins.grid as mixins #--------------------------------------------------------------------------- -class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): +class SimpleGrid(gridlib.Grid): ##, mixins.GridAutoEditMixin): def __init__(self, parent, log): - wxGrid.__init__(self, parent, -1) - ##wxGridAutoEditMixin.__init__(self) + gridlib.Grid.__init__(self, parent, -1) + ##mixins.GridAutoEditMixin.__init__(self) self.log = log self.moveTo = None - EVT_IDLE(self, self.OnIdle) + self.Bind(wx.EVT_IDLE, self.OnIdle) - self.CreateGrid(25, 25) #, wxGrid.wxGridSelectRows) + self.CreateGrid(25, 25)#, gridlib.Grid.SelectRows) ##self.EnableEditing(False) # simple cell formatting @@ -23,16 +24,16 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): self.SetCellValue(1, 1, "Another cell") self.SetCellValue(2, 2, "Yet another cell") self.SetCellValue(3, 3, "This cell is read-only") - self.SetCellFont(0, 0, wxFont(12, wxROMAN, wxITALIC, wxNORMAL)) - self.SetCellTextColour(1, 1, wxRED) - self.SetCellBackgroundColour(2, 2, wxCYAN) + self.SetCellFont(0, 0, wx.Font(12, wx.ROMAN, wx.ITALIC, wx.NORMAL)) + self.SetCellTextColour(1, 1, wx.RED) + self.SetCellBackgroundColour(2, 2, wx.CYAN) self.SetReadOnly(3, 3, True) - self.SetCellEditor(5, 0, wxGridCellNumberEditor(1,1000)) + self.SetCellEditor(5, 0, gridlib.GridCellNumberEditor(1,1000)) self.SetCellValue(5, 0, "123") - self.SetCellEditor(6, 0, wxGridCellFloatEditor()) + self.SetCellEditor(6, 0, gridlib.GridCellFloatEditor()) self.SetCellValue(6, 0, "123.34") - self.SetCellEditor(7, 0, wxGridCellNumberEditor()) + self.SetCellEditor(7, 0, gridlib.GridCellNumberEditor()) self.SetCellValue(6, 3, "You can veto editing this cell") @@ -41,10 +42,10 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): # attribute objects let you keep a set of formatting values # in one spot, and reuse them if needed - attr = wxGridCellAttr() - attr.SetTextColour(wxBLACK) - attr.SetBackgroundColour(wxRED) - attr.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD)) + attr = gridlib.GridCellAttr() + attr.SetTextColour(wx.BLACK) + attr.SetBackgroundColour(wx.RED) + attr.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD)) # you can set cell attributes for the whole row (or column) self.SetRowAttr(5, attr) @@ -53,47 +54,46 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): self.SetColLabelValue(1, "column") self.SetColLabelValue(2, "labels") - self.SetColLabelAlignment(wxALIGN_LEFT, wxALIGN_BOTTOM) + self.SetColLabelAlignment(wx.ALIGN_LEFT, wx.ALIGN_BOTTOM) #self.SetDefaultCellOverflow(False) - #r = wxGridCellAutoWrapStringRenderer() + #r = gridlib.GridCellAutoWrapStringRenderer() #self.SetCellRenderer(9, 1, r) # overflow cells self.SetCellValue( 9, 1, "This default cell will overflow into neighboring cells, but not if you turn overflow off."); self.SetCellSize(11, 1, 3, 3); - self.SetCellAlignment(11, 1, wxALIGN_CENTRE, wxALIGN_CENTRE); + self.SetCellAlignment(11, 1, wx.ALIGN_CENTRE, wx.ALIGN_CENTRE); self.SetCellValue(11, 1, "This cell is set to span 3 rows and 3 columns"); - editor = wxGridCellTextEditor() + editor = gridlib.GridCellTextEditor() editor.SetParameters('10') self.SetCellEditor(0, 4, editor) self.SetCellValue(0, 4, "Limited text") # test all the events - EVT_GRID_CELL_LEFT_CLICK(self, self.OnCellLeftClick) - EVT_GRID_CELL_RIGHT_CLICK(self, self.OnCellRightClick) - EVT_GRID_CELL_LEFT_DCLICK(self, self.OnCellLeftDClick) - EVT_GRID_CELL_RIGHT_DCLICK(self, self.OnCellRightDClick) - - EVT_GRID_LABEL_LEFT_CLICK(self, self.OnLabelLeftClick) - EVT_GRID_LABEL_RIGHT_CLICK(self, self.OnLabelRightClick) - EVT_GRID_LABEL_LEFT_DCLICK(self, self.OnLabelLeftDClick) - EVT_GRID_LABEL_RIGHT_DCLICK(self, self.OnLabelRightDClick) + self.Bind(gridlib.EVT_GRID_CELL_LEFT_CLICK, self.OnCellLeftClick) + self.Bind(gridlib.EVT_GRID_CELL_RIGHT_CLICK, self.OnCellRightClick) + self.Bind(gridlib.EVT_GRID_CELL_LEFT_DCLICK, self.OnCellLeftDClick) + self.Bind(gridlib.EVT_GRID_CELL_RIGHT_DCLICK, self.OnCellRightDClick) - EVT_GRID_ROW_SIZE(self, self.OnRowSize) - EVT_GRID_COL_SIZE(self, self.OnColSize) + self.Bind(gridlib.EVT_GRID_LABEL_LEFT_CLICK, self.OnLabelLeftClick) + self.Bind(gridlib.EVT_GRID_LABEL_RIGHT_CLICK, self.OnLabelRightClick) + self.Bind(gridlib.EVT_GRID_LABEL_LEFT_DCLICK, self.OnLabelLeftDClick) + self.Bind(gridlib.EVT_GRID_LABEL_RIGHT_DCLICK, self.OnLabelRightDClick) - EVT_GRID_RANGE_SELECT(self, self.OnRangeSelect) - EVT_GRID_CELL_CHANGE(self, self.OnCellChange) - EVT_GRID_SELECT_CELL(self, self.OnSelectCell) + self.Bind(gridlib.EVT_GRID_ROW_SIZE, self.OnRowSize) + self.Bind(gridlib.EVT_GRID_COL_SIZE, self.OnColSize) - EVT_GRID_EDITOR_SHOWN(self, self.OnEditorShown) - EVT_GRID_EDITOR_HIDDEN(self, self.OnEditorHidden) - EVT_GRID_EDITOR_CREATED(self, self.OnEditorCreated) + self.Bind(gridlib.EVT_GRID_RANGE_SELECT, self.OnRangeSelect) + self.Bind(gridlib.EVT_GRID_CELL_CHANGE, self.OnCellChange) + self.Bind(gridlib.EVT_GRID_SELECT_CELL, self.OnSelectCell) + self.Bind(gridlib.EVT_GRID_EDITOR_SHOWN, self.OnEditorShown) + self.Bind(gridlib.EVT_GRID_EDITOR_HIDDEN, self.OnEditorHidden) + self.Bind(gridlib.EVT_GRID_EDITOR_CREATED, self.OnEditorCreated) def OnCellLeftClick(self, evt): @@ -136,7 +136,6 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() - def OnRowSize(self, evt): self.log.write("OnRowSize: row %d, %s\n" % (evt.GetRowOrCol(), evt.GetPosition())) @@ -160,9 +159,10 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): # 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 + # won't have any effect. Instead, set coordinates to move to in # idle time. value = self.GetCellValue(evt.GetRow(), evt.GetCol()) + if value == 'no good': self.moveTo = evt.GetRow(), evt.GetCol() @@ -171,6 +171,7 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): if self.moveTo != None: self.SetGridCursor(self.moveTo[0], self.moveTo[1]) self.moveTo = None + evt.Skip() @@ -181,19 +182,23 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): # 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 + 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: + wx.MessageBox("Are you sure you wish to edit this cell?", + "Checking", wx.YES_NO) == wx.NO: evt.Veto() return @@ -204,8 +209,8 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): 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: + wx.MessageBox("Are you sure you wish to finish editing this cell?", + "Checking", wx.YES_NO) == wx.NO: evt.Veto() return @@ -222,9 +227,9 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): #--------------------------------------------------------------------------- -class TestFrame(wxFrame): +class TestFrame(wx.Frame): def __init__(self, parent, log): - wxFrame.__init__(self, parent, -1, "Simple Grid Demo", size=(640,480)) + wx.Frame.__init__(self, parent, -1, "Simple Grid Demo", size=(640,480)) grid = SimpleGrid(self, log) @@ -233,7 +238,7 @@ class TestFrame(wxFrame): if __name__ == '__main__': import sys - app = wxPySimpleApp() + app = wx.PySimpleApp() frame = TestFrame(None, sys.stdout) frame.Show(True) app.MainLoop()