-# 11/18/2003 - Jeff Grimmett (grimmtooth@softhome.net)
-#
-# o Updated for wx namespace
-#
import wx
import wx.grid as Grid
import images
+#---------------------------------------------------------------------------
+
class MegaTable(Grid.PyGridTableBase):
"""
- A custom wxGrid Table using user supplied data
+ A custom wx.Grid Table using user supplied data
"""
def __init__(self, data, colnames, plugins):
"""data is a list of the form
def _updateColAttrs(self, grid):
"""
- wxGrid -> update the column attributes to add the
+ wx.Grid -> update the column attributes to add the
appropriate renderer given the column name. (renderers
are stored in the self.plugins dictionary)
# --------------------------------------------------------------------
-# Sample wxGrid renderers
+# Sample wx.Grid renderers
class MegaImageRenderer(Grid.PyGridCellRenderer):
def __init__(self, table):
self.table = table
self._choices = [images.getSmilesBitmap,
images.getMondrianBitmap,
- images.get_10s_Bitmap,
- images.get_01c_Bitmap]
+ images.getWXPdemoBitmap,
+ ]
self.colSize = None
self.rowSize = None
dc.SetPen(wx.Pen(wx.WHITE, 1, wx.SOLID))
dc.DrawRectangleRect(rect)
- #dc.DrawRectangle((rect.x, rect.y), (rect.width, rect.height))
# copy the image but only to the size of the grid cell
width, height = bmp.GetWidth(), bmp.GetHeight()
if height > rect.height-2:
height = rect.height-2
- dc.Blit((rect.x+1, rect.y+1), (width, height),
+ dc.Blit(rect.x+1, rect.y+1, width, height,
image,
- (0, 0), wx.COPY, True)
+ 0, 0, wx.COPY, True)
class MegaFontRenderer(Grid.PyGridCellRenderer):
dc.SetPen(wx.Pen(wx.WHITE, 1, wx.SOLID))
dc.DrawRectangleRect(rect)
- #dc.DrawRectangle((rect.x, rect.y), (rect.width, rect.height))
-
text = self.table.GetValue(row, col)
dc.SetBackgroundMode(wx.SOLID)
dc.SetTextForeground(self.color)
dc.SetFont(self.font)
- dc.DrawText(text, (rect.x+1, rect.y+1))
+ dc.DrawText(text, rect.x+1, rect.y+1)
# Okay, now for the advanced class :)
# Let's add three dots "..."
if width > rect.width-2:
width, height = dc.GetTextExtent("...")
x = rect.x+1 + rect.width-2 - width
- dc.DrawRectangle((x, rect.y+1), (width+1, height))
- dc.DrawText("...", (x, rect.y+1))
+ dc.DrawRectangle(x, rect.y+1, width+1, height)
+ dc.DrawText("...", x, rect.y+1)
dc.DestroyClippingRegion()
#---------------------------------------------------------------------------
+class TestPanel(wx.Panel):
+ def __init__(self, parent, log):
+ self.log = log
+ wx.Panel.__init__(self, parent, -1)
+
+ b = wx.Button(self, -1, "Show the MegaGrid", (50,50))
+ self.Bind(wx.EVT_BUTTON, self.OnButton, b)
+
+
+ def OnButton(self, evt):
+ win = TestFrame(self)
+ win.Show(True)
+
+#---------------------------------------------------------------------------
+
+
def runTest(frame, nb, log):
- win = TestFrame(frame)
- frame.otherWin = win
- win.Show(True)
+ win = TestPanel(nb, log)
+ return win
if __name__ == '__main__':
import sys,os
import run
- run.main(['', os.path.basename(sys.argv[0])])
+ run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])