X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b7c75283f2144469e8fa6a24ca285b42fab69a6b..55f834ca0e5590f1eea73342e95907493658bfd1:/wxPython/demo/ActiveX_PDFWindow.py diff --git a/wxPython/demo/ActiveX_PDFWindow.py b/wxPython/demo/ActiveX_PDFWindow.py index 35c3956c30..6639fd0c1d 100644 --- a/wxPython/demo/ActiveX_PDFWindow.py +++ b/wxPython/demo/ActiveX_PDFWindow.py @@ -10,55 +10,150 @@ if wx.Platform == '__WXMSW__': class TestPanel(wx.Panel): def __init__(self, parent, log): wx.Panel.__init__(self, parent, -1) - self.pdf = None - - sizer = wx.BoxSizer(wx.VERTICAL) - btnSizer = wx.BoxSizer(wx.HORIZONTAL) + mainsizer = wx.BoxSizer(wx.HORIZONTAL) + leftsizer = wx.BoxSizer(wx.VERTICAL) self.pdf = PDFWindow(self, style=wx.SUNKEN_BORDER) - - sizer.Add(self.pdf, proportion=1, flag=wx.EXPAND) - - btn = wx.Button(self, wx.NewId(), "Open PDF File") - self.Bind(wx.EVT_BUTTON, self.OnOpenButton, btn) - btnSizer.Add(btn, proportion=1, flag=wx.EXPAND|wx.ALL, border=5) - - btn = wx.Button(self, wx.NewId(), "<-- Previous Page") - self.Bind(wx.EVT_BUTTON, self.OnPrevPageButton, btn) - btnSizer.Add(btn, proportion=1, flag=wx.EXPAND|wx.ALL, border=5) - - btn = wx.Button(self, wx.NewId(), "Next Page -->") - self.Bind(wx.EVT_BUTTON, self.OnNextPageButton, btn) - btnSizer.Add(btn, proportion=1, flag=wx.EXPAND|wx.ALL, border=5) - - - btnSizer.Add((50,-1), proportion=2, flag=wx.EXPAND) - sizer.Add(btnSizer, proportion=0, flag=wx.EXPAND) - - self.SetSizer(sizer) + leftsizer.Add(self.pdf, proportion=1, flag=wx.EXPAND) + + box = wx.StaticBox(self, wx.NewId(), "" ) + buttonsizer = wx.StaticBoxSizer(box, wx.HORIZONTAL ) + + b1 = wx.Button(self, wx.NewId(), "First") + buttonsizer.Add(b1, proportion=0, flag=wx.ALIGN_CENTER|wx.ALL, border=5) + self.Bind(wx.EVT_BUTTON, self.OnFirstPageButton, b1) + + b2 = wx.Button(self, wx.NewId(), "Previous") + buttonsizer.Add(b2, proportion=0, flag=wx.ALIGN_CENTER|wx.ALL, border=5) + self.Bind(wx.EVT_BUTTON, self.OnPreviousPageButton, b2) + + tx1 = wx.StaticText(self, wx.NewId(), " Go to page" ) + buttonsizer.Add(tx1, proportion=0, flag=wx.ALIGN_CENTER|wx.ALL, border=5) + tc1 = wx.TextCtrl(self, wx.NewId(), "0", size=[30,-1]) + buttonsizer.Add( tc1, proportion=0, flag=wx.ALIGN_CENTER|wx.ALL, border=5) + self.Bind(wx.EVT_TEXT, self.OnGotoPage, tc1) + + b3 = wx.Button(self, wx.NewId(), "Next") + buttonsizer.Add(b3, proportion=0, flag=wx.ALIGN_CENTER|wx.ALL, border=5) + self.Bind(wx.EVT_BUTTON, self.OnNextPageButton, b3) + + b4 = wx.Button(self, wx.NewId(), "Last") + buttonsizer.Add(b4, proportion=0, flag=wx.ALIGN_CENTER|wx.ALL, border=5) + self.Bind(wx.EVT_BUTTON, self.OnLastPageButton, b4) + + tx2 = wx.StaticText(self, wx.NewId(), " Zoom") + buttonsizer.Add(tx2, proportion=0, flag=wx.ALIGN_CENTER|wx.ALL, border=5) + + ch1 = wx.Choice(self, wx.NewId(), + choices=["Default", "Fit", "FitH", "FitV", + "25%", "50%", "75%", "100%", "125%", "200%", "400%"]) + ch1.SetSelection(0) + buttonsizer.Add(ch1, proportion=0, flag=wx.ALIGN_CENTER|wx.ALL, border=5) + self.Bind(wx.EVT_CHOICE, self.OnZoom, ch1) + + leftsizer.Add(buttonsizer, proportion=0) + mainsizer.Add(leftsizer, proportion=1, flag=wx.GROW|wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, border=5) + + box = wx.StaticBox(self, wx.NewId(), "" ) + rightsizer = wx.StaticBoxSizer(box, wx.VERTICAL) + + b5 = wx.Button(self, wx.NewId(), "Load PDF") + rightsizer.Add(b5, proportion=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL, border=5) + self.Bind(wx.EVT_BUTTON, self.OnLoadButton, b5) + + b6 = wx.Button(self, wx.NewId(), "Print") + rightsizer.Add(b6, proportion=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL, border=5) + self.Bind(wx.EVT_BUTTON, self.OnPrintButton, b6) + + tx3 = wx.StaticText(self, wx.NewId(), "Page mode:") + rightsizer.Add(tx3, proportion=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL, border=5) + + ch2 = wx.Choice(self, wx.NewId(),size=[100,-1], + choices=["None", "Bookmarks", "Thumbs"]) + ch2.SetSelection(0) + rightsizer.Add(ch2, proportion=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL, border=5) + self.Bind(wx.EVT_CHOICE, self.OnPageMode, ch2) + + tx4 = wx.StaticText(self, wx.NewId(), "Layout mode:") + rightsizer.Add(tx4, proportion=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL, border=5) + + ch3 = wx.Choice(self, wx.NewId(),size=[100,-1], + choices=["DontCare", "SinglePage", + "OneColumn", "TwoColumnLeft", "TwoColumnRight" ]) + ch3.SetSelection(0) + rightsizer.Add(ch3, proportion=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL, border=5) + self.Bind(wx.EVT_CHOICE, self.OnLayoutMode, ch3) + + cx1 = wx.CheckBox(self, wx.NewId(), "Toolbar") + cx1.SetValue( True ) + rightsizer.Add( cx1,proportion=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL, border=5) + self.Bind(wx.EVT_CHECKBOX, self.OnToolbar, cx1) + + cx2 = wx.CheckBox(self, wx.NewId(), "Scrollbars") + cx2.SetValue( True ) + rightsizer.Add( cx2,proportion=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL, border=5) + self.Bind(wx.EVT_CHECKBOX, self.OnScrollbars, cx2) + + mainsizer.Add( rightsizer, proportion=0, flag=wx.ALL, border=15) + self.SetSizer(mainsizer) self.SetAutoLayout(True) + def OnFirstPageButton(self, event): + self.pdf.gotoFirstPage() + def OnPreviousPageButton(self, event): + self.pdf.gotoPreviousPage() - def OnOpenButton(self, event): - dlg = wx.FileDialog(self, wildcard="*.pdf") + def OnNextPageButton(self, event): + self.pdf.gotoNextPage() + def OnLastPageButton(self, event): + self.pdf.gotoLastPage() + + def OnGotoPage(self, event): + npage = event.GetEventObject().GetValue() + try: + self.pdf.setCurrentPage(int(npage)) + except ValueError: + pass + + def OnZoom(self, event): + astring = event.GetEventObject().GetStringSelection() + if astring.startswith('Fit'): + self.pdf.setView(astring) + else: + try: + percent = float(astring.replace('%','')) + self.pdf.setZoom(percent) + except ValueError: + pass + + def OnLoadButton(self, event): + dlg = wx.FileDialog(self, wildcard="*.pdf") if dlg.ShowModal() == wx.ID_OK: wx.BeginBusyCursor() self.pdf.LoadFile(dlg.GetPath()) wx.EndBusyCursor() - dlg.Destroy() + def OnPrintButton(self, event): + self.pdf.Print() - def OnPrevPageButton(self, event): - self.pdf.gotoPreviousPage() - + def OnPageMode(self, event): + astring = event.GetEventObject().GetStringSelection() + self.pdf.setPageMode(astring.lower()) - def OnNextPageButton(self, event): - self.pdf.gotoNextPage() + def OnLayoutMode(self, event): + astring = event.GetEventObject().GetStringSelection() + self.pdf.setLayoutMode(astring) + def OnToolbar(self, event): + on = event.GetEventObject().GetValue() + self.pdf.setShowToolbar(on) + def OnScrollbars(self, event): + on = event.GetEventObject().GetValue() + self.pdf.setShowScrollbars(on) #---------------------------------------------------------------------- @@ -67,13 +162,14 @@ def runTest(frame, nb, log): win = TestPanel(nb, log) return win else: - dlg = wx.MessageDialog(frame, 'This demo only works on MSW.', - 'Sorry', wx.OK | wx.ICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() + from Main import MessagePanel + win = MessagePanel(nb, 'This demo only works on Microsoft Windows.', + 'Sorry', wx.ICON_WARNING) + return win -overview = """\ +overview = """\ +

wx.lib.pdfwin.PDFWindow

The wx.lib.pdfwin.PDFWindow class is another example of using ActiveX