]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/ContextHelp.py
Corrected _setCallbackInfo code so GiveFeedback can work
[wxWidgets.git] / wxPython / demo / ContextHelp.py
index 6985790b696160615a4d789e9c232454e8c14063..a3aea8b3e63bd376ed2a3af7b8d644ad776e3631 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
+# 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...
 
 # 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):
     def __init__(self, parent, log):
-        wxPanel.__init__(self, parent, -1)
+        wx.Panel.__init__(self, parent, -1)
         self.log = log
 
         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...")
 
         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)
 
         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!")
         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)
 
         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.")
         text.SetHelpText("Yet another context help message.")
-        sizer.Add(20,20)
+        sizer.Add((20,20))
         sizer.Add(text)
         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)
         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()
 
 
         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()
 
     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):
     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")
 
 
 #----------------------------------------------------------------------
 
 
 #----------------------------------------------------------------------
@@ -78,15 +96,16 @@ def runTest(frame, nb, log):
 #----------------------------------------------------------------------
 
 
 #----------------------------------------------------------------------
 
 
-
-
 overview = """
 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:])
+