Demo updates for new wx namespace, from Jeff Grimmett

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24723 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2003-12-09 01:23:28 +00:00
parent a61d40115f
commit 8fa876ca9e
147 changed files with 7313 additions and 5154 deletions

View File

@@ -1,13 +1,19 @@
from wxPython.wx import *
from wxPython.grid import *
# 11/25/2003 - Jeff Grimmett (grimmtooth@softhome.net)
#
# o Updated for V2.5
# o There is one wx.Size() I haven't figured out how to get rid of yet.
#
import random
import random
import wx
import wx.grid as gridlib
#---------------------------------------------------------------------------
class MyCustomRenderer(wxPyGridCellRenderer):
class MyCustomRenderer(gridlib.PyGridCellRenderer):
def __init__(self):
wxPyGridCellRenderer.__init__(self)
gridlib.PyGridCellRenderer.__init__(self)
def Draw(self, grid, attr, dc, rect, row, col, isSelected):
dc.SetBackgroundMode(wxSOLID)
@@ -15,13 +21,14 @@ class MyCustomRenderer(wxPyGridCellRenderer):
dc.SetPen(wxTRANSPARENT_PEN)
dc.DrawRectangleRect(rect)
dc.SetBackgroundMode(wxTRANSPARENT)
dc.SetBackgroundMode(wx.TRANSPARENT)
dc.SetFont(attr.GetFont())
text = grid.GetCellValue(row, col)
colors = ["RED", "WHITE", "SKY BLUE"]
x = rect.x + 1
y = rect.y + 1
for ch in text:
dc.SetTextForeground(random.choice(colors))
dc.DrawText(ch, (x, y))
@@ -35,7 +42,7 @@ class MyCustomRenderer(wxPyGridCellRenderer):
text = grid.GetCellValue(row, col)
dc.SetFont(attr.GetFont())
w, h = dc.GetTextExtent(text)
return wxSize(w, h)
return wx.Size(w, h)
def Clone(self):
@@ -45,34 +52,33 @@ class MyCustomRenderer(wxPyGridCellRenderer):
#---------------------------------------------------------------------------
rendererDemoData = [
('wxGridCellStringRenderer\n(the default)', 'this is a text value', wxGridCellStringRenderer, ()),
('wxGridCellNumberRenderer', '12345', wxGridCellNumberRenderer, ()),
('wxGridCellFloatRenderer', '1234.5678', wxGridCellFloatRenderer, (6,2)),
('wxGridCellBoolRenderer', '1', wxGridCellBoolRenderer, ()),
('GridCellStringRenderer\n(the default)', 'this is a text value', gridlib.GridCellStringRenderer, ()),
('GridCellNumberRenderer', '12345', gridlib.GridCellNumberRenderer, ()),
('GridCellFloatRenderer', '1234.5678', gridlib.GridCellFloatRenderer, (6,2)),
('GridCellBoolRenderer', '1', gridlib.GridCellBoolRenderer, ()),
('MyCustomRenderer', 'This is my renderer', MyCustomRenderer, ()),
]
editorDemoData = [
('wxGridCellTextEditor\n(the default)', 'Here is some more text', wxGridCellTextEditor, ()),
('wxGridCellNumberEditor\nwith min,max', '101', wxGridCellNumberEditor, (5, 10005)),
('wxGridCellNumberEditor\nwithout bounds', '101', wxGridCellNumberEditor, ()),
('wxGridCellFloatEditor', '1234.5678', wxGridCellFloatEditor, ()),
('wxGridCellBoolEditor', '1', wxGridCellBoolEditor, ()),
('wxGridCellChoiceEditor', 'one', wxGridCellChoiceEditor, (['one', 'two', 'three', 'four',
('GridCellTextEditor\n(the default)', 'Here is some more text', gridlib.GridCellTextEditor, ()),
('GridCellNumberEditor\nwith min,max', '101', gridlib.GridCellNumberEditor, (5, 10005)),
('GridCellNumberEditor\nwithout bounds', '101', gridlib.GridCellNumberEditor, ()),
('GridCellFloatEditor', '1234.5678', gridlib.GridCellFloatEditor, ()),
('GridCellBoolEditor', '1', gridlib.GridCellBoolEditor, ()),
('GridCellChoiceEditor', 'one', gridlib.GridCellChoiceEditor, (['one', 'two', 'three', 'four',
'kick', 'Microsoft', 'out the',
'door'], False)),
]
comboDemoData = [
('wxGridCellNumberRenderer\nwxGridCellNumberEditor', '20792', wxGridCellNumberRenderer, wxGridCellNumberEditor),
('wxGridCellBoolRenderer\nwxGridCellBoolEditor', '1', wxGridCellBoolRenderer, wxGridCellBoolEditor),
('GridCellNumberRenderer\nGridCellNumberEditor', '20792', gridlib.GridCellNumberRenderer, gridlib.GridCellNumberEditor),
('GridCellBoolRenderer\nGridCellBoolEditor', '1', gridlib.GridCellBoolRenderer, gridlib.GridCellBoolEditor),
]
class EditorsAndRenderersGrid(wxGrid):
class EditorsAndRenderersGrid(gridlib.Grid):
def __init__(self, parent, log):
wxGrid.__init__(self, parent, -1)
gridlib.Grid.__init__(self, parent, -1)
self.log = log
self.CreateGrid(25, 8)
@@ -106,6 +112,7 @@ Renderers used together.
''')
row = 2
for label, value, renderClass, args in rendererDemoData:
renderer = renderClass(*args)
self.SetCellValue(row, renCol, label)
@@ -115,6 +122,7 @@ Renderers used together.
row = 2
for label, value, editorClass, args in editorDemoData:
editor = editorClass(*args)
self.SetCellValue(row, edCol, label)
@@ -124,6 +132,7 @@ Renderers used together.
row = 18
for label, value, renClass, edClass in comboDemoData:
self.SetCellValue(row, renCol, label)
self.SetCellValue(row, renCol+1, value)
@@ -133,14 +142,13 @@ Renderers used together.
self.SetCellRenderer(row, renCol+1, renderer)
row = row + 2
font = self.GetFont()
font.SetWeight(wxBOLD)
attr = wxGridCellAttr()
font.SetWeight(wx.BOLD)
attr = gridlib.GridCellAttr()
attr.SetFont(font)
attr.SetBackgroundColour(wxLIGHT_GREY)
attr.SetBackgroundColour(wx.LIGHT_GREY)
attr.SetReadOnly(True)
attr.SetAlignment(wxRIGHT, -1)
attr.SetAlignment(wx.RIGHT, -1)
self.SetColAttr(renCol, attr)
attr.IncRef()
self.SetColAttr(edCol, attr)
@@ -149,7 +157,7 @@ Renderers used together.
self.AutoSizeColumns(True)
self.AutoSizeRows(True)
EVT_GRID_CELL_LEFT_DCLICK(self, self.OnLeftDClick)
self.Bind(gridlib.EVT_GRID_CELL_LEFT_DCLICK, self.OnLeftDClick)
# I do this because I don't like the default behaviour of not starting the
@@ -161,9 +169,9 @@ Renderers used together.
#---------------------------------------------------------------------------
class TestFrame(wxFrame):
class TestFrame(wx.Frame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, "Editors and Renderers Demo", size=(640,480))
wx.Frame.__init__(self, parent, -1, "Editors and Renderers Demo", size=(640,480))
grid = EditorsAndRenderersGrid(self, log)
@@ -172,7 +180,7 @@ class TestFrame(wxFrame):
if __name__ == '__main__':
import sys
app = wxPySimpleApp()
app = wx.PySimpleApp()
frame = TestFrame(None, sys.stdout)
frame.Show(True)
app.MainLoop()