#----------------------------------------------------------------------
-# Name: wxPython.tools.helpviewer
+# Name: wx.tools.helpviewer
# Purpose: HTML Help viewer
#
# Author: Robin Dunn
#---------------------------------------------------------------------------
+def makeOtherFrame(helpctrl):
+ import wx
+ parent = helpctrl.GetFrame()
+ otherFrame = wx.Frame(parent)
+
+
def main(args=sys.argv):
if len(args) < 2:
print __doc__
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)
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()
if __name__ == '__main__':
main()
+
+