X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a693e6e0460b6b3c32e4b6f114a3ab7b7cd24ea..f6bcfd974ef26faf6f91a62cac09827e09463fd1:/utils/wxPython/demo/PrintFramework.py diff --git a/utils/wxPython/demo/PrintFramework.py b/utils/wxPython/demo/PrintFramework.py deleted file mode 100644 index 6b77eb1f2b..0000000000 --- a/utils/wxPython/demo/PrintFramework.py +++ /dev/null @@ -1,176 +0,0 @@ - -from wxPython.wx import * -from wxScrolledWindow import MyCanvas - -#---------------------------------------------------------------------- - -class MyPrintout(wxPrintout): - def __init__(self, canvas, log): - wxPrintout.__init__(self) - self.canvas = canvas - self.log = log - - def OnBeginDocument(self, start, end): - self.log.WriteText("wxPrintout.OnBeginDocument\n") - return self.base_OnBeginDocument(start, end) - - def OnEndDocument(self): - self.log.WriteText("wxPrintout.OnEndDocument\n") - self.base_OnEndDocument() - - def OnBeginPrinting(self): - self.log.WriteText("wxPrintout.OnBeginPrinting\n") - self.base_OnBeginPrinting() - - def OnEndPrinting(self): - self.log.WriteText("wxPrintout.OnEndPrinting\n") - self.base_OnEndPrinting() - - def OnPreparePrinting(self): - self.log.WriteText("wxPrintout.OnPreparePrinting\n") - self.base_OnPreparePrinting() - - def HasPage(self, page): - self.log.WriteText("wxPrintout.HasPage\n") - if page == 1: - return true - else: - return false - - def GetPageInfo(self): - self.log.WriteText("wxPrintout.GetPageInfo\n") - return (1, 1, 1, 1) - - def OnPrintPage(self, page): - self.log.WriteText("wxPrintout.OnPrintPage\n") - dc = self.GetDC() - - #------------------------------------------- - # One possible method of setting scaling factors... - - maxX = self.canvas.getWidth() - maxY = self.canvas.getHeight() - - # Let's have at least 50 device units margin - marginX = 50 - marginY = 50 - - # Add the margin to the graphic size - maxX = maxX + (2 * marginX) - maxY = maxY + (2 * marginY) - - # Get the size of the DC in pixels - (w, h) = dc.GetSizeTuple() - - # Calculate a suitable scaling factor - scaleX = float(w) / maxX - scaleY = float(h) / maxY - - # Use x or y scaling factor, whichever fits on the DC - actualScale = min(scaleX, scaleY) - - # Calculate the position on the DC for centring the graphic - posX = (w - (self.canvas.getWidth() * actualScale)) / 2.0 - posY = (h - (self.canvas.getHeight() * actualScale)) / 2.0 - - # Set the scale and origin - dc.SetUserScale(actualScale, actualScale) - dc.SetDeviceOrigin(int(posX), int(posY)) - - #------------------------------------------- - - self.canvas.DoDrawing(dc) - return true - - -#---------------------------------------------------------------------- - - -class TestPrintPanel(wxPanel): - def __init__(self, parent, frame, log): - wxPanel.__init__(self, parent, -1) - self.log = log - self.frame = frame - - - self.printData = wxPrintData() - self.printData.SetPaperId(wxPAPER_LETTER) - - self.box = wxBoxSizer(wxVERTICAL) - self.canvas = MyCanvas(self) - self.box.Add(self.canvas, 1, wxGROW) - - subbox = wxBoxSizer(wxHORIZONTAL) - btn = wxButton(self, 1201, "Print Setup") - EVT_BUTTON(self, 1201, self.OnPrintSetup) - subbox.Add(btn, 1, wxGROW | wxALL, 2) - - btn = wxButton(self, 1202, "Print Preview") - EVT_BUTTON(self, 1202, self.OnPrintPreview) - subbox.Add(btn, 1, wxGROW | wxALL, 2) - - btn = wxButton(self, 1203, "Print") - EVT_BUTTON(self, 1203, self.OnDoPrint) - subbox.Add(btn, 1, wxGROW | wxALL, 2) - - self.box.Add(subbox, 0, wxGROW) - - self.SetAutoLayout(true) - self.SetSizer(self.box) - - - def OnPrintSetup(self, event): - printerDialog = wxPrintDialog(self) - printerDialog.GetPrintDialogData().SetPrintData(self.printData) - printerDialog.GetPrintDialogData().SetSetupDialog(true) - printerDialog.ShowModal(); - self.printData = printerDialog.GetPrintDialogData().GetPrintData() - printerDialog.Destroy() - - - def OnPrintPreview(self, event): - self.log.WriteText("OnPrintPreview\n") - printout = MyPrintout(self.canvas, self.log) - printout2 = MyPrintout(self.canvas, self.log) - self.preview = wxPrintPreview(printout, printout2, self.printData) - if not self.preview.Ok(): - self.log.WriteText("Houston, we have a problem...\n") - return - - frame = wxPreviewFrame(self.preview, self.frame, "This is a print preview") - - frame.Initialize() - frame.SetPosition(self.frame.GetPosition()) - frame.SetSize(self.frame.GetSize()) - frame.Show(true) - - - - def OnDoPrint(self, event): - pdd = wxPrintDialogData() - pdd.SetPrintData(self.printData) - printer = wxPrinter(pdd) - printout = MyPrintout(self.canvas, self.log) - if not printer.Print(self.frame, printout): - wxMessageBox("There was a problem printing.\nPerhaps your current printer is not set correctly?", "Printing", wxOK) - else: - self.printData = printer.GetPrintDialogData().GetPrintData() - printout.Destroy() - - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestPrintPanel(nb, frame, log) - return win - - -#---------------------------------------------------------------------- - - - - - -overview = """\ -""" -