X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d14a1e28567de23c586bc80017073d0c39f8d18f..d1b736b7968ceea4233f3fceecdb01173f68a9a3:/wxPython/wx/tools/helpviewer.py?ds=sidebyside diff --git a/wxPython/wx/tools/helpviewer.py b/wxPython/wx/tools/helpviewer.py index 0d35e5ae3a..48fe6ef5c5 100644 --- a/wxPython/wx/tools/helpviewer.py +++ b/wxPython/wx/tools/helpviewer.py @@ -1,5 +1,5 @@ #---------------------------------------------------------------------- -# Name: wxPython.tools.helpviewer +# Name: wx.tools.helpviewer # Purpose: HTML Help viewer # # Author: Robin Dunn @@ -26,6 +26,12 @@ import sys, os #--------------------------------------------------------------------------- +def makeOtherFrame(helpctrl): + import wx + parent = helpctrl.GetFrame() + otherFrame = wx.Frame(parent) + + def main(args=sys.argv): if len(args) < 2: print __doc__ @@ -41,28 +47,23 @@ def main(args=sys.argv): print __doc__ return - from wxPython.wx import wxPySimpleApp, wxConfigBase_Get, \ - wxLog_SetActiveTarget, wxLogStderr, \ - wxLog_SetLogLevel, wxLOG_Error, \ - wxFileSystem_AddHandler, wxZipFSHandler - import wxPython.html - from wxPython.htmlhelp import wxHtmlHelpController - + import wx + import wx.html - app = wxPySimpleApp() - #wxLog_SetActiveTarget(wxLogStderr()) - wxLog_SetLogLevel(wxLOG_Error) + app = wx.PySimpleApp() + #wx.Log.SetActiveTarget(wx.LogStderr()) + wx.Log.SetLogLevel(wx.LOG_Error) # Set up the default config so the htmlhelp frame can save its preferences app.SetVendorName('wxWindows') app.SetAppName('helpviewer') - cfg = wxConfigBase_Get() + cfg = wx.ConfigBase.Get() # Add the Zip filesystem - wxFileSystem_AddHandler(wxZipFSHandler()) + wx.FileSystem.AddHandler(wx.ZipFSHandler()) # Create the viewer - helpctrl = wxHtmlHelpController() + helpctrl = wx.html.HtmlHelpController() if cachedir: helpctrl.SetTempDir(cachedir) @@ -71,6 +72,14 @@ def main(args=sys.argv): print "Adding %s..." % helpfile helpctrl.AddBook(helpfile, 1) + # The frame used by the HtmlHelpController is set to not prevent + # app exit, so in the case of a standalone helpviewer like this + # when the about box or search box is closed the help frame will + # be the only one left and the app will close unexpectedly. To + # work around this we'll create another frame that is never shown, + # but which will be closed when the helpviewer frame is closed. + wx.CallAfter(makeOtherFrame, helpctrl) + # start it up! helpctrl.DisplayContents() app.MainLoop() @@ -78,3 +87,5 @@ def main(args=sys.argv): if __name__ == '__main__': main() + +