X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/53fe40bac2443a81d05c4803942731a77de0880d..258836fa259076b4bda6088fe653218645b2e26d:/wxPython/demo/GridSimple.py diff --git a/wxPython/demo/GridSimple.py b/wxPython/demo/GridSimple.py index 3052a26538..267867c434 100644 --- a/wxPython/demo/GridSimple.py +++ b/wxPython/demo/GridSimple.py @@ -13,7 +13,8 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): EVT_IDLE(self, self.OnIdle) - self.CreateGrid(25, 25) + self.CreateGrid(25, 25) #, wxGrid.wxGridSelectRows) + ##self.EnableEditing(False) # simple cell formatting self.SetColSize(3, 200) @@ -25,12 +26,16 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): self.SetCellFont(0, 0, wxFont(12, wxROMAN, wxITALIC, wxNORMAL)) self.SetCellTextColour(1, 1, wxRED) self.SetCellBackgroundColour(2, 2, wxCYAN) - self.SetReadOnly(3, 3, true) + self.SetReadOnly(3, 3, True) - self.SetCellEditor(5, 0, wxGridCellNumberEditor()) + self.SetCellEditor(5, 0, wxGridCellNumberEditor(1,1000)) 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 @@ -48,6 +53,23 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): self.SetColLabelAlignment(wxALIGN_LEFT, wxALIGN_BOTTOM) + #self.SetDefaultCellOverflow(False) + #r = wxGridCellAutoWrapStringRenderer() + #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.SetCellValue(11, 1, "This cell is set to span 3 rows and 3 columns"); + + + editor = wxGridCellTextEditor() + 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) @@ -167,15 +189,29 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): 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())) @@ -187,37 +223,8 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): class TestFrame(wxFrame): def __init__(self, parent, log): wxFrame.__init__(self, parent, -1, "Simple Grid Demo", size=(640,480)) - self.grid = grid = SimpleGrid(self, log) - - self.mainmenu = wxMenuBar() - - menu = wxMenu() - - mID = NewId() - menu.Append(mID, 'Preview Grid', 'Print Displayed Grid') - EVT_MENU(self, mID, self.OnPreviewGrid) - self.mainmenu.Append(menu, '&Print') - - self.SetMenuBar(self.mainmenu) - - def OnPreviewGrid(self, event): - from wxPython.lib.printout import PrintGrid - grid = self.grid - - total_col = 4 # not all columns to be used for printing - total_row = 4 - - format = [1, 1.5, 2.5, 4, 5, 7] # column spacing - - # class to print and preview - prt = PrintGrid(self, grid, format, total_col, total_row ) - prt.SetAttributes() # get the colour and text attributes - - table = prt.GetTable() # the table print control class - table.SetHeader("Simple Grid Test Header") - table.SetFooter() + grid = SimpleGrid(self, log) - prt.Preview() # preview the table #--------------------------------------------------------------------------- @@ -226,7 +233,7 @@ if __name__ == '__main__': import sys app = wxPySimpleApp() frame = TestFrame(None, sys.stdout) - frame.Show(true) + frame.Show(True) app.MainLoop()