-from wxPython.wx import *
-from wxPython.help import *
+import wx
#----------------------------------------------------------------------
# We first have to set an application-wide help provider. Normally you
# would do this in your app's OnInit or in other startup code...
-provider = wxSimpleHelpProvider()
-wxHelpProvider_Set(provider)
+provider = wx.SimpleHelpProvider()
+wx.HelpProvider_Set(provider)
-
-class TestPanel(wxPanel):
+# This panel is chock full of controls about which we can demonstrate the
+# help system.
+class TestPanel(wx.Panel):
def __init__(self, parent, log):
- wxPanel.__init__(self, parent, -1)
+ wx.Panel.__init__(self, parent, -1)
self.log = log
- self.SetHelpText("This is a wxPanel.")
- sizer = wxBoxSizer(wxVERTICAL)
+ # This help text, set for the panel itself, will be used if context
+ # sensitive help cannot be found for any particular control.
+ self.SetHelpText("This is a wx.Panel.")
+
+ sizer = wx.BoxSizer(wx.VERTICAL)
+
+ # Init the context help button.
+ # And even include help text about the help button :-)
+ cBtn = wx.ContextHelpButton(self)
+ cBtn.SetHelpText("wx.ContextHelpButton")
+
+ cBtnText = wx.StaticText(self, -1,
+ "This is a wx.ContextHelpButton. Clicking it puts the\n"
+ "app into context sensitive help mode."
+ )
- cBtn = wxContextHelpButton(self)
- cBtn.SetHelpText("wxContextHelpButton")
- cBtnText = wxStaticText(self, -1, "This is a wxContextHelpButton. Clicking it puts the\n"
- "app into context sensitive help mode.")
+ # Yes, even static text can have help text associated with it :-)
cBtnText.SetHelpText("Some helpful text...")
- s = wxBoxSizer(wxHORIZONTAL)
- s.Add(cBtn, 0, wxALL, 5)
- s.Add(cBtnText, 0, wxALL, 5)
- sizer.Add(20,20)
+ s = wx.BoxSizer(wx.HORIZONTAL)
+ s.Add(cBtn, 0, wx.ALL, 5)
+ s.Add(cBtnText, 0, wx.ALL, 5)
+ sizer.Add((20,20))
sizer.Add(s)
- text = wxTextCtrl(self, -1, "Each sub-window can have its own help message",
- size=(240, 60), style = wxTE_MULTILINE)
+ # A text control with help text.
+ text = wx.TextCtrl(self, -1, "Each sub-window can have its own help message",
+ size=(240, 60), style=wx.TE_MULTILINE)
text.SetHelpText("This is my very own help message. This is a really long long long long long long long long long long long long long long long long long long long long message!")
- sizer.Add(20,20)
+ sizer.Add((20,20))
sizer.Add(text)
- text = wxTextCtrl(self, -1, "You can also intercept the help event if you like. Watch the log window when you click here...",
- size=(240, 60), style = wxTE_MULTILINE)
+ # Same thing, but this time to demonstrate how the help event can be
+ # intercepted.
+ text = wx.TextCtrl(self, -1, "You can also intercept the help event if you like. Watch the log window when you click here...",
+ size=(240, 60), style = wx.TE_MULTILINE)
text.SetHelpText("Yet another context help message.")
- sizer.Add(20,20)
+ sizer.Add((20,20))
sizer.Add(text)
- EVT_HELP(text, text.GetId(), self.OnCtxHelp)
+ self.Bind(wx.EVT_HELP, self.OnCtxHelp, text)
- text = wxTextCtrl(self, -1, "This one displays the tip itself...",
- size=(240, 60), style = wxTE_MULTILINE)
- sizer.Add(20,20)
+ text = wx.TextCtrl(self, -1, "This one displays the tip itself...",
+ size=(240, 60), style = wx.TE_MULTILINE)
+ sizer.Add((20,20))
sizer.Add(text)
- EVT_HELP(text, text.GetId(), self.OnCtxHelp2)
+ self.Bind(wx.EVT_HELP, self.OnCtxHelp2, text)
- border = wxBoxSizer(wxVERTICAL)
- border.Add(sizer, 0, wxALL, 25)
+ border = wx.BoxSizer(wx.VERTICAL)
+ border.Add(sizer, 0, wx.ALL, 25)
- self.SetAutoLayout(true)
+ self.SetAutoLayout(True)
self.SetSizer(border)
self.Layout()
+ # On the second text control above, we intercept the help event. This is where
+ # we process it. Anything could happen here. In this case we're just printing
+ # some stuff about it, then passing it on, at which point we see the help tip.
def OnCtxHelp(self, evt):
self.log.write("OnCtxHelp: %s" % evt)
evt.Skip()
-
+ # On the third text control above, we intercept the help event.
+ # Here, we print a note about it, generate our own tip window, and,
+ # unlike last time, we don't pass it on to the underlying provider.
def OnCtxHelp2(self, evt):
- self.log.write("OnCtxHelp: %s" % evt)
- tip = wxTipWindow(self, "This is a wxTipWindow")
+ self.log.write("OnCtxHelp: %s\n" % evt)
+ tip = wx.TipWindow(self, "This is a wx.TipWindow")
#----------------------------------------------------------------------
def runTest(frame, nb, log):
- win = TestPanel(nb, log)
- return win
+ if wx.Platform == "__WXMAC__":
+ dlg = wx.MessageDialog(
+ frame, 'The ContextHelp sample does not currently work well on this platform.',
+ 'Sorry', wx.OK | wx.ICON_INFORMATION
+ )
+ dlg.ShowModal()
+ dlg.Destroy()
+
+ else:
+ win = TestPanel(nb, log)
+ return win
#----------------------------------------------------------------------
-
-
overview = """
-This demo shows how to encorporate Context Sensitive
-help into your applicaiton using the wxSimpleHelpProvider class.
+This demo shows how to incorporate Context Sensitive
+help into your application using the wx.SimpleHelpProvider class.
"""
-
-
#----------------------------------------------------------------------
+if __name__ == '__main__':
+ import sys,os
+ import run
+ run.main(['', os.path.basename(sys.argv[0])])
+