X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec873c943d71f0d5f13e3398557071448cda6c23..a4027e74873007e3430af3bd77019bcab76f6c04:/wxPython/demo/HtmlWindow.py diff --git a/wxPython/demo/HtmlWindow.py b/wxPython/demo/HtmlWindow.py deleted file mode 100644 index 42e24bddd6..0000000000 --- a/wxPython/demo/HtmlWindow.py +++ /dev/null @@ -1,223 +0,0 @@ - -import os -import sys - -import wx -import wx.html as html -import wx.lib.wxpTag - -from Main import opj - -#---------------------------------------------------------------------- - -# This shows how to catch the OnLinkClicked non-event. (It's a virtual -# method in the C++ code...) -class MyHtmlWindow(html.HtmlWindow): - def __init__(self, parent, id, log): - html.HtmlWindow.__init__(self, parent, id, style=wx.NO_FULL_REPAINT_ON_RESIZE) - self.log = log - if "gtk2" in wx.PlatformInfo: - self.SetStandardFonts() - - def OnLinkClicked(self, linkinfo): - self.log.WriteText('OnLinkClicked: %s\n' % linkinfo.GetHref()) - super(MyHtmlWindow, self).OnLinkClicked(linkinfo) - - def OnSetTitle(self, title): - self.log.WriteText('OnSetTitle: %s\n' % title) - super(MyHtmlWindow, self).OnSetTitle(title) - - def OnCellMouseHover(self, cell, x, y): - self.log.WriteText('OnCellMouseHover: %s, (%d %d)\n' % (cell, x, y)) - super(MyHtmlWindow, self).OnCellMouseHover(cell, x, y) - - def OnCellClicked(self, cell, x, y, evt): - self.log.WriteText('OnCellClicked: %s, (%d %d)\n' % (cell, x, y)) - if isinstance(cell, html.HtmlWordCell): - sel = html.HtmlSelection() - self.log.WriteText(' %s\n' % cell.ConvertToText(sel)) - super(MyHtmlWindow, self).OnCellClicked(cell, x, y, evt) - - - -# This filter doesn't really do anything but show how to use filters -class MyHtmlFilter(html.HtmlFilter): - def __init__(self, log): - html.HtmlFilter.__init__(self) - self.log = log - - # This method decides if this filter is able to read the file - def CanRead(self, fsfile): - self.log.write("CanRead: %s\n" % fsfile.GetMimeType()) - return False - - # If CanRead returns True then this method is called to actually - # read the file and return the contents. - def ReadFile(self, fsfile): - return "" - - -class TestHtmlPanel(wx.Panel): - def __init__(self, parent, frame, log): - wx.Panel.__init__(self, parent, -1, style=wx.NO_FULL_REPAINT_ON_RESIZE) - self.log = log - self.frame = frame - self.cwd = os.path.split(sys.argv[0])[0] - - if not self.cwd: - self.cwd = os.getcwd() - if frame: - self.titleBase = frame.GetTitle() - - html.HtmlWindow_AddFilter(MyHtmlFilter(log)) - - self.html = MyHtmlWindow(self, -1, log) - self.html.SetRelatedFrame(frame, self.titleBase + " -- %s") - self.html.SetRelatedStatusBar(0) - - self.printer = html.HtmlEasyPrinting() - - self.box = wx.BoxSizer(wx.VERTICAL) - self.box.Add(self.html, 1, wx.GROW) - - subbox = wx.BoxSizer(wx.HORIZONTAL) - - btn = wx.Button(self, -1, "Load File") - self.Bind(wx.EVT_BUTTON, self.OnLoadFile, btn) - subbox.Add(btn, 1, wx.GROW | wx.ALL, 2) - - btn = wx.Button(self, -1, "Load URL") - self.Bind(wx.EVT_BUTTON, self.OnLoadURL, btn) - subbox.Add(btn, 1, wx.GROW | wx.ALL, 2) - - btn = wx.Button(self, -1, "With Widgets") - self.Bind(wx.EVT_BUTTON, self.OnWithWidgets, btn) - subbox.Add(btn, 1, wx.GROW | wx.ALL, 2) - - btn = wx.Button(self, -1, "Back") - self.Bind(wx.EVT_BUTTON, self.OnBack, btn) - subbox.Add(btn, 1, wx.GROW | wx.ALL, 2) - - btn = wx.Button(self, -1, "Forward") - self.Bind(wx.EVT_BUTTON, self.OnForward, btn) - subbox.Add(btn, 1, wx.GROW | wx.ALL, 2) - - btn = wx.Button(self, -1, "Print") - self.Bind(wx.EVT_BUTTON, self.OnPrint, btn) - subbox.Add(btn, 1, wx.GROW | wx.ALL, 2) - - btn = wx.Button(self, -1, "View Source") - self.Bind(wx.EVT_BUTTON, self.OnViewSource, btn) - subbox.Add(btn, 1, wx.GROW | wx.ALL, 2) - - self.box.Add(subbox, 0, wx.GROW) - self.SetSizer(self.box) - self.SetAutoLayout(True) - - # A button with this ID is created on the widget test page. - self.Bind(wx.EVT_BUTTON, self.OnOk, id=wx.ID_OK) - - self.OnShowDefault(None) - - - def ShutdownDemo(self): - # put the frame title back - if self.frame: - self.frame.SetTitle(self.titleBase) - - - def OnShowDefault(self, event): - name = os.path.join(self.cwd, opj('data/test.htm')) - self.html.LoadPage(name) - - - def OnLoadFile(self, event): - dlg = wx.FileDialog(self, wildcard = '*.htm*', style=wx.OPEN) - - if dlg.ShowModal(): - path = dlg.GetPath() - self.html.LoadPage(path) - - dlg.Destroy() - - - def OnLoadURL(self, event): - dlg = wx.TextEntryDialog(self, "Enter a URL") - - if dlg.ShowModal(): - url = dlg.GetValue() - self.html.LoadPage(url) - - dlg.Destroy() - - - def OnWithWidgets(self, event): - os.chdir(self.cwd) - name = os.path.join(self.cwd, opj('data/widgetTest.htm')) - self.html.LoadPage(name) - - - def OnOk(self, event): - self.log.WriteText("It works!\n") - - def OnBack(self, event): - if not self.html.HistoryBack(): - wx.MessageBox("No more items in history!") - - - def OnForward(self, event): - if not self.html.HistoryForward(): - wx.MessageBox("No more items in history!") - - - def OnViewSource(self, event): - import wx.lib.dialogs - - source = self.html.GetParser().GetSource() - - dlg = wx.lib.dialogs.ScrolledMessageDialog(self, source, 'HTML Source') - dlg.ShowModal() - dlg.Destroy() - - - def OnPrint(self, event): - self.printer.GetPrintData().SetPaperId(wx.PAPER_LETTER) - self.printer.PrintFile(self.html.GetOpenedPage()) - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestHtmlPanel(nb, frame, log) - return win - - -#---------------------------------------------------------------------- - - -overview = """
-wx.HtmlWindow is capable of parsing and rendering most -simple HTML tags. - -
It is not intended to be a high-end HTML browser. If you're -looking for something like that see the IEHtmlWin class, which -wraps the core MSIE HTML viewer. - - -""" - - - -if __name__ == '__main__': - import sys,os - import run - run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:]) - - - - - - - -