]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/ContextHelp.py
Stop the timer when the sample is destroyed
[wxWidgets.git] / wxPython / demo / ContextHelp.py
index c115f22c443495c7ac741ba910a308070d9a7756..0367a5b84ecfcb9428ec11f22e7f6692ee3dfdc4 100644 (file)
@@ -1,71 +1,89 @@
 
-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)
+        text.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)
+        text.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.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\n" % evt)
-         tip = wxTipWindow(self, "This is a wxTipWindow")
+         self.log.write("OnCtxHelp2: %s\n" % evt)
+         tip = wx.TipWindow(self, "This is a wx.TipWindow")
 
 
 #----------------------------------------------------------------------
@@ -78,15 +96,16 @@ def runTest(frame, nb, log):
 #----------------------------------------------------------------------
 
 
-
-
 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])] + sys.argv[1:])
+