# fixed bug for string wider than print region
# add index to data list after parsing total pages for paging
#----------------------------------------------------------------------------
+# 12/10/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o 2.5 compatability update.
+#
-import os, sys, copy
+import copy
+import os
+import sys
-from wxPython.wx import *
-import copy
+import wx
class PrintBase:
def SetPrintFont(self, font): # set the DC font parameters
fattr = font["Attr"]
if fattr[0] == 1:
- weight = wxBOLD
+ weight = wx.BOLD
else:
- weight = wxNORMAL
+ weight = wx.NORMAL
if fattr[1] == 1:
- set_style = wxITALIC
+ set_style = wx.ITALIC
else:
- set_style = wxNORMAL
+ set_style = wx.NORMAL
underline = fattr[2]
fcolour = self.GetFontColour(font)
self.DC.SetTextForeground(fcolour)
- setfont = wxFont(font["Size"], wxSWISS, set_style, weight, underline)
+ setfont = wx.Font(font["Size"], wx.SWISS, set_style, weight, underline)
setfont.SetFaceName(font["Name"])
self.DC.SetFont(setfont)
def GetFontColour(self, font):
fcolour = font["Colour"]
- return wxColour(fcolour[0], fcolour[1], fcolour[2])
+ return wx.Colour(fcolour[0], fcolour[1], fcolour[2])
def OutTextRegion(self, textout, txtdraw = True):
textlines = textout.split('\n')
vout, remain = self.SetFlow(text, self.region)
if self.draw == True and txtdraw == True:
test_out = self.TestFull(vout)
- if self.align == wxALIGN_LEFT:
- self.DC.DrawText(test_out, self.indent+self.pcell_left_margin, y)
+ if self.align == wx.ALIGN_LEFT:
+ self.DC.DrawText(test_out, (self.indent+self.pcell_left_margin, y))
- elif self.align == wxALIGN_CENTRE:
+ elif self.align == wx.ALIGN_CENTRE:
diff = self.GetCellDiff(test_out, self.region)
- self.DC.DrawText(test_out, self.indent+diff/2, y)
+ self.DC.DrawText(test_out, (self.indent+diff/2, y))
- elif self.align == wxALIGN_RIGHT:
+ elif self.align == wx.ALIGN_RIGHT:
diff = self.GetCellDiff(test_out, self.region)
- self.DC.DrawText(test_out, self.indent+diff, y)
+ self.DC.DrawText(test_out, (self.indent+diff, y))
else:
- self.DC.DrawText(test_out, self.indent+self.pcell_left_margin, y)
+ self.DC.DrawText(test_out, (self.indent+self.pcell_left_margin, y))
text = remain
y = y + self.space
return y - self.space + self.pt_space_after
vout, remain = self.SetFlow(text, pagew)
if self.draw == True and txtdraw == True:
test_out = vout
- if align == wxALIGN_LEFT:
- self.DC.DrawText(test_out, indent, y)
+ if align == wx.ALIGN_LEFT:
+ self.DC.DrawText(test_out, (indent, y))
- elif align == wxALIGN_CENTRE:
+ elif align == wx.ALIGN_CENTRE:
diff = self.GetCellDiff(test_out, pagew)
- self.DC.DrawText(test_out, indent+diff/2, y)
+ self.DC.DrawText(test_out, (indent+diff/2, y))
- elif align == wxALIGN_RIGHT:
+ elif align == wx.ALIGN_RIGHT:
diff = self.GetCellDiff(test_out, pagew)
- self.DC.DrawText(test_out, indent+diff, y)
+ self.DC.DrawText(test_out, (indent+diff, y))
else:
- self.DC.DrawText(test_out, indent, y_out)
+ self.DC.DrawText(test_out, (indent, y_out))
text = remain
y = y + y_line
return y - y_line
return date + ' ' + time
def GetNow(self):
- full = str(wxDateTime_Now()) # get the current date and time in print format
+ full = str(wx.DateTime_Now()) # get the current date and time in print format
flds = full.split()
date = flds[0]
time = flds[1]
return self.sizeh
-class PrintTableDraw(wxScrolledWindow, PrintBase):
+class PrintTableDraw(wx.ScrolledWindow, PrintBase):
def __init__(self, parent, DC, size):
self.parent = parent
self.DC = DC
try:
align = set_column_align[col] # check if custom column alignment
except:
- align = wxALIGN_LEFT
+ align = wx.ALIGN_LEFT
self.column_align.append(align)
try:
col = col + 1
def SetPointAdjust(self):
- f = wxFont(10, wxSWISS, wxNORMAL, wxNORMAL) # setup using 10 point
+ f = wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL) # setup using 10 point
self.DC.SetFont(f)
f.SetFaceName(self.text_font["Name"])
x, y = self.DC.GetTextExtent("W")
self.region = self.column[self.col+1] - self.column[self.col]
self.indent = self.column[self.col]
- self.align = wxALIGN_LEFT
+ self.align = wx.ALIGN_LEFT
max_out = self.OutTextRegion(vtxt, True)
if max_out > max_y:
def LabelColorRow(self, colour):
- brush = wxBrush(colour, wxSOLID)
+ brush = wx.Brush(colour, wx.SOLID)
self.DC.SetBrush(brush)
height = self.label_space + self.label_pt_space_before + self.label_pt_space_after
- self.DC.DrawRectangle(self.column[0], self.y, self.end_x-self.column[0]+1, height)
+ self.DC.DrawRectangle((self.column[0], self.y),
+ (self.end_x-self.column[0]+1, height))
def ColourRowCells(self, height):
if self.draw == False:
if cellcolour is not None:
colour = cellcolour
- brush = wxBrush(colour, wxSOLID)
+ brush = wx.Brush(colour, wx.SOLID)
self.DC.SetBrush(brush)
- self.DC.SetPen(wxPen(wxNamedColour('WHITE'), 0))
+ self.DC.SetPen(wx.Pen(wx.NamedColour('WHITE'), 0))
start_x = self.column[col]
width = self.column[col+1] - start_x + 2
- self.DC.DrawRectangle(start_x, self.y, width, height)
+ self.DC.DrawRectangle((start_x, self.y), (width, height))
col = col + 1
- def PrintRow(self, row_val, draw = True, align = wxALIGN_LEFT):
+ def PrintRow(self, row_val, draw = True, align = wx.ALIGN_LEFT):
self.SetPrintFont(self.text_font)
self.pt_space_before = self.text_pt_space_before # set the point spacing
except:
colour = self.row_def_line_colour
- self.DC.SetPen(wxPen(colour, size))
+ self.DC.SetPen(wx.Pen(colour, size))
y_out = self.y
# y_out = self.y + self.pt_space_before + self.pt_space_after # adjust for extra spacing
- self.DC.DrawLine(self.column[0], y_out, self.end_x, y_out)
+ self.DC.DrawLine((self.column[0], y_out), (self.end_x, y_out))
def DrawColumns(self):
if self.draw == True:
indent = val
- self.DC.SetPen(wxPen(colour, size))
- self.DC.DrawLine(indent, self.y_start, indent, self.y)
+ self.DC.SetPen(wx.Pen(colour, size))
+ self.DC.DrawLine((indent, self.y_start), (indent, self.y))
col = col + 1
def DrawText(self):
self.DoRefresh()
def DoDrawing(self, DC):
- size = DC.GetSizeTuple()
+ size = DC.GetSize()
self.DC = DC
DC.BeginDrawing()
self.parentFrame = parentFrame
self.SetPreviewSize()
- self.printData = wxPrintData()
+ self.printData = wx.PrintData()
self.scale = 1.0
self.SetParms()
self.SetMargins()
self.SetPortrait()
- def SetPreviewSize(self, position = wxPoint(0, 0), size="Full"):
+ def SetPreviewSize(self, position = wx.Point(0, 0), size="Full"):
if size == "Full":
- r = wxGetClientDisplayRect()
- self.preview_frame_size = wxSize(r.width, r.height)
- self.preview_frame_pos = wxPoint(r.x, r.y)
+ r = wx.GetClientDisplayRect()
+ self.preview_frame_size = r.GetSize()
+ self.preview_frame_pos = r.GetPosition()
else:
self.preview_frame_size = size
self.preview_frame_pos = position
self.printData.SetOrientation(orient)
def SetColors(self):
- self.row_def_line_colour = wxNamedColour('BLACK')
+ self.row_def_line_colour = wx.NamedColour('BLACK')
self.row_def_line_size = 1
- self.column_def_line_colour = wxNamedColour('BLACK')
+ self.column_def_line_colour = wx.NamedColour('BLACK')
self.column_def_line_size = 1
- self.column_colour = wxNamedColour('WHITE')
+ self.column_colour = wx.NamedColour('WHITE')
- self.label_colour = wxNamedColour('LIGHT GREY')
+ self.label_colour = wx.NamedColour('LIGHT GREY')
def SetFonts(self):
self.label_font = { "Name": self.default_font_name, "Size": 12, "Colour": [0, 0, 0], "Attr": [0, 0, 0] }
def SetHeaderValue(self):
self.header_margin = 0.25
self.header_font = { "Name": self.default_font_name, "Size": 11, "Colour": [0, 0, 0], "Attr": [0, 0, 0] }
- self.header_align = wxALIGN_CENTRE
+ self.header_align = wx.ALIGN_CENTRE
self.header_indent = 0
self.header_type = "Text"
def SetFooterValue(self):
self.footer_margin = 0.7
self.footer_font = { "Name": self.default_font_name, "Size": 11, "Colour": [0, 0, 0], "Attr": [0, 0, 0] }
- self.footer_align = wxALIGN_CENTRE
+ self.footer_align = wx.ALIGN_CENTRE
self.footer_indent = 0
self.footer_type = "Pageof"
self.cell_right_margin = 0.1
def SetPortrait(self):
- self.printData.SetPaperId(wxPAPER_LETTER)
- self.printData.SetOrientation(wxPORTRAIT)
+ self.printData.SetPaperId(wx.PAPER_LETTER)
+ self.printData.SetOrientation(wx.PORTRAIT)
self.page_width = 8.5
self.page_height = 11.0
def SetLandscape(self):
- self.printData.SetOrientation(wxLANDSCAPE)
+ self.printData.SetOrientation(wx.LANDSCAPE)
self.page_width = 11.0
self.page_height = 8.5
self.default_font_name = "Arial"
self.default_font = { "Name": self.default_font_name, "Size": 10, "Colour": [0, 0, 0], "Attr": [0, 0, 0] }
- def SetColAlignment(self, col, align=wxALIGN_LEFT):
+ def SetColAlignment(self, col, align=wx.ALIGN_LEFT):
self.set_column_align[col] = align
def SetColBackgroundColour(self, col, colour):
def Preview(self):
printout = SetPrintout(self)
printout2 = SetPrintout(self)
- self.preview = wxPrintPreview(printout, printout2, self.printData)
+ self.preview = wx.PrintPreview(printout, printout2, self.printData)
if not self.preview.Ok():
- wxMessageBox("There was a problem printing!", "Printing", wxOK)
+ wxMessageBox("There was a problem printing!", "Printing", wx.OK)
return
self.preview.SetZoom(60) # initial zoom value
- frame = wxPreviewFrame(self.preview, self.parentFrame, "Print preview")
+ frame = wx.PreviewFrame(self.preview, self.parentFrame, "Print preview")
frame.Initialize()
if self.parentFrame:
frame.Show(True)
def Print(self):
- pdd = wxPrintDialogData()
+ pdd = wx.PrintDialogData()
pdd.SetPrintData(self.printData)
- printer = wxPrinter(pdd)
+ printer = wx.Printer(pdd)
printout = SetPrintout(self)
if not printer.Print(self.parentFrame, printout):
- wxMessageBox("There was a problem printing.\nPerhaps your current printer is not set correctly?", "Printing", wxOK)
+ wx.MessageBox("There was a problem printing.\nPerhaps your current printer is not set correctly?", "Printing", wx.OK)
else:
self.printData = printer.GetPrintDialogData().GetPrintData()
printout.Destroy()
def DoDrawing(self, DC):
- size = DC.GetSizeTuple()
+ size = DC.GetSize()
DC.BeginDrawing()
table = PrintTableDraw(self, DC, size)
self.table.Print()
-class SetPrintout(wxPrintout):
+class SetPrintout(wx.Printout):
def __init__(self, canvas):
- wxPrintout.__init__(self)
+ wx.Printout.__init__(self)
self.canvas = canvas
self.end_pg = 1000
else:
self.pixelsPerInch = self.GetPPIPrinter()
- (w, h) = dc.GetSizeTuple()
+ (w, h) = dc.GetSize()
scaleX = float(w) / 1000
scaleY = float(h) / 1000
self.printUserScale = min(scaleX, scaleY)
def OnPrintPage(self, page):
dc = self.GetDC()
- (w, h) = dc.GetSizeTuple()
+ (w, h) = dc.GetSize()
scaleX = float(w) / 1000
scaleY = float(h) / 1000
self.printUserScale = min(scaleX, scaleY)